基于单片机的智能交通灯的设计说明.docx

上传人:b****9 文档编号:25401078 上传时间:2023-06-08 格式:DOCX 页数:19 大小:639.79KB
下载 相关 举报
基于单片机的智能交通灯的设计说明.docx_第1页
第1页 / 共19页
基于单片机的智能交通灯的设计说明.docx_第2页
第2页 / 共19页
基于单片机的智能交通灯的设计说明.docx_第3页
第3页 / 共19页
基于单片机的智能交通灯的设计说明.docx_第4页
第4页 / 共19页
基于单片机的智能交通灯的设计说明.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于单片机的智能交通灯的设计说明.docx

《基于单片机的智能交通灯的设计说明.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能交通灯的设计说明.docx(19页珍藏版)》请在冰豆网上搜索。

基于单片机的智能交通灯的设计说明.docx

基于单片机的智能交通灯的设计说明

1总体介绍

1.1芯片简介

AT89C5X芯片简介,AT89C51是AT89C5X系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

AT89C51部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

AT89C51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

AT89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

AT89C51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

AT89C51置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

AT89C51置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但AT89C51单片机需外置振荡电容。

1.2技术指标

用AT89C51单片机设计一个智能交通灯控制系统,使其能模仿城市十字路口交通灯的功能,并对满足特殊的控制要求。

每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯表示该道路允许通行。

该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。

交通等示意图如图1-1所示

 

图1-1交通灯示意图

1.3设计指标

该控制系统能控制东西南北四个路口的红黄绿灯正常工作。

东西和南北方向分时准行和禁行。

两垂直方向的准行时间均为60s或120s,可以进行控制转换。

准行方向亮绿灯与禁行方向亮绿灯55s后,四个产品同时加亮一黄灯进行闪烁,以警告车辆及行人,准行方向与禁行方向即将改变。

四个道口用数码管显示路人行或禁行的剩余时间

在交通情况特殊情况下可以通过K1、K2、K3按键对交通灯进行控制。

当有紧急情况发生时按下K1键四个路口同时加亮黄灯进行闪灯且倒计时显示关闭。

黄灯闪烁完毕后四路口全变红灯禁行,处理紧急情况。

有某方向上车辆过多,可以使用K2、K3键控制东西或南北方向通行,另一方向禁行。

按下控制键后先在四个路口加5s的黄灯闪烁.

 

2系统硬件电路的设计

2.1AT89C5X单片机部结构及引脚

在AT89C5X系列单片机中,有2个系列:

子51系列和52子系列。

每个系列有若干种型号。

51系列有AT89C51、8751和8031。

我们以AT89C5X系列单片机的典型型号AT89C51为例来介绍其结构和功能。

AT89C5X的部结构框图2-1如下:

 

图2-1AT89C51单片机部结构

分析上图,并按其功能部件划分可以看出,AT89C5X系列单片机是由8大部分组成的,分别为:

一个8位中央处理器CPU(又成为微处理器)、128个字节的片数据存储器RAM、4KB的片程序存储器ROM或EPROM、18个特殊功能寄存器SFR、4个8位并行输入输出I/O接口、1个串行I/O接口,完成单片机与其他微机之间的串行通信、2个定时器/计数器T0、T1、一个具有5个中断源,2个可编程优先级的中断系统。

它可以接收外部中断申请、定时器/计数器中断申请和串行口终端申请。

AT89C5X系统的引脚说明:

AT89C5X系列单片机中的8031、AT89C51及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

8951的复位方式可以自动复位,也可以是手动复位。

除此之外,RESET是复用引脚,Vcc掉电其间,此引脚可以接备用电源,以保证单片机部RAM的数据不丢失。

在编程时,EA/Vpp脚还需加上21V的编程电压。

AT89C51的引脚图如图2-2所示

 

图2-2AT89C51引脚图

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片振荡器。

石晶振荡和瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

芯片擦除:

整个EPROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

2.2单片机的特点与应用

单片机的特点:

控制功能强、抗干扰性强,可靠性高,工作温度围宽、开发周期短,性价比高,易于产品化。

单片机的应用领域:

智能化仪表、实时工业控制、机电一体化产品、智能接口、办公自动化、商业营销、家用电器。

2.3主控制系统

一个完整的交通灯控制系统相当于一个简单的单片机系统。

该系统有交通灯设置电路、单片机、显示电路、复位电路和震荡电路等构成。

