微机原理课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机原理课程设计报告设计名称:LED七段数码管数字钟学院:电子信息学院班级:电科091姓名:张磊学号:0911002064姓名:殷海俊学号:0911002071姓名:华天一学号:0911002074姓名:仝冬冬学号:0911002017指导教师:梁惺彦提交时间:2012年6月15日一:设计内容设计的电路功能是实现时钟的24进制计时并显示在数码管上,通过按键可对时钟的时、分、秒的调节并实现暂停/启动、清零功能。CPU8086接译码电路对外设进行寻址,并通过总线与外设实现数据传输。8255A并行接口芯片的A端口连接数码管的显示端,显示时间;B端口与数码管的控制端相连,实现动态显示;C端口连接八个按键,实现八个不可屏蔽中断,中断1实现时加、中断2实现时减、中断3实现分加、中断4实现分减、中断5实现秒加、中断6实现秒减、中断7实现暂停/启动、中断8实现清零;D端口与总线相连和CPU进行数据传输。二:设计原理及方案1.电路原理图CPU80868译码电路8255A七段数码管8个中断源2.硬件连接示意图总电路图:子电路图:译码子电路图:布局布线图:3.系统功能框图设计原理和方案:使用软延时进行计时,通过不可屏蔽中断对时钟的时、分、秒进行调节,并可进行暂停/启动、清零功能。如果没有中断产生,系统自动对时钟的时进行24进制计时、分进行60进制计时、秒进行60进制计时,并可实现24小时自动循环显示。开始执行源程序,开始计时数码管输出时间产生中断执行中断子程序结束4.程序流程图YN三:汇编源程序代码DATASEGMENT;数据段定义TABDB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FH,48H;定义段码H1DB0;时的高位开始数据段初始化,写入中断向量,8255A初始化检测是否循环了1秒秒不变,数码管动态显示时间,其他进位由程序检测秒加1,数码管动态显示时间,其他进位由程序检测主程序执行中断子程序产生中断结束H0DB0;时的低位M1DB0;分的高位M0DB0;分的低位S1DB0;秒的高位S0DB0;秒的低位NUMDB0;暂停/启动次数SNUMDB0;动态循环次数(程序中动态循环显示一次共调用了8个延时子程序,每个延时6.25ms,共延时50ms,当此变量为20的时侯,秒自动加1且此变量清零)DATAENDSCODESEGMENT'CODE'ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;数据段初始化MOVAX,0MOVES,AXMOVDI,8MOVAX,OFFSETINTR_KEYCLDSTOSWMOVAX,SEGINTR_KEYSTOSW;写入中断向量MOVAX,DATAMOVES,AXMOVAL,89H;8255A初始化MOVDX,206HOUTDX,ALLEABX,TABAGAIN:;开始循环显示MOVAL,SNUMCMPAL,20;是否循环20次JNZSEC0;否,继续显示MOVAL,0;是,秒加1继续显示MOVSNUM,ALINCS0SEC0:;显示秒的低位MOVCL,7FHMOVAL,CLMOVDX,202HOUTDX,ALMOVAL,S0XLATMOVDX,200HOUTDX,ALCALLDELAY;延时6.25msMOVAL,S0CMPAL,10;秒的低位进位判断JNZSEC1MOVAL,0MOVS0,ALINCS1SEC1:MOVAL,S1CMPAL,6;秒的高位进位判断JNZSEC2MOVAL,0MOVS1,ALINCM0SEC2:;显示秒的高位RORCL,1MOVAL,CLMOVDX,202HOUTDX,ALMOVAL,S1MOVDX,200HXLATOUTDX,ALCALLDELAY;延时6.25msRORCL,1;显示间隔符MOVAL,CLMOVDX,202HOUTDX,ALMOVAL,10XLATMOVDX,200HOUTDX,ALCALLDELAY;延时6.25msMOVAL,M0CMPAL,10;分的低位进位判断JNZMIN1MOVAL,0MOVM0,ALINCM1MIN1:;显示分的低位RORCL,1MOVAL,CLMOVDX,202HOUTDX,ALMOVDX,200HMOVAL,M0XLATOUTDX,ALCALLDELAY;延时6.25msMOVAL,M1CMPAL,6;分的高位进位判断JNZMIN2INCH0MOVAL,0MOVM1,ALMIN2:;显示分的高位RORCL,1MOVDX,202HMOVAL,CLOUTDX,ALMOVDX,200HMOVAL,M1XLATOUTDX,ALCALLDELAY;延时6.25msRORCL,1;显示间隔符MOVAL,CLMOVDX,202HOUTDX,ALMOVAL,10XLATMOVDX,200HOUTDX,ALCALLDELAY;延时6.25msMOVAL,H1CMPAL,2;时的高位判断(24)JNZHOUR1MOVAL,H0CMPAL,4;时的低位判断(24)JNZHOUR2MOVAL,0;满24小时清零MOVS0,ALMOVS1,ALMOVM0,ALMOVM1,ALMOVH0,ALMOVH1,ALMOVSNUM,ALJMPAGAINHOUR1:MOVAL,H0CMPAL,10;时低位判断(非24)JNZHOUR2MOVAL,0MOVH0,ALINCH1HOUR2:;显示时的低位RORCL,1MOVAL,CLMOVDX,202HOUTDX,ALMOVDX,200HMOVAL,H0XLATOUTDX,ALCALLDELAY;延时6.25msRORCL,1;显示时的高位MOVAL,CLMOVDX,202HOUTDX,ALMOVAL,H1XLATMOVDX,200HOUTDX,ALCALLDELAY;延时6.25msINCSNUMJMPAGAIN;跳转继续显示;中断子程序定义INTR_KEYPROCNEARPUSHAXPUSHBXPUSHDXMOVDX,204HINAL,DXTESTAL,01H;检测时加JZNO1TESTAL,02H;检测时减JZNO2TESTAL,04H;检测分加JZNO3TESTAL,08H;检测分减JZNO4TESTAL,10H;检测秒加JZNO5TESTAL,20H;检测秒减JZNO6TESTAL,40H;检测暂停/启动JZNO7TESTAL,80H;检测清零JZNO8JMPEXITNO1:;时加中断MOVAL,H1CMPAL,2;23停止增加JNZHC1MOVAL,H0CMPAL,3JZEXITINCH0JMPEXITHC1:MOVAL,H0CMPAL,9JZHC2INCH0JMPEXITHC2:MOVAL,0MOVH0,ALINCH1JMPEXITNO2:;时减中断MOVAL,H1CMPAL,0;00停止时减JNZHC3MOVAL,H0CMPAL,0JZEXITDECH0JMPEXITHC3:MOVAL,H0CMPAL,0JZHC4DECH0JMPEXITHC4:DECH1MOVAL,9MOVH0,ALJMPEXITNO3:;分加中断MOVAL,M1CMPAL,5;59停止分加JNZMC1MOVAL,M0CMPAL,9JZEXITINCM0JMPEXITMC1:MOVAL,M0CMPAL,9JNZMC2INCM1MOVAL,0MOVM0,ALJMPEXITMC2:INCM0JMPEXITNO4:;分减中断MOVAL,M1CMPAL,0;00停止分减JNZMC3MOVAL,M0CMPAL,0JZEXITDECM0JMPEXITMC3:MOVAL,M0CMPAL,0JZMC4DECM0JMPEXITMC4:DECM1MOVAL,9MOVM0,ALJMPEXITNO5:;秒加中断MOVAL,S1CMPAL,5;59停止秒加JNZSC1MOVAL,S0CMPAL,9JZEXITINCS0JMPEXITSC1:MOVAL,S0CMPAL,9JNZSC2INCS1MOVAL,0MOVS0,ALJMPEXITSC2:INCS0JMPEXITNO6:;秒减中断MOVAL,S1CMPAL,0;00停止秒减JNZSC3MOVAL,S0CMPAL,0JZEXITDECS0JMPEXITSC3:MOVAL,S0CMPAL,0JZSC4DECS0JMPEXITSC4:DECS1MOVAL,9MOVS0,ALJMPEXITNO7:;暂停/启动中断INCNUM;记录次数NEXT:MOVAL,NUMTESTAL,01H;检测奇、偶次数JZEXIT;偶数次退出暂停LEABX,TAB;奇数次时间暂停MOVAL,7FHMOVDX,202HOUTDX,ALMOVAL,S0XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0BFHMOVDX,202HOUTDX,ALMOVAL,S1XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0DFHMOVDX,202HOUTDX,ALMOVAL,10XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0EFHMOVDX,202HOUTDX,ALMOVAL,M0XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0F7HMOVDX,202HOUTDX,ALMOVAL,M1XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0FBHMOVDX,202HOUTDX,ALMOVAL,10XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0FDHMOVDX,202HOUTDX,ALMOVAL,H0XLATMOVDX,200HOUTDX,ALCALLDELAYMOVAL,0FEHMOVDX,202HOUTDX,ALMOVAL,H1XLATMOVDX,200HOUTDX,ALCALLDELAYJMPNEXTNO8:;清零中断MOVAL,0MOVS0,ALMOVS1,ALMOVM0,ALMOVM1,ALMOVH0,ALMOVH1,ALMOVSNUM,ALEXIT:POPDXPOPBXPOPAXIRET;退出中断INTR_KEYENDPDELAYPROC;延时子程序PUSHCXPUSHBXMOVBX,26;延时6.25msWAIT1:MOVCX,0FHLOOP$DECBXJNZWAIT1POPBXPOPCXRETDELAYENDPCODEENDSENDSTART四:实施结果五:课程设计体会微机系统技术是当前社会中信息产业所必不可少的关键技术,也是现代人生活和生产所必需的条件。此次课程设计,我们小组经过讨论选定了LED七段数码管数字钟作为设计题目进行设计。数字时钟在现代生活中的应用越来越广泛。一方面,它能直观的显示时间,耗能低;另一方面,它可以实现比机械时钟更多更强大的功能,方便人们的生产和生活。我们小组采用软件延时的方法进行计时,通过中断系统对数字时钟进行调节,可以实现对时、分、秒的调整以及实现暂停/启动、清零等功能。由于对微机原理课程的学习,使我们了解了基本的微机系统8086微机系统,基本掌握了8086微机系统的工作原理,熟悉了8086微机系统中各常用的可编程芯片的工作原理,可以设计一些基本的基于8086微机系统的数字电路。通过本次课程设计,让我们更加深入的了解了8086微机系统的工作原理,同时让我们对proteus仿真平台应用的更加娴熟,这些都对今后的学习和生活有更积极的影响。作为一名电子信息专业的当代大学生,我们更应该努力学好有关微机系统的相关知识。一方面,它可以作为一门专业技能方便我们将来的学习和就业;更重要的是在信息时代它可以让我们更好的服务人民,服务社会,服务国家。六:产考文献微机原理与接口技术基于8086和proteus仿真顾晖梁惺彦等编著电子工业出版社

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功