;點(diǎn)陣程序
;說明:1 行掃描用兩片74LS155.電路接成3――8譯碼器方式輸出16路加16個(gè)TIP42C
; 驅(qū)動(dòng) .A /B /C端譯碼地址輸入.D1 D2為片選 順序接P1.0—P1.4
; 因?yàn)槭嵌重?電路已成形.按照電路板接線得到掃描真值為:
; 09H ,0AH,0BH,0CH,0DH,0EH,0FH,10H 行1―――8
; 11H , 12H,13H ,14H ,15H ,16H,17H,08H 行9―――16
; 2 列掃描用74LS595 16片級(jí)連
; SRCLK---TXD SER------RXD
*******************************************************************
RCLK EQU P3.3 ;鎖存時(shí)鐘接P3.3
ORG 00H
AJMP START
ORG 30H
START:
MOV R5,#17 ;計(jì)數(shù)器
MOV 40H ,#00H ;偏移量清零
MOV R0,40H
MOV R1,#09H ;送第一行掃描真值表數(shù)據(jù)
DSP:
MOV A,#0FFH
MOV P1,A ;清屏幕
MOV A ,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR ;取第一列左半邊列數(shù)據(jù)
MOV SBUF ,A
JNB TI,$
CLR TI
CLR P3.3
NOP
NOP
SETB P3.3 ;鎖存數(shù)據(jù)
INC R0
MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR ;取第一列右半邊列數(shù)據(jù)
MOV SBUF,A
JNB TI,$
CLR TI
CLR P3.3 ;鎖存數(shù)據(jù)
NOP
NOP
SETB P3.3
MOV P1,R1 ;開顯示
ACALL YANSHI
INC R0
INC R1
CJNE R1 ,#18H,DSP;行掃描到15行以后真值表數(shù)據(jù)要調(diào)整,因?yàn)閿?shù)據(jù)表不是連續(xù)的,請(qǐng)看上面說明
MOV R1,#08H
AJMP DSP
DJNZ R5,DSP
LJMP START
YANSHI:
MOV R3,#10
D1: MOV R4,#14
DJNZ R4,$
DJNZ R3,D1
RET
TAB:;-- 文字: 華 --
;-- 宋體12 ;此字體下對(duì)應(yīng)的點(diǎn)陣為: 寬X高=16X16 --
DB 0EFH,0FEH,0CFH,0EEH,0F7H,0C6H,0F3H,0F8H
DB 035H,0FEH,0F6H,0DEH,0F7H,0DEH,0F7H,0C1H
DB0 77H,0FFH,07FH,0FFH, 001H,080H,07FH,0FFH
DB 07FH,0FFH,07FH,0FFH,07FH, 0FFH, 07FH,0FFH
以上程序已經(jīng)能輸出一個(gè)正確的漢字,可不知道程序錯(cuò)在哪,
1 本來是想在第一位輸出一個(gè)‘華’.想不到來四個(gè)、但是前三位都錯(cuò)了,只有第四位是對(duì)的. 這塊板本來是8字(32x64)的,下邊沒接.程序應(yīng)該怎樣改才能正確顯示8個(gè)字?我的分析問題可能出在595輸出鎖存上,595輸出鎖存應(yīng)該怎樣控制?
2 并且閃的特別厲害.12M晶振,89S51. 延時(shí)程序已經(jīng)調(diào)整到最小閃動(dòng)
3 亮度也很暗,列掃描用74LS595,具體用LS系列還是HC或者HD系列那種好?亮度是不是跟這個(gè)有關(guān)?
4 這塊板本來是8字(32x64)的,下邊沒接.程序應(yīng)該怎樣改才能正確顯示8個(gè)字?我的分析問題可能出在595輸出鎖存上,595輸出鎖存應(yīng)該怎樣控制?
這是小弟學(xué)習(xí)單片機(jī)以來的處女作,雖然沒有按照我的意圖顯示,但是給了很大的鼓舞(要知道這塊屏幕已經(jīng)瞎擺弄半個(gè)多月了),畢竟還是點(diǎn)亮了.各位DX.各位老師幫幫忙看看.先謝謝了!!!!!