单片机是集成的IC芯片,只需根据实际设计要求选型。

其他部分都需要根据应用要求和性能指标自行设计。

硬件电路图如图2-3所示

图2-3智能交通灯系统的硬件电路

单片机的P0口用于控制8255。

8255的PA口和PB口用于控制南北及东西的通行灯。

PC口及P3.0到P3.2口用于4组2位LED计时器的控制,特种车通过时使用外中断0口(P3.3),手动自动转换采用PC口按键。

选择8255的工作方式0,在这种情况下三个端口都可以由程序设置为输入和输出。

2.3.1系统时钟、复位电路设计

单片机的Vcc引脚接+5V的电源,Vss引脚接地。

复位电路为独立的复位电路。

RC上电复位电路接施密特电路输入端,施密特电路输出接AT89C51和外围复位电路,这样可是系统可靠的复位。

给RST端持续高电平,超过两个时钟周期,则AT89C51单片机复位。

其复位电路如图2-4所示

 

 

图2-4系统的复位电路

时钟电路由两个30PF的微调电容和一个晶振组成。

AT89C51部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。

2.3.2系统计时显示模块的设计

计时显示模块显示PB、P1、P2的输出数据,用于显示通行或禁行时间,且可以实现60秒和120秒的交替显示。

控制开关由PC0、PC1控制。

用软件编程,采用中断、查询的方法检测按键按下的位置,全采用外部寻址方式。

数码显示硬件采用高亮7段LED发光数码管显示,驱动电流由单片机与8255共同提供。

PA口输出控制交通灯的红绿灯的交替亮灭。

用软件编程对外部I/O口送数据,从而实现交通灯的控制。

2.3.3紧急状况模块的设计

当特种车辆到来时能自动关闭所有绿灯,所有交通灯显示黄色闪烁状态,让特种车通过。

设计中采用外部中断的方式作为特种车通行的状况,使用外部中断0来影响特种车的通行要求。

当有特种车辆通过时,按下K1键,低电平经与门连接到外部中断引脚P3.2,是系统进入中断过程,在中断服务程序中,使交通灯显示黄色闪烁的状态。

某方向上车辆过多,可以使用K2、K3键控制东西或南北方向通行,另一方向禁行。

按下控制键后先在四个路口加5s的黄灯闪烁。

K2、K3键也通过与门连接到外部中断引脚P3.2,采用键盘查询的方式检测哪个按键按下。

当K2键按下时,东西方向直亮绿灯,南北方向直亮红灯。

K3键按下时,南北方向直亮绿灯,东西方向直亮红灯。

用以模拟某个方向车辆过多的状态。

3软件设计流程及描述

3.1软件设计

先了解实际交通灯的变化规律,假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北绿灯;然后转状态1,南北绿灯灭黄灯闪,延时5秒,东西仍然红灯。

再转状态2,东西绿灯通车,南北红灯。

过一段时间转状态3,东西绿灯灭黄灯闪,延时5秒,南北仍然红灯,最后回到状态1,不断循环。

通过外部寻找的方式,将数据送至PA口,PA口接交通灯,通过对PA口的赋值,实现对交通灯的控制。

数码显示的个位和十位的数据通过P2口和P1口传送,百位数据传送用PB口。

软件调试:

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

3.2主程序的设计思路

程序的设计流程图反映了系统的设计思路,此交通灯控制器的程序流程图如图3-1所示

开始

图3-1主程序流程图

3.3程序设计思路

3.3.1每秒钟的设定

延时方法可以有两种一种是利用MCS-51部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。

我们采用在主程序中设定一个初值为10的软件计数器和使T1定时1000毫秒.这样每当T1到1000毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。

在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。

为零表示1秒已到可以返回到输出时间显示程序。

其程序流程图如图3-2所示

 

图3-2定时中断流程图

3.3.2软件延时

MCS-51的工作频率为2-12MHZ,我们选用的8051单片机的工作频率为6MHZ。

机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。

我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

DEL为一个双重循坏循环次数为126*2=252次,所以延时时间=0.1s,由于单片机的运行速度很快其他的指令执行时间可以忽略不计。

该程序的流程图如图3-3所示。

 

图3-3延时程序的程序流程图

3.3.3外部中断控制

当有紧急情况发生时按下K1键,进而产生外部中断,改变程序入口控制值,则四个路口同时加亮黄灯进行闪灯(闪灯时间为5s)且倒计时显示关闭。

