原创 16X16点阵汉字显示89C51

2008-4-30 19:24 7541 8 15 分类: MCU/ 嵌入式

点击开大图


点击开大图


点击开大图


点击开大图


;*****************16*16 LED点阵显示程序*****************


 ;*MCU:         AT89C51


;*MCU-crystal:  12M


;*Version:      1.0


;*Last Updata:  2005-1-1


;*Author:       WWW.PICAVR.COM


;*Description:  FOR-16*16 LED点阵显示程序, 参考了一本书上做的.


                显示"欢迎光临"字符,字符可同时显示两个汉字并且


                可上下,左右移动显示.


;**********************************************************     


              ORG     00H


START:        MOV     A,#00H     ;清除屏幕


              MOV     P0,A


              MOV     P2,A


              ACALL   DISP       ;调用显示子程序


              ACALL   MOVE       ;调用左移子程序


              AJMP    START


;*********************************************************


DISP:         MOV     R2,#02H    ;每个画面2个字,4个字分2次显示


              MOV     20H,#00H   ;取码指针暂存地址20H初值为00H


D4:           MOV     R4,#00H    ;74154扫描指针初值


              MOV     R1,#0FFH   ;每幕停留的时间


D5:           MOV     R6,#32     ;每幕2个字,32个数据


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


D2:           ACALL   READ1      ;调用取码子程序


              INC     R4         ;扫描下一列


              DJNZ    R6,D2      ;显示1幕?


              MOV     R4,#00     ;清除74154扫描指针为00


              DJNZ    R1,D5      ;每幕停留时间到了?


              MOV     20H,R0     ;保留取码指针存入20H地址


              DJNZ    R2,D4      ;2幕显示完毕了?


              RET


;********************************************************


READ1:        MOV     A,R4       ;扫描指针载入A         


              MOV     P1,A       ;输出至P1扫描列


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


              MOV     DPTR,#TAB  ;数据指针指到TAB


              MOVC    A,@A+DPTR  ;到TAB取上半部的数据码


              MOV     P0,A       ;输出至P0显示


              INC     R0         ;取下一个码


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


              MOV     DPTR,#TAB  ;数据指针指到TAB


              MOVC    A,@A+DPTR  ;到TAB取下半部的数据码


              MOV     P2,A       ;输出至P2显示


              INC     R0         ;取码值加1


              MOV     R3,#25     ;延时


              DJNZ    R3,$      


              MOV     A,#00H     ;清除屏幕


              MOV     P0,A      


              MOV     P2,A      


DELAY:        MOV     R3,#01     ;延时


D7:           MOV     R5,#50


              DJNZ    R5,$


              DJNZ    R3,D7


              RET


;*************************************************


MOVE:        


              MOV     20H,#00     ;取码指针暂存地址20H初值为00H


              MOV     R4,#00H     ;74154扫描指针初值


M1:           MOV     R1,#1FH     ;每幕停留的时间


M2:           MOV     R6,#32      ;每幕2个字,32个数据


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


M3:           ACALL   READ1       ;调用取码子程序


              INC     R4          ;扫描下一列


              DJNZ    R6,M3       ;显示1幕?


              MOV     R4,#00      ;清除74154扫描指针为00


              DJNZ    R1,M2       ;每幕停留时间到了?


              MOV     A,20H       ;取码指针载入A


              ADD     A,#02       ;加2


              MOV     20H,A       ;再存入20H地址取码指针


              XRL     A,#66       ;4个字是否都左移完毕了?


              JNZ     M1          ;循环


              RET


;*************************************************             


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


DL5S:         MOV   R6,40H        ;delay program


DL1:          MOV   R5,#200


DL2:          MOV   R4,#125


DL3:          DJNZ  R4,$


              DJNZ  R5,DL2


              DJNZ  R6,DL1


              RET


;************************************************


;"欢迎光临"显示用ROM数据表


