16×16点阵图文LED显示屏设计源程序清单

上传人:dc****87 文档编号:66279199 上传时间:2022-03-27 格式:DOC 页数:9 大小:69KB
收藏 版权申诉 举报 下载
16×16点阵图文LED显示屏设计源程序清单_第1页
第1页 / 共9页
16×16点阵图文LED显示屏设计源程序清单_第2页
第2页 / 共9页
16×16点阵图文LED显示屏设计源程序清单_第3页
第3页 / 共9页
资源描述:

《16×16点阵图文LED显示屏设计源程序清单》由会员分享,可在线阅读,更多相关《16×16点阵图文LED显示屏设计源程序清单(9页珍藏版)》请在装配图网上搜索。

1、-6 控制源程序清单以下是4个1616点阵LED电子显示屏的源程序,分别采用汇编及C语言编写,C程序在Keil 51环境下调试。1汇编源程序;*;4字1616点阵电F屏字符显示器*;* AT89C52 12 MHz晶振 *;*;显示字用查表法,不占存,用4个1616共阳LED点阵显示;效果:向上滚动显示字,每次4个,重复循环;R2:行扫描地址(00H0FH)。;R3:滚动显示时控制移动速度,也可控制静止显示的时间;*中断入口程序* ORG 0000H LJMP START ORG 0003H RETI ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH

2、RETI ORG 0023H RETI ORG 002BH RETI;*主程序*START:MOV 20H,*00H ;清标志,00H为l帧扫描完毕标志 MOV A,*0FFH ;端口初始化 MOV P1, A MOV P2, A MOV P3, A MOV P0,A CLR Pl.6 ;串行存放器输入/输出端控制位 MOV TMOD, *01H ;使用T0作16位定时器,行扫描用 MOV TH0, *0FCH ;1ms初值(12 MHz) MOV TL0, *18H MOV SCON, *00H ;串口0方式传送显示字节 MOV IE, *82H ;T0中断允许,总中断允许 MOV SP,

3、*70H LCALL DIS1 ;显示准备,黑屏,1.5 sMAIN: MOV DPTR,*TAB LCALL MOVDISP ;逐排显示,每次4字 MOV DPTR,*TAB LCALL MOVDISP1 ;滚动显示,每排4字 AJMP MAIN;*4字逐排显示子程序*;每次4字移入移出显示方式,入口时定义好DPTR值MOVDISP:MOV R1,*6 ;显示6排字,每排4字R1=排数DISLOOP: MOV R3,*100 ;每排显示时间为16 ms100=1.6 sDISMOV: MOV R2,*00H ;第0行开场 SETB TR0 ;开扫描每次l帧WAITMOV:C 00H,DISM

4、OV1 ;标志为1,扫描l帧完毕16 ms为1帧,每行1 msAJMP WAITMOVDISMOV1:DJNZ R3,DISMOV ;1帧重复显示控制显示时间 MOV A,*128 ;显示字指针移1排每排4字32= 128字ADD A,DPLMOV DPL,A MOV A,*0 ADDC A,DPH MOV DPH,A DEC R1 ;R1为0,显示完 MOV A,R1 JZ MOVOUT AJMP DISLOOPMOVOUT:RET ;移动显示完毕;*4字滚动显示子程序*;每排4字向上移出显示方式,入口时定义好DPTR值MOVDISP1:MOV R1,*255 ;向上移动显示6排字,每排4字

5、R1=排数16DISLOOP1: MOV R3,*10 ;移动速度为16 ms10= 0.16 sDISMOV2: MOV R2,*00H :第0行开场 SETB TR0 ;开扫描每次1帧WAITMOV1: C 00H,DISMOV3;标志为1扫描1帧完毕16 ms为1帧,每行1 msAJMP WAITMOV1DISMOV3: DJNZ R3,DISMOV2 ;1帧重复显示控制移动速度 INC DPTR ;显示字指针移1行2字节位置INC DPTR DEC R1 ;R1为0,显示完 MOV A,R1JZ MOVOUT1 AJMP DISLOOP1MOVOUT1: RET ;移动显示完毕;*4字

6、显示子程序*;静止显示表中*4字DIS1: MOV R3,* 5AH :静止显示时间控制DIS11: MOV R2,*00H ;l帧扫描初始值(行地址000OFH) MOV DPTR,* TAB ;取表首址 SETB TR0 ;开扫描每次1帧WAIT11: C 00H, DIS111 ;标志为l,扫描l帧完毕AJMP WAIT11DISI111: DJNZ R3,DISI1RET;*扫描程序 *;1ms传送一行,每行显示l ms,一次传送4字的*行共8字节INTT0: PUSH ACC MOV TH0,* 0FCH ;1 ms初值重装 MOV TL0,* 18H MOV A,*97 ;指向第4

