资源描述:
《单片机原理与应用课程设计---stc51系列单片机的实验平台开发设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、洛阳理工学院课程设计报告洛阳理工学院课程设计报告课程名称单片机原理及应用设计题目STC51系列单片机的实验平台开发设计专业计算机与信息工程系班级B100507学号B10050715姓名刘佳完成日期2012年6月20日第11页共12页洛阳理工学院课程设计报告课程设计任务书设计题目:基于STC51系列单片机的实验平台开发设计_________________________________________________________设计内容与要求:利用STC51系列单片机作为微控制器开发一套软、硬件结合的单片机实验平台,主要包括以下内容:1.电路原理图设计,主要包括集串口通信模块、
2、数码管显示模块、LED发光二极管模块、键盘等接口电路的设计,并能够使用proteus软件进行模拟实际电路效果仿真。2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接。3.在KeilC环境下,进行软件设计。主要包括流水灯、数码管、定时器、键盘的控制等功能程序设计。4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。指导教师:董锦凤2012年6月20日第11页共12页洛阳理工学院课程设计报告课程设计评语成绩:指导教师:_______________年月日第11页共12页洛阳理工学院课程设计报告设计过程1.
3、电路原理图设计,主要包括集串口通信模块、数码管显示模块、LED发光二极管模块、键盘等接口电路的设计,并能够使用proteus软件进行模拟实际电路效果仿真。实验原理图如下集串口通信模块第11页共12页洛阳理工学院课程设计报告数码管显示模块LED发光二极管模块第11页共12页洛阳理工学院课程设计报告开关电源第11页共12页洛阳理工学院课程设计报告1.软件设计主要以定时器中断为主,因为进入定时器中断的频率为20赫兹,所以在定时器中断中判断是否需要流水灯的控制和清零。定时器0中断流程图如下设置计数初值TH0、TL0判断是否需要清零min=0,sec=0YN判断是否进入流水灯控制Yk=2Y流
4、水灯正向流动Nk=1Y流水灯反向流动NN将计数分钟min、秒sec按位赋值给数组wei。动态显示秒表计数值count++,count计满20为1s,min、sec为六十进制第11页共12页洛阳理工学院课程设计报告1.仿真结果当按下P3.2对应的开关时,因为P3.6对应开关闭合选择流水灯模式为正向流动当按下P3.2对应的开关时,因为P3.7对应开关闭合选择流水灯模式为逆向流动第11页共12页洛阳理工学院课程设计报告其余时间秒表正常计数当按下P3.3对应的开关时,秒表清零第11页共12页洛阳理工学院课程设计报告课程设计总结:在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实
5、的,实际应用并不是这样的。本次的实际经验之后,让我对单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。对于单片机,我们课本学习的是80C51,但是这次做课程设计用的是89C52,这样不仅使我们掌握了80C51,而且对89C52也有了一定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次课程设计使我受益匪浅,而且
6、都是实际的东西。这次设计实验,使我对这学期学所学51系列的单片机从理论知识到实践硬件的应用以及C语言知识的回顾,更加熟悉了89C51单片机的每个管脚功能,而且对硬件电路的布线以及焊接能力有了很大的进步。这次课程设计,我在理论和硬件以及实践上懂得了很多,也明白了一个团队的合作精神可以让我们战胜所有的困难。附录:源程序#includesbitP3_2=P3^2;sbitP3_3=P3^3;sbitP3_6=P3^6;sbitP3_7=P3^7;unsignedcharled[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x
7、7f,0x6f};unsignedcharwei[4]={0xfe,0xfd,0xfb,0xf7};unsignedcharmod[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharduan[4];unsignedintcount;unsignedintmin,sec;unsignedchari,flag,k;voiddelay(unsignedinttime){unsignedcharj;for(;ti