您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编课程之跑马灯设计报告
1太原工业学院汇编语言与微机原理课程设计报告学生姓名:刘创学号:132054137系部:计算机工程系专业:计算机科学与技术题目:利用8255实现花式跑马灯成绩指导教师李丽2016年6月28日21.设计内容1)设计电路;2)实现6种不同的跑马灯样式;3)跑马灯的运行状态可由开关控制4)要有暂停跑马灯按钮控制即跑马灯的状态切换。2.总体设计1)设计原理本实验通过循环检测A口数据,判断按得是哪个开关,如开关1按下,则向AL送01h,并送至B口,循环左移AL达到灯的流水下移,调用延时子程序控制灯闪亮时间,通过BH的赋值控制循环次数,达到时间定时效果。每循环一个周期,CPU都会检测A口的值,从而能即时切换跑马灯花式。2)设计跑马灯方案a)按下开关1,跑法1,AL初值01H,循环左移,控制一个亮灯自上而下跑动。b)按下开关2,跑法2,AL初值81H,循环右移,控制一个亮灯自下而上跑动。c)按下开关3,跑法3,AL初值0AAH,循环左移,控制间隔4个灯同时闪亮。d)按下开关4,跑法4,AL初值0C0H,循环右移,控制两个亮灯自下而上跑动。e)按下按键5,跑法5,AL初值05H,循环左移,控制亮暗亮3灯自上而下跑动。f)按下开关6,跑法6,AL初值0AAH,循环左移,控制间隔4个灯同时闪亮,相比按键3,跑动时间更长,以显示定功3能。g)按下开关7按下,跑马灯暂停工作,再次按下跑马灯继续工作。3.硬件设计1)Proteus元件清单及功能说明元件名称功能说明8086微处理器8255A可编程外设接口电路,主要接收外设的开关状态来判断跑马灯的样式,以及输出所要的结果74LS273是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存741544-16译码器74273输入与非门LED-RED红LED发光管NOT非门PULLUP上拉电阻,分压作用BUTTON按钮式开关,鼠标点击开关后会自动弹起2)电路设计图a)8086微处理机与锁存器、译码器连接4b)8255A与跑马灯开关控制连接图5c)8255A与跑马灯LED显示灯连接图4.软件设计1)程序设计思路利用查询式不断循环查询控制跑马灯样式的开关状态,进而编写程序来控制跑马灯的输出样式。同时,检测是否暂停跑马灯工作状态的按钮,以及时处理暂停与继续工作状态。62)程序流程图开始初始化相关数据数据判断跑马灯控制的开关状态开关1开关2开关4开关3开关5开关6开关7跑马灯跑法1跑马灯跑法2跑马灯跑法4跑马灯跑法3跑马灯跑法5跑马灯跑法6跑马灯暂停/继续工作状态终止?NY结束3)程序代码MarqueeHorseRaceLamp.ASM/*文件名*/CODESEGMENTASSUMECS:CODESTART:MOVAL,90HMOVDX,206HOUTDX,ALNOKEY:7CALLSCANJNZNOKEYSCANPROCMOVAL,0FFHMOVDX,202HOUTDX,ALMOVDX,200HINAL,DXTESTAL,01HJZP1TESTAL,02HJZP2TESTAL,04HJZP3TESTAL,08HJZP4TESTAL,10HJZP5TESTAL,20HJZP6RETP1:CALLPA1PA1PROCMOVBH,0MOVBL,01HA1:MOVAL,BLMOVDX,202H8OUTDX,ALMOVCX,50000CALLDELAYROLBL,1CALLSTOPCALLSCANCMPBL,01HJNZJ1INCBHJ1:JMPA1PA1ENDPP2:CALLPA2PA2PROCMOVBH,0MOVBL,80HA2:MOVAL,BLMOVDX,202HOUTDX,ALCALLDELAYRORBL,1CALLSTOPCALLSCANCMPBL,80HJNZJ2INCBH9J2:JMPA2RETPA2ENDPP3:CALLPA3PA3PROCMOVBH,0MOVBL,0AAHA3:MOVAL,BLMOVDX,202HOUTDX,ALCALLDELAYMOVCL,1ROLBL,CLCALLSTOPCALLSCANCMPBL,0AAHJNZJ3INCBHJ3:JMPA3RETPA3ENDPP4:CALLPA4PA4PROC10MOVBH,0MOVBL,0C0HA4:MOVAL,BLMOVDX,202HOUTDX,ALCALLDELAYMOVCL,1RORBL,CLCALLSTOPCALLSCANCMPBL,0C0HJNZJ4INCBHJ4:JMPA4RETPA4ENDPP5:CALLPA5PA5PROCMOVBH,0MOVBL,05HA5:MOVAL,BLMOVDX,202HOUTDX,ALCALLDELAYROLBL,111CALLSTOPCALLSCANCMPBL,05HJNZJ5INCBHCALLRETURNJ5:JMPA5RETPA5ENDPP6:CALLPA6PA6PROCMOVBH,05HMOVBL,0AAHA6:MOVAL,BLMOVDX,202HOUTDX,ALMOVCX,50000CALLDELAYROLBL,1CALLSTOPCALLSCANCMPBL,0AAHJNZJ6INCBHCALLRETURNJ6:JMPA612RETPA6ENDPDELAYPROCMOVCX,50000LOOP1:LOOPLOOP1RETDELAYENDPRETURNPROCCMPBH,04HJZNOKEYRETSTOPPROCL1:MOVAL,00HMOVDX,202HOUTDX,ALMOVDX,200HINAL,DXTESTAL,40HJNZDONEJMPL1DONE:RETSTOPENDPRETURNENDPSCANENDPCODEENDSENDSTART135.仿真调试与分析a)连接好完整电路后,加载已经写好的跑马灯程序b)调试已经加载的代码,直至代码无编译错误为止c)启动Proteus调试d)拨动相关控制开关,进而控制跑马灯的工作风格e)调试结果基本符合实验前的设计,跑马灯以正确的工作风格进行工作,符合逻辑,整个实验分析正确f)跑马灯实验设计成功,结束实验6.结论由于之前曾学习过组成原理,对Proteus的电路连接颇为了解,所以本次的电路连接没有太大的问题。本次的实验主要是熟悉8086以及8255A的工作流程,最重要的就是汇编代码的编辑,开关状态的逻辑分析等。本次实验用时3个多小时,其中1小时用于连接电路,剩下的时间基本上都是加载代码、调试代码、以及测试。通过本次实验,加深了对汇编程序以及硬件的了解,深刻理解了底层原理。7.参考文献[1]郑初华微机原理与接口技术电子工业出版社2015年6月出版参考页码164~1988255A相关内容
本文标题:汇编课程之跑马灯设计报告
链接地址:https://www.777doc.com/doc-2368389 .html