基于51的交通灯设计报告(带左转)

上传人:无*** 文档编号:171392583 上传时间:2022-11-26 格式:DOC 页数:24 大小:419KB
收藏 版权申诉 举报 下载
基于51的交通灯设计报告(带左转)_第1页
第1页 / 共24页
基于51的交通灯设计报告(带左转)_第2页
第2页 / 共24页
基于51的交通灯设计报告(带左转)_第3页
第3页 / 共24页
资源描述:

《基于51的交通灯设计报告(带左转)》由会员分享,可在线阅读,更多相关《基于51的交通灯设计报告(带左转)(24页珍藏版)》请在装配图网上搜索。

1、单片机课程设计报告 题 目 51交通灯的设计 专 业 班 级 学 号 学生姓名 基于51单片机的交通灯控制系统设计摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由89C52单片机、LED显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有LED信息显示功能,使交通实现有效控制。关键词:交通灯,单片机,自动控制一、 引言 当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在19世纪就已经出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯

2、,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消! 电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。

3、绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口!二、概要设计2.1 设计思路 利用单片机实现交通灯的控制,该任务分以下几个方面: a 实现红、绿、黄灯的循环控制,并且交通灯系统带有左转信号灯。要实现此功能需要表示三种不同颜色的共16个LED灯,每两个一组分别接在51单片机的不同管脚,用软件实现控制。 b 用数码管显示倒计

4、时。采用2个两位共阳极数码管,利用动态显示,通过单片机IO口控制位选,段选动态显示时间情况。 C 实现急通车。这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。2.2设计的主要内容和要求交通灯处在十字路口上。它有红黄绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许

5、行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。交通灯配置示意图如图1所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。 数码管北西南绿直行数码管北黄灯缓红灯停绿左转东 图1 十字路口交通灯配置示意图2.3总体设计框图 见图2:交通灯循环最小系统倒计时显示紧急情况控制图2三、 硬件设计3.1LED循环电路设计 89C52单片机概述 MCS-51单片机内部结构: 89C52是MCS-51系列单片机的典型产品,现在以这一代表性的机型进行系统的讲解。 89C52单片机包含中央处理器、程序存储

6、器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线。 89C52主要功能特性: 标准MCS-51内核和指令系统 片内8kROM(可扩充64kB外部存储器) 32个双向I/O口 256x8bit内部RAM(可扩充64kB外部存储器) 3个16位可编程定时/计数器 时钟频率3.5-12/24/33MHz 向上或向下定时计数器 改进型快速编程脉冲算法 6个中断源 5.0V工作电压 全双工串行通信口 布尔处理器帧错误侦测 4层优先级中断结构自动地址识别 兼容TTL和CMOS逻辑电平 空闲和掉电节省模式 PDIP(40)和PL

7、CC(44)封装形式 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。 MCS-51系统的引脚说明: MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图3是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1INT0/P3

8、.2INT1/P3.3T0/P3.4Y1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1GNDPDIPVCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPESNP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A840393837363534333231302928272625242322211234567891011121314151617181920 图3 89C51的复位方式可以自动复位,也可以是手

9、动复位,见下图。除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。 在编程时,EA/Vpp脚还需加上21V的编程电压。 3.2 LED循环说明 为了便于说明,不妨将东西方向允许直行命名为状态1,东西方向允许左转命名为状态2,东西方向行车到南北方向行车的转换阶段命名为状态3,将南北方向允许直行命名为状态4,南北方向允许左转命名为状态5,南北方向行车到东西方向方向行车的转换阶段命名为状态6。假定左转绿灯点亮的时间为25s,直行绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒。黄灯每隔500ms亮一次,之后灭

