基于单片机at89s51为控制器的led点阵显示屏系统的毕业设计内容摘要:

P2,A MOV P3,A MOV P0,A CLR。 串行寄存器打入输出端控制位 MOV TMOD,01H。 使用 T0 作 16 位定时器 ,行扫描用。 MOV TH0,0FCH。 1ms 初值 12MHZ MOV TL0,18H MOV SCON,00H。 串口方式 0 MOV IE,82H。 T0 中断允许 ,总中断允许 MOV SP,70H。 修改堆栈底部为 70H 单元 LCALL DIS1。 显示准备,黑屏, 秒 MAIN: MOV DPTR,TAB LCALL MOVDISP。 逐排显示,每排四字,共六排 MOV DPTR,TAB LCALL MOVDISP1。 滚动显示,每排四字 AJMP MAIN。 ********************。 四字逐排显示子程序。 ********************。 每 次四字移入移出显示方式,入口时定义好 DPTR 值。 MOVDISP: MOV R1,6。 显示 6 排字 ,每排四字 R1 排数 DISLOOP: MOV R3,100。 每排显示时间 16ms*100 DISMOV: MOV R2,00H。 第 0 行开始 SETB TR0。 开扫描(每次一帧) WAITMOV: JBC 00H,DISMOV1。 标志为 1 扫描一帧结束( 16毫秒为 1 帧,每行 1 毫秒) AJMP WAITMOV DISMOV1: DJNZ R3,DISMOV。 1 帧重复显示(控制显示时间) MOV A,128。 显示字指针移一排(每排 4字 *32 128) ADD A,DPL。 MOV DPL,A MOV A,0 ADDC A,DPH MOV DPH,A DEC R1。 R1 为 0,显示完 MOV A,R1 JZ MOVOUT。 AJMP DISLOOP。 MOVOUT: RET。 移动显示结束。 ********************。 四字滚动显示子程序。 ********************。 每排四字向上移出显示方式,入口时定义好 DPTR 值。 MOVDISP1: MOV R1,96。 向上移动显示 6 排字 ,每排四字 R1 排数 *16 DISLOOP1: MOV R3,10。 移动速度 *10 DISMOV2: MOV R2,00H。 第 0 行开始 SETB TR0。 开扫描(每次一帧) WAITMOV1: JBC 00H,DISMOV3。 标志为 1 扫描一帧结束( 16毫秒为 1 帧,每行 1 毫秒) AJMP WAITMOV1 DISMOV3: DJNZ R3,DISMOV2。 1 帧重复显示(控制移动速度) INC DPTR。 显示字指针移一行(二字节位置) INC DPTR DEC R1。 R1 为 0,显示完 MOV A,R1 JZ MOVOUT1。 AJMP DISLOOP1。 MOVOUT1: RET。 移动显示结束。 *****************。 四个字显示子程序。 *****************。 静止显示表中某四个字(黑屏) DIS1: MOV R3,100。 静止显示时间控制( 16MS*5ah 秒) DIS11: MOV R2,00H。 一帧扫描初始值( 行地址从000FH) MOV DPTR,TAB。 取表首址 SETB TR0。 开扫描(每次一帧) WAIT11: JBC 00H,DIS111。 为 1,扫描一帧结束 AJMP WAIT11 DIS111: DJNZ R3,DIS11 RET。 ************。 扫描程序。 ************。 1MS 传送一行,每行显示 1 毫秒 ,一次传送四个字的某行共 8 个字节 .。 INTT0: PUSH ACC MOV TH0,0FCH。 1ms 初值重装 MOV TL0,18H MOV A,97。 指向第四个字行右字节 tab+97 ADD A,DPL MOV DPL,A MOV A,0 ADDC A,DPH MOV DPH,A MOV A,0 MOVC A,@A+DPTR。 查表 0+tab+97 MOV SBUF,A。 串口 0 方式发送 WAIT: JBC TI,GO。 等待发送完毕 AJMP WAIT。 GO: MOV A,DPL。 指向第四个字行左字节 SUBB A,1 MOV DPL,A MOV A,DPH SUBB A,0 MOV DPH,A MOV A,0 MOVC A,@A+DPTR MOV SBUF,A WAIT1: JBC TI,GO1 AJMP WAIT1。 GO1: MOV R0,03H MLOOP: MOV A,DPL。 指向前三个字行右字节 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: JBC TI,GO2。 等待发送完毕 AJMP WAIT2。 GO2: MOV A,DPL。 指向前三个字行左字节 SUBB A,1 MOV DPL,A MOV A,DPH SUBB A,0 MOV DPH,A MOV A,0 MOVC A,@A+DPTR MOV SBUF,A WAIT3: JBC TI,GO3 AJMP WAIT3 GO3: DJNZ R0,MLOOP。 执行三次。 SETB。 关行显示,准备涮新 NOP。 串口寄存器数据稳定 SETB。 产生上升沿,行数据打入输出端 NOP。 NOP。 CLR。 恢复低电平 MOV A,R2。 修改显示行地址 ORL A,0F0H。 修改显示行地址 a 0f0h MOV R2,A。 修改显示行地址 r2 0f0h MOV A,P1。 修改显示行地址 a 10111111b 0bfh ORL A,0FH。 修改显示行地址 a 10111111b 0bfh ANL A,R2。 修改显示行地址 a b0h MOV P1,A。 修改完成 p1 b0h 1011 0000b CLR。 开行显示 INC R2。 下一行扫描地址值 r2 f1h 1111 0001b INC DPTR。 dptr tab+1 INC DPTR。 下一行数据地址 dptr tab+2 MOV A,R2 ANL A,0FH。 a 01h JNZ GO4 SETB 00H。 R2 为 10H,现为末行扫描,置 1 帧结束标志 MOV A,DPL。 指针修正为原帧初值 SUBB。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。