原创 一个网友做的led点阵汉字屏

2008-1-24 16:03 3996 7 7 分类: MCU/ 嵌入式

2c659be5-613f-4940-a66b-ef7055b31b66.jpg


程序清单:


ORG 00H


LOOP: MOV A,#0FFH ;开机初始化,清除画面


MOV P0,A ;清除P0口



ANL P2,#00 ;清除P2口


MOV R2,#200



D100MS: MOV R3,#250 ;延时100毫秒



DJNZ R3,$


DJNZ R2,D100MS


MOV 20H,#00H ;取码指针的初值


l100: MOV R1,#100 ;每个字的停留时间


L16: MOV R6,#16 ;每个字16个码


MOV R4,#00H ;扫描指针清零


MOV R0,20H ;取码指针存入R0


L3: MOV A,R4 ;扫描指针存入A


MOV P1,A ;扫描输出


INC R4 ;扫描指针加1,扫描下一个


MOV A,R0 ; 取码指针存入A


MOV DPTR,#TABLE ;取数据表的上半部分的代码


MOVC A,@A+DPTR


MOV P0,A ; 输出到P0


INC R0 ;取码指针加1,取下一个码。


MOV A,R0


MOV DPTR,#TABLE ;取数据表下半部份的代码


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 ;一个字16个码是否完成?


DJNZ R1,L16 ;每个字的停留时间是否到了?


MOV 20H,R0 ;取码指针存入20H


CJNE R0,#0FFH,L100 ;8个字256个码是否完成?


JMP LOOP ;反复循环



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

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条