资源描述:
《利用单片机滚动显示字符串.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、河北工业大学计算机硬件技术基础(MCS—51单片机原理及应用)课程设计任务书学院:土木学院班级:交通工程c022班设计人:宋军娜学号:026897一.设计题目利用单片机滚动显示字符串“0123456789AbCdEF”二.问题的提出:在单片机的LED显示器上面滚动显示题目要求的字符串。并且可以利用外部中断进行滚动的启停。三.总体设计1.所设计题目的功能因为单片机的LED显示器只有六位,所以要显示的字符串的长度超过六位的时候就要滚动显示。所谓的滚动显示就是指在t1这个时刻显示“012345”,在t1+Δt这个时刻显示“123456”,在t1+2Δt这个时刻显示“2345
2、67”,以此类推。2.总体方案设计程序功能可以分为以下几个部分:主程序负责定时器/计数器的初始化、中断的初始化和LED显示,外部中断的数理程序用来启动或停止滚动显示,定时器/计数器中断服务程序用来负责读取下一显示周期要显示的字符串。(1)中断源的选择系统一共用到了两个中断源,即一个定时器/计数器中断和一个外部中断(2)字符串截取实现其实就是一个对指定地址开始将连续的6个字节的数据传送到显示缓冲区中的操作。四.硬件系统设计1.硬件电路LED显示器八路驱动器PB(0~7)8155接口PA(0~5)P3六路驱动器接入P3.2(X15口)开关《中断电路》五.软件系统设计1.软
3、件模块设计和流程停止滚动开始第六个数码管亮?输送到LED显示对各单元进行初始化查表按下开关YN《流程图》2.程序清单ORG0000HSETBP3.2;p3.2口置1输出高电平MAIN:JNBP3.2,MAIN3MOVA,#03HMOVDPTR,#0FF20H;给DPTR开辟存储空间MOVX@DPTR,ATT:MOVR2,#04HTT1:MOVR4,#05H;R4循环表示循环次数TT2:DJNZR4,;DISP4循环5次DJNZR2,TT1;循环4次MOV5FH,5EHMOV5EH,5DHMOV5DH,5CHMOV5CH,5BHMOV5BH,5AHMOV5AH,59HM
4、OV59H,58HMOV58H,57HMOV57H,56HMOV56H,55HMOV55H,54HMOV54H,53HMOV53H,52HMOV52H,51HMOV51H,50HMOV50H,5FHAJMPMAINDISP4:MOVR5,#01H;位码给R5MOVR0,#59H;显示缓冲区地址给R0MOVA,R5;位码送ALD0:MOVDPTR,#0FF21H;c口给DPTRMOVX@DPTR,A;0ff21H中值为01HMOVDPTR,#0FF22H;B口给DPTRMOVA,@R0;待显示字符地址偏移量送AADDA,#0EH;对A进行地址修正MOVCA,@A+PC;
5、查表MOVX@DPTR,A;查表结果给0FF22HACALLDLAY;延时INCR0MOVA,R5JBACC.5,LD1;累加器的第6为1,执行LD1RLA;A左移一位,选通第二个数码管MOVR5,A;送回R5AJMPLD0LD1:SJMPTT2DB0C0h,0F9H,0A4H,0B0H,99H,92HDB82H,0F8H,80H,90H,88H,83H,0C6HDB0A1H,86H,8EH,0FFH,0CH,89HDB0C8H,0C1H,7FH,0BFHDLAY:MOVR7,#04HDL1:MOVR6,#0FFHDL2:DJNZR6,DL2DJNZR7,DL1RET
6、MAIN3:CLRC;中断MOVC,P3.2;Cy=1JNCFF;若Cy=0,执行FF,若Cy=1,则顺序执行MOVA,#03HMOVDPTR,#0FF20HMOVX@DPTR,ATT3:MOVR2,#02HTT13:MOVR4,#05HTT23:DJNZR4,DISP43DJNZR2,TT13AJMPMAIN3DISP43:MOVR5,#01HMOVR0,#59HMOVA,R5LD03:MOVDPTR,#0FF21HMOVX@DPTR,AMOVDPTR,#0FF22HMOVA,@R0ADDA,#0EHMOVCA,@A+PCMOVX@DPTR,AACALLDLAY3I
7、NCR0MOVA,R5JBACC.5,LD13RLAMOVR5,AAJMPLD03LD13:SJMPTT23DB0C0h,0F9H,0A4H,0B0H,99H,92HDB82H,0F8H,80H,90H,88H,83H,0C6HDB0A1H,86H,8EH,0FFH,0CH,89HDB0C8H,0C1H,7FH,0BFHDLAY3:MOVR7,#04HDL13:MOVR6,#0FFHDL23:DJNZR6,DL23DJNZR7,DL13RETFF:AJMPMAINEND六.调试方案1.硬件调试方案连线X15口到LED接口,然后运行,在显示器上可以显示