7、个字行右字节 ADD A,DPL MOV DPL,A MOV A,*0 ADDC A,DPH MOV DPH,A MOV A,*0 MOVC A, A+ DPTR ;查表 MOV SBUF,A ;串口0方式发送WAIT: C TI, GO ;等待发送完毕AJMP WAITGO: MOV A,DPL ;指向第4个字行左字节 SUBB A,*1 MOV DPL,A MOV A,DPH SUBB A,*0 MOV DPH,A MOV A,*0 MOVC A,A+ DPTR MOV SBUF,AWAIT1: C TI,GO1AJMP WAIT1GO1: MOV R0, *03HMLOOP:MOV A,

8、 DPL ;指向前3个字行右字节 SUBB A, *31 MOV DPL, A MOV A, DPH SUBB A, *0 MOV DPH, A MOV A,*0 MOVC A,A+DPTR ;查表 MOV SBUF,A ;串口0方式发送WAIT2:C TI,GO2 ;等待发送完毕AJMP WAIT2GO2: MOV A,DPL ;指向前3个字行左字节 SUBB A,*1 MOV DPL,A MOV A,DPH SUBB A,*0 MOV DPH,A MOV A,*0 MOVC A,A+DPTR MOV SBUF, AWAIT3:C TI, GO3AJMP WAIT3G03: DJNZ R0O

9、,MLOOP ;执行3次 SETB Pl.7 ;关行显示,准备刷新 NOP ;串口存放器数据稳定 SETB P1.6 ;产生上升沿,行数据输入输出端NOPNOP CLR Pl.6 ;恢复低电平 MOV A,R2 ;修改显示行地址 ORL A,*0F0H ;修改显示行地址 MOV R2,A ;修改显示行地址 MOV A,P1 ;修改显示行地址 ORL A,*0FH ;修改显示行地址 ANL A,R2 ;修改显示行地址 MOV P1,A ;修改完成 CLR Pl.7 ;开行显示 INC R2 ;下一行扫描地址值INC DPTR INC DPTR ;下一行数据地址 MOV A, R2 ANL A,*

10、0FHJNZ GO4 SETB 00H ;R2为1I0H,现为末行扫描,置l帧完毕标志 MOV A,DPL ;指针修正为原帧初值SUBB A,*32 MOV DPL, A MOV A,DPH SUBB A,*0MOV DPH, ACLR TR0 ;一帧扫描完,关扫描GO4: POP ACC RETI ;退出; *扫描文字表*;共5排字每排4个字,前后为黑屏TAB:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

11、,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F

12、FH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; DB 0F7H,0DFH,0F9H,0CEH,0FBH,0BFH,0C0H,007H

13、,0DEH,0E7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H;-文字:单-DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFHDB 0FEH,0BFH,0FFH,0BEH,0EFH,0BFH,0EFH,0EBH,0E0H,001H,0EFH,0FFH, 0EFH 0FFH, 0EFH,0FFH-文字:片-DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EF

14、HDB 0EFH,0EFH,0FFH,007H,001H,077H,001H,077H,00EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H;-文字:机-DB 0ABH,077H,0AFH,077H,06FH,0F7H,0EEH,0F5H,0EDH,0F5H,0FDH,0F5H,0EBH,0F9H,0EFH,0FFH;下面的DB表略去2C源程序 /*- 多个1616 LED显示演示程序 MCU AT89C52 *AL 24 MHz -*/以下程序能实现多个1616 LED屏的多个字符显示,显示方式有整行上移、帘入帘出、左移、右移/ * include reg52.h

15、 * define BLKN 8 /列锁存器数为LED显示字数2 * define TOTAL 20 /待显示字个数,本例共20个 * define CONIO P1 /显示控制口 sbit G=CONIO7;/CONIO.7为154译码器显示允许控制信号端口,0时输出,l时输出全为高阻态 sbit CLK= CONIO6;/CONIO.6为595输出锁存器时钟信号端,l时输出数据,从l到0时锁存输出数据 sbit SCLR= CONIO5; /CONIO.5为595移位存放器清0口,平时为l,为0时,输出全为0 unsigned char idata dispram (BLKN/2)* 32

16、=o;/显示区缓存,4字共432单元 /*字模表1*/ unsigned char code Bmp32= 0F7H,0DFH,0F9H,0CEH,0FBH,0BFH,0C0H,007H,0DEH,0E7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,/-文字:单-0FEH,0BFH,0FFH,0BEH,0EFH,0BFH,0EFH,0EBH,0E0H,001H,0EFH,0FFH, 0EFH 0FFH, 0EFH,0F

17、FH,0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFH,/-文字:片-0EFH,0EFH,0FFH,007H,001H,077H,001H,077H,00EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H,0ABH,077H,0AFH,077H,06FH,0F7H,0EEH,0F5H,0EDH,0F5H,0FDH,0F5H,0EBH,0F9H,0EFH,0FFH,/-文字:机-/下面的DB表略去;/*字模表2*/unsigned char code Bmp13

