计控课程设计--单片机交通信号灯控制系统设计.doc_第1页
计控课程设计--单片机交通信号灯控制系统设计.doc_第2页
计控课程设计--单片机交通信号灯控制系统设计.doc_第3页
计控课程设计--单片机交通信号灯控制系统设计.doc_第4页
计控课程设计--单片机交通信号灯控制系统设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

计算机控制系统课程设计题目:单片机交通信号灯控制系统设计学 院:信息科学与工程学院专 业:自动化学 号:200904134129学生姓名: 王威指导教师:日 期:2012.1.9基于单片机的交通灯控制系统设计与实现一、目的 本文以AT89S51 单片机为核心器件,设计了多功能交通灯控制系统。软件仿真和硬件实现的结果表明该系统具有红绿灯显示功能、时间倒计时显示功能、左转提示和紧急情况发生时手动控制等功能。 由于计算机技术、自动控制技术和人工智能技术不断发展,城市交通的智能控制有了良好的技术基础,各种交通方案实现的可能性大大提高。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。本文设计的交通灯管理系统在实现了现代交通灯系统的基本功能的基础上,增加了左转提示和紧急情况(重要车队通过、急救车通过等) 发生时手动控制等功能。二、交通方案交通灯控制系统控制东西、南北两个方向信号灯,每个方向设置两组红绿灯,红灯禁止通行,绿灯允许通行。每个方向的通行时间各由两位LED数码显示,通行时间可设置,绿灯向红灯转换前绿灯闪烁三次共3秒钟,红灯向绿灯过渡时不闪烁。系统上电时的初始状态为东西、南北两个方向均为红灯,持续2秒后为东西方向绿灯,南北方向红灯,之后以定时方式控制两个方向的汽车轮流通行。三、电路设计 1、电源电路设计: 由于单片机工作时需要的+ 5V 电压,所以在设计电源电路时,需要一个电子元件能提供+ 5V电压,本文采用7805 提供5V 的电压,即在7805 的1 脚和公共接地端(即2 脚) 之间接入0. 3F 的电容,在公共接地端和三脚+ 5V电压输出端之间接入0. 1F 的电容。 2、复位电路设计: MCS - 51 的复位输入引脚RST 为MCS - 51 提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0000H 地址单元开始执行程序。在MCS - 51 的时钟电路工作后,只要RST 引脚上出现10ms 以上的高电平时,单片机内部则初始复位。 只要RST 保持高电平,则MCS - 51循环复位。只有当RST 由高电平变低电平以后,MCS - 51 才从0000H 地址开始执行程序。 3、时钟电路设计: MCS - 51 的时钟可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式。 本文根据实际需要和简便,采用内部振荡方式.MCS - 51 内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是此放大器的输入端和输出端. 这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。 MCS - 51 虽然有内部振荡电路,但要形成时钟,必须外接元件所以实际构成的振荡时钟电路.外接晶体以及电容C1 和C2 构成并联谐振电路接在放大器的反馈回路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。 晶体频率可在1. 2MHz12MHz 之间任选,电容C1 和C2 的典型值在20pF100pF 之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,所以采取比较廉价的陶瓷谐振器。 由于本系统应用的机器周期为1s ,所以晶振选择为12MHz ,根据调试电容选择30pF。 在硬件电路焊接时,晶体或陶瓷振荡器和电容应该尽可能地与单片机芯片靠近,以减少寄生电容,可以更好地保证振荡器稳定和可靠的工作。4、数码时间显示电路: 七段LED 数码管是有八个发光二极管构成,通过给其引脚不同的高低电平,从而显出09 的数字和小数点。本文的交通灯数字显示部分,通过将四个一位数码管并联通过P1口控制作为个位实时显示,四个数码管并联通过P3 口控制作为十位实时显示,但考虑到单片机的系统功耗问题以及焊接电路后的实际显示效果等, 本部分的电路中又引入一7805 进行单独供电。交通灯的时间倒计时显示部分是通过将数码管分别与单片机的P1 口和P3 口连接,通过单片机内部已经烧录好的程序,对P1 口和P3 口进行电平输出控制,从而实现数码管的倒计时时间显示。5、信号灯电路设计: 本部分电路设计,应用单片机的P0 口对直行方向提示灯控制,P2 口对左转方向提示灯控制。其中 P0.0 、P0.1 两个输出控制口,分别控制东西方向上的绿灯、红灯。P0.2、P0.3 两个输出控制口,分别控制南北方向上的绿灯、红灯。 四、软件设计 本设计使用keil 软件完成该系统的软件设计.通过新建源文件、建立工程文件、编译和连接,最后生成所需单片机烧录的HEX文件。1、软件设计程序流程图: 2、Proteus软件仿真南北通行开始中断?中断程序返回?K0=0?K1=0?DX=0?东西通行中断?中断程序NB=0?K0=0?K1=0?返回?NYNYYNNYNNNNNNYYYYYY:五、课程设计体会通过这次单片机课程设计,我深刻体会到自己实际操作能力的匮乏。从刚开始老师对单片机的整体介绍及其应用前景,对单片机产生了浓厚的兴趣,并利用自己的课余时间提前学习有关单片机的基本知识。但空有理路知识,却无半点的实际操作经验。后来在同学的建议下,选择运用单片机设计一个交通灯控制系统,从简单开始,后期逐步复杂化。从给定电路图的分析到后期的程序设计以及系统调试,初步掌握了运用单片机系统设计特定功能的设计步骤,也对单片机有了更深的体会。了解和掌握了一些简单的编程思想,对单片机各管脚的功能,I/O口的使用条件都有了更深的理解。这次的课程设计让我把单片机的理论知识运用的实践中,实现了理论与实践的相结合,从中更懂得了理论是实践的基础,实践更能检验理论的真实性,让我受益匪浅。 附录1 源程序代码 /#include #include / 对单片机的口进行了定义#define uint unsigned int#define uchar unsigned charuchar code a10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/段码组合,共阴极uchar code b4=0xfe,0xfd,0xfb,0xf7; /位码组合 低有效uchar code c4=0xcc,0xd4,0x78,0xb8;/*P1 绿红、黄红、红绿、红黄*/ /12MHz /*uchar NB=25,DX=30,NBG=25,DXG=15,H=5; /*数码管显示值设置*/uchar i,k=0,cnt=0,j=0; sbit K0=P35; /*支干道通行*/sbit K1=P36; /*主干道通行*/sbit K4=P37; /*返回*/sbit K3=P32;/*设置时间*/sbit K2=P33;/*紧急刹车*/void delay(uchar t);/*定义延时程序*/void key();/*定义键盘程序*/void display();/*定义显示程序*/void settime();/*定义时间设置显示程序*/*程序初始*void init(void)TMOD=0x01; /*使用定时器0模式一*/TH0=0x3c; /*(65536-5000)/256*/TL0=0xb0; /*(65536-5000)%256*/IT0=1; /开中断ET0=1;TR0=1;EA=1;EX0=1;EX1=1;P1=ck; /开启交通灯/*中断0处理程序*void int0(void) interrupt 0 /通行时间设置 EA=0; P1=0xd8;/*红灯全亮*/ for(;) settime(); if(K1=0) /*P36=0设置主干道通行时间*/ delay(40); if(K1=0) while(!K1) settime(); NBG+;/*主干道通行时间加1*/ if(NBG=100) NBG=0; if(K0=0) /*P35=0设置支干道通行时间*/ delay(40); if(K0=0) while(!K0) settime(); DXG+;/*支干道通行时间加1*/ if(DXG=100) DXG=0; if(K4=0) /*P37=0返回*/ delay(40); if(K4=0) while(!K4) k=0;P1=ck; NB=NBG,DX=NBG+H; display(); EA=1; break; /*中断1处理程序*void int1(void) interrupt 2 /紧急情况 /*东西南北红灯亮*/EA=0;TR0=!TR0; /*停止计数*/for(;) /*主支干道显示全为0*/ P1=0xd8,P0=a0; P2=0xfe; delay(20); P2=0xfd; delay(20); P2=0xfb; delay(20); P2=0xf7; delay(20); if(K4=0) /*返回*/ delay(20);EA=1; P1=ck; /*返回紧急前状态开始计数*/TR0=!TR0;/*重启计数*/break; void time1(void) interrupt 1/*交通灯控制程序*/TH0=0x3c;/*定时50ms*/TL0=0xb0; cnt+;if(cnt=20) /*每20*50ms=1s自减一*/NB-;DX-;cnt=0;if(NB=0|DX=0)k+;if(k3)/*k取0,1,2,3*/k=0;switch(k)case 0

温馨提示

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

评论

0/150

提交评论