ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:686.35KB ,
资源ID:6469933      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6469933.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51交通灯设计单片机课程设计报告大学论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51交通灯设计单片机课程设计报告大学论文.docx

1、51交通灯设计单片机课程设计报告大学论文广西大学电气工程学院单片机课程设计报告 题 目 5 1交 通 灯 设 计 专 业 电气工程及其自动化 班 级 学 号 学生姓名 基于51单片机的交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由89C52单片机、LED显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有LED信息显示功能,使交通实现有效控制。关键词:交通灯,单片机,自动控制1、引言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检

2、测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,针对具体应用对象的特点,配以其它器件来加以完善.伴随人口车辆的日益增长,那么十字路口车辆穿梭,行人熙攘,如何才能使交通井然有序呢?靠的就是交通信号灯的自动指挥系统。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让正在路口内直行的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接

3、近停车线而不能安全停车时可以进入交叉路口。本系统采用MSC-51系列单片机来设计交通灯控制器,实现了各方向车辆、行人轮流通行的功能,此外还设置人性化倒计时显示。同时还具有南北、东西方向强制通行功能。二、概要设计2.1 设计思路 利用单片机实现交通灯的控制,该任务分以下几个方面: a 实现红、绿、黄灯的循环控制,并且交通灯系统带有左转信号灯。要实现此功能需要表示三种不同颜色的共16个LED灯,每两个一组分别接在51单片机的不同管脚,用软件实现控制。 b 用数码管显示倒计时。采用2个两位共阴极数码管,利用动态显示,通过单片机IO口控制位选,段选动态显示时间情况。 c 实现急通车。这需要人工实现,编

4、程时利用到中断才能带到目的,当有按钮按下时,可以使东西方向(南北方向)显示绿灯,另一个方向显示红灯,禁止车辆通行。当情况解除,通过复位按键使交通灯重新恢复工作。2.2设计的主要内容和要求交通灯处在十字路口上。它有红黄绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮

5、。交通灯配置示意图如图1所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。 图1 十字路口交通灯配置示意图2.3总体设计框图 见图2:三、 硬件设计3.1LED循环电路设计 89C52单片机概述 MCS-51单片机内部结构: 89C52是MCS-51系列单片机的典型产品,现在以这一代表性的机型进行系统的讲解。 89C52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线。 89C52主要功能特性: 标准MCS-51内核和指令系统

6、片内8kROM(可扩充64kB外部存储器) 32个双向I/O口 256x8bit内部RAM(可扩充64kB外部存储器) 3个16位可编程定时/计数器 时钟频率3.5-12/24/33MHz 向上或向下定时计数器 改进型快速编程脉冲算法 6个中断源 5.0V工作电压 全双工串行通信口 布尔处理器帧错误侦测 4层优先级中断结构自动地址识别 兼容TTL和CMOS逻辑电平 空闲和掉电节省模式 PDIP(40)和PLCC(44)封装形式 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普

7、林斯顿(Princeton)结构。 MCS-51系统的引脚说明: MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图3是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。 图3 89C51的复位方式可以自动复位,也可以是手动复位,见下图。除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。 在编程时,EA/Vpp脚还需加上21V的编程电压。 3.2 LED循环说明 为了便于说明,不妨将东西方向允许直行命名为状