18、2= 0F7H,0DFH,0F9H,0CEH,0FBH,0BFH,0C0H,007H,0DEH,0E7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,/-文字:单-0FEH,0BFH,0FFH,0BEH,0EFH,0BFH,0EFH,0EBH,0E0H,001H,0EFH,0FFH, 0EFH 0FFH, 0EFH,0FFH,0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EF

19、H,0DFH,0EFH,0BFH,0EFH,07FH,0EFH,/-文字:片-0EFH,0EFH,0FFH,007H,001H,077H,001H,077H,00EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H,0ABH,077H,0AFH,077H,06FH,0F7H,0EEH,0F5H,0EDH,0F5H,0FDH,0F5H,0EBH,0F9H,0EFH,0FFH,/-文字:机-/下面的DB表略去;/*延时函数约1 ms*void delay(unsigned int dt)register unsigned char bt;for (; dt; dt-) fo

20、r (bt=0; bt 255; bt+): /*主函数 *void main(void)register unsigned char i,j,k, l,q,w; /初始化SCON=0*00; /串口丁作模式0:移位存放器方式TMOD= 0*01; /定时器T0工作方式1: 16位方式TR0= l; /启动定时器T0CONIO =0*3F; /CONIO端口初值IE =0*82; /允许定时器T0中断while(1) delay(2000); /2 s /第1种显示效果:卷帘出显示笑脸图案for (i= 0;i32; i+) for(q= 0;q BLKN/2; q+)disprami+q*3

21、2= Bmpl5i; if (i%2)delay(120);delay(1000);/卷帘出显示文字,每次字数为BLKN/2,共显示TOTAL* 2/BLKN次for(w=0; w TOTAL* 2/BLKN; w+)for (i= 0;i32;i+)for(q= 0;q BLKN/2;q+)disprami+q*32= Bmpq+w*BLKN/2i;if (i%2)delay(120);delay(3000);/第1种显示效果:卷帘出显示笑脸图案 for (i= 0;i32;i+) for(q=0;qBLKN/2;q+)disprami+q*32= Bmpl5i;) if(i%2)delay

22、(120);delay(1000);/第2种显示效果:向上滚屏,每次BLKN/2个字 for(i=0;iTOTAL* 2/BLKN; i+) for(j=0;j16; j+) for(k=0;k15; k+) for(q=0;qBLKN/2;q+) dispramk*2+q* 32= dispram(k+1)*2+q*32: dispramk*2+l+q* 32= dispram(k+1)*2+1+q*32; for(q=0;qBLKN/2;q+) dispram30+ q* 32= Bmpq+i*BLKN/2j*2; dispram31+q*32= Bmpq+i*BLKN/2j*2+1; d

23、elay(100); delay(3000); /滚动暂停 / 第1种显示效果:卷帘出黑屏 for(1=0:i32;i+) for(q=0:qBLKN/2;q+)disprami+q*32= 0*ff; if (i%2)delay(120);delay(1000);/第3种显示效果:左移出显示 for (i=0;iTOTAL; i+) for(j=0;j2;j+) for(k=0;k8;k+) for(1=0;116; 1+) for(q= 0;qBLKN/2;q+) dispraml*2+q32= dispraml*2+q* 327; if (q=BLKN/2 -1)dispraml*2+l

24、+q*32= dispraml*2+l+q* 32(7- k); else dispraml*2+l+q*32= dispraml*2+l+q* 327; delay(100); delay(3000); /第1种显示效果:卷帘出黑屏 for (i= 0;i32;i+) for(q=0;qBLKN/2;q十+)disprarni+ q* 32= 0*FF; if (i%2)delay(120); delay(1000);/第3种显示效果:右移出显示for (i=0;i0; j- for(k=0;k8;k+) for(1=0;116; 1+)for(q= 0;q1 | dispraml*2+q*

25、321 | Brnpi1*2+j-11 | dispraml*2+l+(q -1)*327; delay(100); delay(3000);/第4种显示效果:卷帘人 for(i=0;i32;i+) for(q=0;qBLKN/2;q+) disprami+q*32=0*00; if(i%2) delay(100); /主函数完毕/*显示屏扫描定时器T0中断函数*/void leddisplay(void) interrupt l using 1register unsigned char m,n=BLKN;TH0= 0*FC: /设定显示屏刷新率每秒62.5帧(16 ms/帧)TL0= 0*18:m= CONIO: /读取当前显示的行号m= +m0*0F; /行号加1,屏蔽高4位do n-; SBUF= dispramm*2+(n/2)* 30+n; /送显示数据 while(!TI);TI=0; while(n); /完成一行数据的发送G=1; /消隐关闭显示CONIO=0*F0; /行号端口清0CLK=1; /显示数据输入输出锁存器CONIO |=m; /写入行号CLK=0; /锁存显示数据G=0; /翻开显示. z

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!