单片机交通灯实训报告.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 交通灯 报告
- 资源描述:
-
物理与机电工程学院课程设计报告 课程名称: 单片机课程设计 系 部: 物理与机电工程学院 专业班级: 学生姓名: 指导教师: 完成时间: 报告成绩: 评阅意见: 评阅教师 日期 目录 一、设计任务与要求……………………………………………………… 二、方案设计与论证……………………………………………………… 三、硬件电路设计 1)单片机模块…………………………………………………………. 2)时钟震荡电路……………………………………… 3)复位电路…………………………………………… 四、软件设计…………………………………………………………………….. 程序………………………………………………………………………………. 五、仿真过程与仿真结果…………………………………………………… 软件仿真……………………………………………………………………….. 六、安装与调试……………………………………………………………………… 硬件调试…………………………………………………………………………. 七、原理图与PCB图…………………………………………… 八、结论与心得……………………………………………………………………….. 九、参考文献…………………………………………………………………………….. 交通灯设计 一、设计任务与要求 设计基本要求: (1)车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设东西方向通行时间为40秒,当剩余3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮。 (2)东西、南北方向各用三个(绿、黄、红)LED表示,并用数码管显示东西、南北方向的剩余时间。 (3)可利用按键修改时间参数。 二、方案设计与论证 1 电源提供方案 为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案 方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。 综上所述,我们选择第二种方案。 2 显示界面方案 该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案: 方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。 方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。 方案三:采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。 3 输入方案: 题目要求系统能手动设灯亮时间、紧急情况处理,我们讨论了两种方案: 方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是: 使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二: 直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且 本身的计数器及RAM已经够用,故选择方案二。 三、硬件电路设计 系统总体设计 本系统采用STC89C52RC单片机中的一个定时器完成了交通指示灯的所有切换过程,该系统能根据实际车流量的情况进行东西和南北方向的切换,采用点亮发光二极管模拟交通灯的实际情况。该系统具有实用性强,操作简单,扩展性好等特点。 1.单片机作为微型计算机的一个重要分支,应用面很广,发展很快,单片机最小系统。或者称为最小应用系统。是指用最少原件组成的单片机可以工作的系统,对51系列单片机来说。 最小系统一般应该包括:单片机,时钟电路,复位电路等。 1)单片机模块 单片机模块是整个系统的核心,完成以下功能:输入数据的采集转换,驱动发光二极管的显示等功能,根据系统的要求和现实的考虑,选用宏晶公司生产的STC89C52RC通用单片机,STC89C52RC是一种带8K字节闪烁可编程可擦除只读存储器FPEROM的低电压,高性能CMOS8位微处理器,俗称单片机,该器件采用高密度非意失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中。它是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案,与Intel公司的MCS-51系列单片机相兼容,是广泛应用的单片机之一。 P3.0:RXD,串行通信输入 P3.1:TXD,串行通信输出 P3.2:INT0,外部中断0输入 P3.3:INT1,外部中断1输入 P3.4:T 0,计时计数器0输入 P3.5:T1,计时计数器1输入 P3.6:WR:外部数据存储器的写入信号 P3.7:RD, 外部数据存储器的读取信号 2)时钟震荡电路 单片机的时钟信号用来提供单片机内各种微操作的时间其准,这个时钟信号可由单片机内时钟电路产生。可以直接使用外部时钟信号。因此,单片机时钟电路通常可以有两种形式内部振荡方式和外部振荡方式。 a)外部振荡方式就是把外部自己有时钟信号引入单片机内。这种方式是用来使单片机的时钟与外部信号保持同步。外部振荡方式电路如图所示。 b)内部振荡方式 MCS单片机内存有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此大器的输入端和输出端。把放大器与作为反馈原件的晶体振荡器或陶瓷振荡器连接就构成了内部自激振荡器并产生振荡时钟脉冲,这种方式为内部振荡方式,如图所示。 外部振荡方式 内部振荡方式 晶振两边的电容主要以下作用:晶振后面的电容是负载电容,可以用来微调晶体震荡频率。电容的取值一般来说是30pF或33pF 的瓷片电容。本次用30pF的瓷片电容 3)复位电路 复位操作可以使单片机初始化,也可以使死机状态下得单片机重新启动,计算机在启动时,都需要复位,使CPU和系统中其它部件都处于一个确定的初始状态。从这个状态开始工作,在振荡器正在运行的情况下。复位是靠在RST引脚处至少保持2个机器周期(24个振荡器周期)的高电平而实现的。可以分为上电自动复位和按键手动复位 a)上电自动复位 对于MCS-51系列来说,最简单的上电复位电路如图所示,就是由一个电阻和一个电容构成的。在系统上电时,经C1与R1充电,使RST端为高电平,持续时间大于两个机器周期完成复位。电容充电结束后,系统复位结束,开始正常工作。 b)按键手动复位 按键手动复位有电平方式和脉冲方式两种。在本系统中采用按键手动电平自动复位如图如下。 上电自动复位方式 手动电平复位电路 位电容的作用主要如下:单片机复位电路要求有一个持续时间,加上电容可以利用其两端电压不能突变的特性,使复位电平维持一定时间,使单片机复位。单片机复位电平在其手册里可以看到 。另外这个电容还可以去除一些杂波的干扰,防止单片机被错误复位。本次取4. 7uF的电解电容。 四、软件设计 硬件平台上构成,完成各部分硬件的控制和协调,系统功能是由软件硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减少软件故障率和提高软件的可靠性。同时对软件进行全方面的测试也是检查错误排除故障的重要手段。流程图如下: 程序如下: #include<reg52.h> //声明头文件 #define uint unsigned int #define uchar unsigned char sbit red1=P2^0; //定义六个灯分别为P1.0~7 sbit yellow1=P2^1; sbit green1=P2^2; sbit red2=P2^5; sbit yellow2=P2^4; sbit green2=P2^3; sbit key1=P3^0; //模式选择键 sbit key2=P3^1; //数值+ sbit key3=P3^2; //数值- sbit key4=P3^3; //暂停开始键 uchar aa,qian,bai,shi,ge,bb,shu1,shu2; uint num,key1num,key4num; //定义数组0~9 uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90}; //延时函数z毫秒 void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } //初始化函数 void init() { TMOD=0x01; //设置定时器T0为工作方式1 TH0=(65536-50000)/256; //赋初值 TL0=(65536-50000)%256; EA=1; //开总中断 ET0=1; TR0=1; //开定时器 num=40; //数码管初始显示40 qian=num/10; bai=num%10; red1=1; //起始状态为南北绿灯,东西红灯 yellow1=1; green1=0; green2=1; yellow2=1; red2=0; bb=1; key1num=0; //key4num=0; shu1=40; //南北通行时间初始为40s,东西通行时间初始为25s shu2=25; } //数码管显示函数 void display(uchar qian,uchar bai) { P0=table[bai]; delay(1); P1=table[qian]; delay(1); } //键盘扫描函数 void keyscan() { if(key1==0) { delay(10); //消抖 if(key1==0) { key1num++; if(key1num==4) { key1num=1; } while(!key1); if(key1num==1) //按下第一次进入设置南北通行时间模式 { TR0=0; num=40; qian=num/10; bai=num%10; display(qian,bai); green1=0; yellow1=0; red1=0; green2=1; yellow2=1; red2=0; } if(key1num==2) //按下第二次进入设置东西通行时间模式 { TR0=0; num=25; qian=num/10; bai=num%10; display(qian,bai); //key1num=0; green1=0; yellow1=0; red1=1; green2=1; yellow2=0; red2=0; } } } if(key1num!=0) //当key1键被按下 { if(key2==0) { delay(10); if(key2==0) //按下key2键调整南北通行时间 { num--; qian=num/10; bai=num%10; display(qian,bai); shu1=num; //将设置后的时间赋给shu1 if(shu1==0) { shu1=40; num=shu1; qian=num/10; bai=num%10; display(qian,bai); } } while(!key2); } if(key3==0) { delay(10); if(key3==0) //按下key3键设置东西通行时间 { num--; qian=num/10; bai=num%10; display(qian,bai); shu2=num; //将设置后的值赋给shu2 if(shu2==0) { shu2=25; num=shu2; qian=num/10; bai=num%10; display(qian,bai); } } while(!key3); } } /*if(key4==0) { delay(10); if(key4==0) { key4num++; while(!key4); if(key4num==1) { TR0=1; } if(key4num==2) { TR0=0; key4num=0; } } }*/ if(key1num==3) { TR0=1; } } //主函数 void main() { init(); while(1) { display(qian,bai); keyscan(); } } //定时器中断函数 void timer0() interrupt 1 { TH0=(65536-50000)/256; //重赋初值 TL0=(65536-50000)%256; aa++; if(aa==20) //定时到达1S { aa=0; num--; qian=num/10; bai=num%10; display(qian,bai); if(bb==1) { if(num==3) { red1=1; //起始状态为南北绿灯,东西红灯 yellow1=0; green1=1; green2=1; yellow2=0; red2=1; } if(num==0) { red1=0; //起始状态为南北绿灯,东西红灯 yellow1=1; green1=1; green2=0; yellow2=1; red2=1; num=shu2; qian=num/10; bai=num%10; display(qian,bai); bb++; } } if(bb==2) { if(num==3) { red1=1; //起始状态为南北绿灯,东西红灯 yellow1=0; green1=1; green2=1; yellow2=0; red2=1; } if(num==0) { num=shu1; qian=num/10; bai=num%10; display(qian,bai); red1=1; //起始状态为南北绿灯,东西红灯 yellow1=1; green1=0; green2=1; yellow2=1; red2=0; bb=1; } } } } 五、仿真过程与仿真结果 软件仿真 软件程序的调试一般可将重点放在分模块调试上,统调是最后一环,软件调试可以采取离线和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可:后者一般需要仿真系统的支持。本次课题,用Keil软件来调试程序,通过各个模块的但不或跟踪调试,使程序逐渐趋于正常,最后统调程序。仿真 采用proteus软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。 首先打开proteus软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制,绘制好后再选用Keil软件已近编译好的“.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再进行检查,直到满足为止。 1、仿真一开始,所有的灯全部都亮,数码管显示00,这是程序设计的初始状态,复位之后的状态亦如此。 2、按下开始键,程序开始进入循环的状态,首先东西向绿灯亮,南北向红灯亮,同时数码管进行从40s开始进行倒计时,剩余3s时,红绿灯都不亮,转为四个方向的黄灯,每隔一秒亮一次,3秒倒计时后,即主干通车停止,转入南北向通车,数码管倒计时25秒,待到3秒转为黄灯亮,红绿灯都不亮,进行循环。仿真图如下: 六、安装与调试 首先制作电路板:在PROTEL DXP软件上画出实训原理图,接着导入制作PCB电路板,最后经打印、热转印、腐蚀、打孔,最后做出电路板。 步骤如下: 第一步:利用一个能生成图像的软件生成一些图像文件,这里使用版本为Altium2004组织SCH文件,再利用网络表生成相应PCB图(可自动布线,也可手工布线),接着画PCB图,以备打印; 第二步:将PCB图打印到热转印纸上; 第三步:将打印好PCB的转印纸平铺在覆铜板上,准备转印; 第四步:用热应机加温将转印纸上黑色油墨粉压在覆铜板上形成高精度的抗腐; 第五步:热应机加温加压成功转印后的效果; 第六步:准备好三氯化铁溶液进行腐蚀; 第七步:腐蚀结束,清洗干净,晾干之后进行打孔。 第八步:将焊盘铣刀装到台钻上,清理出焊盘部分,剩下的部分用于阻焊; 第九步:安装所需预定原件并焊接好。 硬件调试 拿到电路板后,首先要检查加工质量,在确保没任何质量问题时再安装元器件。元器件在安装前要足逐一检查,用万用表测其数值,看是否与所需相同,完成焊接后应先空载上电(芯片座不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。 在调试时我遇到了一个问题:用STC下载器无法将程序下载到单片机中,经检查,是COM端口和波特率选的不正确,应更改STC下载器的COM端口使之与电脑的COM端口相对应,波特率改为9600~115200即可下载成功。 七、原理图与PCB图 八、结论与心得 在实验过程中,片机作为核心控制元件,使得电路的可靠性比较高,功能也比较强大。而且可以随时的更新系统,进行不同状态的切换,进行不同状态的组合,但是在设计和调试过程中,也发现一些问题,譬如红绿灯的切换速度不够,黄灯时亮时而不亮,红绿灯规则效率偏低,数码管亮度不够等,亮度不够是因为排阻的阻值用的较大了。 还有,老师说我的排版不是很好,例如电阻,因为我是用手折弯的,而不是用镊子,所以这是我以后需要注意的地方。还有一个晶振焊接的不是很整齐,应该从新焊一下,但因为我怕麻烦,也怕重焊之后会影响美观,所以就没再去重试了。另外,由于画PCB时,我漏画了一条线,以至于转化为板时那边出了问题,后来我就得自己对照着PCB再用导线把遗漏的导线连接上,花了不少时间,增加了许多工作量,所以说这些都还需要我们在实践中继续加强改进,得到进一步的完善。 这次课程设计,我发现单片机原理应用性很强,只靠老师的课堂讲解是远远不够的,只有自己动手去做才能发现自己的不足。许多的余力和程序看似简单,但真正去做才知道知识并没有自己想的那样扎实,从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学理论与实际结合起来,才能真正提高自己的动手能力与思考能力,树立自己的工作信心。相信会对今后的学习工作和生活有非常重要的影响 在设计过程中我们还得到了老师的帮助与意见。在学习过程中不是每个问题都能自己解决,向老师请教或向同学讨论也是一个解决问题,让自己更快进步和增强学习能力很好的办法。 九、参考文献 [1]苏家健,曹柏荣,汪志锋.单片机原理及应用技术.北京:高等教育出版社,2004, [2]李广弟.单片机基础[M]. 北京:北京航空航天大学出版社,1994. [3]阎石.数字电子技术基础(第三版) .北京:高等教育出版社,1989. [3]朱清慧 Proteus教程--电子线路设计、制版与仿真 清华大学出版社 2008版 [4]蒋亮 Protel DXP电路设计入门与应用 机械工业出版社 2005版 [5]王秋爽 单片机开发基础与经典设计实例 机械工业出版社 2008版展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




单片机交通灯实训报告.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4754193.html