点阵式汉字LED显示屏的制作 文章地址 http://www.66kv.cn/Article/ShowArticle.asp?ArticleID=79 以下是单片机程序 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 00H,00H,1FH,0E0H,12H,40H,12H,40H DB 12H,40H,12H,40H,0FFH,0FCH,12H,42H DB 12H,42H,12H,42H,12H,42H,3FH,0E2H DB 10H,02H,00H,0EH,00H,00H,00H,00H ;汉字“路”的代码 DB 00H,02H,7FH,7EH,42H,02H,43H,0FCH DB 42H,44H,0FEH,44H,48H,80H,10H,0FFH DB 31H,42H,0EAH,42H,24H,42H,2AH,42H DB 31H,42H,21H,0FFH,01H,40H,00H,00H ;汉字“图”的代码 DB 00H,00H,7FH,0FFH,40H,22H,44H,22H DB 48H,42H,78H,92H,55H,92H,52H,4AH DB 55H,26H,58H,82H,50H,42H,40H,62H DB 40H,42H,0FFH,0FFH,40H,00H,00H,00H end