8、态1,东西方向允许左转命名为状态2,东西方向行车到南北方向行车的转换阶段命名为状态3,将南北方向允许直行命名为状态4,南北方向允许左转命名为状态5,南北方向行车到东西方向方向行车的转换阶段命名为状态6。假定左转绿灯点亮的时间为25s,直行绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒。黄灯每隔500ms亮一次,之后灭500ms(亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。各个状态之间的变换情况如下:状态1 状态2 状态3 状态4 状态5 状态6 状态1具体显示周期如下:25s20s5s50s状态1状态2状态3状态4状态5状态6南北路口直行绿灯亮左转绿灯亮黄灯亮缓

9、行红灯亮禁行东西路口红灯亮禁行直行绿灯亮左转绿灯亮黄灯亮缓行50s25s20s5s 图43.3单片机I/O口控制交通灯电路:protel电路原理图: LED灯采用共阳极接法,所有的LED灯阳极都接在5V电压一端,加上限流电阻,阴极接单片机的IO口,当IO口输出低电平时LED亮,通过设置不同的输出来改变LED的亮灭,实现交通灯的控制。上图为51单片机的最小系统,包括51的晶振电路和上电复位电路。3.4 倒计时显示电路Protel 电路原理图: 数码管采用共阴极数码管,位选端口直接接在IO口上,段码端口通过8个上拉电阻接在IO口上,通过IO口控制数码管显示时间。 3.4 紧急情况按钮电路 为了实现

10、此功能,利用单片机中断达到目的。利用两个手动开关分别接至单片机外部中断0和中断1,同时在软件设计时将其设为最高优先级。当开关S3按下,南北方向为红灯;开关S4按下,东西方向为红灯。按复位键退出中断,重新开始。电路图如下图。 3.5整体电路图Protel 电路原理图:上图是利用Altium Designer Release 10做出的整体设计原理图Protel 电路原理图的PCB图:上图是利用Altium Designer Release 10做出的51交通灯的印制电路板PCB图。Proteus仿真电路图:上图是利用proteus搭建的51交通灯仿真电路,截图状态为仿真运行开始状态。四 软件设计

11、 4.1 程序流程图: 4.2 LED红绿灯显示 当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。通过设置P1口不同时段输出电平的不同来控制发光二极管模拟交通灯的各种状态。 4.3倒计时显示 数码管的显示采用共阴极数码管的动态显示,通过P2口的P2.0至P2.3分别控制东西南北方向的数码管位选信号,然后通过P0口作为数码管的段选信号,通过位选信号的分时选择来控制数码管的个位,十位分别显示,又由于这期间的时间间隔很短,所以我们看起来数码管的个位十位是同时亮的。然后利用定时器倒计时,通过数码管显

12、示出来。 4.4 急通车控制 将一按钮接到单片机外部中断0端口。另一端接地,通过在程序里设置外部中断0为最高优先级。当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。 4.5程序代码 见附录。五 总结 回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单

13、的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过此次实践,我更加了解到自己对专业知识的不足,在课堂上我只能学习到理论知识,但实际动手能力却很差。在硬件设计中还是没有很大困难的。最困难的就是编写程序,加上对C语言程序的生疏,从一开始根本就不知道从何入手。对于所编写的程序,自己感觉从理论上是可以的,但一应用到硬件上就不行了。通过这次实习,使我的理论知识上升到了一个实践的过程。同时在实践中也加深了我们对理论知识的理解。总之,虽然实习的时间很短,但对我来说,收

14、获是很大的。我会更加珍惜我的学习,并且用实习的心得时时激励自己。在这次设计中我得到了同学很多的帮助,我非常感谢他们,而且在设计过程中得到了老师们的帮助,衷心感谢老师给我们提供了这次难得的实践机会!附录: /* 十字路口交通灯控制 C 程序*/#define uchar unsigned char#define uint unsigned int#include /*定义控制位*/sbit EW_LED2=P23; /东西数码管个位sbit EW_LED1=P22; /东西数码管十位sbit SN_LED2=P21; /南北数码管个位sbit SN_LED1=P20; /南北数码管十位_sbit

15、 SN_Yellow=P12;/南北黄灯sbit EW_Yellow=P16;/东西黄灯sbit EW_Red=P17;/东西红灯sbit SN_Red=P13;/南北红灯/sbit Busy_Btton=P32;bit Flag_SN_Yellow; /南北黄灯标志位bit Flag_EW_Yellow;/东西黄灯标志位char Time_EW;/东西方向倒计时单元char Time_SN;/南北方向倒计时单元uchar EW=50,SN=25,EWL=20,SNL=20; /程序初始化赋值,正常模式uchar EW1=50,SN1=25,EWL1=20,SNL1=20;/用于存放修改值的变

16、量uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x0,0x40; /数字段码uchar S4=0x7e,0x7d,0xe7,0xd7;/*延时子程序*/void Delay(uchar a) uchar i; i=a; while(i-); /*显示子函数*/void Display(void) char h,l; h=Time_EW/10; l=Time_EW%10; P0=tablel; EW_LED2=0; Delay(200); EW_LED2=1; P0=tableh; EW_LED1=0; Delay(

17、200); EW_LED1=1; h=Time_SN/10; l=Time_SN%10; P0=tablel; SN_LED2=0; Delay(200); SN_LED2=1; P0=tableh; SN_LED1=0; Delay(200); SN_LED1=1; /*T0中断服务程序*/ void timer0(void) interrupt 1 using 1 static uchar count; TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; if(count=10) if(Flag_SN_Yellow=1) /南北黄灯标

18、志位 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; SN_Yellow=SN_Yellow; if(Flag_EW_Yellow=1)/东西黄灯标志位 Time_EW=Time_SN; EW_Yellow=EW_Yellow; count=0; /*主程序开始*/void main(void) IT0=0; /定义外部中断触发方式 IT1=0

19、; TMOD=0x01;/定时器工作于方式1 TH0=(65536-50000)/256;/定时器赋初值 TL0=(65536-50000)%256; EA=1; /CPU开中断总允许 ET0=1;/开定时中断 EX1=1;/开外部INTO中断 EX0=1; TR0=1;/启动定时 P2=0xff; while(1) /*S1状态*/ 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关黄灯

20、显示信号 Time_SN=SNL; while(Time_SN0) P1=S1;/SN左拐绿灯亮,EW红灯 Display(); /*S3状态*/ P1=0xff; while(Time_EW0) Flag_SN_Yellow=1; /SN开黄灯信号位 EW_Red=0; /SN黄灯亮,等待停止信号,EW红灯 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=S2; /EW通行

21、,SN红灯 Display(); /*S5状态*/ Flag_EW_Yellow=0; /EW关黄灯显示信号 Time_EW=EWL; while(Time_EW0) P1=S3;/EW左拐绿灯亮,SN红灯 Display(); /*S6状态*/ 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=0xe7; Display(); Delay(200); while(1) void xint0() interrupt 0 /外部中断INT0 控制东西通行 南北禁止 P1=0x7e; Display(); Delay(200); while(1)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1