单片机课设.doc_第1页
单片机课设.doc_第2页
单片机课设.doc_第3页
单片机课设.doc_第4页
单片机课设.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

洛 阳 理 工 学 院 课 程 设 计 报 告洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 单片机原理及应用 设计题目 STC51系列单片机的实验平台开发设计 专 业 计算机与信息工程系 班 级 B100506 学 号 B100506 26/29/35 姓 名 许怀钧 孙斌 吕春辉 完成日期 2012年6月20日 课 程 设 计 任 务 书设计题目: 基于STC51系列单片机的实验平台开发设计_设计内容与要求:利用STC51系列单片机作为微控制器开发一套软、硬件结合的单片机实验平台,主要包括以下内容:1. 电路原理图设计,主要包括集串口通信模块、数码管显示模块、LED发光二极管模块、键盘等接口电路的设计,并能够使用proteus软件进行模拟实际电路效果仿真。2. 学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接。3. 在Keil C环境下,进行软件设计。主要包括流水灯、数码管、定时器、键盘的控制等功能程序设计。4. 针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。 指导教师: 董锦凤 2012年 6月20日课 程 设 计 评 语 成 绩: 指导教师:_ 年 月 日设计过程1. 电路原理图设计,主要包括集串口通信模块、数码管显示模块、LED发光二极管模块、键盘等接口电路的设计,并能够使用proteus软件进行模拟实际电路效果仿真。实验原理图如下 集串口通信模块 数码管显示模块LED发光二极管模块键盘电源2. 软件设计主要以定时器中断为主,因为进入定时器中断的频率为20赫兹,所以在定时器中断中判断是否需要流水灯的控制和清零。定时器0中断流程图如下设置计数初值TH0、TL0判断是否需要清零min=0,sec=0YN判断是否进入流水灯控制Yk=2Y流水灯正向流动Nk=1Y流水灯反向流动NN将计数分钟min、秒sec按位赋值给数组wei。动态显示秒表计数值count+,count计满20为1s,min、sec为六十进制3. 仿真结果 当按下P3.2对应的开关时,因为P3.6对应开关闭合选择流水灯模式为正向流动当按下P3.2对应的开关时,因为P3.7对应开关闭合选择流水灯模式为逆向流动其余时间秒表正常计数当按下P3.3对应的开关时,秒表清零课程设计总结:1:本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样的。开始时我也觉得自己的理论知识已经够了,但当我拿到材料时,在脑海里想的是非常好的,但真正编成和控制时,理论和实际结合不到一起,甚至于51芯片的使用我都感觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。本次课程设计我主要负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在一起,进行了实际的操作,让我的知识掌握得更加牢固。本次的实际经验之后,让我对单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。2:通过这次课程设计,使我又重新开始学习C语言,因为C语言是大一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了一点眉目。对于单片机,我们课本学习的是80C51,但是这次做课程设计用的是89C52,这样不仅使我们掌握了80C51,而且对89C52也有了一定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次课程设计使我受益匪浅,而且都是实际的东西。3:这次课程设计,我们做的是秒表/时钟计时器,最终我们选择的是用C语言编程,但原来学的也只是能看懂别人写好的程序而已,通过这次课程设计,更加熟练了C语言的程序设计思路。这次课程设计我主要负责焊接电路板,焊接过程中最困难的地方就是数码管的焊接,因为数码管的管脚和89C52的管脚是不对应的,而且要避免接线的交叉,所以最后确定了布线最合理的方案,如硬件电路图所示。我们这次设计的出现的最大问题是电路当中的复位电路,开始电路在Proteus上仿真时都是可以正常复位的,但实际的电路中复位按键后的电阻的参数不合理,导致了RST上有电压,复位电路无效,所以最后我们去掉了那个电阻,此时复位电路才有效,所以理论和实际永远有差距,不实践永远发现不了问题。4:通过的设计实验,使我对这学期学所学51系列的单片机从理论知识到实践硬件的应用以及C语言知识的回顾,更加熟悉了89C51单片机的每一个拐角的输出和各项功能,而且对硬件电路的布线以及焊接能力有了很大的进步。在这次试验中,我主要负责的是硬件电路的布线和焊接以及硬件测试。第一次焊接完成后我们上电后发现实现了基本功能,可是不能复位,经过我们的讨论和反复试验,我们发现软件仿真和硬件实现并不是完全一致的,我们按照课本上焊接后终于完全实现了秒表/时钟计时器的功能。快要验收时我们发现数码管的一个二极管坏了,这才让我们意识到没有焊接插针的缺陷,以后一实验时一定要尽可能让原件可以取下,以便出现问题是更好的更换。这次课程设计终于圆满的完成了,我从理论和硬件以及实践上懂得了很多,也明白了一个团队的合作精神可以让我们战胜所有的困难。附录:源程序#include sbit P3_2=P32;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 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); flag=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=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论