跑马灯课程设计

所需积分/C币:50 2012-06-28 09:58:59 2.07MB PDF
48
收藏 收藏
举报

这是一个跑马灯课程设计的帮助文档,用汇编语言编写的,在试验中,跑马灯依次向左,然后向后,不断地循环。
T89s51 P1.0 P1.1 P1.2 P1.3 P3O/RXD 12 P3.1 L3 P3 2/INTO L4 P3.3红NT1 P34/D Lo P3.5/1 P3/wR P3.T/RD 图2:硬件电路连接图2 豆丁 综上所述,总体的电路连接如图3: 命●●●●●●● m POsT P石A FaDa Pz二 P2.t PZ了 P1彐 Fan ATes 图3:总体硬件电路连接图 3软件设计流程及描述 主程序的设计思路为,开始时执行左右流水灯,在 中断服务程序中,首先读取按键状态,然后延时10ms, 再次读取按键状态。把两次获得的按键状态比较,如 果不同,就表示是抖动,退出中断;否则,就去判断 是哪个按键按下。如果是k1,就执行左跑马灯;如果 是k2,就执行右跑马灯;如果是k3,就执行亮点向中 间移动;如果是k4,就执行亮点向两边移动。主程序 的流程如图4。 docn豆丁 www.docin.com 主程序流程图 初始化(设标志1) 开屮断 标志1? Y 标志2? 标点3? d 标志4? N 标志5? 双向 左向 右向 自设 自设 跑马灯跑马灯 跑马灯 样式1 样式2 图4:主程序流程图 (程序开始时) org 0003h Ijmp ext1 设置中断。因为0中断的中断地址为0003h,所以在 0003h地址设置一个跳转,即当执行到0003h时程序跳 转到ext1标签进行执行,ext1标签内的代码程序则通 5 常称为中断服务程序,用以完成中断服务。 (在左右流水灯的程序中) moⅴa,#Ofeh 给a赋值0feh,而后又将a输出给p0,亮灯,Ofeh 转化为2进制书就是111111,即让第一个灯亮,其 余的灯灭。 Ical del1ooms 延迟100ms后,rla是让a按位左移,再次执行输出 pO时的效果就是只第二个灯亮。 此处变换a的方法比较简便,可以与自设样式1和样 式2相比较: (自设样式1中) mov p0, #O7eh I call del1ooms n豆丁 这种方式是把每一步骤的变换都写出来,赋值给 pO输出,这种方式适用于变换方式不固定的跑马灯。 (延迟10ms的标签de110ms中) m djnz r4, $符号代表当前行的代码,也就是说,当前代码要执行 r4次,而这个延迟程序一共需要执行这条语句248X20 次,通过计算即为10ms 设计采用置标志位的方法,即在主程序中设定一个标 志位,不断的对这个标志进行查询:如果是标志为状 态1,就执行双向跑马灯;如果是状态2,就执行左向 跑马灯;如果是状态3,就执行右向跑马灯,依次类推。 而在中断服务程序中,只需要进行如下工作:去抖动, 键识别,改变标志位。 这里我们用寄存器r0的内容作为标志,当它里面 的内容是0fih时,执行左右跑马灯程序;为0lh时, 执行左跑马灯;02h时执行右跑马灯;03h时执行样式 1的“跑马”;04h时执行样式2的“跑马”。 中断服务程序 关闭中断 dn豆丁 读入按键状态保存 TcIn. com 延迟10ms去抖 再次读入按键状态 两次按键状 杰相同? K0按下? do KI按下? N 豆丁 K0按下?> K1按下? 标志2 标志3 标志4 标志5 恢复现场 返回主程序 开中断 图5:中断程序流程图 在屮断服务程序屮,应该尽量的使得任务简化, 不要让屮断服务程序作过多复杂的任务,而要尽量把 这些复杂的任务放到主程序中间去完成。中断流程如 图5。 去抖功能:读入键值,存入30h地址,然后延迟10ms 后,也就是个很短的时间之后,再次读入一个键值, 两次键值相比较,如果一样则不是因为外部原因抖动产 生按键,如果不·样则说明是别的原因产生的按键抖 动。这样的一个程序就可以去除因为抖动产生的错误输 入信号。 4总结 本设计利用P0的8个端口连接8个发光二极管, 通过P0.0到P0.7的值控制“跑马灯”的亮灭,以达到 显示效果。设计的屮断程序要对多个按键动作进行响 应,灯光变换的花样有4种,用4个按键k0,k1,k2,k3 切换。按下k1键,程序作左向流水灯;按下k2按键 程序作右向流水灯;按下k3键为亮点向中间移动;按 下k4键为执行亮点向两边移动。设计成功的实现了跑 马灯,并在设计过程中学习到了很多书本外的东西 5参老文献 1范立南.单片机原理及应用教程.北京大学出版 社.2006 2李华.MCS-51系列单片机实用接口技术.北京航空学 院出版社.2004 3高海生.单片机应用技术大全.西南交通大学出版 社.1996 程序原代码: OR g0000h hp start g0003h n豆丁 ljmp extI OI 0020h start mov r0. #offh ;对⑩赋值,r0为所 设标志位 setb ea OC ;开中断 setb exO ;允许外部中断 0中请中断 setb itO ;外部中断0为跳 变方式触发 mov sp,#70h ;设置中断 loop: cjne rO,#0mh,lopl;r0不为f,转到loop1 ajmp main light 否则执行左右 流水灯 loopl: c]ne I0,#0ih,lop2;r0不为01,转到 loop2 ajmp kl light ;否则执行左向 流水灯

...展开详情
试读 15P 跑马灯课程设计
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享精英

关注 私信
上传资源赚钱or赚积分
最新推荐
跑马灯课程设计 50积分/C币 立即下载
1/15
跑马灯课程设计第1页
跑马灯课程设计第2页
跑马灯课程设计第3页

试读结束, 可继续读2页

50积分/C币 立即下载