一.實(shí)驗(yàn)要求
編程實(shí)現(xiàn)中英文字符的顯示。
二.實(shí)驗(yàn)?zāi)康?br>
1.了解LED點(diǎn)陣顯示的基本原理和實(shí)現(xiàn)方法。
2.掌握點(diǎn)陣漢字庫(kù)的編碼和從標(biāo)準(zhǔn)字庫(kù)中提取漢字編碼的方法。
三.實(shí)驗(yàn)電路及連線
點(diǎn)陣顯示模塊WTD3088的(紅色)列輸入線接至內(nèi)部LED的陰極端,行輸入線接至內(nèi)部LED的陽(yáng)極端(若陽(yáng)極端輸入為高電平,陰極端輸入低電平,則該LED點(diǎn)亮)。發(fā)光點(diǎn)的分布如圖22-0所示。
Fig 22-0 WTD3088 LED分布
如圖22-1示,本實(shí)驗(yàn)?zāi)K使用74LS374來(lái)控制列輸入線的電平值。將74LS374的某輸出置0,則對(duì)應(yīng)的LED陰極端被置低。如圖22-2示,本實(shí)驗(yàn)?zāi)K使用74LS273來(lái)控制行輸入線,并通過(guò)9013提供電流驅(qū)動(dòng)。將74LS273的某輸出置1,則對(duì)應(yīng)的LED陽(yáng)極端被置高。每次系統(tǒng)重新開(kāi)啟或總清后,74LS273輸出為全0,LED顯示被關(guān)閉。
通過(guò)編程控制各顯示點(diǎn)對(duì)應(yīng)LED陽(yáng)極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。
Fig 22-1 LED模塊及列掃描電路
Fig 22-2 行掃描電路
Fig 22-3地址譯碼電路
本實(shí)驗(yàn)?zāi)K使用4塊WTD3088組成16×16點(diǎn)陣,以滿足漢字顯示的要求。為了方便的控制四個(gè)單元,使用了一片74LS139譯碼,產(chǎn)生四個(gè)地址片選信號(hào):CLKR1= CSLED,CLKR2= CSLED+1,用于行控制的兩片74LS273;CLKC1= CSLED+2,CLKC2= CSLED+3,用于列控制的兩片74LS374。
實(shí)驗(yàn)接線:按示例程序,模塊的CSLED接51/96地址的8000H。
四.實(shí)驗(yàn)說(shuō)明
使用高亮度LED發(fā)光管構(gòu)成點(diǎn)陣,通過(guò)編程控制可以顯示中英文字符、圖形及視頻動(dòng)態(tài)圖形。LED顯示以其組構(gòu)方式靈活、亮度高、技術(shù)成熟、成本低廉等特點(diǎn)在證券、運(yùn)動(dòng)場(chǎng)館及各種室內(nèi)/外顯示場(chǎng)合得到廣泛的應(yīng)用。
所顯示字符的點(diǎn)陣數(shù)據(jù)可以自行編寫(xiě)(即直接點(diǎn)陣畫(huà)圖),也可從標(biāo)準(zhǔn)字庫(kù)(如ASC16、HZ16)中提取。后者需要正確掌握字庫(kù)的編碼方法和字符定位的計(jì)算。
實(shí)驗(yàn)盤(pán)片中“字符轉(zhuǎn)換”子目錄下提供的Basc16.exe,BHz16.exe可方便的將單個(gè)字符的碼表從標(biāo)準(zhǔn)字庫(kù)Asc16,Hzk16中提取出來(lái)。具體使用方法是運(yùn)行上述可執(zhí)行程序,根據(jù)提示輸入所需字符(如是漢字還需要先啟動(dòng)dos下的漢字環(huán)境,如ucdos,pdos95等)。程序?qū)⒃撟址拇a表提取出來(lái),存放在該字符ASC或區(qū)位碼為文件名稱的.dat文件中。用戶只需將該文件中內(nèi)容拷貝、粘貼到自己的程序中即可。但需要注意字節(jié)排列順序、字節(jié)中每一位與具體顯示點(diǎn)的一一對(duì)應(yīng)關(guān)系,必要時(shí)還要對(duì)碼表稍作修改。同一目錄下還提供了上述可執(zhí)行程序的源文件,使用BC3.1編寫(xiě),供用戶參考。
五.實(shí)驗(yàn)程序框圖
用戶應(yīng)留心其中行掃描的實(shí)現(xiàn)及碼表的處理。
六.實(shí)驗(yàn)程序:
(一)提供LEDA51演示Asc16字符的簡(jiǎn)單點(diǎn)陣顯示。
;*********LED 點(diǎn)陣顯示示例程序***********************
;** 該程序顯示 Asc16字符 **
;** 為了簡(jiǎn)單起見(jiàn),程序只顯示一個(gè)字符 **
;** 該程序針對(duì)T598實(shí)驗(yàn)機(jī)的模塊14 **
;****************************************************
CSLED EQU 8000H
CSR1 EQU CSLED ;行1 273
CSR2 EQU CSLED+1H ;行2 273
CSC1 EQU CSLED+2H ;列1 374
CSC2 EQU CSLED+3H ;列2 374
ORG 0000H
MOV SP,#60H
INIT: MOV A,#0H ;關(guān)閉行
MOV DPTR,#CSR1
MOVX @DPTR,A
MOV DPTR,#CSR2
MOVX @DPTR,A
MOV A,#0FFH ;關(guān)閉列
MOV DPTR,#CSC1
MOVX @DPTR,A
MOV DPTR,#CSC2
MOVX @DPTR,A
D: MOV R5,#00H
MOV R4,#01H ;每次為單行掃描
DISP:
MOV A,R5
MOV DPTR,#ASCE ;此處設(shè)定所要顯示的字符
MOVC A,@A+DPTR
CPL ACC ;代碼取反,決定顯示的陰陽(yáng)
MOV DPTR,#CSC2
MOVX @DPTR,A
MOV DPTR,#CSR1
MOV A,R4
MOVX @DPTR,A
RL ACC
MOV R4,ACC
INC R5
LCALL DELAY
CJNE R5,#8H,DISP
MOV A,#0H
MOVX @DPTR,A
MOV R5,#08H
MOV R4,#01H
DISP2:
MOV A,R5
MOV DPTR,#ASCE
MOVC A,@A+DPTR
CPL ACC
MOV DPTR,#CSC2
MOVX @DPTR,A
MOV DPTR,#CSR2
MOV A,R4
MOVX @DPTR,A
RL ACC
MOV R4,ACC
INC R5
LCALL DELAY
CJNE R5,#10H,DISP2
MOV A,#0H
MOVX @DPTR,A
SJMP D
;******** 延時(shí)子程序,協(xié)調(diào)字符顯示速度 *************
DELAY: MOV R7,#1H
DL1: MOV R6,#00H
DL2: DJNZ R6,DL2
DJNZ R7,DL1
RET
;******** 字符點(diǎn)陣字庫(kù) ***************
; ASC16 字符編碼排列
; 0
; 1
; |
; |
; 14
; 15
; 高位 D7--D0
; 請(qǐng)注意編碼的排列次序和實(shí)際顯示點(diǎn)陣分布的關(guān)系
ASCA:DB 00H,00H,10H,38H,6CH,0C6H,0C6H,0FEH
DB 0C6H,0C6H,0C6H,0C6H,00H,00H,00H,00H
ASCE:DB 00H,00H,0FEH,66H,62H,68H,78H,68H
DB 60H,62H,66H,0FEH,00H,00H,00H,00H
ASCD:DB 00H,00H,0F8H,6CH,66H,66H,66H,66H
DB 66H,66H,6CH,0F8H,00H,00H,00H,00H
ASCK:DB 00H,00H,0E6H,66H,66H,6CH,78H,78H
DB 6CH,66H,66H,0E6H,00H,00H,00H,00H
;****************************************************
END
(二)LEDHZ51兩個(gè)示例程序。和Hz16字符的簡(jiǎn)單點(diǎn)陣顯示。
;*********LED 點(diǎn)陣顯示示例程序***********************
;** 該程序顯示 hz16字符 **
;** 為了簡(jiǎn)單起見(jiàn),程序只顯示一個(gè)字符 **
;** 該程序針對(duì)T598實(shí)驗(yàn)機(jī)的模塊14 **
;****************************************************
CSLED EQU 8000H
CSR1 EQU CSLED ;行1 273
CSR2 EQU CSLED+1H ;行2 273
CSC1 EQU CSLED+2H ;列1 374
CSC2 EQU CSLED+3H ;列2 374
ORG 0000H
MOV SP,#60H
INIT: MOV A,#0H ;關(guān)閉LED顯示
MOV DPTR,#CSR1
MOVX @DPTR,A
MOV DPTR,#CSR2
MOVX @DPTR,A
MOV A,#0FFH ;關(guān)閉LED顯示
MOV DPTR,#CSC1
MOVX @DPTR,A
MOV DPTR,#CSC2
MOVX @DPTR,A
D: MOV R5,#00H
MOV R4,#01H
DISP:
MOV A,R5
RL ACC
MOV DPTR,#HZAI
MOVC A,@A+DPTR
CPL ACC
MOV DPTR,#CSC2
MOVX @DPTR,A
MOV A,R5
RL ACC
INC ACC
MOV DPTR,#HZAI
MOVC A,@A+DPTR
CPL ACC
MOV DPTR,#CSC1
MOVX @DPTR,A
MOV DPTR,#CSR1
MOV A,R4
MOVX @DPTR,A
RL ACC
MOV R4,ACC
INC R5
LCALL DELAY
CJNE R5,#8H,DISP
MOV A,#0H
MOVX @DPTR,A
MOV R5,#08H
MOV R4,#01H
DISP2:
MOV A,R5
RL ACC
MOV DPTR,#HZAI
MOVC A,@A+DPTR
CPL ACC
MOV DPTR,#CSC2
MOVX @DPTR,A
MOV A,R5
RL ACC
INC ACC
MOV DPTR,#HZAI
MOVC A,@A+DPTR
CPL ACC
MOV DPTR,#CSC1
MOVX @DPTR,A
MOV DPTR,#CSR2
MOV A,R4
MOVX @DPTR,A
RL ACC
MOV R4,ACC
INC R5
LCALL DELAY
CJNE R5,#10H,DISP2
MOV A,#0H
MOVX @DPTR,A
SJMP D
;******** 延時(shí)子程序,協(xié)調(diào)字符顯示速度 *************
DELAY: MOV R7,#1H
DL1: MOV R6,#00H
DL2: DJNZ R6,DL2
DJNZ R7,DL1
RET
;******** 字符點(diǎn)陣字庫(kù) ***************
; HZ16 字符編碼排列
; 0 1
; 2 3
; |
; |
; 28 29
; 30 31
; 高位 D7--D0
HZAI:DB 00H,78H,3FH,80H,11H,10H,09H,20H
DB 7FH,0FEH,42H,02H,82H,04H,7FH,0F8H
DB 04H,00H,07H,0F0H,0AH,20H,09H,40H
DB 10H,80H,11H,60H,22H,1CH,0CH,08H
HZDI:DB 00H,80H,40H,80H,20H,88H,2FH,0FCH
DB 08H,88H,08H,88H,0E8H,88H,2FH,0F8H
DB 28H,88H,28H,88H,28H,88H,2FH,0F8H
DB 28H,08H,50H,06H,8FH,0FCH,00H,00H
HZKE:DB 01H,00H,01H,04H,0FFH,0FEH,01H,00H
DB 01H,10H,1FH,0F8H,10H,10H,10H,10H
DB 10H,10H,1FH,0F0H,14H,50H,04H,40H
DB 04H,40H,08H,42H,10H,42H,60H,3EH
;****************************************************
END
評(píng)論
查看更多