51單片機(jī)控制LED顯示漢字
程序清單:
ORG 00H
LOOP: MOV A,#0FFH ;開機(jī)初始化,清除畫面
MOV P0,A ;清除P0口
ANL P2,#00 ;清除P2口
MOV R2,#200
D100MS: MOV R3,#250 ;延時(shí)100毫秒
DJNZ R3,$
DJNZ R2,D100MS
MOV 20H,#00H ;取碼指針的初值
l100: MOV R1,#100 ;每個(gè)字的停留時(shí)間
L16: MOV R6,#16 ;每個(gè)字16個(gè)碼
MOV R4,#00H ;掃描指針清零
MOV R0,20H ;取碼指針存入R0
L3: MOV A,R4 ;掃描指針存入A
MOV P1,A ;掃描輸出
INC R4 ;掃描指針加1,掃描下一個(gè)
MOV A,R0 ; 取碼指針存入A
MOV DPTR,#TABLE ;取數(shù)據(jù)表的上半部分的代碼
MOVC A,@A+DPTR
MOV P0,A ; 輸出到P0
INC R0 ;取碼指針加1,取下一個(gè)碼。
MOV A,R0
MOV DPTR,#TABLE ;取數(shù)據(jù)表下半部份的代碼
MOVC A,@A+DPTR
MOV P2,A ;輸出到P2口
INC R0
MOV R3,#02 ;掃描1毫秒
DELAY2: MOV R5,#248 ;
DJNZ R5,$
DJNZ R3,DELAY2
MOV A,#00H ;清除屏幕
MOV P0,A
ANL P2,#00H
DJNZ R6,L3 ;一個(gè)字16個(gè)碼是否完成?
DJNZ R1,L16 ;每個(gè)字的停留時(shí)間是否到了?
MOV 20H,R0 ;取碼指針存入20H
CJNE R0,#0FFH,L100 ;8個(gè)字256個(gè)碼是否完成?
JMP LOOP ;反復(fù)循環(huán)
TABLE :
;漢字“倚”的代碼
db 01H,00H,02H,00H,04H,00H,1FH,0FFH
db 0E2H,00H,22H,00H,22H,0FCH,26H,88H
db 2AH,88H,0F2H,88H,2AH,0FAH,26H,01H
db 63H,0FEH,26H,00H,02H,00H,00H,00H
;以下分別輸入天,一,出, 寶,刀,屠,龍,的代碼,略。
end
評(píng)論