10、500ms(亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。各个状态之间的变换情况如下:状态1 状态2 状态3 状态4 状态5 状态6 状态1具体显示周期如下:25s20s5s50s状态1状态2状态3状态4状态5状态6东西路口直行绿灯亮左转绿灯亮黄灯亮缓行红灯亮禁行南北路口红灯亮禁行直行绿灯亮左转绿灯亮黄灯亮缓行50s25s20s5s 图43.3单片机I/O口控制交通灯电路 protel电路原理图:LED灯采用共阳极接法,所有的LED灯阳极都接在5V电压一端,加上限流电阻,阴极接单片机的IO口,当IO口输出低电平时LED亮,通过设置不同的输出来改变LED的亮灭,实现交通灯的控制。上图为51单片

11、机的最小系统,包括51的晶振电路和上电复位电路。3.4 倒计时显示电路Protel 电路原理图:数码管采用共阳极数码管,位选端口直接接在IO口上,段码端口通过8个上拉电阻接在IO口上,通过IO口控制数码管显示时间。 3.4 紧急情况按钮电路 为了实现此功能,利用单片机中断达到目的。利用一个手动开关接至单片机外部中断0,同时在软件设计时将其设为最高优先级。当开关闭合,四方全为红灯。当开关打开,回到原来的位置继续执行,电路图如下图。 3.5整体电路图Protel 电路原理图:上图是利用protel99se做出的整体设计原理图Protel 电路原理图的PCB图:上图是利用protel99se做出的5

12、1交通灯的印制电路板PCB图。 印制电路板3D效果图:上图是利用Altium Designer 09打开PCB图做出的印制电路板3D效果图。Proteus仿真电路图:上图是利用proteus7.5搭建的51交通灯仿真电路,截图状态为仿真运行开始状态。四 软件按设计 4.1 程序流程图: 4.2 LED红绿灯显示 当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。通过设置P1口不同时段输出电平的不同来控制发光二极管模拟交通灯的各种状态。 4.3倒计时显示 数码管的显示采用共阳极数码管的动态显示,

13、通过P2口的P2.0至P2.3分别控制东西南北方向的数码管位选信号,然后通过P0口作为数码管的段选信号,通过位选信号的分时选择来控制数码管的个位,十位分别显示,又由于这期间的时间间隔很短,所以我们看起来数码管的个位十位是同时亮的。然后利用定时器倒计时,通过数码管显示出来。 4.4 急通车控制 将一按钮接到单片机外部中断0端口。另一端接地,通过在程序里设置外部中断0为最高优先级。当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。 4.5程序代码 见附录。五 总结 单片机是一门强调实践的课程,在学习单片机理论课时候就感觉到内容很多,知识点很杂,分繁琐。虽然老师的课上得不错,但是对于单片

14、机内部结构还不是很理解。不过单片机综合设计这门课程给了我们一次实践的机会。通过这次设计逐渐了解了单片机的内部构造和工作原理,以及接外部电路的情况。通过实际动手去实践。真正把课堂上所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机实习,我选的是交通灯设计,从代码的编写,做仿真到画电路原理图,PCB图,到最后的做实物,都是通过查阅资料,自己动手做。做完之后,感觉真正在这门课上学到了东西。动手能力得到了提高,对单片机的认识也加深了。 这次实习,在编程的时候会有困难,也可能不一定成功,所以要经过多次调试,分析,改正,反复去做。经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,

15、多动手,多思考,以免在以后的学习工作中犯同样的错误。附录: /* 十字路口交通灯控制 C 程序*/#defineucharunsigned char#defineuintunsigned int#include/*定义控制位*/sbitEW_LED2=P23;/东西数码管个位sbitEW_LED1=P22;/东西数码管十位sbitSN_LED2=P21;/南北数码管个位sbitSN_LED1=P20;/南北数码管十位_sbit SN_Yellow=P16;/南北黄灯sbit EW_Yellow=P12;/东西黄灯sbit EW_Red=P13;/东西红灯sbit SN_Red=P17;/南北红

16、灯/sbit Busy_Btton=P32;bit Flag_SN_Yellow; /南北黄灯标志位bit Flag_EW_Yellow;/东西黄灯标志位charTime_EW;/东西方向倒计时单元charTime_SN;/南北方向倒计时单元uchar EW=50,SN=25,EWL=20,SNL=20; /程序初始化赋值,正常模式uchar EW1=50,SN1=25,EWL1=20,SNL1=20;/用于存放修改值的变量/uchar code table10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/19段选码uchar code

17、 table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/uchar code table10=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;/uchar code S8=0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84;/交通信号灯控制代码 uchar code S8=0xd7,0xb7,0xe7,0xb7,0x7d,0x7b,0x7e,0x7b;/*延时子程序*/voidDelay(uchar a)uchari;i=a;while(i-);/*显

18、示子函数*/voidDisplay(void)char h,l;h=Time_EW/10;l=Time_EW%10; P0=tablel;EW_LED2=1;Delay(200);EW_LED2=0; P0=tableh;EW_LED1=1;Delay(200);EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=tablel;SN_LED2=1;Delay(200);SN_LED2=0; P0=tableh;SN_LED1=1;Delay(200);SN_LED1=0; /*T0中断服务程序*/void timer0(void)interrupt 1 using 1

19、static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=10)/ Time_EW-;/Time_SN-; if(Flag_SN_Yellow=1) /南北黄灯标志位 SN_Yellow=SN_Yellow; if(Flag_EW_Yellow=1) /东西黄灯标志位 EW_Yellow=EW_Yellow; if(count=20)Time_EW-;Time_SN-;if(Flag_SN_Yellow=1)/南北黄灯标志位Time_SN=Time_EW; / Time_SN+; SN_Yell

