为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于AT89C51单片机的交通灯控制系统设计

2012-03-11 38页 doc 520KB 260阅读

用户头像

is_899910

暂无简介

举报
基于AT89C51单片机的交通灯控制系统设计盐城师范学院毕业论文(设计) 基于AT89C51单片机的交通灯控制系统设计 电子信息工程 苏 丽 指 导 教 师 周加超 摘 要:本文研究的是以AT89C51单片机为控制器的智能交通灯控制系统,该系统通过红外接收器接收信号实现特种车辆(119、120等)自动放行;通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现车流动态调节,并由74HC244驱动LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用双色高亮度发光二极管,设计中还添加了声音提示电路,方便盲人过人行道。本设计是...
基于AT89C51单片机的交通灯控制系统设计
盐城师范学院毕业论文(设计) 基于AT89C51单片机的交通灯控制系统设计 电子信息工程 苏 丽 指 导 教 师 周加超 摘 要:本文研究的是以AT89C51单片机为控制器的智能交通灯控制系统,该系统通过红外接收器接收信号实现特种车辆(119、120等)自动放行;通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现车流动态调节,并由74HC244驱动LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用双色高亮度发光二极管,设计中还添加了声音提示电路,方便盲人过人行道。本设计是以软件和硬件相结合的方式来实现,文中给出了具体的硬件电路图和软件流程图及程序源码。 关 键 词:智能交通灯,AT89C51,车辆检测,74HC244,LED 1 引言 在人类的生活、工作环境中,交通扮演着极其重要的角色,人们无时无刻不与交通打交道。随着我国国民经济的迅速发展和人口的快速增加,人们对各种交通车辆的需求更是越来越大,交通工具的迅猛发展以及道路资源的局限性,给城市交通带来巨大的压力,交通拥堵问题已成为影响现代城市可持续发展的重要因素。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。 作为车辆通行瓶颈所在的十字路口,通过研究其车辆通行规律,找出提高其车辆通行效率,对缓解交通拥堵,提高道路畅通率具有十分现实的意义[1]。国内的在十字路口的交通灯,一般用红 、绿 、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车。且绝大多数交通灯的时间都是设定好的。 现在十字路口的交通灯存在着两车道的车辆轮流放行时间相同且固定,一般主干道车辆较多,放行时间长些;副干道车辆较少 ,放行时间短些的问题,甚至可能出现一条车道上排着很长的车队,而另一条车道上没有车辆的情况;再者没有考虑到当有紧急车辆(如119、120)通过时,两车道应自动转为特种车辆放行,其他车辆禁止通行的状态;还有欠缺对盲人这个特殊群体穿过道口时所遇困难的考虑[2]。传统的交通灯控制系统存在的这些缺点,说明传统的交通灯控制系统已经不能适应当前城市交通发展的要求,不能最高效地利用城市的交通道路资源。 城市交通控制系统是一个综合度高而又复杂的问题,关系到政策、机构、体制、管理、成本、基础设施建设和投资各方面问题。道路交通控制系统在近百年的发展中,经历了从手动到自动、从无感应控制到有感应控制、从固定配时到灵活配时、从单点控制到干线控制、从区域控制到网络控制的长远发展历程。我国的交通是从新中国成立之后才开始发展的,起步较晚,但随着我国经济和社会高速发展对交通的需求急剧增加,对原有交通控制系统提出了严峻的挑战。城市交通发展的规划应在广泛借鉴和吸取国外先进经验的基础上,结合我国城市交通运输的现状和存在的问题,建立并健全适合我国交通的城市交通控制系统。 近年来,国家虽然不断加大城市道路建设的力度,但仍赶不上城市机动车的增长速度,我国城市仍普遍存在道路面积偏低的问题,这也是制约着我国大城市发展的一个重要原因。随着交通需求越来越旺盛,车多、路多了,但运营成了瓶颈,运输效率逐步下降。我国与发达国家在车辆、道路、交通管理系统、人工智能技术在交通管制中的应用、信息采集和提取等方面存在着很大的差距。由于交通控制系统不健全等原因,我国交通道口的交通事故率居高不下,且随着城市交通运量逐年的增长,城市车流行驶速度逐年下降,这些都是由于交通通行不佳。 针对整个交通控制系统的发展状况,本设计根据道路交通拥挤,十字路口经常出现拥堵的情况,运用智能、集成,且功能强大的单片机芯片为控制核心,设计出了十字路口智能交通灯控制系统,以改善十字路口实时通行状况。 本设计与传统交通灯比较,有以下几点改进措施:1)可根据十字路口的各道口车流量自动调节通行时间;2)拥有车流量检测电路和特种车辆自动通行控制模块,设计紧急切换开关;3)设置盲人提示音电路,考虑到社会弱势群体通行问题;4)进行软件系统的设计,采用汇编语言编写,简单、方便[3]。 智能交通灯控制系统将有效地解决日趋严重的道路拥挤现象,缓解城市的交通压力,减少交通事故发生率;减少了交通管理人员的大部分工作量,并为人们的出行节省了大量时间,创造出更多的社会价值,提高经济效益。 2 设计及论证 2.1 方案设计论证 2.1.1 交通灯控制方法简介 目前,国内的交通灯有很多,有应用PLC对交通灯控制系统实现控制的设计;有应用CPLD实现对交通灯控制系统的设计;有应用单片机对交通灯控制系统实现控制的设计[4]。交通灯一般设置在十字路口,用红、绿两种颜色的指示灯,并加上显示倒计时的计时器来控制车辆通行。本设计采用AT89C51单片机作为控制器,采用3位LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用的是高亮发光二极管;LED显示采用动态扫描,以节省端口数。特种车辆通行采用红外线发射及接收识别方法实施中断完成,采用霍尔车辆检测传感器检测电路完成车流量大小的检测。由于AT89C51单片机自身带有2个定时/计数器、5个中断源,端口刚好满足要求。该系统具有电路简单,设计方便,显示亮度高,耗电少,可靠性高等优点。 2.1.2 交通灯控制系统的总体方案设计 本设计研究的是基于AT89C51单片机的交通灯智能控制系统。根据交通控制系统的设计原理,阐述了硬件和软件方面开发的整个过程。主控系统采用AT89C51单片机作为控制器,控制通行倒计时及右拐、右拐、直行、行人的通行,占用端口少,耗电也最小。系统电源采用独立的+5V稳压电源,有各种成熟电路可供选用,使此方案可靠稳定[5]。该设计可直接在I/O口上接按键开关,精简并优化了电路。结合实际情况,显示界面采用点阵LED数码管动态扫描的方法,满足了倒计时的时间显示输出和状态灯提示信息输出的要求,减少系统的复杂度。 2.2 交通灯控制系统硬件框图 该交通灯控制系统有以下几个部分组成:车辆检测、紧急控制、单片机、驱动和显示电路[6]。如图2.1所示: 图 2.1系统硬件组成总框图 2.3 交通灯控制系统工作原理 本系统运用单片机对交通灯控制系统实施控制,通过直接控制信号灯的状态变化,指挥交通的具体运行,运用了LED数码管显示倒计时以提醒行驶者,更添加了盲人提示音电路,方便视力障碍群体通行,更具人性化。在此基础上,加入了特种车辆自动通行控制模块和车流量检测电路为系统采集数据,经单片机进行具体处理,及时调整通行方向。由此,本设计系统以单片机为控制核心,构成最小系统,根据特种车辆自动通行控制模块、车辆检测模块和按键设置模块等产生输入,由信号灯状态模块,LED倒计时模块和盲人提示音模块输出[7]。系统进入工作状态,LED数码管实时显示数据倒计时,执行交通灯状态显示控制,在此过程中若有控制信号和实时车流量检测信号,可对异常状态进行实时控制,随时调用中断,达到修正通行时间满足不同时间不同路况的需求。 3 交通灯控制系统硬件设计 3.1 系统硬件组成及原理图 根据要实现的具体功能,经过比较,我选用AT89C51单片机及外围器件构成最小控制系统,4组双色灯构成信号灯指示模块,东西南北方向分别构成倒计时显示模块,CCD采集车辆数量数据,红外线接收器接收中断信号,使实时中断来响应特种车辆的通行要求,接LED显示器[8]。硬件原理图如图3.1所示: 图3.1硬件电路原理图 3.2 单片机AT89C51 AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器(FPEROM—Flash Programmable and Erasable Read Only Memory) 和128×8位的随机存取数据存储器(RAM),该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS-51系统产品兼容,AT89C51单片机功能强大,具有8Kb中央处理器(CPU)和4KbFlash程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域[9]。 3.2.1 AT89C51的主要性能 ·内含4Kb可重编程的FPEROM; ·与MCS-51产品指令系统完全兼容; ·128×8位的内部RAM; ·4个8位(32根)双向可位寻址的I/O端口; ·2个16位的计数/定时器; ·全双工方式的串行通道(UART); ·6个中断源; ·5个向量二级中断结构; ·最高时钟振荡频率可达12MHz; ·指令集中64条为单周期指令,支持6种寻址方式,共111条指令; ·低功耗空闲和掉电方式; ·片内振荡器和时钟电路。 3.2.2 AT89C51的引脚功能 AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意及功能分类如图3.2所示。 图3.2 89C51单片机引脚图 各引脚功能说明如下: (1)主电源引脚 Vcc(40脚):接+5(1±20﹪)V电源正端; Vss(20脚):接地。 (2)I/O引脚 P0口(39~32脚):P0.0~P0.7统称为P0口。P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线和双向数据总线。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时P0外部必须被拉高。 P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P1口被外部下拉为低电平时,输出电流,是因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在Flash编程和校验时,P1口作为第八位地址接收。 P2口(21~28脚):P2.0~P2.7统称为P2口,一般作为准双向I/O使用。P2是一个带内部上拉电阻的8位双向I/O口。P2的输出缓冲器可驱动4个TTL逻辑门电路。当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输出其特殊功能寄存器的内容。在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。 P3口(10~17脚):P3.0~P3.7统称为P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。此时由于外部下拉为低电平,P3口将输出电流(IIL)。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口第二功能祥见表3.1 : 表 3.1 P3口第二功能表 口线 第二功能 信号名称 P3.0 RXD 串行数据接受 P3.1 TXD 串行数据发送 P3.2 EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),INT0) 外中断0申请 P3.3 EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),INT1) 外中断1申请 P3.4 T0 定时器/计数器0计数输入 P3.5 T1 定时器/计数器1计数输入 P3.6 EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),WR) 外部数据存储器写选通 P3.7 EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),RD) 外部数据存储器读选通 (3)外接晶体引脚 XTAL1(19脚):它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。 XTAL2(18脚):它在单片机内部是片内振荡器的反向放大器的输出端。当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。 (4)控制线 ALE/EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),PROG) (30脚):地址锁存允许/编程信号。在访问片外程序存储器期间,此信号可用于控制锁存P0输出地址总线的低8位,ALE以每机器周期两次进行信号输出;在FLASH编程期间,此引脚用作编程脉冲EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),PROG)的输入端。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率fosc的1/6,可作为对外输出的时钟脉冲或用于定时目的。但要注意的是:在访问片外数据存储器期间,ALE脉冲会跳空一个。若想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE执行MOVX,MOVC指令使ALE起作用。另外,该引脚将被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),PSEN)(29脚):片外程序存储器读选通信号输出端,低电平有效。在由外部程序存储器读取指令或常数期间,每个机器周期内EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),PSEN)两次有效,P0口读回指令或常数。当访问内部程序存储器时,EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),PSEN)信号不跳变。 RST/VPD (9脚):RST即RESET,VPD为备用电源,该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。 当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。 EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),EA)/VPP(30脚):EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),EA)为片外程序存储器选用端,访问内部程序存储器控制信号。当EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),EA)端接高电平时,CPU访问内部程序存储器。当EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),EA)接低电平时,则在此期间外部程序存储器(0000H-FFFFH),则强调CPU访问外部存储器,而不管程序计数器的内容是多少。此外,该引脚还用做EPROM编程电压的输入端。在编程期间,此引脚用作21V编程电源VPP的输入端。 3.2.3 AT89C51的内部结构 89C51单片机内部组成结构中包含运算器和控制器(CPU)、片内存储器、4个并行I/O接、串行口、定时/计数器、中断系统、振荡器等功能部件[10]。其内部结构框图如图3.3所示。图中PC是程序计数器;PSW是程序状态字寄存器;DPTR是数据指针寄存器。 图3.3 AT89C51单片机内部结构框图 ·运算器和控制器 89C51的运算器和控制器功能类似于一般微机中的微处理器(CPU),是单片机的核心部件,它决定了单片机的主要功能特性。它完成逻辑算术运算并协调单片机其它各部分的工作。各种算术、逻辑运算所涉及到的寄存器包括:累加器ACC、寄存器B、暂存器1(TEMP1)和暂存器2(TEMP2)、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。 ·存储器 MCS-51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存储器与数据存储器统一编址。在89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。它们又可以进一步分成内部或外部两类。 ①程序存储器 程序存储器内部和外部是统一连续编址的,内部占用地址空间的低4KB,地址0000H~0FFFH,外部地址范围1000H~FFFFH,共60KB。程序存储器主要用来存放程序和常数。当程序计数器PC由内部ROM开始执行到外部ROM时,会自动寻址外接程序存储器。 程序地址空间原则上可由用户任意安排,但复位和中断源的程序入口地址在51系列单片机中是固定的,用户不能改变。入口地址见表3.2。复位后,CPU从0000H地址开始执行程序。其他地址为中断服务程序入口地址,响应某个中断时,将自动从其对应的入口地址执行中断服务程序。 表 3.2 51单片机复位、中断入口地址 操 作 入口地址 复位 外部中断0 0003H 定时器/计数器0溢出 000BH 外部中断1 0013H 定时器/计数器1溢出 001BH 串行口中断 0023H 定时器/计数器2溢出或T2EX端负跳变(52子系列) 002BH ②数据存储器 MCS-51系列单片机数据存储器也有内部、外部之分。但与程序存储器不同,片内、片外存储器是分别独立编址的,片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块,其中片内数据存储器有128个字节,其编制为00H~FFH;特殊功能寄存器也占128个字节,其编制为80H~FFH;二者连续而不重叠。外部RAM地址范围0000H~FFFFH,共64KB。内部存储器可直接寻址。尽管片内、片外地址空间的低256B有重叠,但寻址并不会造成混乱。这是因为片内、片外存储器使用不同的指令(MOV和MOVX)。扩展的I/O地址也占用数据存储器空间。对I/O端口操作无须特殊指令且访问程序存储器是用EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(——————),PESN)信号选通,而访问片外数据存储器时,由EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),RD)信号(读)和EQ \* jc2 \* "Font:Times New Roman" \* hps12 \o\ad(\s\up 11(————),WR)信号(写)选通。 ③寄存器区 内部数据存储器分为4个区域,数据RAM用于存放临时变量,下面介绍其他三个寄存器区: a) 工作寄存器区 它占用地址00~FFH的32个内存单元,又分成4个区。每个区有R0~R7共8个工作寄存器。工作寄存器区的选择又由程序状态寄存器PSW的第4位和第3位(RS1和RS0)共同指定。单片机复位时,RS1和RS0为零,故指向0区。通过位操作改变RS1和RS0的值,可以方便地指向任一个区间。 b) 位寻址区 每位都有一个独立的8位地址(占据空间00~7F),共128位。此外,在专用寄存器SFR中还有一部分是可以位寻址的(有些位可能无定义)。 c) 专用寄存器区 共有21个专用寄存器SFR,位于80~FFH地址空间。这些寄存器又可以分为CPU专用寄存器和接口专用寄存器。CPU专用寄存器前面己经提过,而接口专用寄存器包括两部分。一部分就是单片机的I/O端口P0~P3,分别编址为80H、90H、A0H、B0H,共4个单元,32位,每一位都可以独立寻址。另一部分为定时/计数器,串行口、中断的一些控制寄存器。 ·定时/计数器 89C51有两个16位定时/计数器(T0,T1)。在定时功能中,每个机器周期定时器加1,由于l个机器周期包含12个振荡周期,因而它的计数频率为1/12,即由定时器计数到的脉冲为振荡周期频率的1/12。 在计数器功能中,在外部事件相应输入脚(T0或T1)产生负跳变时,计数器加1。由于计数器的计数过程需要2个机器周期(24个振荡周期),所以,最高的计数频率为振荡频率的1/24。 这两个定时/计数器的工作状态(定时/计数)及工作方式(方式0~方式3)的选择是由定时/计数器方式寄存器(TMOD)中的每位值所决定的。定时/计数器的控制由控制寄存器(TCON)完成。 ·I/O口 89C51不仅有4个8位并行口,供单片机和外部RAM、EEPROM等扩展连接用或与其它设备交换信息用,它还有一个全双工串行口,能同时发送和接收数据。在前面的引脚功能中已对并行口作了简要介绍,在此就主要介绍一下串行口。 串行口也就是P3.0和P3.1的第二功能。它既能工作在异步方式,又能工作在同步方式。该串行口是全双工的,它在物理上分为两个独立的发送缓冲器和接收缓冲器SBUF,但它们占用一个特殊功能寄存器的地址99H,只需对SBUF进行写或读的操作,就可以同时发送和接收了。串行口的工作方式选择、波特率选择、串行通信的完成,由两个特殊功能寄存器,即串行口控制寄存器SCON和功耗控制寄存器PCON完成。 ·中断 89C51单片机提供了6个中断源,而每一个中断源都能被程控为高优先级或低优先级。其中5个中断源包括2个外部中断和3个内部中断。两个外部中断源为INT0和INT1,外部设备的中断请求信号、掉电等故障信号都可以从INT0而和INT1引脚输入,向CPU提出中断申请,INT0和INT1的中断请求标志IE0、IE1分别设在TCON寄存器的TCON.1、TCON.3。3个内部中断源为T0、Tl溢出中断源及片内串行发送或接收中断源,T0、Tl中断请求标志TF0和TF1分别设在TCON寄存器的TCON.5、TCON.7,串行发送或接收中断标志TI或RI设在SCON寄存器的第SCON.0、SCON.1。5个中断源中的一个、几个或全部中断源的开、关由中断允许寄存器(IE)完成,而每个中断源的优先级别的高低由中断优先级控制寄存器(IP)完成。89C51单片机中断源简要特性见表3.3。 表3.3 中断源特性表 名称 符号 标志符号 标志符号位置 矢量地址 优先级别 外部中断 INT0 IE0 TCON.1 0003H 最高 最低 定时器0溢出中断 TF0 TF0 TCON.5 000BH 外部中断1 INT1 IE1 TCON.3 0013H 定时器1溢出中断 TF1 TF1 TCON.7 001BH 串行口中断 R1+T1 R1 SCON.0 0023H T1 SCON.1 3.3 各模块电路 3.3.1 主控制系统 主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS-51系列产品指令系统及引脚。片内含4KB的可重复编程的Flash程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(1±20﹪)V的电源电压, 128×8位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。 单片机的P1口及P2口分别应用于控制南北及东西方向的通行灯,P0口及P3.0~P3.2口应用于4组LED计时器的控制,T0和T1分别作为东西方向和南北方向和车流量流量控制,INT0和INT1分别用于东西方向和南北方向的特种车辆通行紧急转换电路[11]。 3.3.2 车辆检测电路 为了达到对红绿灯开启时间的控制,需要对十字路口各个方向的车辆进行检测,本文研究的是用CCD图像传感器实时拍摄(本文选取距十字路口100m内)路况,采用微分二支电路处理CCD信号,使成二值化信号,单片机再读入数据,判断车队长度。实现对路口红绿灯时间进行动态调节。这样就可以大大提高车辆通过率,有效缓解交通压力。车辆检测电路如图3.4所示。 图3.4 车辆检测电路 3.3.3 通行灯输出控制 道口交通灯指示采用高亮度红绿双色发光二极管,左拐、右拐、直行及行人各一个。当发光电流为6mA时,可按公式R=(5-1.8)/0.006计算,限流电阻为510Ω。因为南北通行时双向指示牌相同,所以每个端口应具有12mA的吸收电流的能力,而人行道口按4个灯算,因此需24mA的吸收电流,在单片机的输出口接驱动电路74HC244,保护单片机的输出端口[12]。道口指示灯电路如图3.5所示。 图3.5 城市道口交通指示灯电路 3.3.4 时间显示电路 红绿灯通行时间采用数码管显示,这是一种很好的方法。通行剩余时间采用高亮7段LED发光数码管,采用共阳数码管。由于每个道口时间显示相同,4组三极管就需192mA,所以设计中采用三极管9012。因为每段输出口需吸收24mA电流,所以电路设计中使用驱动集成块74HC244。LED显示接口硬件电路由74HC244缓冲器、LED显示器组成。如图3.9所示74HC244用来提高LED显示器的驱动能力。 在实际使用中LED显示器都是多位的。对多位LED显示器,通常采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。虽然这样在任一时刻只有一位显示器被点亮,但由于视觉残留效应,看起来与全部显示器同时点亮效果完全一样。为了显示LED显示器的动态扫描,不仅要给显示器提供段(字形代码)的输入之外,还要对显示器加位控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示);另一个用于输出位控线,位控线的数目等于显示器的位数。时间显示驱动电路如图3.6所示。 图3.6时间显示驱动电路 3.3.5 特种车辆自动通行电路 一般情况下交通灯都按车流量大小分配通行时间,按固有规律变化,但有特殊车辆(如119、120)急需通行时,如何控制呢?本文中设计紧急通行开关,当特种车辆到来时能自动关闭所有绿灯,让特种车辆通过。设计中特种车辆可采用红外线发生器为发信器,用实时中断来响应特种车的通行要求。接收的红外信号通过内部的集成电路来进行放大、解调,由输出端的输出编码脉冲信号经过三极管反相放大送至接收器,解调模块再进行译码。红外接收器采用的是一体化红外接收器,具有灵敏度高和抗干扰能力强的性质[13]。红外遥控接收电路原理框图如图3.7所示。 图3.7 红外接收原理框图 3.3.6 盲人提示音电路 为方便盲人通过行人道,在道口自动控制系统中设计了声音提示电路,该声音控制电路与人行道控制灯的绿灯是同步的,当绿灯亮时响一次,在结束通行前10s绿灯闪烁,期间盲人提示音会间隔响5次,每次1s。盲人提示音采用的是悦耳、柔和的低音。盲人提示音电路如图3.8所示。 图3.8 盲人提示音电路 3.3.7 电源电路 整个系统采用的是+5V电压,因此采用不可调的3端稳压器件,用LM7850就可以满足系统电源的要求。LM7850内部是由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成的三端集成稳压电源,且其低功耗,高效率,纹波系数小,输出电压稳定。 3.4 LED显示接口电路 3.4.1 LED显示器简介 通常所说的LED显示器由7个发光二极管组成因此也称之为七段LED显示器,其排列形状如图3.10所示。此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其他符号。LED显示器中的发光二极管共有两种连接方法: (1) 共阳极接法 把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 (2) 共阴极接法 把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。 图3.9 LED显示器结构图 使用LED显示器时要注意区分这两种不同的接法。为了显示数字或符号,要为LED显示器提供代码,这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。各代码位的对应关系如表3.4。 表3.4 代码对应关系表 代码位 D7 D6 D5 D4 D3 D2 D1 D0 显示段 dp g f e d c b A 3.4.2 74HC244缓冲器芯片介绍 74HC244是一种三态输出的八缓冲器和线驱动器,该芯片的引脚图如图3-8所示。由图可见,该缓冲器有8个输入端,分为两路——1A1~1A4,2A1~2A4,同时8个输出端,也分为两路——1Y1~1Y4,2Y1~2Y4,分别由1G和2G作为它们的选通工作信号。当记为低电平时,1Y1~1Y4的电平与1A1~1A4的电平相同,即输出反映输入电平的高低;同样,当2G为低电平时,2Y1~2Y4的电平与2A1~2A4的电平相同。而当1G(或2G)为高电平时,呈高阻态,输出1A1~1A4(或2A1~2A4)为高阻态。经74HC244缓冲后,输入信号被驱动,输出信号的驱动能力加大了。 、 图3.10 74HC244引脚示意图 4 交通灯控制系统软件设计 4.1 软件设计思路及流程图 交通道口交通灯控制系统的控制程序主要包括以下几个部分:主程序、红绿灯时间动态调节程序、显示程序、定时中断程序、车辆检测延时程序和特种车辆实时响应程序等。 4.1.1 主程序 主程序主要是负责总体程序的管理功能,实现人与机的交互设定。因为设计采用动态扫描方式显示时间,所以主程序大部分时间要调用扫描显示程序。主程序流程图如图4.1所示。 图4.1主程序流程图 4.1.2 定时中断服务程序 定时中断服务程序是用于行车及行人通行的通行指示,按通行的规律,红绿灯的控制转换逻辑如表4.1所示。 表4.1 道口通行方式控制码数据表 南北方向 端口 控制功能 120~110s 110~70s 70~60s 60~10s 10~0s P﹡.7 左拐红 0 0 0 1 1 P﹡.6 左拐绿 1 1 1 0 0/1 P﹡.5 直行红 1 1 1 0 0 P﹡.4 直行绿 0 0 0/1 1 1 P﹡.3 右拐红 0 1 1 1 1 P﹡.2 右拐绿 1 0 0 0 0/1 P﹡.1 行人红 1 1 1 0 0 P﹡.0 行人绿 0 0 0/1 1 1 道口控制字 66H 6AH 6AH/7BH 99H 99H/DDh 东西方向 P﹡.7 左拐红 0 0 0 0 0 P﹡.6 左拐绿 1 1 1 1 1 P﹡.5 直行红 0 0 0 0 0 P﹡.4 直行绿 1 1 1 1 1 P﹡.3 右拐红 0 1 1 1 1 P﹡.2 右拐绿 1 0 0 0 0/1 P﹡.1 行人绿 0 0 0 0 0 P﹡.0 行人红 1 1 1 1 1 道口控制字 55H 99H 59H 59H 59H/5DH 通行规则如下: (1)南北方向的行车直行,各路右拐,南北向行人通行,设置南北向通行时间为1min,且各路右拐比直行滞后10s放行。 (2)南北方向的行车向左拐,各路右拐,行人禁止通行。通行时间为1min。 (3)东西方向的行车直行,各路右拐,东西方向的行人通行。东西方向通行时间为1min,且各路右拐比直行要滞后20s放行。 (4)东西方向的行车向左拐,各路右拐,行人禁止通行。通行时间为1min。 上述的4种交通规则是通过控制红绿灯端口送控制码的方式来实现。其原理是根据不同规则通行时各路口的红绿灯亮灭情况转换为单片机端口的控制码。指示灯功能通过T0定时中断服务程序实现。定时器T0定时溢出的中断周期设为50ms,中断累计20次时对120s倒计时单元进行减1操作。本设计中将4种通行规则分成几种不同的亮灯方式,通过查询秒倒计时单元的数据,以实现在不同的时间段给控制端口送不同的控制数据码。控制码分为120s~110s、110s~70s、70s~60s、60s~10s、10s~0s这5个时间段。交通灯管理定时功能程序流程图如图4.4所示。 图4.2 T0定时中断服务程序流程图 4.1.3 特种车辆自动放行中断服务程序 当有特种车辆经过时,车中就发射红外线信号,其信号将被道口控制板上的红外信号接收器接收,并有一个低电平输出触发外中断。特种车辆自动放行的中断流程图如图4.2所示。 图4.3 特种车辆自动放行的中断流程图 4.1.4 车辆检测中断服务程序 车辆检测电路主要是测量由于红灯而导致的滞留车队的长度,因此在红灯结束时读入的车队长度才是真正的滞留车队长度。本文选取红灯还剩2s时读入路况信息[14]。车辆检测中断流程图如图4.3所示。 图4.4 车辆检测中断流程图 4.2 存储器及I/O口接口地址 本设计中,单片机的程序起始地址为0000H,定时器T0中断程序入口地址为000BH定时器T1的中断程序入口地址为001BH,命令/状态寄存器地址为0080H,P1口地址为0090H,P2口地址为00A0H。 4.3 LED显示电路有关编程 LED显示电路中最重要的是十六进制数字形代码表,如表4.2所示: 表4.2 十六进制数字形代码表 字型 共阳极代码 共阴极代码 字型 共阳极代码 共阴极代码 0 C0H 3FH 9 90H 6FH 1 F9H 06H A 88H 77H 2 A4H 5BH B 83H 7CH 3 B0H 4FH C C6H 39H 4 99H 66H D A1H 5EH 5 92H 6DH E 86H 79H 6 82H 7DH F BEH 71H 7 F8H 07H 灭 FFH 00H 8 80H 7FH 5 交通灯控制系统的调试 5.1 调试方法 以电子线路为基础的各种电子产品在安装完成后一般都要进行调试,才能正常地进行工作。在调试过程中常常会出现各种电路故障,经过检测、排查,才能准确地排除故障。调试主要是包括调整和测试两个部分。 调整主要是对电路参数的调整。一般是对电路中可调元器件,例如电容、电感等部分进行调整,使电路功能达到预期的效果。测试主要是对电路的各项技术指标和功能进行测试和检查,并与设计要求的性能指标相比较,以确定电路是否能实现预期的功能。 调试和调测试是相互依赖、互相补充的,统称为调试。由于在实际工作中,二者是一项工作的两个方面。经测试、调整、再测试、再调整,直到实现电路要求的设计指标为止。能够采用适当的方法查找、判断和确定故障的具体部位及其原因,是故障检测的关键。 在应用中,我们检测电子线路故障经常采用观察法。观察法又分为静态观察法和动态观察法。所谓静态观察法就是在电子线路通电前通过目视检查找出某些故障。主要检查焊点是否虚焊、导线接头是否接好、接插件是否松脱、管脚是否插错方向或折弯等。当静态观察没有发现异常时,可进一步采用动态观察法。 动态观察法又称通电观察法,即给电路通电后,通过观察电路内有无打火,冒烟现象,或是闻到电路内有无烧焦、烧糊的异味;手触摸一些器件有无发烫。发现异常立刻断开电源。由通电观察,可以确定故障原因,但大部分情况下并不能确认故障的确切位置。例如集成电路的发热,可能是周边电路故障导致的,也可能是供电电压有问题,或负载过重等问题。因此配合其他检测方法,判断,可更准确找出故障所在。 5.2 调试及性能分析 5.2.1 红绿灯控制程序 不通过定时器T0,直接可按照表7.1算好的数据吗送出控制灯,再观察其逻辑状态是否符合要求。可以反复多次进行调试,直到逻辑关系正确,但要注意,东西方向、南北方向的指示灯要同时调试。 5.2.2 特殊车辆通行时红外线检测电路的调试 可将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,并在模拟小车中放一块红外线发射模块,当小车通过路口时,可检测红外线是否被接收。如果该引脚输出为低电平,则说明可以接收到信号,电路正常。 5.2.3 车辆检测电路的调试 可在将示波器输入端端接在交通控制灯的车辆检测模块的输出引脚上,给CCD一个一定距离里的车队信号,可检测车队长度是否能被检测。如果该引脚输出为低电平,则说明可以检测车队长度,调整绿灯时间,电路正常。 6 测量结果 本系统是以AT89C51单片机为核心,设计的交通灯控制系统可用于十字路口的行车及行人的交通管理,采用3位7段LED数码管,直观地显示红绿灯的开放和关闭时间;设计中的两种倒计时:120s倒计时适用于车流量较大的城市,60s倒计时适用于车流量较小的中小型城市。本设计功能完整,不仅有普通的交通灯指示功能,还新增了特种车辆自动放行、车流量检测和盲人语音提示的功能。该系统的控制功能与效果同真实道口管理红绿灯是完全一致的。 7 结束语 随着经济的飞速发展,交通灯控制在交通运输领域发挥着越来越重要的作用。本文主要论述了基于AT89C51单片机的智能交通灯控制系统,虽然智能交通灯控制系统已经取得不少成就,且道路相对好的地方,传统的固定时间的交通灯控制还是有一定的作用。但随着城市化日益完善,车的数量也在快速的增加。此时,可以根据现实的交通状况实时改变通行时间的智能交通将可起到疏导交通,提高运输效率,改善城市交通环境,推动城市化日益完善。本文完成过程中,要做的工作有: (1)确定交通控制系统的通行方案,规定各个方向行车的通行时间及分配。 (2)以ATMEL公司的AT89C51单片机为系统硬件的设计核心,输入量有:车流量、特种车辆自动通行信号、定时中断;输出量控制交通灯信号灯亮灭状态、时间、LED倒计时显示及盲人语音提示。 (3)车流量检测采用模糊控制的方法,通过对数学模型进行清晰化、具体化,经单机控制器的相关算法与处理确定红绿灯的亮灭时间。 (4)运用汇编语言对系统进行软件编程,为了便于编写、调试、修改和增减,系统软件的编写采用模块化的设计方法。 参考文献 [1]郑思铭等.交通灯的一种新型智能控制系统.广东自动话与信息工程,2006(2):16-18 [2]陈森发等.城市主干道交通信号灯模糊线控制的探讨.运筹与管理,1998,7(1):35-41 [3]查振业,叶信阳.智能交通灯控制系统.华中理工大学学报,1997,25(2):63-65 [4]姚林芳.交通灯智能控制系统的设计与实现.计算机工程应用技术,2008,(5):1234-1237 [5]郑建光等.基于AT89C51单片机的交通灯控制系统设计.自动化与仪器仪表,2008,(6):30-33 [6]吴黎明,王桂棠.单片机原理及应用技术.北京:科学出版社,2005 [7]董加礼,曹旭东,史明仁.数学建模.北京:北京工业大学出版社,1990 [8]彭志刚.利用单片机改进交通灯控制系统.湖南工业职业技术学院学报,2003.2(2):25-27 [9]朱善君等.单片机接口技术与应用.北京:清华大学出版社,2005 [10]李建忠.单片机原理及应用.西安电子科技大学出版社,2008 [11]冯冬青,谢宋和.模糊控制.北京:化学工业出版社,2000 [12]楼然苗,李光飞. 单片机课程设计指导. 北京:北京航空航天大学出版社,2009 [13]温欣玲,张玉叶.基于单片机交通智能控制系统研究.微计算机信息,2007,23(10-2):90-92 [14]王庆有.光电传感器应用技术.北京:机械工业出版社,2007 The Design of Traffic Light Control System Based On AT89C51 MCU Su Li Department of Physics and Electronics No. 07418519 Faculty Adviser: Zhou Jiachao Abstract This study is based on AT89C51 as the controller of the intelligent traffic light control system. The system can achieve the special viehicles (119,120ect) automatically release through the infared receiver to receive signal. Collecting traffic information by the vehicle detection circuit, treated by the MCU, assigning green time of each lane to achieve dynamic adjustment of traffic by the 74HC244 driving the passage of LED digital display the countdown. The traffic light of turn left, turn right, straight and pedestrian adopt with two-color high-brightness light-emitting diodes, and the design is also added the circuit of vioce prompts, it’s convenient to blind man cross the sidewalk. The design is based on software and hardware combination to achieve. The paper gives a detailed circuit diagram of hardware and software flow chart and program soure code. Keywords: intelligent traffic light, AT89C51, vehicle detection, 74HC244, LED 附录A系统原理图 附录B 源程序 ;***************************************************************; ; 汇编程序 ; ;***************************************************************; TIME EQU 50H ;秒计数用 TIMESFR EQU 51H ;临时寄存器 CONR5 EQU 52H ;T11秒定时计数用 TIMED0 EQU 55H ;单向最大定时时间,直行开始,人行开始120 TIMED1 EQU 56H ;各路右转开始时间 110 TIMED2 EQU 57H ;前行结束提醒 70 TIMED3 EQU 58H ;前行结束,人行结束,左转开始 60 TIMED4 EQU 59H ;左转结束提醒 TIMED5 EQU 5AH ;左转结束 TIMED6 EQU 5BH TIMED7 EQU 5CH SN EQU P1 ; 南北口 EW EQU P2 ; 东西口 SCAN EQU P3 ;扫描口 LEDOUT EQU P0 ;段码口 SNEWFLAG BIT 09H ;东西口与南北口转换标志 ;按键在扫描口的最高位,按一下,全红灯,再按一下,恢复原状态 ;定时器T0、T1溢出周期为50MS,T0为秒计数用 ; ************************************中断入口程序**************** ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 LJMP INT22 ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口 LJMP INT11 ;外中断1中断返回,119、120中断 ORG 001BH ;定时器T1中断程序入口
/
本文档为【基于AT89C51单片机的交通灯控制系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索