单片机实训交通灯.doc_第1页
单片机实训交通灯.doc_第2页
单片机实训交通灯.doc_第3页
单片机实训交通灯.doc_第4页
单片机实训交通灯.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

桂林电子科技大学信息科技学院实训报告桂林电子科技大学信息科技学院单片机实训报告交通灯控制系统姓 名: 吴桐 学 号: 0952200144 专业班级: 09自动化 指导老师: 寒剑 易艺 李德明 所在系:电子工程2011年9月22日摘要单片微型计算机(Single Chip Microcomputer)简称单片机,即把组成微型计算机的各个功能部件,如中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、I/O接口电路、定时器/计数器以及串行通信接口等集成在一块芯片中,构成一个完整的微型计算机。主控芯片采用AT89S52单片机,配合其他基本设备完成设计。采用C51语言进行编程,编程后利用Keil C51进行编译,生成对应的HEX文件,采用PROTEUS软件进行系统硬件的仿真模拟,检验功能。模拟试验成功后,焊接硬件电路,通过ISP下载线将HEX文件烧制入单片机,完成整个设计并进行实际操作,并实际记录单片机工作情况。一、基本原理利用51单片机控制各个路口红绿灯及时间显示。模拟交通灯示意图:设计的重点:1、各个路口红绿灯亮灭的规则,暂不考虑左转方向;2、倒计时的实现,利用单片机的定时器进行计数得到秒信号;3、时间显示:东西南北四个方向的时间一致,当东西方向为60秒绿灯通行时间,同时南北方向为60秒红灯禁止时间,因此硬件连接时可考虑东西南北方向可采用同一接法;最后相当于2个数码管动态显示,具体见参考电路框图。4、按键设置(扩展要求):设置键按一次,设置主干道通信时间(即次干道禁止时间),按第二次,设置主干道禁止时间(即次干道通信时间),按第三次,可作为紧急通信键。设置时间需要确定,可通过确定键实现,也可通过延时确定,如10秒。当然也可根据需要增加相应的按键。 二、参考电路框图2位一体共阴数码管12只发光二极管 (红、黄、绿) 单片机按键(设置、+、-、确定)说明:同学们可以改变方案,只要满足要求即可。 三、性能指标要求1、各方向的红、绿色信号灯能按照设定规则运行;2、绿灯亮之前,黄灯闪烁5次;3、红灯和绿灯倒计时间能够正确显示;4、两干道的车辆不会会车冲突。5、可以扩展其他功能(如按键设置时间,按键模拟警车)1.3 设计任务和要求任务:设计一个十字路口单片机交通灯控制系统。要求:1、南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改。2、在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;3、黄灯亮时,要求每秒闪亮一次。4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。5、一道有车而另一道无车(实验时用开关 K0 和 K1 控制),交通灯控制系统能立即让有车道放行。6、有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。1.4 设计意义课程设计使我们进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤,掌握了单片机仿真软件Proteus的使用方法,键盘和显示器在的单片机控制系统中的应用以及撰写课程设计报告的方法。此次设计很好的将书本上的理论知识和实践有机的联系了起来,是我们对理论知识有了更进一步的掌握,锻炼了我们的动手能力,同时也让我们懂得了理论与实际相结合的意义。为以后的工作和学习提供了宝贵的经验。2 系统总体方案及硬件设计2.1 系统总体方案设计本系统由硬件系统和软件系统组成,硬件系统包括按键控制模块、中央处理系统和指示灯倒计时显示模块;而为了实现相应功能软件系统包括软件系统包括主程序、定时器0中断服务程序、定时器1中断服务程序、延时程序、外部中断0服务程序、外部中断1服务程序和显示程序。2.2 硬件电路总体设计方案硬件系统包括按键控制部分、中央单片机部分、时钟电路与复位电路部分和交通灯与计时牌显示部分。这几个部分协调工作完成预定任务。硬件电路连接关系如下图: 图1按键控制部分中央单片机时钟与复位电路交通灯与计时牌显示2.3 硬件电路设计本系统以AT89S52单片机为核心,包括中央单片机部分、电源晶振与复位电路部分、输出驱动控制部分和交通灯与计时牌显示部分和按键控制部分。2.3.1电源晶振与复位部分图 3时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。为达到振荡周期是12 MHZ的要求,这里要采用12 MHZ的晶振,另外有两个30P的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。具体连接如图3复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。RST引脚是复位信号的输入端。复位电路在这里采用的是上电+按钮复位电路形式,具体连接电路如图4。图 42.3.3 中央单片机部分2.3.2 中央单片机部分图 5中央单片机部分为Atmel公司生产的单片机AT89S52。AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52(如图5)具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。2.3.3 交通灯与计时牌部分交通灯采用6个发光二极管组成,由P1口控制,附限流电阻。 而计时牌采用共阴极数码显示器,通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。本次设计在显示模块用到的是两个两位一体共阴极数码管,共有8个代码输入口和4个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用动态驱动,使各位数码管逐个轮流受控显示,这就是动态驱动,由于扫描速度极快,显示效果与静态驱动相同。同时,由于P0口的特性,附加470欧上拉电阻以驱动。显示牌部分交通灯部分图 6该部分硬件连接如图6。图 82.3.4 按键控制电路按键控制电路用于接收外部中断和接收输入信号,并控制程序运行。电路如图 8。3 软件设计在设计程序之前,我们首先要对单片机应用系统预完成的任务进行深入的分析,明确系统的设计任务、功能要求和技术指标。其次,要对系统的硬件资源和工作环境进行分析。这是单片机应用系统程序设计的基础和条件。3.1 软件系统总体设计方案定时器中断入口重赋定时器初值计数以统计时间中断结束定时器中断服务程序中断服务入口检查系统状态进行相应服务中断结束返回外部中断服务程序开始初始化外部中断定时器中断调用显示程序调节每灯时间是否正常YN主程序本次单片机课程设计软件设计部分采用模块化程序设计,软件系统包括主程序、定时器0中断服务程序、定时器1中断服务程序(用以扩充外部中断)、延时程序、外部中断0服务程序、外部中断1服务程序和显示程序。程序流程图如图。图9显示程序入口判断工作情况正常紧急并可修改调用数码管显示调用数码管显示显示程序结束显示程序图104 PROTEUS仿真4.1 PROTEUS简介Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。5 硬件的焊接与调试对照原理图进行焊接工作,把硬件先依次正确插到相应的位置,然后再次检查器件是否都正确,确定无误后进行焊接.在焊接的过程中要注意不要将相临的两个引脚焊接在一起,防止短路影响使用。硬件连接好以后,通过ISP下载线向单片机内烧制HEX程序,观察各部分工作情况。硬件连接如图图216 实训心得体会通过这几天的单片机的实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。做课程设计的这几天翻阅了很多书,也上了很多网站去寻找自己需要的资料。这种寻找有很强的目的性,只是为了自己选定的课题内容而查阅,所以除了自己课题以外的其他方面几乎还是一无所知。这让我深刻的认识到了自己专业知识的贫乏。为我对自己大三生活的规划敲响了警钟。我对单片机的学习不会因为课程设计的结束而结束,在接触的众多资料里,做设计只是走马观花般的点到。 通过单片机课程设计,我加深了对单片机理论的理解,学回了怎样将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的不畏困难的挑战精神,从而不断地战胜自己,超越自己,我在这整个过程中,学会了坚持不懈,不轻易言弃。虽然常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。参考文献 1 余发山,王福忠 单片机原理及应用技术 中国矿业大学出版社 2008.62 河南理工大学电气学院 单片机实验报告指导册 河南理工大学出版社 2009附1 源程序代码#include #include #include #define uint unsigned int#define uchar unsigned charuchar data timelist=30;/用于倒计时显示uchar count=0;/配合计时器中断实现1S的计时uchar yelltime=0;/用于实现黄灯闪烁功能uchar intswitch;/用于按键中断后判断所按键uchar data time4=30,5,20,5;/每色灯时间uchar data disbuf4=0;/用于显示uchar n=0;/用于记录各灯顺序uchar yellow=0xff;/黄灯闪烁功能实现sbit P3_2=P32;sbit P3_3=P33;sbit P3_5=P35;/需要采用的中断服务端口uchar code table10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴极字型码/定时器0的中断服务程序,100ms中断一次,即每100ms执行一次该中断服务程序。void timer0(void) interrupt 1TH0=-50000/256;TL0=-50000%256;/重新赋初值count+;yelltime+;if(yelltime=10)yelltime=0;yellow=yellow0x12; /黄灯闪烁if(count=20)/若到一秒count=0;timelist-; /倒计时if(timelist=0) /倒计时结束后重置数值n+;if(n=4)n=0;timelist=timen;/调整灯的周期/延时程序用于按键消抖和动态显示void dlms(uint x)uint i=x,j;while(i-)j=100;while(j-);/外部中断0服务程序void int0(void) interrupt 0dlms(5);if(!P3_2)while(!P3_2)dlms(1);dlms(5);if(P3_2)/延时消抖TR0=!TR0;/改变定时器状态用于调整系统状态if(TR0=1)count=0;n=0;timelist=timen;/判断定时器是否重新启动,若启动则重新开始工作/外部中断1服务程序void int1(void) interrupt 2dlms(5);if(!P3_3)while(!P3_3)dlms(1);dlms(5);if(P3_3)if(TR0=1)/判断系统状态,根据不同状态执行任务count=0;n=0;timelist=timen;/正常状态,切换道路通行if(TR0=0)/紧急状态,可调整通行时间time0=time0+1;if(time090)/通行时间范围time0=10;/定时器1服务程序void timer1(void) interrupt 3TH1=0xff;/赋初值,用定时器扩充外部中断,初值FFTL1=0xff;dlms(5);if(!P3_5)while(!P3_5)dlms(1);dlms(5);if(P3_5)if(TR0=1)count=0;n=2;timelist=timen;if(TR0=0)time2=time2+1;if(time290)time2=10;/显示程序void disp(void)uchar i,j;uchar sel;if(TR0=0)/判断系统状态,进行不同服务disbuf0=time2%10;disbuf1=time2/

温馨提示

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

评论

0/150

提交评论