20、ow=SN_Yellow;if(Flag_EW_Yellow=1)/东西黄灯标志位Time_EW=Time_SN;/Time_EW+; EW_Yellow=EW_Yellow;/Time_EW-;/Time_SN-; / Display();count=0;/*主程序开始*/voidmain(void) IT1=0;/INT1负跳变触发 TMOD=0x01;/定时器工作于方式1TH0=(65536-50000)/256;/定时器赋初值TL0=(65536-50000)%256;EA=1; /CPU开中断总允许ET0=1;/开定时中断EX1=1;/开外部INTO中断 TR0=1;/启动定时PX1

21、=1;/中断优先级高 while(1)/*S0状态*/ Flag_EW_Yellow=0; /EW关黄灯显示信号Time_EW=EW;Time_SN=SN;while(Time_SN0) P1=S0; /SN通行,EW红灯 Display();/*S2状态*/ Flag_SN_Yellow=0; /SN关黄灯显示信号Time_SN=SNL;while(Time_SN0)P1=S2;/SN左拐绿灯亮,EW红灯 Display(); /*S3状态*/P1=0xff;while(Time_EW0) Flag_SN_Yellow=1;/SN开黄灯信号位 EW_Red=0; /SN黄灯亮,等待停止信号,

22、EW红灯 /SN_LED1=EW_LED1; /SN_LED2=EW_LED2; Display(); /*赋值*/EW=EW1; SN=SN1;EWL=EWL1;SNL=SNL1;/*S4状态*/Flag_SN_Yellow=0; /SN关黄灯显示信号Time_EW=SN;Time_SN=EW; while(Time_EW0) P1=S4; /EW通行,SN红灯 Display();/*S6状态*/Flag_EW_Yellow=0; /EW关黄灯显示信号Time_EW=EWL;while(Time_EW0)P1=S6;/EW左拐绿灯亮,SN红灯 Display();/*S7状态*/P1=0Xff;while(Time_SN0) Flag_EW_Yellow=1; /EN开黄灯信号位 SN_Red=0;/EW黄灯亮,等待停止信号,SN红灯 Display(); /*赋值*/ EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1; void xint1() interrupt 2 /外部中断INT1 P1=0x77; Display(); Delay(200);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!