1、单片机课程设计STC51系列单片机的实验平台开发设计 课 程 设 计 报 告 课程名称 单片机原理及应用 设计题目 STC51系列单片机的实验平台开发设计 专 业 计算机与信息工程系 课 程 设 计 任 务 书设计题目: 基于STC51系列单片机的实验平台开发设计_设计内容与要求:利用STC51系列单片机作为微控制器开发一套软、硬件结合的单片机实验平台,主要包括以下内容:1. 电路原理图设计,主要包括集串口通信模块、数码管显示模块、LED发光二极管模块、键盘等接口电路的设计,并能够使用proteus软件进行模拟实际电路效果仿真。2. 学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进
2、行电路板焊接。3. 在Keil C环境下,进行软件设计。主要包括流水灯、数码管、定时器、键盘的控制等功能程序设计。4. 针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。 指导教师: 2012年 6月20日课 程 设 计 评 语 成 绩: 指导教师:_ 年 月 日设计过程1. 电路原理图设计,主要包括集串口通信模块、数码管显示模块、LED发光二极管模块、键盘等接口电路的设计,并能够使用proteus软件进行模拟实际电路效果仿真。实验原理图如下 集串口通信模块 数码管显示模块LED发光二极管模块键盘电源2. 软件设计主要以定时器中断为主,因为
3、进入定时器中断的频率为20赫兹,所以在定时器中断中判断是否需要流水灯的控制和清零。定时器0中断流程图如下3. 仿真结果 当按下P3.2对应的开关时,因为P3.6对应开关闭合选择流水灯模式为正向流动当按下P3.2对应的开关时,因为P3.7对应开关闭合选择流水灯模式为逆向流动其余时间秒表正常计数当按下P3.3对应的开关时,秒表清零课程设计总结:1:本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样的。开始时我也觉得自己的理论知识已经够了,但当我拿到材料时,在脑海里想的是非常好的,但真正编成和控制
4、时,理论和实际结合不到一起,甚至于51芯片的使用我都感觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。本次课程设计我主要负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在一起,进行了实际的操作,让我的知识掌握得更加牢固。本次的实际经验之后,让我对单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。2:通过这次课程设计,使我又重新开始学习C语言,因为C语言是大一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了一点眉目。对于单片机,我们课
5、本学习的是80C51,但是这次做课程设计用的是89C52,这样不仅使我们掌握了80C51,而且对89C52也有了一定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次课程设计使我受益匪浅,而且都是实际的东西。3:这次课程设计,我们做的是秒表/时钟计时器,最终我们选择的是用C语言编程,但原来学的也只是能看懂别人写好的程序而已,通过这次课程设计,更加熟练了C语言的程序设计思路。这次课程设计我主要负责焊接电路板,焊接过程中最
6、困难的地方就是数码管的焊接,因为数码管的管脚和89C52的管脚是不对应的,而且要避免接线的交叉,所以最后确定了布线最合理的方案,如硬件电路图所示。我们这次设计的出现的最大问题是电路当中的复位电路,开始电路在Proteus上仿真时都是可以正常复位的,但实际的电路中复位按键后的电阻的参数不合理,导致了RST上有电压,复位电路无效,所以最后我们去掉了那个电阻,此时复位电路才有效,所以理论和实际永远有差距,不实践永远发现不了问题。4:通过的设计实验,使我对这学期学所学51系列的单片机从理论知识到实践硬件的应用以及C语言知识的回顾,更加熟悉了89C51单片机的每一个拐角的输出和各项功能,而且对硬件电路的
7、布线以及焊接能力有了很大的进步。在这次试验中,我主要负责的是硬件电路的布线和焊接以及硬件测试。第一次焊接完成后我们上电后发现实现了基本功能,可是不能复位,经过我们的讨论和反复试验,我们发现软件仿真和硬件实现并不是完全一致的,我们按照课本上焊接后终于完全实现了秒表/时钟计时器的功能。快要验收时我们发现数码管的一个二极管坏了,这才让我们意识到没有焊接插针的缺陷,以后一实验时一定要尽可能让原件可以取下,以便出现问题是更好的更换。这次课程设计终于圆满的完成了,我从理论和硬件以及实践上懂得了很多,也明白了一个团队的合作精神可以让我们战胜所有的困难。附录:源程序#include sbit P3_2=P32
8、;sbit P3_3=P33;sbit P3_6=P36;sbit P3_7=P37;unsigned char mod8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f ;unsigned char wei4=0xfe,0xfd,0xfb,0xf7;unsigned char led10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char duan4;unsigned int count;unsigned int min,sec;unsigned char i,flag,k;void
9、delay(unsigned int i) unsigned char j; for(;i0;i-) for(j=0;j125;j+);lsd() interrupt 0 if(P3_6=0|P3_7=0) delay(10); if(P3_6=0|P3_7=0) k=0; flag=1; if(P3_6=0) k=k+2; if(P3_7=0) k+; time_0() interrupt 1 TH0=0x3c; TL0=0xb0; if(P3_3=0) min=0; sec=0; if(flag) if(k=2) for(i=0;i8;i+) P1=modi; delay(300); fl
10、ag=0; P1=0; if(k=1) for(i=0;i8;i+) P1=mod7-i; delay(300); flag=0; P1=0; duan0=min/10; duan1=min%10; duan2=sec/10; duan3=sec%10; for(i=0;i4;i+) P2=weii; P0=ledduani; delay(10); count+; if(count=20) count=0; sec+; if(sec=60) sec=0; min+; if(min=60) min=0; void main() count=0; min=0; sec=0; flag=0; k=0; TMOD=0x01; EA=1; ET0=1; EX0=1; TH0=0x3c; TL0=0xb0; TR0=1; while(1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1