首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于AT89S52的交通灯综合实验设计

基于AT89S52的交通灯综合实验设计

摘要 介绍了模拟交通灯控制系统的综合实验设计,系统以AT89S52为核心,采用多种中断处理和P口分时复用功能来控制数码管和LED灯,实现了各种情况下交通灯的正常指示和倒计时功能。实验采用的软件有KeilC51、Proteus、Protel等,统计数据表明,通过实验能使学习者较完整地掌握单片机系统设计。
关键词 综合实验;交通灯控制;AT89S52

随着各种车辆的增多,经常遇到交通堵塞问题,作为交通控制主要工具的交通灯,扮演着重要的角色,本文设计了一种交通灯控制系统综合实验,该系统包括:主控制器AT89S52、键盘模块、数码管显示模块、LED灯模块等,为使学习能综合练习从输入到输出的完整过程。系统中可采用主控器的外部中断功能、定时中断功能、动态扫描功能等,这些功能放入一个程序中,可使学习者能更深刻地理解它们的实际应用。

1 实验的设计目的
(1)通过学习该实验,掌握单片机并行口传输数据的方法,以控制数码管和发光二极管的亮灭。(2)掌握用动态扫描方法解决多位LED共用一个P口显示的问题。(3)通过单片机程序的编写,熟练掌握计数器/定时器和中断的使用方法。(4)通过系统的硬件设计,掌握驱动芯片的使用及数码管的连接,将所学的电路理论联系到实践中去。

2 硬件设计
2.1 模拟交通灯控制系统框图
系统主要由单片机最小系统、功能键模块、特殊事件处理模块、接口电路、驱动电路及LED显示模块组成。其中,单片机为系统的主控部件,用以控制其他模块协调工作,文中选择AT89S52为主控芯片。LED显示模块用以显示各车道的通行情况及时间(红灯表示该车道禁止通行;绿灯表示该车道允许通行,黄灯为中间过渡时间);驱动电路用以驱动LED和数码管工作;特殊事件处理模块以外部中断方式进入;接口电路则起到各模块间的连接作用,以使整个系统正常工作。模拟交通灯控制系统的硬件框图如图1所示。




2.2 各模块的硬件结构
(1)LED板模块。由于交通实际情况是右转不受红绿灯限制,车辆直行与人行道的直行一致,因此该实验设计每块LED板包含一个两位数码管U1、6个LED灯D1~D6,其中,6个LED灯排成两行,每行有红(R)、黄(Y)、绿(G)3个灯,上面一行指示车辆和人行的直行(S)通行,下面一行指示车辆的左转(L)通行。6个LED的阴极连接到一个公共段G1上,当G1为低电平,a为高电平时就可以点亮D1;同样,若要点亮D6,只要使G1为低电平,f为高电平即可。
(2)驱动电路。ULN2003是常见的驱动芯片,一片可提供8路驱动信号,两片ULN2003共16路,用于驱动8位数码管及4组2×3LED灯的阴极,其中U2为LED灯的阴极驱动芯片,U3为数码管的驱动芯片;8个三极管Q1~Q8组成的共集电极电路用于驱动8位数码管的段及LED灯的阳极。
(3)单片机接口电路。系统中的单片机选择AT9S52芯片,对交通灯的控制主要用其中的定时器完成,一方面要完成对各模块的控制,另一方面是协调好各模块的时序及口线冲突问题。如图1所示,P1为数码管段码和LED灯阳极的控制口,P0和P2分别为数码管和LED灯的位选信号控制口。
(4)按键模块。图1中,在P3口的P3.2~P3.6引脚各装有一个按键K1~K5,其中,K1用于外部中断0发出一单脉冲向CPU申请中断,K2用于外部中断1发出一单脉冲向CPU申请中断进行模式选择,K3~K5是设置倒计时时间的功能键,K3用于数码管的换位,K4用于进行加1操作,K5用于确认操作。3 软件设计
3.1 工作模式说明
系统分3种工作模式:正常模式、特殊事件模式和时间设置模式,并且通过图1中K1、K2按钮可实现模式选择。交通灯的主要状态示意图,如图2所示,南北方向交通灯亮灭顺序及时间长短如图3所示。





(1)正常模式。
状态1 如图2程序开始运行先南北段通行60 s,其中车辆和人行道的直行通行40 s,数码管显示时间40 s,此时南北段直行通行绿灯亮(SG)、左转红灯亮(LR),东西段直行左转红灯都亮60 s,同时南北段和东西段方向的数码管分别从40 s和60 s开始倒计时。
状态2 南北段直行倒计时至最后5 s时,直行绿灯同时黄灯闪烁(SG SY);左转红灯同时黄灯闪烁(LR LY),如图3所示。
状态3 如图2所示,南北段直行倒计时为0时,数码管显示时间从20 s开始倒计时,直行通行红灯亮(SR)、左转绿灯亮(LC),表示禁止车辆和人的直行,允许左转,左转通行20 s,东西段红灯继续倒计时。
状态4 南北段左转倒计时至最后5 s时,直行红灯继续亮(SR),左转绿灯同时黄灯闪烁(LG LY),如图3所示。
状态5 南北段左转倒计时为0时,数码管显示时间从60 s开始倒计时,直行红灯亮(SR)、左转红灯亮(LR),表示禁止南北段的直行和左转。东西段状态与南北段交替,开始允许直行通行40 s后左转通行20 s,再循环至状态1。
(2)特殊事件模式。特殊事件指临时需紧急通行的事件,比如急救车、消防车、警车等。此时,应使东西南北4个方向全亮红灯,并延时10 s,以便特殊事件得到解决。
(3)时间设置模式。如果某路段的时间初始值与该路段的车辆通行状况不符,可按下中断键进入时间设置模式,对该路段各个路口的直行、左转时间长度进行设置。
3.2 程序流程图
软件设计主要用C语言编程,总程序分为3部分:主程序;显示控制、状态处理等子程序;定时、特殊事件和时间设置等中断处理程序。
(1)主程序流程。系统以正常状态下交通信号灯各状态的循环显示为主程序,如图4所示。在主程序中,调用数码管倒计时子程序和中断延时以实现各种交通状态。


返回列表