交通信号灯控制器的设计正文_第1页
交通信号灯控制器的设计正文_第2页
交通信号灯控制器的设计正文_第3页
交通信号灯控制器的设计正文_第4页
交通信号灯控制器的设计正文_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

交通信号灯控制器的设计摘 要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本系统采用单片机AT89S51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。本设计系统由AT89S51单片机系统、键盘、LED 显示、交通灯演示系统组成。在这个系统中我们选择两路,分别为A路与B路。,我们增加了两个功能。一个是当遇到紧急情况时(如110,911和120等),A路与B路都亮红灯;另一个是换灯放行功能关键词 LED,单片机,AT89S51 AbstractTraffic in Peoples Daily life has important position, as people social activities more frequently, this is reflected the incisively and vividly. The emergence of the traffic lights, traffic to effectively control, for relieves traffic flow, improve road capacity, reduce traffic accidents have obvious effect. In recent years, along with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology is updated. In real time detection and automatic control of the single chip microcomputer application system, often as a core component to use only single chip, knowledge is not enough, should according to the specific hardware structure, software and hardware combination to be perfect. The system USES AT89S51 single-chip microcomputer as the center device to designing traffic light controller, system practical, simple operation and expandability. This design is simulated by single chip microcomputer intersection traffic lights to the various states display and countdown time.This design system by AT89S51 system, the keyboard, the LED display, traffic lights demo system composition. In this system we choose two road, respectively for A road and B road. , we add two functions. One is when faced with an emergency (such as 110911 and 120, etc.), A road and B road are red light; The other is a change lamp release functionKey words LED, microcontroller, AT89S5121目 录摘 要IAbstractII1 引 言12 设计思路23设计总方案43.1C语言程序流程图43.2C语言程序代码54 各部分电路设计94.1换灯子程序源代码94.1.1换灯子程序流程图104.2晶震模块电路114.3显示电路115元器件介绍125.1AT89S51单片机125.2单片机管脚介绍135.3七段显示数码管16结论18致谢19参考文献20附 录211 引 言随着社会和城市交通的快速发展, 近几年机动车辆数字急剧增加,道路超负荷承载道路现象严重,致使交通事故逐年增加。交通灯是城市交通有序、安全、快速运行的重要保障,因此解决好公路交通信号灯控制问题也成了保障交通有序、安全、快速运行的重要环节。本设计是一款基于单片机AT89S51为控制核心的交通控制系统,它可以实现对车辆、行人的有效导引。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。2 设计思路设:有个十字路口,东西和南北两个方向,南北为A路口,东西为B路口。设初始状态为A路口的红灯亮,B路口的绿灯亮,此时A路口不准通行。当15秒之后B路口绿灯亮变为黄灯,A路口红灯不灭。延时4秒之后A路口红灯变为绿灯,同时B路口的红灯亮,再15秒之后,A路口的绿灯变为黄灯,B路口依然亮红灯,延时4秒之后A路口的黄灯变为红灯,而B路口的红灯变为绿灯,依次循环。假如当有紧急情况时,按键KEY1,这时候A路与B路的灯都变为红灯,同时显示器不计时。如果A路的车流量大,B路没有车,而此时A路是红灯,B路是绿灯,此时按键KEY2,使A路亮绿灯,B路亮红灯。在此设计中将AT89C51的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7八个口均设为A路输出口并且用P3.0、P3.1、P3.4口来控制A路口交通信号灯的红灯、黄灯和绿灯;P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、P2.6、P2.7八个口均设为B路输出口并且用P3.5、P3.6、P3.7口来控制B路口交通信号灯的红灯、黄灯和绿灯。而由单片机的P3.2口做紧急中断口,用单片机的P3.3口做换路中断口。其工作流程图如图2.1所示图2.1 电路设计总图3设计总方案3.1C语言程序流程图开中断开始端口初始化调用huandengA子程序调用huandengB子程序启用定时计数器0图3.1 程序流程图3.2C语言程序代码#include #include #define lvtimeA 10#define lvtimeB 15#define huangtime 3#define hongA P3_0#define huangA P3_1#define lvA P3_4#define hongB P3_5#define huangB P3_6#define lvB P3_7#define jinji P3_2#define fangxing P3_3char data timeA;unsigned char cishu=1;bit jinjiflag=0;void hongdengA() timeA=lvtimeB+huangtime; huangA=0; lvA=0; hongA=1;void lvdengA() timeA=lvtimeA; hongA=0; huangA=0; lvA=1;void huangdengA() timeA=huangtime; lvA=0; hongA=0; huangA=1;void hongdengB() huangB=0; lvB=0; hongB=1;void lvdengB() hongB=0; huangB=0; lvB=1;void huangdengB() lvB=0; hongB=0; huangB=1;void huandengA() static unsigned char i=0; switch(i+) case 0:hongdengA();break; case 1:lvdengA();break; case 2:huangdengA();break; default:break; if(i2) i=0; void huandengB() static unsigned char j=1; switch(j+) case 0:hongdengB();break; case 1:lvdengB();break; case 2:huangdengB();break; default:break; if(j2) j=0; void xianshi() P1=(timeA/103) P2=(timeA-4)/104)+(timeA-4)%10; else P2=(timeA/104)+timeA%10; if(lvA=1) P2=(timeA+4)/104)+(timeA+4)%10;void jishi() timeA-; if(timeA5&lvB=1) huandengB(); if(timeA0&lvA!=1) huandengB(); if(timeA24) jishi(); cishu=1; cishu+;void int1() interrupt 2 if(lvB=1) timeA=0x04; if(lvA=1) timeA=0x00;4 各部分电路设计4.1换灯子程序源代码void huandengA() static unsigned char i=0; switch(i+) case 0:hongdengA();break; case 1:lvdengA();break; case 2:huangdengA();break; default:break; if(i2) i=0; void huandengB() static unsigned char j=1; switch(j+) case 0:hongdengB();break; case 1:lvdengB();break; case 2:huangdengB();break; default:break; if(j2) j=0; 4.1.1换灯子程序流程图开始Jingji=1Y不启用定时计数器红灯A亮红灯B亮NhuandengAi=0调用hongdengAi=1调用lvdengAi=2调用huangdengAhuandengBJ=1调用lvdengBJ=2调用huangdengBj2调用hongdengB显示J=0breakbreakbreakNNNNNNYYYYYYNY图4.1 子程序流程图4.2晶震模块电路电路采用但片中的单片中内部时钟方式,在AT89S51单片机XTAL1XTAL2引脚外接石英晶体,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。振荡电路采用两个30pF的电容,作用是稳定频率和快速起振。晶振频率为6MHz。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。晶振电路设计如下:图4.2 内部时钟方式4.3显示电路显示电路是通过P1口和P2口外接74LS48译码器来实现的。表4.3 8421七段译码器译码表A3A2A1A0YaYbYcYdYeYfYg显示0000000000100001100111110010001001020011000011030100100110040101010010050110010000060111000111171000000000081001000010095元器件介绍5.1AT89S51单片机本设计采用ATMEL公司的AT89S51单片机,具有以下特点:1)具备 Flash可擦写技术的4K字节的内部存储器ROM。2)128字节的RAM存储器。3)4个并行I/O接口。4)1个全双工异步串行接口。5)2个定时/计数器。6)5个中断源。7)1000次的可擦写寿命。8) 全静态工作:0Hz-24Hz。9) 低功耗工作方式:空闲方式掉电方式。10) 三级存储器保密系统,用于保护程序,防止拷贝。11) 外部接口灵活扩展。12) 编程采用111条指令,7种寻址方式。13) 与MCS-51系列单片机兼容。图5.1 80C51单片机基本结构5.2单片机管脚介绍图5.2 80S51总线型引脚封装1.电源及时钟引脚(4个):电源接入引脚;:接地引脚;XTAL1:晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器接入的另一个引脚(采用外部振荡时,此引脚作为外部振荡信号的输入端)。2.控制线引脚(4个)RST/VPD:复位信号输入引脚/备用电源输入引脚;ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚;/VPP:内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;:外部程序存储器选通信号输入引脚。3.并行I/O引脚(32个,分成4个8位口)P0.OP0.7:一般I/O引脚或数据/低位地址总线复用引脚;P1.OP1.7: 一般I/O引脚;P2.OP2.7: 一般I/O引脚或高位地址总线引脚;P3.OP3.7: 一般I/O引脚或第二功能引脚。4.I/O引脚结构介绍P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。5.中断源介绍(P3.2)。外部中断0请求信号输入引脚,可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。(P3.3)。外部中断0请求信号输入引脚,可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。6.工作方式介绍方式0:13位计数器;方式1:16位计数器;方式2:自动重装初值的8位计数方式;方式3:T0分为两个独立的8位计数器,T1停止工作。7. 定时/计数器介绍80C51单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,定时/计数器T0由特殊功能寄存器TH0、TL0构成,定时/计数器T1由特殊功能寄存器TH1、TL1构成。定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。单片机复位时,两个寄存器的所有位都被清0。80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式,TCON的低4位用于控制外部中断。8. 寻址方式介绍寄存器寻址;直接寻址;寄存器间接寻址;立即寻址;基址寄存器加变址寄存器变址寻址;相对寻址和位寻址。5.3七段显示数码管共阴极接法共阳极接法 图5.3 数码管符号及接法LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法:共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表5-1所示。字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH表5-1 共阴极LED数码管字形代码LED优点:亮度高、字形清晰,工作电压低(1.53V)、体积小、可靠性高、寿命长,响应速度极快。结论时光飞逝,一周的时间就这样过去。在这一周当中,让我由一开始的慌乱不知所措到后来的轻车熟路。这是一个磨炼的过程,也是我获得知识的一个重要途径。对于课本上的文字我们都很熟悉,但使用课本上的定理公式来设计一个电路甚至是一个电子产品就是一个很艰难的问题了。经过这一周,使我对书本上的知识有了更近一步的了解,知道所学的知识是用来干什么的。刚开始设计的时候有太多的问题,面对一大堆新的东西,感觉平时轻松的大脑一下子就被塞进去很多还没完全接受的知识,想想平时我都只是一味的跟着老师讲课的节奏来学习,很少会碰到比较棘手和头疼的问题,课程设计刚开始我就发现了平时机械化听老师讲课的弊端了,对于一些新出现的东西,我不知道该从四面地方下手去解决问题,甚至不知道该怎么作才能查到这个问题的出处,并且还有期末考试即将到来的压力,双重的巨大考验逼迫我几乎把所有可以利用的时间都投了进去,不知道该怎么去面对这两个大问题,经过几天的“学习”才发现,没有计划的盲目乱学只是在消耗时间,有合理的时间分配才能事半功倍。把自己置身于课程设计中才发现,其实课程设计的东西都不是很难做,无非是考验我们实际动手的能力、锻炼自己,使自己在设计中培养出良好的大局观,冷静的思维,明确自己在做什么,该如何做,使我们不只是局限于书本上的理论知识。在设计的过程中虽然遇到了不少问题,也曾想偷懒过,但是经过努力当自己把问题解决得时候又对接下来的挑战充满了信心。有的时候解决完一个问题后,感觉终于可以松一下才发现接下来的任务更难,这不仅是对自己实际动手动脑能力的考验,同时也是在和自己的自信交战,每次自己的操作快完成的时候发现其实有更好的方案,为了自己的那么点追求完美的心态,还是迫使自己憋足了劲,重新再来吧!就这样,在不知不觉中,我们也结束了这次的课程设计,总结起来,问题不少,收获也不少!这次设计我得到了一个小小的心得,那就是从来都不要对自己说“还行 一般 凑合”,这是对自己严重的不负责每当我觉得这个步骤作得还可以得时候才发现自己的这个还可以给接下来的设计造成了很大的影响,同时也不要对自己丧失信心,灰心事最大的失败。面对新的东西,千万不能慌乱

温馨提示

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

评论

0/150

提交评论