黄灯闪烁完毕后四路口全变红灯禁行,处理紧急情况有某方向上车辆过多,可以使用K2、K3键产生外部中断控制东西或南北方向通行,另一方向禁行。

按下控制键后先在四个路口加5s的黄灯闪烁。

该程序的流程图如图3-4所示。

 

图3-4外部中断流程图

3.3.4时间及信号灯的显示

8051虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。

因此,8051通常需要扩展。

由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O端口,显然8051的端口是不够,需要扩展。

扩展的方法有两种:

(1)借用外部RAM地址来扩展I/O端口;

(2)采用I/O接口新片来扩充。

我们用8255并行接口信片来扩展I/O端口。

当定时器定时为1秒时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。

由于发光二极管为共阴极接法,输出端口为高电平,对应的二极管发光,所以可以用置位方法点亮红,绿,黄发光二极管。

LED灯的显示原理:

通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如SP,g,f,e,d,c,b,a管角上加上7FH所以SP上为0伏,不亮其余为TTL高电平,全亮则显示为8。

 

4硬件调试与软件仿真

系统的硬件电路的设计,当启动系统时,东西红灯,南北绿灯。

系统显示状态如图4-1所示

 

图4-1东西红灯南北绿灯时系统的显示结果

此种状态下,数码管从55倒计时显示到1,然后黄灯闪烁5秒钟图途中蓝点表示低电平,红点表示高电平。

东西绿灯结束后,黄灯闪烁,已警示车辆及行人,通行方向与禁行方向即将改变。

其系统显示状态如图4-2所示

 

 

图4-2黄灯闪烁时系统的显示结果

此时,南北绿灯即将变红,东西红灯即将变绿,以警告车辆及行人,通行与禁行方向即将改变。

黄灯闪烁时间5秒钟。

黄灯闪烁结束后,禁行与通行方向改变,变为南北红灯,东西绿灯。

系统显示状态如图4-3所示

 

图4-3东西绿灯南北红灯时系统的显示结果

此种状态下,南北方向红灯禁行,东西方向绿灯通行。

持续时间55秒钟。

数码管显示数字从55递减到1。

数码管递减到1后,黄灯开始闪烁,其显示结果如图4-4所示

 

图4-4黄灯闪烁时系统的显示结果

当今有紧急状况,如特殊车辆通过时,用外部中断的方式模拟,按下K1键,其系统显示结果如图4-5所示

 

图4-5按下K1键时系统的显示结果

此种状态下,仅适用于紧急状况。

表示只有特殊车辆(如救护车)能够通行,其他车辆全禁行。

当紧急状态解除后,在摁下K1键,又回到系统原来的状态。

当某个方向车辆或行人过多时,让一方向通行,另一方向禁行,可通过K2,K3键控制,当东西方向车辆多时,其系统显示结果如图4-6所示

 

图4-6按下K2键时系统的显示结果

此时表示东西方向车辆多,通过按下K2键使东西方向通行,南北方向禁行,当路口情况恢复正常后,按下K2键回到原来的状态。

当南北车辆较多时,其系统显示结果如图4-7所示

 

图4-7按下K2键时系统的显示结果

此时表示南北车辆较多,通过按下K3键使南北方向通行,东西方向禁行。

当路口情况恢复正常后,按下K3键回到原来状态。

当两路口通行方向为120秒时,其系统显示结果如图4-8所示

 

图4-8通行方向为120秒时系统的显示结果

此时数码管计时时间为120秒,通过按键开关一端连在PC7和PC5,另一端连在PC0和PC1。

通过按下两按键其中的一个实现计时时间60秒和120秒间的切换。

 

5总结

本系统是以单片机AT89C51芯片为核心部件,实现了能根据实际车流量通过AT89C51芯片设置红、绿灯点亮时间的功能。

此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于交通灯这方面的知识。

通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。

使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。

加强了我动手、思考和解决问题的能力。

电路原理和连接,和芯片上的选择,也略懂。

巩固数字逻辑电路的理论知识,并对芯片有了新的认识,懂得它的功能与其它芯片替换等.更重要的是如何将逻辑电路灵活运用于实际生活。

我觉得做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

比如一些芯片的功能,平时看课本,这次看了,下次就忘了,主要是因为没有动手实践过吧!

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以做课程设计对我们的作用是如此之大。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

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

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