基于AT89C51单片机的跑马灯电路课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1 实验目的 (1)

2 元器件清单及简介 (1)

3 设计原理及分析 (1)

3.1 主要设计要求 (1)

3.2 实验总流程图 (2)

3.3 实验总图及说明 (3)

4 实验中的问题与改进 (3)

5 总结 (4)

5.1 四级调速 (4)

5.2 跑马灯闪烁方向的改变 (5)

5.3 跑马灯循环闪烁灯的个数的改变 (6)

6 实验分析与心得 (7)

参考文献: (9)

附录............................................... 错误!未定义书签。

基于AT89C51单片机的跑马灯电路课程设计

1实验目的

了解AT89C51管脚的基本功能,学会运用Proteus 7.7设计电路,学会运用汇编语言编写程序,来实现跑马灯的左右转换、0.1ms,0.25ms,0.5ms,1ms的四级变速、灯的闪烁个数为1,2,3,4等功能。使用KEIL C51设计单片机程序,生成HEX文件,将程序烧录到AT89C51芯片中。然后在实验电路中运行,调试。

2元器件清单及简介

3设计原理及分析

3.1主要设计要求

1.灯的循环左右移动。

2.灯循环闪烁的个数可由1变到4。

3.灯循环闪烁的速度可变,分别是现0.1ms,0.25ms,0.5ms,和1ms的循环转

变。

4.能在仿真图和面包板上进行实物运行并实现以上功能。并能尽量节省器材。

3.2实验总流程图

图1实验流程图

3.3实验总图及说明

图2 实验总图

1.右边与P0口相连的8个灯采用上拉电阻方式,采用此方式是因为P0口驱动能力较大,且内部无上拉电阻,因此采用低电平驱动时,需加上拉电阻;且防止因电流过大而烧毁二极管。

2.左边依次与P1.0-P1.5的开关K0、K1、K2、K3、K4、K5,右边与P2.0-P2.3依次相连开关为K6、K7、K8、K9。

3.K0、K1控制灯的闪烁方向;K2、K3、K4、K5控制跑马灯闪烁的速度;K6、K7、K8、K9控制跑马灯灯闪烁的个数。

4.当有开关按下时相应的P口被置0,定时器中扫描P口程序扫描到相应P口为低电平,从而转到相应子程序执行,从而达到1所说功能。

4实验中的问题与改进

首先是跑马灯的个数转换出现混乱,即不能按照顺序进行转换。后来发现是因为我们使用的是开关是按键开关,当按下开关时进行扫描P口的程序可能被扫描多次,从而因为多次执行导致灯的个数多次变化。因没脉冲开关,我们采用多个开关来避免灯亮的个数的循环转移。

还有就是因为对面包板的不了解,把电源与地接到一起,导致不能得出应有的实验结果,结果同学的介绍从而解决此问题。

当然其中还有不少的小问题,刚开始并不能解决,经过查阅资料,询问老师最终得到解决,并在努力的过程中学到了很多东西。

在这次实习中,经历了多次失败,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。

5总结

5.1四级调速

利用定时器计数器来计时,赋初值MOV TH0,#09EH,MOV TL0,#058H,是产生50ms 的延时,运用循环,通过循环的次数来产生四个不同时间的延时。采用扫P1法来调用子程序对循环次数进行赋初值。

当R0=14H时,跑马灯左右闪烁的时间间隔为1s

当R0=0AH时,跑马灯左右闪烁的时间间隔为0.5s

当R0=05H时,跑马灯左右闪烁的时间间隔为0.25s

当R0=02H时,跑马灯左右闪烁的时间间隔为0.1s

下为仿真图与电路运行图的比较。

图3 1s循环仿真图

图4 1s循环实物图

5.2跑马灯闪烁方向的改变

当按下开关1(与P1.0口相连)跑马灯向下方向循环闪烁;当按下开关2(与P1.1口相连),跑马灯向上循环闪烁。下为仿真图与电路运行图的比较。

图5 向上循环闪烁仿真图

图6 向上循环闪烁实物图

5.3跑马灯循环闪烁灯的个数的改变

通过R1来控制灯的循环闪烁的个数,通过扫描P2口来调用子程序来改变R1的初值,通过开关来控制是否给P2口送低电平,而达到控制调用哪个子程序,从而达到灯的个数的调控。

当R1=7FH时,只有1个灯循环闪烁

当R1=3FH时,只有2个灯循环闪烁

当R1=1FH时,只有3个灯循环闪烁

当R1=0FH时,只有4个灯循环闪烁

下面为仿真图与实物图的比较:

图7 两盏灯循环闪烁仿真图图8两盏灯循环闪烁实物图

图9 三盏灯循环闪烁实物图图10 三盏灯循环闪烁实物图

6实验分析与心得

每次课程设计是一次难得的锻炼机会,让我们能够充分利用所学过的理论知识还有自己的想象的能力,另外还让我们学习查找资料的方法,以及自己处理分析疑点难点的能力。我相信是对我们来说的一个很好的提高。平时在学习理论知识的时候,我们应该更注重实践。这次的课程设计让我懂得了它们在实际中的用途,通过这次课程设计,我还更加深了理论知识的学习。这次的设计电路我用到了计数器/定时器,和一些其他之程序等等,通过自己分析和设计更好地运用了它们,而且还学会了它们更多的功能,发现它们的功能远比书上说的多很多。虽然自己很努力的做了,但觉得做得不够好,比如因为没脉冲开关,运用开关较多,电路较复杂点,难免有点遗憾。尤其是有些模块的功能不是很完善,但自己认真做了,觉得还是小有收获。

在程序调试的过程中,我们碰到很多的问题让人很是失望,但我们不畏艰难,想各种方法解决问题。作为一名理工科类的学生,尤其是电子信息工程方面的研究和探索,在以后的工作和学习过程中了难免要碰到许许多多的问题,但是我们在多次的课程设计过程中收货的不仅仅是知识方面的积累,而且是精神方面的感动,这次程序设计完美的结束,思维、认识问题的全面性方面有了很大的提高,

相关文档
最新文档