完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
; **************************************** ; * * ; * 单个16×16点阵电子屏字符显示器 * ; * AT89C51 12 MHz晶振 * ; * 2007.4. 30 LRM * ; **************************************** ;显示字用查表法,不占内存,字符用16 × 16共阳LED点阵, ;效果:向上滚动显示20个字,再重复循环。 ;Rl:查表偏址寄存器,B:查表首址,R2:扫描地址(从00~OFH)。 ;R3:滚动显示时控制移动速度,单字显示可控制静止显示的时间。 ;*****************; ; 中断入口程序 ; ;*****************; ; ORG 0000H ;复位地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 REti ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTT0执行 ORG 0013H ;外中断1中断程序入口 RETI ORG 001BH ;定时器T1中断程序入口 RETI ORG 0023H ;串行中断程序入口地址 RETI ORG 002BH ;定时器T2中断入口地址 RETI ; ;*****************; ; 初始化程序 ; *****************; ; ; ;*****************; ; 主程序 ; ;*****************; ; START: MOV 20H, #00H ;清标志,OOH为第16行开始扫描标志,01 为1帧 ;扫描结束标志 MOV A, #0FFH ;端口初始化 MOV P1, A MOV P2, A MOV P3, A MOV P0, A CLR P1.6 ;串行寄存器输入打入输出控制位 MOV TMOD, #01H ;使用TO作16位定时器,行扫描用。 MOV TH0, 0FCH ;1 ms初值(12 MHz) MOV TL0, #18H MOV SCON, #00H ;串口0方式传送显示字节 MOV IE, #82H ;T0中断允许,总中断允许 MOV SP, #70H MAIN: LCALL DIS1 ;显示准备,黑屏,1.5s MOV DPTR, #TAB LCALL MOVDISP ;向上滚动显示一页(8个字) INC DPH LCALL MOVDISP ;向上滚动显示一页(8个字) INC DPH LCALL MOVDISP ;向上滚动显示一页(8个字) AJMP MAIN ; ; ;********************; ;多字滚动显示子程序 ; ;********************; ;每次8个字,入口时定义好DPTR值 ; MOVDISP: MOV B, #00H ;向上移动显示,查表偏址暂存(从00开始) DISLOOP: MOV R3, #07H ;移动速度 DISMOV: MOV R2, #00H ;第0行开始 MOV R1, B SETB TR0 ;开扫描(每次一帧) WAITMOV: JBC 01H, DISMOV1 ;标志为1扫描一帧结束(16 ms为1帧,每行1 ms) AJMP WAITMOV DISMOV1: DJNZ R3, DISMOV ;l帧重复显示(控制移动速度) INC B ;显示字的下一行(每行2字节) INC B MOV A,Rl ;Rl为0,8个字显示完 JZ MOVOUT AJMP DISLOOP MOVOUT: RET ;移动显示结束 ; ; ;********************; ; 单字显示子程序 ; ;********************; ;显示表中某个字 DIS1: MOV R3, #5AH ;静止显示时间控制(16 ms *#=1. 6 s) DIS11: MOV R2, #00H ;一帧扫描初始值(行地址从00~OFH) MOV DPTR, #TAB ;取表首址 MOV R1, #00H ;查表偏址(显示第一个字) SETB TR0 ;开扫描(每次一帧) WAIT11: JBC 01H, DIS111 ;为1,扫描一帧结束 AJMP WAIT11 DIS111: DJNZ R3, DIS11 RET ; ; ;************; ; 扫描程序 ; ;************; ;1ms刷新一次,每行显示1s INTT0: PUSH ACC MOV TH0, #0FCH ;l ms初值重装 MOV TL0, #18H JBC 00H, GOEND ;16行扫描标志为1,结束 INC R1 ;取行右边字节偏址 MOV A, R1 MOVC A, @A+DPTR ;查表 MOV SBUF, A ;串口0方式发送 WAIT: JBC T1, GO ;等待发送完毕 AJMP WAIT GO: DEC R1 ;取行左边字节偏址 MOV A, R1 MOVC A, @A+DPTR MOV SBUF, A WAIT1: JBC T1, GO1 AJMP WAIT1 GO1: SETB P1.7 ;关行显示,准备刷新 NOP ;串口寄存器数据稳定 SETB P1.6 ;产生上升沿,行数据打人输出端 NOP NOP CLR P1.6 ;恢复低电平 MOV A, R2 ;修改显示行地址 ORL A, #0F0H ;修改显示行地址 MOV R2, A ;修改显示行地址 MOV A, P1 ;修改显示行地址 ORL A, #0FH ;修改显示行地址 ANL A, R2 ;修改显示行地址 MOV P1, A ;修改完成 CLR P1.7 ;开行显示 INC R2 ;下一行扫描地址值 INC R1 INC R1 ;下一行数据地址 MOV A, R2 ANL A, #0FH JNZ GO2 SETB 00H ;R2为10H,现为末行扫描,置标志 GO2: POP ACC RETI GOEND: CLR TR0 ;一帧扫描完,关扫描 SETB 01H ;一帧扫描完,置结束标志 POP ACC RETI ;退出 ; ;****************; ; 扫描文字表 ; ;****************; ; 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,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H, 0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H ;单 DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H, 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH DB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH, 0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH ;片 DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH, 0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFH DB 0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H, 0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H ;机 DB 0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H, 0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFH DB 0FFH,0FFH,0F0H,00FH,0F7H,0EFH,0F0H,00FH, 0F7H,0EFH,0F0H,00FH,0FFH,0FFH,000H,001H ;是 DB 0FEH,0FFH,0F6H,0FFH,0F6H,007H,0F6H,0FFH, 0EAH,0FFH,0DCH,0FFH,0BFH,001H,0FFH,0FFH DB 0FFH,0FFH,0C0H,003H,0FEH,0FFH,0FEH,0FFH, 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH ;工 DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH, 0FEH,0FFH,000H,001H,0FFH,0FFH,0FFH,0FFH DB 0FBH,0BFH,0FBH,0BFH,0FBH,0BFH,0FBH,0BBH, 0BBH,0B9H,0DBH,0B3H,0DBH,0B7H,0EBH,0AFH ;业 DB 0E3H,0AFH,0EBH,09FH,0FBH,0BFH,0FBH,0BFH, 0FBH,0BBH,000H,001H,0FFH,0FFH,0FFH,0FFH DB 0FEH,0FFH,0FEH,0FFH,0DEH,0F7H,0C0H,003H, 0DEH,0F7H,0DEH,0F7H,0DEH,0F7H,0DEH,0F7H ;中 DB 0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH, 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH DB 0FEH,0FFH,0FEH,0FFH,0DEH,0F7H,0C0H,003H, 0DEH,0F7H,0DEH,0F7H,0DEH,0F7H,0DEH,0F7H ;中 DB 0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH, 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH DB 0E0H,00FH,0EFH,0EFH,0E0H,00FH,0EFH,0EFH, 0E0H,00FH,0FFH,0FFH,000H,001H,0DDH,0FFH ;最 DB 0C1H,003H,0DDH,077H,0C1H,0AFH,0DCH,0DFH, 0C1H,0AFH,01DH,071H,0FCH,0FBH,0FDH,0FFH DB 0F7H,0DFH,0F1H,0DFH,080H,003H,0F7H,0DFH, 0F0H,01FH,0F7H,0DFH,0F0H,01FH,0F7H,0DFH ;基 DB 000H,001H,0F7H,0DFH,0EEH,0E7H,0C0H,011H, 03EH,0FBH,0FEH,0FFH,080H,003H,0FFH,0FFH DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,000H,001H, 0FCH,07FH,0FCH,0BFH,0FAH,0BFH,0FAH,0DFH ;本 DB 0F6H,0EFH,0EEH,0E7H,0D0H,011H,03EH,0FBH, 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FFH,0FFH DB 0EFH,07FH,0EFH,07FH,0DFH,07FH,083H,003H, 0BAH,0FBH,0BAH,0FBH,0B9H,0FBH,083H,07BH ;的 DB 0BBH,0BBH,0BBH,09BH,0BBH,0DBH,0BBH,0FBH, 083H,0FBH,0BBH,0D7H,0BFH,0EFH,0FFH,0FFH DB 0FEH,0FFH,0FFH,07FH,0C0H,003H,0DFH,0FFH, 0DDH,0FFH,0DEH,0F7H,0CFH,073H,0D7H,037H ;应 DB 0DBH,06FH,0DBH,06FH,0D9H,0DFH,0BBH,0DFH, 0BFH,0BFH,0A0H,001H,07FH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0E0H,003H,0EFH,07BH,0EFH,07BH, 0EFH,07BH,0E0H,003H,0EFH,07BH,0EFH,07BH ;用 DB 0EFH,07BH,0E0H,003H,0EFH,07BH,0EFH,07BH, 0DFH,07BH,0DFH,07BH,0BFH,06BH,07FH,077H DB 0FDH,0FFH,0FEH,0FFH,0FFH,07FH,000H,001H, 0FDH,0FFH,0FDH,0FFH,0FCH,00FH,0FDH,0EFH ;方 DB 0FBH,0EFH,0FBH,0EFH,0F7H,0EFH,0F7H,0EFH, 0EFH,0EFH,0DFH,06FH,03FH,09FH,0FFH,0FFH DB 0FDH,0FFH,0FEH,0FFH,0FFH,07FH,000H,001H, 0FDH,0FFH,0FDH,0FFH,0FCH,00FH,0FDH,0EFH ;方 DB 0FBH,0EFH,0FBH,0EFH,0F7H,0EFH,0F7H,0EFH, 0EFH,0EFH,0DFH,06FH,03FH,09FH,0FFH,0FFH DB 0FFH,05FH,0FFH,067H,0FFH,06FH,080H,003H, 0FFH,07FH,0FFH,07FH,0FFH,07FH,0C1H,07FH ;式 DB 0F7H,0BFH,0F7H,0BFH,0F7H,0BFH,0F4H,0DFH, 0E3H,0DDH,08FH,0EDH,0DFH,0F5H,0FFH,0FBH DB 0F9H,0BFH,0C7H,0AFH,0F7H,0B7H,0F7H,0B7H, 0F7H,0BFH,000H,001H,0F7H,0BFH,0F7H,0B7H ;我 DB 0F1H,0D7H,0C7H,0CFH,037H,0DFH,0F7H,0AFH, 0F6H,06DH,0F7H,0F5H,0D7H,0F9H,0EFH,0FDH DB 0FFH,007H,0C0H,06FH,0EDH,0EFH,0F6H,0DFH, 0C0H,001H,0DDH,0FDH,0BDH,0FFH,000H,003H ;爱 DB 0FBH,0FFH,0F8H,00FH,0F3H,0DFH,0F4H,0BFH, 0EFH,03FH,09CH,0CFH,073H,0F1H,0CFH,0FBH DB 0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H, 0DEH,0F7H,000H,007H,0DEH,0F7H,0DEH,0F7H ;单 DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H, 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH DB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH, 0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH ;片 DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH, 0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFH DB 0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H, 0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H ;机 DB 0ABH,077H,0AFH,0FFH,06EH,0F7H,0EEH,0F5H, 0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,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 END |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
551 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
910 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
575 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
572 浏览 0 评论
1221 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11769 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 22:11 , Processed in 0.819616 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号