TAB:          ;欢


              DB   00H,20H,3CH,10H


              DB   44H,08H,84H,04H


              DB   04H,03H,04H,03H


              DB   84H,04H,44H,08H


              DB   3CH,10H,00H,20H


              DB   00H,00H,07H,20H


              DB   04H,10H,0F4H,0FH


              DB   04H,10H,1CH,20H 


              ;迎


              DB   00H,00H,49H,20H


              DB   6AH,10H,0DCH,0FH


              DB   08H,10H,00H,20H


              DB   0FEH,27H,02H,22H


              DB   02H,21H,81H,20H


              DB   00H,20H,02H,20H


              DB   0FEH,2FH,02H,22H


              DB   02H,22H,0FEH,21H


              ;光


              DB   00H,00H,00H,20H


              DB   22H,20H,24H,20H


              DB   28H,10H,30H,08H


              DB   0E0H,07H,3FH,00H


              DB   20H,00H,0F0H,3FH


              DB   28H,20H,24H,20H


              DB   22H,20H,20H,20H


              DB   00H,38H,00H,00H


              ;临


              DB   00H,00H,0F0H,03H


              DB   00H,00H,00H,00H


              DB   0FFH,3FH,00H,00H


              DB   40H,00H,20H,3FH


              DB   10H,21H,0FH,21H


              DB   14H,21H,24H,3FH


              DB   44H,21H,04H,21H


              DB   04H,21H,04H,3FH


              DB   00H,00H,00H,00H


              END                       ;程序结束

PARTNER CONTENT

文章评论7条评论)

登录后参与讨论

用户244306 2009-12-4 17:03

你的联系方式是什么啊?我的QQ821424654!求清晰的电路图,谢谢!

wqd520 2008-5-11 19:54

很牛哦,欢迎大家来我博客下载资料啊~~~~很多哦~~~

用户134503 2008-5-5 12:36

佩服啊!

用户125336 2008-5-4 17:29

不错啊

用户108595 2008-5-3 22:53

不错,我也想做一个,我做的我想是一个可以显示图形的界面的和我字模可以变动的,希望可以多多帮我一下,我的QQ:595335526我的邮箱是dzcz88@163.com

用户146398 2008-4-30 21:14

帮忙编个8051时钟程序(汇编语言) 帮忙啊!有闹钟,LED显示 键盘输入功能~ 时钟程序已搞定~

用户146398 2008-4-30 21:11

不错 我也想搞一搞~~

用户1211410 2006-12-28 10:06

讀者收益
相关推荐阅读
echo2005 2010-02-06 22:27
单片机自学_4(4×4键盘扫描程序)
说明:本程序为4×4键盘扫描程序,是经过验证显示正确的。功能:4×4键盘,总共16个键,分别依次编号,当按到相应的按键的时候,数码管显示相应的编号。编号依次为:1,2,3,4,5,6,7,8,9,A,...
echo2005 2010-02-05 12:17
自学单片机_3(数码管按流水灯计数)
说明:每一个程序都是通过手头上的现有的片子,通过ISP下载可以实现的,有什么问题,欢迎大家指点,纠正。实现目的:流水灯每左移一次,蜂鸣器响;当8个流水灯分别显示完后,数码管个位开始计数;当数码管个位计...
echo2005 2010-02-03 19:29
连续两天收到EDN从北京邮寄的礼物,将以照片的形式发出,表示感谢!
前天与今天连续两天收到EDN从北京邮寄的礼物,感到很意外,也很惊喜,一个是2010年的礼物,一个是EDN杂志2010年2月份的杂志,娜娜为了让我看到自己成为了“最热心的回帖网友”,特地用特快从北京邮寄...
echo2005 2010-01-30 22:01
自学单片机_2(键盘按键显示)
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int...
echo2005 2010-01-29 23:26
单片机自学-1(流水灯每0.5秒移动一位,同时蜂鸣器响,数码管计数)
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int...
echo2005 2010-01-29 22:20
LED驱动点滴
              LED驱动点滴<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&...
EE直播间
更多
我要评论
7
8
关闭 站长推荐上一条 /3 下一条