单片机控制左右循环的流水灯设计.docVIP

  • 19
  • 0
  • 约 13页
  • 2017-03-05 发布于重庆
  • 举报
单片机控制左右循环的流水灯设计

《单片机原理及应用课程设计》报告 ——控制左右循环的流水灯设计 专 业: 电子信息工程 班 级: 电子1111 姓 名: 荀威 学 号: 1120106106 指导教师: 肖金球 2014年 6月 11日 1.课程设计目的 1.1巩固和加深对单片机原理和接口技术知识的理解;培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法能按课程设计的要求编写课程设计,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。 硬件设计 原件名称 型号 参数 数量 单片机 AT89C51 12MHz 1 LED灯 LED 2.2V~10mA 8 晶体振荡器 CRYSTAL 12MHz 1 电容 CAP 22p 2 CAP-ELEC 10uf 1 电阻 RES 220 8 10K 1 3.2 单片机AT89C51 该单片机功能强大,不仅能满足设计的需要,也可以在设计要求的基础上进行一些扩展。 单片机的结构如下: 图 1单片机引脚图 在使用时VCC接电源电压,GND接地。RST是复位输入。 和XTAL2外接,作为反馈元件的外部晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。 如图; 3.4.单片机的复位电路 AT89C51的RST引脚是复位端。当单片机振荡器工作时,该引脚上出现持续两个机械周期的高电平,就可以实现系统复位,使单片机快速回到初始状态。如图; 3.5整体电路图 4. 软件设计 4.1 程序流程图 4.2 编辑源程序 程序利用循环移位函数_crol_和_cror_形成来回滚动的效果 #includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i120;i++); } } //主程序 void main() { uchar i; P2=0x01; while(1) {for(i=0;i7;i++) { P2=_crol_(P2,1); //P2 的值向左循环移动 DelayMS(150); } for(i=0;i7;i++) { P2=_cror_(P2,1); //P2 的值向右循环移动 DelayMS(150); } } } 5. 调试运行 5.1系统调试 5.1.1.编写程序并查错 5.1.2.在Keil中输入源程序,编译并连接,及时发现程序中的错误,改正,直至编译连接无误后保存并生成HEX文件。 5.1.3.在Proteus中打开该电路对各器件及连线节点进行检查,其中单片机的频率一定要与晶振频率一致。 5.1.4.在单片机属性中找到program File中添加源程序生成的hex文件。如图; 单击“确定”后即可进行模拟仿真。 5.2仿真结果; 6. 设计心得体会 通过这次课程设计使我懂得了理论与实际相结合是很非常重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为己所用,从而提高自己的实际动手能力和独立思考的能力。我在设计的过程中遇到了许多问题的同时也发现了自己的不足之处,即对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对汇编语言掌握得不透彻。 还有,这次的设计让我明白了“求人不如求己”,“自己动手丰衣足食”的深刻寓意。虽然我们要讲究合作愉快,但更重要的是自己,只有自己懂了,自己做了才不会在关键时刻掉链子。别人终究是一个陪衬,路总是要自己走的,属于自己的任务就要自己搞定。所以我们必须要时刻强大自己。这个过程虽然不是很平坦但肯定会遇到各种各样的问题,但一旦征服了它那它就是你的东西了,当这样的厚积达到一定程度那你就能享受到薄发那刻的辉煌。 参考文献 [1] 孙涵芳,《.MCS-51/96系列 单片机原理及应用》(修订版),北京航空航天大学出版社,1994 [2] 李朝青.,《单片机原理及

文档评论(0)

1亿VIP精品文档

相关文档