电子实训设计.docx
《电子实训设计.docx》由会员分享,可在线阅读,更多相关《电子实训设计.docx(44页珍藏版)》请在冰豆网上搜索。
电子实训设计
JIANGSUUNIVERSITYOFTECHNOLOGY
电子系统设计综合训练
智能交通灯控制系统设计与实现
学院名称:
电气信息工程学院
专业:
电子信息工程
班级:
10电子1Z
姓名:
周艳
学号:
10311137
指导教师:
薛波
2014年03月
智能交通灯控制器系统设计
摘要:
设计并制作了一款基于STC89C52单片机芯片的智能交通信号灯控制系统。
该系统除了具有交通灯控制功能外,还增加了在夜间智能模式下用红外检测小车的检测功能,实现了普通模式和智能模式任意切换、主次通道通行时间和等待时间的任意修改。
提高了交通灯的智能化、可靠性和实用性,可有效提高交叉口的通行能力。
交通灯控制系统由硬件和软件两部分组成,其中系统的硬件有信号灯设计、时间显示电路设计、按键电路设计和单片机基本系统;系统的软件包括主程序、显示子程序、中断服务子程序等。
采用Proteus平台对交通灯控制系统进行了虚拟仿真,并进行了硬件电路的安装与测试。
软硬件测试结果表明交通灯控制系统具有交通控制的基本功能。
关键词:
STC89C52单片机;交通灯;虚拟仿真
Controllersystemdesignofintelligenttrafficlights
Abstract:
ThethesisdesigntrafficlightcontrolsystembasedonSTC89C52MCU.Inadditiontofundamentalfunctionsoftrafficlights,italsohasfunctionsofinfraredcontroldetecting,anditcometurethenormalmodeandintelligentmodelofarbitraryswitching,primaryandsecondarychannelpassingtimeandwaitingtimeanymodificationfunctions.UsingMCUfortrafficlightscontrolcanimprovetheintelligencereliabilityandpracticalityoftrafficlight.Soitcanimprovethetrafficcapacityatcrossings.Thehardwaresystemincludeslightdesign,timedisplaycircuitdesign,keycircuitdesignandbasicsystemofmicroprogrammedcontrolunit.Systemsoftwareincludesmainprogram,displaysubroutine,interruptservicesubroutine,etc.ByusingtheProteusplatformforvirturalsimulationoftrafficlightscontrolsystem,andmakestheinstallationandtestingofhardwarecircuits.Softwareandhardwaretestresultsshowthatthebasicfunctionoftrafficlightcontrolsystemwithtrafficcontrol.
Keywords:
STC89C52MCU;trafficsignal;virturalsimulation
第1章绪论
1.1课题的意义和目的
随着世界范围内城市化和机动化进程的加快,城市交通越来越成为一个全球化的问题。
简单的十字路口交通灯已经不能适应车流量越来越大的实际情况,交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少适时调整和转移多条线路的分流也十分必要。
所以这就需要一个更为合理和智能且成本不高的路口交通灯控制系统。
智能交通灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。
在城乡街道的十字交叉路口,为了保证交通秩序和行人安全。
一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行。
交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。
1.2课题的研究内容
本课题以单片机STC89C52芯片为中心来实现智能交通灯控制系统。
设计内容是由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全迅速通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯,红灯亮代表禁止通行,绿灯亮代表允许通行,黄灯亮则代表给行驶中的车辆有时间停靠到禁行线之外。
1.3课题的任务要求
设计制作一个以控制器作为核心的十字路口的智能交通灯控制电路。
由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全迅速通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停靠到禁行线之外,设计要求如下:
①.用红、绿、黄三色发光二极管作为信号灯,利用传感器或开关模拟检测车辆是否到来,设计制作一个交通灯控制器。
②.交通灯控制器有两种工作模式,工作模式1为正常定时工作模式,工作模式2为智能工作模式。
③.在正常定时模式时,主道与支道交替允许车辆通行,主干道每次放行15秒,支干道每次放行10秒;并且每次由亮绿灯转变成亮红灯的转换过程中间,要亮4秒的黄灯作为过渡,以使行驶中的车辆有时间停到禁止线以外;系统设立显示器显示其所有计时时间。
④.在正常定时模式时,允许通过键盘对主道、支道的车辆通行时间进行人工修改;
⑤.在正常定时模式时,通过PC机可以方便地进行对主、支干道的通行时间进行修改。
系统所有功能,均能够通过上位PC主机对其操作修改与实时动态显示(PC主机端可利用高级语言进行人机界面设计)。
⑥.在智能工作模式时,主干道处于常允许通行状态,而支干道有车来才允许通行。
当主干道允许通行亮绿灯时,支干道亮红灯。
而支干道允许通行亮绿灯时,主干道亮红灯。
但每次由亮绿灯转变成亮红灯的转换过程中间,要亮4秒的黄灯作为过渡。
第2章系统方案设计
2.1系统方案设计
方案一:
系统以单片机为数据处理中心,外接晶振电路与复位电路使单片机工作,通过按键电路可以设置信号灯的工作时间,系统工作时,通过单片机控制计时显示电路和信号灯显示电路,来显示系统工作状态。
系统通过通信接口与PC主机完成数据通信功能。
该方案的系统结构框图如图1所示。
图1方案一系统结构框图
方案二:
系统以FPGA最小系统为数据处理核心。
通过按键电路可以设置信号灯的工作时间,通过FPGA最小系统控制计时显示电路和信号灯显示电路来显示系统工作状态。
系统通过通信接口与PC主机完成数据通信功能。
该方案的系统结构框图如图2所示。
图2方案二系统结构框图
2.2方案的选择与论证
2.2.1方案的比较与论证
方案一采用了单片机作为系统控制核心。
它的优点是成本低,经济实惠,易于获取,它可以用C语言或汇编语言进行软件编程,我们对于这些语言也较为熟悉。
它的缺点是易受外围器件影响导致抗干扰能力下降,对环境依赖性也增强。
方案二采用了FPGA作为系统控制核心。
它的优点是设计灵活,I/O接口多,能连接较多的外围电路,使系统实现更多的功能。
它的缺点是成本较高,其程序编写采用VHDL语言,比较复杂。
综合以上的优缺点,进行比较,使用方案一能完成本系统要求的功能,并且单片机的性价比最高,在当前实验下使用它最合理,最终选择方案一来完成本系统的设计。
2.2.2系统结构实现框图设计
该智能交通灯控制系统以单片机为核心,以发光二极管模块、数码管显示模块、4*4矩阵键盘为外围电路,实现基本的交通灯控制,同时具有联机功能,实现计算机控制该模拟系统,总体系统框图如图3所示。
方案具体说明如下:
(1)系统控制模块:
采用单片机控制芯片,它是一种低功耗、高性能的微型控制器,可以通过内部的定时器控制红黄绿灯亮灭、接受检测信号和设定时间,外接口亦能方便的输出控制信号。
(2)路口交通灯模块:
该模块主要用来显示车辆通行状况。
选用高亮度的红、黄、绿发光二极管,通过单片机外部输出I/O口指示各方向车辆通行情况。
(3)数码管显示模块:
在交通灯上方安装一个显示绿灯通行时间、红灯等待时间和黄灯提醒时间的显示电路,采用数码管显示电路比较直观。
(4)电源模块:
由于整个系统采用的电源电压只需+5V,故利用实验室的直流电源直接供电。
(5)矩阵键盘:
用于本地设定时间,正常模式和智能模式的切换。
第3章系统各模块的硬件设计
该系统能够真实地模拟交叉路口交通灯的指挥作用。
在系统中设置了两组红、黄、绿信号灯,其中南北主通道的一组信号灯用来指挥南北方向道路上的车辆通行,还有一组东西次通道的信号灯用来指挥东西方向道路上的车辆通行。
为了能够直观的显示红、黄、绿灯分别等待的时间,该系统配置了四个LED数码管,其中前两个数码管用来显示主通道的红、黄、绿信号灯的等待时间,后两个数码管用来显示次通道的红、黄、绿信号灯的等待时间。
时间的显示采用倒计时的显示方式,并且主次通道上的绿、黄灯的等待时间可以通过4*4的矩阵键盘中前0~9个键来修改(前0~9个键的键值对应的就是0~9)。
总的来讲,该系统主要包括以下五个模块:
电源模块、信号灯模块、显示电路模块、单片机控制模块、按键电路模块。
3.1电源模块设计
STC单片机USB下载线原理图,也可以用USB口和电脑进行串口通信PL-2303hx的USB转TTL电平串口的电路。
如图3-1所示。
1)电脑的原有的串口,叫作RS232接口,这是一种cmos接口,接口电压从-15v到+15v之间,而单片机C51都是TTL电平,电平电压只用0v或是5v两种。
用这个电脑做出来的就是单片机上用的TTL电平,所以,不要再接MAX232芯片了。
这是它的一大好处。
2)电路可以提取出USB接口的+5v电压,正好用于C51单片机的使用,非常方便。
另外PL-2303hx还能对外提供一个+3.3v的电压,这个电压,对于AVR单片机,非常合适。
图3-1USB-TTL下载器原理图
3.2交通灯模块设计
3.2.1信号灯模块设计
信号灯模块可模拟控制十字路口的车辆通行和暂停情况。
每个方向均有红、黄、绿三个发光二极管,用来指挥各个方向上车辆的通行情况。
在实验中,我设定南北方向为主通道,东西方向为次通道,且主、次通道信号灯的转换顺序均为:
绿—>黄—>红;红—>绿。
绿灯表示允许通行;红灯表示禁止通行;黄灯表示等待时间,虽然红灯和黄灯时间可任意修改,但等式T主红=T次黄+T次绿与等式T次红=T主黄+T主绿恒成立。
主通道的信号灯接单片机的P2.3~P2.5口,次通道的信号灯接单片机的P2.0~P2.2口。
当单片机端口为低电平时二极管导通。
其原理图如图3-2所示。
北
图3-2信号灯模块原理图
图3-2中的电阻起限流作用,发光二极管的工作电压一般在2~3.6V,工作电流为10mA以下,设定工作电压为3V,工作电流为10mA,因为单片机I/O口电压为5V,故限流电阻应取200Ω左右,本设计取标称值300Ω,从而较好的达到了限流的目的。
3.2.2倒计时显示模块设计
倒计时显示系统的主要功能是对红、黄、绿灯的延时时间进行倒计时,并通过数码管直观的显示,从而给车辆驾驶员以提示。
这里使用4个共阴极的7段数码管SM420364作为显示设备,主次通道分别占用两个数码管。
一个显示十位,一个显示个位,且显示方式采用动态扫描方式。
由于东、西方向的信号灯状态一致,所以东、西方向只需一对数码管用于倒计时显示。
同理,南、北方向也只需一对数码管。
所以,在系统中只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以显示时间的范围为0~99秒完全可以满足系统的要求,数码管显示模块原理图如图3-3所示。
图3-3数码管显示模块原理图
数码管的段选位接在单片机的P0口,由于STC89C52单片机的P0口内部没有上拉电阻,驱动电流很小,同时数码管需要较大的驱动电流,因此需要接上拉电阻。
数码管的位选采用9013三极管,由于数码管中每段LED的驱动电流为10mA左右,8段就为80mA,因此三极管集电极电流为80mA。
设定9013的放大倍数是200,则三极管的基极电流为0.4mA,单片机I/O口电压为5V,故9013基极可以取10kΩ的电阻,使三级管工作在放大状态,从而驱动数码管工作。
3.3单片机控制模块设计
单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。
单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。
通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
在STC89C52中有四个双向I/O端口P0~P3口,每个端口都是由锁存器、输出驱动器、输入缓冲器组成。
当CPU控制系统与外部设备交换信息时,都是通过端口锁存器进行的。
四个I/O端口都可作输出输入使用,其中P0和P2口通常用于对外部存储器的访问。
接通锁存器时,P0口作为双向I/O使用,如P0口的锁存器的值为1,使输出驱动器中的场效应管截止,引脚空,此时端口可作高阻输入。
锁存器的值为0时,下面的场效应管导通,输出为0。
P0口作为地址/数据总线口使用时,由“控制”线控制将电子开关接通至“地址/数据”端,分别输出扩展外存的低8位地址A0~A7和数据D0~D7。
一般情况下,当P0口作输入输出线使用时,都要外接拉高电阻。
在P1、P2、P3端口内,都接有内部上拉电阻,此上拉电阻分为固定部分和附加部分,当端口的状态要从0变为1时,在发生变化的哪个机器周期的S1P1和S1P2接通附加的拉高电路以增加变化的速度,否则这个状态的变化将十分缓慢。
附加的拉高电路允许通过的电流比普通的上拉电阻大100倍。
STC89C52有40条引脚,分为端口线、电源线和控制线三类。
如图3-4为STC89C52的引脚结构图:
图3-489C52引脚图
3.3.1单片机时钟电路设计
89C52的外接晶体引脚为XTAL1和XTAL2,MCS-51的时钟可以利用它内部的振荡器产生,只要在XTAL1、XTAL2引脚上外接定时反馈电路,内部振荡器便自激振荡,产生时钟输出到内部的定时控制逻辑。
定时反馈电路一般为石英晶振和电容组成的并联回路。
这种方式称为内部方式,这种方式的外部元件连接如图3-5所示。
如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。
图3-5时钟电路
3.3.2单片机复位电路设计
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
本设计采用手动按钮复位,需要人为在复位输入端RST上加入高电平。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。
C=10uF,Rl=10K,R2=1K,如图3-6所示。
图3-6复位电路
3.4按键电路模块设计
本系统需要的按键数量较多,为了减少I/O口的占用,将按键排列成矩阵形式,如图3-7所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
图3-7矩阵键盘
矩阵键盘的工作过程可分为两步:
第一步是CPU首先检测键盘上是否有键按下;第二步是识别哪一个键按下。
检测键盘上是否有键按下的处理方法是:
将列线送入全扫描字,读入行线的状态来判别。
识别键盘中哪一个键按下的处理方法是:
将列线逐列置成低电平,检查行输入状态,称为逐列扫描。
第4章系统软件设计
4.1设计思路
本设计需在任意时刻均可以切换模式或者修改时间,设计成用一个按键切换模式。
三个按键修改时间,分别修改主通道通行时间、次通道通行时间、黄灯时间,且两种模式下的时间互不影响。
在红绿灯显示的同时由数码管倒计时显示时间,从而直观的观察各个通道的通行时间。
在该系统中还有一个按键代表有人来。
时间修改分别用13键、12键、11键实现,在不同的模式下改变不同寄存器中的数据,从而使两个模式下的时间独立。
数码管采用动态显示方式,编写动态显示程序时需要注意:
1)需将要显示的数码或字符转换为段码,一般通过查表的方法进行;
2)通过位控逐位轮流点亮每个LED,并保持每位点亮1~2ms;
3)在数据存储器中分配和显示器位数相同连续单元作为显示缓冲区,每个单元对应一位显示器,需更新显示器内容时,只需修改缓冲区的内容,显示子程序从显示缓冲区取得要显示的内容。
4.2软件总设计流程
89C52单片机和其开发应用系统具有语言简洁,可移植性好,表达能力强,表达方式灵活,可进行结构化设计,生成代码质量高,使用方便等诸多优点。
主程序的设计应实现以下几个功能:
1)初始化,开中断;
2)普通模式和智能模式之间的切换;
3)调用相应的时间修改子程序;
4)当在智能模式下时,发出有车来的信号。
主程序流程图如图4-1所示。
图4-1主程序流程图
4.3普通模式的软件设计
普通模式中设置了3个标志,分别为flag1、flag2、flag3。
通过中断定时,给标志变量赋值,标志变量值的不同就代表着不同的状态。
因此,普通模式是结合中断程序共同实现。
中断服务程序的功能主要包括不同状态下的时间计时、状态的循环切换和更新显示等。
采用中断系统改善了计算机的性能,主要表现在以下几个方面:
1)有效地解决了快速CPU与慢速外设之问的矛盾,可使CPU与外部设备并行工作,大大提高了工作效率;
2)可以及时处理控制系统中许多随机产生的参数与信息,即计算机具有实时处理的能力,从而提高了控制系统的性能;
3)使系统具备了处理故障的能力,提高了系统自身的可靠性。
普通模式子程序流程图如图4-2所示,在普通模式下中断程序流程图如图4-3所示。
图4-2普通模式子程序流程图
图4-3普通模式中断程序流程图
4.4智能模式的软件设计
智能模式中设置了2个时间标志和1个是否有车来的标志,分别是inl1、inl2、car。
通过中断定时,给标志变量赋值,标志变量值的不同就代表着不同的状态。
因此,智能模式同样是结合中断程序共同实现。
中断服务程序的功能主要包括不同状态下的时间计时、状态的循环切换和更新显示等。
在实际程序中,普通模式的中断程序和智能模式的中断程序均在T0中断中实现,为了便于理解,故将两个模块下的中断程序分开给出。
智能模式子程序流程图如图4-4所示,在智能模式下中断程序流程图如图4-5所示。
图4-4智能模式子程序流程图
图4-5智能模式中断程序流程图
4.5T0中断的软件设计
由于在主程序中,设置了中断的定时时间为50ms。
当主程序执行到了50ms时,T0的值就会溢出,此时单片机的CPU就要立即处理中断服务子程序。
由于定时器T0工作在方式1(16位的定时器),该种工作方式没有初值重装的功能,所以在中断服务子程序中还要给T0重新赋初值。
之后通过布尔量mode1的值判断是执行普通模式下的中断服务程序还是智能模式下的中断服务程序,分别如图4-3和图4-5所示。
图4-6T0中断程序流程图
第5章系统调试与数据分析
5.1硬件电路的制作和调试
5.1.1常见的硬件故障
1)逻辑错误
样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误而造成的,包括错线,开路和短路等等,其中短路是最常见的故障。
2)元器件失效
元器件失效的原因有两个方面,一是器件本身应经损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容,二极管的极性错误或集成块安装方向错误等。
3)性差
若样机中存在电源故障,则加电后将造成器件损坏。
电源故障包括电压值不符合设计要求,电源引出线和插座不对应,电源功率不足和负载能力差等。
5.1.2硬件的调试方法
1)脱机调试
脱机调试是在样机加点之前,先用万用表等工具,根据硬件电气原理图和装配图,仔细样机线路的正确性,并核对元器件型号,规格和安装是否符合要求。
仔细检查各点电压是否正常。
在实验中,若检查系统时钟是否正常工作,则可用万用表直流电压档测量XTAL1与XTAL2两端间的电压,检测到电压若为2.5V左右,则视为正常工作。
2)联机调试
通电后,执行读写指令,对用户样机的存储器、I/O端口进行读写和逻辑检查等操作,用示波器等设备观察波形。
通过对波形的观察分析,发现和排除故障。
在实验中,若检查检测电路是否正常工作,则可用万用表直流电压档测量检测电路的输出端与地之间的电平,正常情况下,当没有物体靠近红外对管时,电压表应该测得4.5v~5v左右;当有物体靠近红外对管时,电压表应该测得0.2v~0.5v左右。
5.3软硬件调试分析
在软硬件联调时,按基本功能依次调试。
当电路通上+5v电源后,先观察正常模式下主通道通行时间是否是15s、次通道通行时间是否是10s、黄灯时间是否是4s,在初值正确的情况下,看看数码管的显示时间是否和信号灯的点亮同步。
如果有错误,则重新看源程序;否则,继续看智能模式下的状态。
在按下15键之后,看系统是否能自动从正常模式切换到智能模式。
如果不能切换,说明扫描程序或者主程序对15键的操作有问题;如果正常切换,则观察数码管是否全灭、信号灯的状态是否为主通道常绿次通道常红。
对于修改时间,仍然依次调试,哪里有问题就立即解决。
5.4测试结果分析
本系统可以实现的功能如下:
1)上电为普通模式,且默认主通道通行时间为15s,次通道通行时间为10s,黄灯时间为4s。
2)在任意时刻,按下15键,可以实现普通模式和智能模式的切换。
3)在普通模式下,按13键可改变的主通道的通行时间,按12键可改变次通道的通行时间,按11键可改变黄灯时间,按0~9输入所需的时间,按相应的键值确认退出。
4