基于单片机交通灯毕业设计_第1页
基于单片机交通灯毕业设计_第2页
基于单片机交通灯毕业设计_第3页
基于单片机交通灯毕业设计_第4页
基于单片机交通灯毕业设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE毕业论文交通灯设计题目:院系:专业:班级:学生姓名:指导教师:论文提交日期:年月日 论文答辩日期:年月日目录摘要 IAbstract II第一章绪论 11.1实用交通灯的发展状况 11.2实用交通灯控制器的设计发展状况 1第二章实用交通灯控制器的总体设计方案 42.1设计任务及仪表功能介绍 42.1.1设计任务:设计一个实用交通控制器(如图2所示) 42.1.2智能化的实用交通灯控制器的功能 52.1.3实用交通灯控制器主要的技术指标: 52.2传感器的选择 52.3系统总体设计框图 7第三章控制器硬件系统设计 93.1硬件设计方案的分析 93.1.1实用交通灯方案的设计 93.1.2控制器硬件总框图 93.1.3控制器硬件选用器件及硬件基本电路介绍 103.2芯片的选型及硬件电路单元介绍 103.2.1中央控制单元 103.2.2倒计时显示单元 113.2.3红绿灯控制单元 133.2.4车辆检测电路介绍 153.3该实用交通灯控制器的工作原理 16第四章控制器软件的设计 184.1主程序的设计 184.1.1设计思想 184.1.2主程序设计流程图 184.2中断程序的设计 204.3倒计时赋初值程序的设计 224.4时间显示程序的设计 244.5按键切换程序的设计 254.6车辆检测程序的设计 26第五章系统调试 285.1硬件调试 285.1.1硬件调试总述 285.1.2硬件调试中出现的错误修正 285.2软件调试 295.2.1调试方法及优点 295.2.2调试出现的错误 29第六章实验结果与总结 326.1实验结果分析 326.2总结 32致谢 33参考文献 34PAGE36摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统的检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用的,仅单片机方面的知识是不够的,还应该根据具体硬件结构,以及针对具体应用对象特点的软硬结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,井井有条,那么靠什么来实现着井然秩序呢?靠的是交通灯信号灯的自动指挥系统。交通信号灯控制方式很多,本系统论述的是一个基于AT89C52芯片所制作的实用交通灯控制系统的控制器,它通过单片机的四个口线及共阳极的数码管共同完成倒计时时间的显示,用P2口设置红,绿灯的燃亮时间的功能。通过三极管以及固态继电器来共同控制灯泡亮灭,从而完成一个完整有序的交通控制,使交通井然有序。通过设置按键实现在路口主干道与支干道间的红绿灯切换的功能且能实现模拟检测车辆实现交通灯的切换功能,从而比一般的交通灯更具有了人性化设计,也使有限的交通资源得到最大化的应用。本设计重点是关于实用交通灯控制器_监控的软件设计。通过对实用交通灯硬件比较熟悉的情况下,把软件和硬件相结合,以达到智能控制的目的。关键词:单片机交通灯控制器AbstractInrecentyears,withtherapiddevelopmentofscienceandtechnology,theapplicationofSCMiscontinuously,andpushtowardsthetraditionaltestrapidlyupdated.Inreal-timedetectionandautomaticcontrolofsingle-chipmicrocomputerapplicationsystem,itisoftenusedasacorecomponentofsingle-chipknowledge,onlyisnotenough,stillshouldaccordingtospecifichardwarestructure,andtheviewofthespecificapplication,combiningthecharacteristicsofobjects.Pedestriancrossingtransports,bustling,garage,pedestrianhumanitarian,orderlydriveway,sodotoachievewithanorder?Trafficlightsontheautomaticcommandsystem.Therearemanywaystocontroltrafficlights.ThissystemisbasedonthepracticalAT89C52chiptrafficcontrolsystemcontrollerchip,itthroughthefourmouthoftheanodeandcompletedjointlybythetime,withthecountdownred,greenP2mouthsetsofburningtimefunctions.Throughthetransistorandsolidstaterelaystocommoncontrolbulblightout,thusacompleteorderlytrafficcontrol,maketrafficorderly.Bysettingabuttoninthemainintersectionswitharoadtrafficbetweentheswitchfunction,thissystemcanalsorealizesimulationtestvehiclelights,realizetheswitchfunction,whichismorethantheaveragetrafficlightsthehumanizeddesign,alsomakethelimitedresourcestomaximizethetraffic.Toachievethepurposeofintelligentcontrol.Thisdesignismainlyismainlysoftwareaboutthepracticalmonitoringoftrafficsignalcontrol.Practicaltrafficlightsonthehardwarearemorefamiliarwiththesituation,tothecombinationofsoftwareandhardwaretoachievethepurposeofintelligentcontrol.Keywords:OnlyFlatMachineTrafficLightController第一章绪论1.1实用交通灯的发展状况随着经济和社会的发展,今天我们在很多大中小城市的街道的路口都能看到红绿灯的出现,并且交通灯已经成为疏导交通车辆的最常见和最有效的手段,也是现代社会走向文明的一个标志,其实这一技术早在19世纪就已经出现。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行,这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿灯两以旋转方行玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市五号街的一座高塔上。红灯亮表示“停止,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和带红外线红绿灯,一种把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红绿灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,他就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通过。红灯是禁止信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆越过停车线,但车辆十分接近停车线而不能安全停车时可以进入交叉口路口。1.2实用交通灯控制器的设计发展状况交通灯作为无人指挥的交通控制系统,其智能化程度的高低直接影响着交通管理的效率和交通事故发生率的高低。现在制作实用交通灯控制器的方法很多,目前有以下几种发展方向:基于SPCE061A语音识别技术的智能交通灯设计,主要是采用以凌阳16spce061A单片机为核心,设计的智能交通灯控制系统,充分利用其在语音设别技术方面的优越性对交通灯的控制系统做了智能化改进,通过语音播放配合完成交通控制的一般过程,并能对外部的紧急情况(警笛声)进行语音设别,实现交通灯的智能控制,具有一定得实用价值和广阔的发展前景。基于西门子S7-200PLC的交通灯控制系统,主要是解决了实用交通灯的可靠性差,电子装置容易受高频信号的干扰,引发控制出现错误的情形。它具有以下几个优点:1.编程简单。构成一个实际的PLC控制系统一般需要很多配套的外围设备,而且指令不多,程序容易理解。2.可靠性好,再设计和制造过程中采用了屏蔽、滤波、隔离、无触点、被选元件等多层次的抗干扰措施。3.通用性好,功能强,使用方便。3.通用性好,功能强,使用方便。4.设计、调试期短。对十字路口交通灯的控制模拟有时对于实际生活的应用。可以根据实际要求对交通灯亮灭颜色、时间长短、间隔进行控制。基于以太网的嵌入式交通控制单元设计,以传统的十字路口交通灯控制单元为基础,利用现代计算机和网络通信技术实现一种基于网络的交通灯智能控制系统,该系统在交通灯管理中心可通过以太网向各路口的控制单元发送命令,改变十字楼口交通灯的正常控制流程,以适应突发紧急事件的要求,同时增加了盲人通行和语音提示功能.方便盲人出行,比传统的交通控制系统更实用和人性化.图1自适应交通灯控制系统原理图(4)自适应交通灯控制系统的设计与实现(如图1),此设计系统是针对现代城市交通灯控制与管理问题的现状而设计的,是基于流量统计项目的科研成果应用到交通控制系统.该系统能根据车流量的状况,自适应改变车辆的通行时间,以提高交通道路利用率,经过现场测试,效果良好,并在主控制器模块的设计中,采用FPGA或CPLD实现,是得硬件设计可以如同软件设计那样快捷方便,能较好地满足各种用户的需要.本文主要讲述基于AT89C52的单片机的实用交通灯控制系统的设计与实现,重点讲述的是实用交通灯控制器的软件设计,后续将就设计的过程及关键技术作以详细的介绍。第二章实用交通灯控制器的总体设计方案2.1设计任务及仪表功能介绍2.1.1设计任务:设计一个实用交通控制器(如图2所示)图2实用交通灯控制器1)普通交通灯的设计要求:采用顺序控制的方式,先主干道绿灯亮,支干道红灯亮;其次是主干道绿灯闪烁5S,主干道黄灯亮5S,支干道红灯亮5S;按照顺序,主干道红灯亮20S,支干道绿灯亮20S.最后,主干道红灯亮4S,支干道绿灯闪4S,支干道黄灯闪4S.接着循环下去,反复执行以上的操作.2)智能交通灯的设计要求:采用设置中断的方式达到按键切换的目的。当主干道为红灯亮,支干道为绿灯主干道无车辆及行人通过支干道有行人要通过时,可以通过手动按键的方式自动切换为主干道红灯,支干道绿灯的方式,以实现交通的人性化,使有限的交通资源得到最大的利用,实现交通的智能控制。此功能比较实用,可以应用在许多大中小城市。3)带有车辆检测的智能交通灯的设计要求采用设置中断的方式达到车辆检测的目的,根据车辆的运行情况,判断车辆的数目是否达到设定值,根据此判断决定是否切换交通状态。此类交通灯适用于支干道运行车辆比较少,主干道运行车辆比较多的情况。给支干道一个车辆的记数初值,当达到此值时自动切换为主干道绿灯支干道红灯的状态。2.1.2智能化的实用交通灯控制器的功能智能化的实用交通灯主要是由主板和副板组成,一个按键,两位数码管。(见附录:毕业设计焊接完成后的实物图)通过一个按键实现当主干道为绿灯支干道为红灯时的强制切换为主干道为红灯支干道为绿灯的功能,四位数码管分别显示主干道计时时间和支干道计时时间。另外,本系统还有通过改变滑动变阻器的阻值来使系统可以模拟车辆检测来切换主干道支干道红绿灯交通状态的功能.2.1.3实用交通灯控制器主要的技术指标:(1)精度:0.5%(2)显示分辨率:0~99(3)供电:交流220V10%,50HZ,直流5V(4)工作温度:0~150°C(5)工作湿度:15%~85%RH2.2传感器的选择本设计用到传感器的地方主要是车辆检测方面。车辆的存在与通过检测

(1)感应线圈(电感式传感器)电感式传感器其主要部件是埋设在公路下十几厘米深处的环状绝缘电线(特别适合新铺道路,可用混凝土直接预埋,老路则需开挖再埋)。当有高频电流通过电感时,公路面上就会形成如图1(a)中虚线所形成的高频磁场。当汽车进入这一高频磁场区时,汽车就会产生涡流损耗,环状绝缘电线的电感开始减少。当汽车正好在该感应线圈的正上方时,该感应线圈的电感减到最小值。当汽车离开这高频磁场区时,该感应线圈电感逐渐复原到初始状态。由于电感变化该感应线圈中流动的高频电流的振幅(本论文所涉及的检测工作方式)和相位发生变化,因此,在环的始端连接上检测相位或振幅变化的检测器,就可得到汽车通过的电信号。若将环状绝缘电线作为振荡电路的一部分,则只要检测振荡频率的变化即可知道汽车的存在和通过。

电感式传感器的高频电流频率为60kHz,尺寸为2×3m,电感约为100μH.这种传感器可检测的电感变化率在0.3%以上[1,2]。电感式传感器安装在公路下面,从交通安全和美观考虑,它是理想的传感器。传感器最好选用防潮性能好的原材料。

(2)电路

检测汽车存在的具体实现是在感应线圈的始端连接上检测电感电流变化的检测器,并将之转化为标准脉冲电压输出。其具体电路图由三部分组成:信号源部分、检测部分、比较鉴别部分。原理框图如图3所示,输出脉冲波形见图四。(3)传感器的铺设图3车辆检测原理图及检测电路电压脉冲输出波形

图4车辆存在与检测电路原理框图车辆计数是智能控制的关键,为防止车辆出现漏检的现象,环状绝缘电线在地下的铺设我们设采取在每个车行道上中的出口地(停车线处)以及在离出口地一定远的进口的地方各铺设一个相同的传感器,方案如图5(以典型的十子路口为例),同一股道上的两传感器相距的距离为该股道正常运行时所允许的最长停车车龙为好。图5十字路口车辆检测电路2.3系统总体设计框图实用交通灯控制器实用交通灯控制器实用交通控制器的硬件设计方案实用交通控制器的软件设计方案图6系统总体设计框图1)实用交通灯控制器的硬件设计方案(1)认真理解实用交通灯的控制要求,仔细观察现实生活交通灯的运行情况,对实用交通灯有一个大概的了解;(2)查阅资料,确定并画出实用交通灯控制器的原理图,为选择要实现实用交通灯控制器功能的器件做准备;(3)根据原理图选择实用交通灯控制器的器件,画出实用交通灯控制器的硬件原理图并生成PCB图;(4)根据硬件原理图,把元器件都焊接在板上,焊好后根据原理图仔细检查硬件接线情况;(5)等软件编写好写进片子后,进行硬件调试,以保证达到控制要求。2)实用交通灯控制器软件设计方案(1)仔细研读控制要求和硬件原理图,达到对每一块硬件非常熟悉的程度;(2)查阅资料,梳理思路,开始画程序框图;(3)编写程序,认真调试,检查每一步的作用及运行情况,最后生成HEX文件;(4)将HEX文件写进片子,软硬件结合进行调试,看是否达到所要求的设计任务;(5)写毕业设计论文及毕业论文总结、答辩。第三章控制器硬件系统设计3.1硬件设计方案的分析3.1.1实用交通灯方案的设计在一个十字路口(如图六)分别有主干道和支干道,当主干道为绿灯时车辆通行,支干道为红灯时,主干道车辆可以通行,人行道也可以通行,;当主干道为红灯时,支干道为绿灯时,支干道车辆和人行道上都可以通行;当绿灯闪烁、黄灯亮时表示将要进行红绿的切换,提醒大家注意通行安全。主干道支干道主干道支干道图六交通灯设计方案各个灯燃亮的时间表(表1):30S5S20S4S主干道绿灯亮绿灯闪烁,黄灯亮红灯亮红灯亮支干道红灯亮红灯亮绿灯亮绿灯闪烁,黄灯亮3.1.2控制器硬件总框图车辆检测电路车辆检测电路AT89C52系统控制器倒计时时间显示电路交通灯控制电路图七控制器硬件总框图3.1.3控制器硬件选用器件及硬件基本电路介绍AT89C52一片,共阳极的七段数码管两个,C9012三极管6个,固态继电器(G3MB-202P,输入直流5V,输出交流220V)6块,220V、15W的灯泡6个,电容四个:两个33PF的,两个10μF,晶振11.0592兆赫兹一个,13个按键.电阻560Ω的16个,一个6.8KΩ的一个,一个2KΩ,一个3KΩ,一个1kΩ还有一个滑动变阻器103.OP07单运放,74HC00与非门。3.2芯片的选型及硬件电路单元介绍3.2.1中央控制单元⑴AT89C52的介绍AT89C52单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在线系统可编程Flash存储器。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。⑵AT89C52的时钟振荡电路电路介绍图8时钟振荡电路XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。上述电路是靠AT89C52单片机内部电路产生震荡的,也可以由外部的振荡器或者时钟直接驱动AT89C52.如采用外部时钟源驱动器件,XTAL2应不接。其余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。此电路主要是为单片机产生时钟脉冲的,时钟脉冲经过脉冲分配器,可产生多项时序。⑶AT89C52的复位电路介绍图9复位电路此系统的复位电路为手动按键复位电路,当按键按下时,实用交通灯控制器回到初始状态,各项参数都是初始化的参数。上图中电容C3=10μF电阻R2=10KΩ.3.2.2倒计时显示单元⑴共阳极数码管的选择该系统为通过单片机的两个个口线来驱动数码管显示,为静态显示。所谓静态显示,就是每一个显示器各笔画段都要独占具有锁存功能的输出口线,CPU把要显示的字形代码送到输出口上,就可以使显示器显示所需的数字或者符号,此后,即使CPU不去访问它,因为各笔画段接口具有锁存功能,显示的内容也不会消失。静态显示的优点是:显示程序十分简单,显示亮度大,由于CPU不必经常扫描显示器,所以节约了CPU的工作时间。但静态显示也有自己的缺点,主要是占用口线比较多,硬件成本比较高,所以静态显示法一般用在显示器数目比较少的应用系统中。LED采用静态显示与单片机接口时。共阴极或者共阳极点连接在一起接地或者接高电平。每个显示位的段选线与一个8位并行口对应相连,只要在显示位上的段选线上保持段码电平不变,则该位2就能保持相应的显示字符。这里的八位并行口可以直接采用并行I/O接口芯片。也可以采用串入/并出的移位寄存器或者其他的具有三态功能的锁存器等。此系统为通过单片机的两个口线来驱动数码管显示,但因为单片机的两个口线出来的电流比较小,单个LED导通的电压一般为1.2--2.5V之间,工作电流在5--15mA之间,具体数值与LED得制作材料有关,因此须采用共阳极的数码管,使数码管的接+5V的电压。⑵选用共阳极数码管的电阻的计算同时如果直接让口线接数码管的各个端口,电流太大,可能会烧坏数码管,故必须加限流电阻,限流电阻在电路中起分压,限流的作用。限流电阻R的计算公式如下:其中:为输入电平;为输入端发光二极管的压降,通常是1.2——2.5V为驱动压降,通常是0.1——0.5V为发光二极管的工作电流,通常是5--20mA当=5V,=2.5V,=0.5V,=20mA时,=100Ω;当=5V,=1.2V,=0.1V,=5mA时,=740Ω;这里取R为560Ω,在100Ω和740Ω之间,符合要求。⑶显示单元硬件接线图图10共阳极数码管的静态显示的原理图如图10所示,显示单元的硬件接线是在PO口和P1口分别接8个560Ω的电阻,然后再将电阻的另一端接数码管的各个笔画段,并且接线一定要按顺序进行,最后将COM端接5V.3.2.3红绿灯控制单元⑴三极管C9012的选择图11控制交通灯亮灭电路图三极管的选择与固态继电器有。根据图四,易看出只能选择PNP型的三极管,结合P2口的输出低电平时,=1.6mA,=0.45电压,结合固体继电器的型号和C9012的技术参数,易确定9012三极管合适。如下为C9012的技术参数:集电极-发射极电压-30V

集电极-基电压-40V

射极-基极电压-5V

集电极电流0.5A耗散功率0.625W

结温150℃

特怔频率最小150MHZ放大倍数:D64-91E78-112F96-135G122-166H144-220I190-300⑵固态继电器的选择1.固态继电器介绍固态继电器是今年来发展起来的新型电子继电器,其输入控制电流小,用TTL、HTL、CMOS等集成电路或简单的辅助电路就可以直接驱动,因此特别适宜在控制现场作为输出通道的控制元件。其输出利用晶体管或者晶闸管驱动,无触点,与普通的电磁继电器和磁力开关相比,具有无机械噪声、按键抖动和回跳、开关速度快、体积小、质量轻、寿命长、工作可靠等特点,并且耐冲力、抗腐蚀,因此目前已经逐步取代传统的电磁式继电器和磁力开关作为开关量输出控制元件。本系统采用的是固态继电器。固态继电器有光耦合电路、触发电路、开关电路、过零控制电路和吸收电路5部分构成。它被封装成一个整体,外面只有四个引脚。按负载类型分,固态继电器分为直流型和交流型两种:直流型固态继电器主要用于直流功率的控制场合。其输入为光电耦合电路,可用OC门和晶体管直接驱动,驱动电流一般为3--30mA,输入电压为5--30V。其输出端为晶体管输出,输出电压为30——180V。交流型固态继电器分为非过零型和过零型,二者都是用双向晶闸管作为开关器件。对于非过零型SSR,在输入信号时,不管负载电源电压相位如何,负载端立即导通;过零型必须在负载电源电压接近零且输入控制信号有效时,输出端负载电源才导通可以抑制射频干扰。当输入端的控制电压撤消后,流过双向晶闸管的负载电流为零时才关断,根据本系统的特点,应该选择非过零型的SSR.3.2.4车辆检测电路介绍⑴OP07芯片的选择OP07为单运放放大器,是一个精密的,低噪声的单运放可以做为车辆检测电路的元器件使用,以下位OP07的工作参数:OP07失调电压25UV,电源电压+-(3~18),压摆率0.3v/us产品型号:OP07CP通道数:1每通道IQ(典型值)(mA):5带宽GBW(典型值)(MHz):0.600转换速率(典型值)(V/us):0.300输入失调电压(25℃)(Max.)(mV):0.150失调漂移(典型值)(uV/℃):0.500输入偏置电流(Max.)(pA):7000共模抑制比(Min.)(dB):100噪声电压(典型值):9.800封装/温度(℃):PDIP-8/0~70描述:精密,低噪声运放⑵车辆检测单元硬件接线图图13车辆检测电路将与非门的输出端口接AT89C52的INT1端口上,其它的硬件接线如图所示。此车辆检测电路根据OP07的放大特性制成的,此电路系统为开环系统,当同向端的电压电压大于反向端的的电压时,运放输出与同向端电压相同经过与非门之后变为低电平,相应INT1中断;当同向端的电压小于反向端的电压时,运放输出与反向端电压相同经过与非门之后变为高电平,中断INT1不响应。根据这个原理,当中断响应时,模拟车辆的检测过程,计数一个。通过旋动滑动变阻器,从而改变同向端与反向端的电压,达到改变INT1端口的高电平与低电平的状态。在每次进入中断INT1里,车辆技术参数就加1,并判断是否到达已定的车辆上限值。若等于此值就将支干道的绿灯主干道的红灯切换为状态主干道为绿灯支干道为红灯,否则,继续执行程序。除此之外若把滑动变阻器旋同向端电压小于反向端电压不再旋动,此交通灯执行正常的顺序。3.3该实用交通灯控制器的工作原理1.当把程序写进AT89C52里以后,接通电源以后,通过数码管显示红绿灯的亮与灭的时间;2.通过给P2口高低电平来使三级管导通,从而使固态继电器打开或者关闭来控制六盏交通灯的亮灭;通过按键使P3.2置高或者置低把当主干道为绿灯,支干道为红灯时切换为主干道为红灯,支干道为绿灯。通过按键使交通灯复位到初始状态,主干道为绿灯,支干道为红灯的状态,计数值为30S.5.通过旋动滑动变阻器,使INT1端口的电平发生变化,从而切换主干道和支干道红绿灯的状态。第四章控制器软件的设计4.1主程序的设计4.1.1设计思想程序设计采用模块化设计,控制时序采用时间触发的时间片轮询调度方法,0.5s为一个控制周期,分成10个时间片,每个时间片为50ms,所有的任务分配在各个时间片完成,主程序仅完成初始化,然后进入休眠状态。4.1.2主程序设计流程图主程序流程图如图12所示,完成初始化功能,然后进入休眠状态,可减少功耗和提高抗干扰能力,由各种中断唤醒,执行完中断服务程序序后,重新进入休眠状态。中断唤醒中断唤醒图14主程序流程图⑴延迟1S的方法其中延迟时间的设计方法有两种:一种是采用软件延时的方法;另一种方法是利用AT89C52内部的定时器的溢出中断来确定1S的时间。这两种延时方式的特点是:第一种延时方式不精确,可用于要求不是太准确的延时,第二种是通过硬件方式实现的,特点是延时时间准确,不易发生时间叠加导致故障,从而引起死机。⑵延迟1S的原因要使数码管显示从30减到0之间的每一个数都能用眼睛看得见,就必须最少两个数值变化之间的时间间隔能长一点,方能看得见,故我们使两数之间的变化为1S时,正好可以看得见数字之间的变化情况。⑶计数器初值的计算及确定定时器初值和定时方式控制字定时器工作时必须给计数器送计数器初值,这个值送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,因此我们可以把记数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。定时器工作在方式0时M=;定时器工作在方式1时,M=;定时器工作在方式2时M=。本系统采用定时器T0来定时,定时器T0的最大定时时间为65536ms,计算公式如下:计数个数C与计数初值TC的关系为C=-TC用于定时功能时,定时时间t的计算公式为t=M*机器周期=(-TC)*机器周期,若晶振为12MHZ,机器周期=1μS,初值N=0--65535范围时,则可定时范围为1μs--65536ms。由此可见要定时1s,必须要使用软时钟。如果定时50ms,再通过软时钟设置COUNT=20,就可以实现定时1s的程序。定时器需定时50ms,故T0工作于方式1.由于晶振为12MHZ,所以一个机器周期=12**=1μs,计数值C===50000TC=-C=65536-50000=3CB0H即应将3C送入TH0、0BO送入TL0中。定时器的工作方式为GATA=0,C/=0,M1M0=01可取方式控制字为TMOD=01H,即T0的方式1.⑷变量和常量的说明(表2)符号伪指令地址和常量意义SEA_STADATA30H表示设定状态指针COUNTDATA31H表示系统时钟其取值范围是0~19,完成时间片分配SECONDDATA32H表示倒计时时间指针符号伪指令地址和常量意义RED_ZHUBITP2.0RED_ZHU代表89C52的P2.0,即硬件相连YELLOW_ZHUBITP2.1RED_ZHU代表89C52的P2.1,即硬件相连GREEN_ZHUBITP2.2RED_ZHU代表89C52的P2.2,即硬件相连RED_ZHIBITP2.3RED_ZHI代表89C52的P2.3,即硬件相连YELLOW_ZHIBITP2.4YELLOW_ZHU代表89C52的P2.4,即硬件相连GREEN_ZHIBITP2.5GREEN_ZHI代表89C52的P2.5,即硬件相连4.2中断程序的设计中断服务程序入口定时器常数重装中断服务程序入口定时器常数重装COUNT+1COUNTCOUNT=20?SECOND-1=SECONDSECOND=0?SET_STA+1=SET_STASET_STA=?YYNSET_STA=0SET_STA=1SET_STA=2SET_STA=3中断程序返回SECOND=30S主绿亮支红亮SECOND=5S主绿闪主黄亮,支红亮SECOND=20S主红亮支绿亮SECOND=4S主红亮,支黄亮支绿闪N调用显示程序中断程序的设计(定时器T0中断程序的设计)是实用交通灯控制器的核心部分,在中断程序中主要完成的功能有:定时器T0初值的重装、判断一秒定时时间到没到、判断倒计时指针是不是为0、状态(这四个状态的表3如下)之间的切换以及倒计时时间的显示。交通灯各个状态灯的亮灭情况表(表3)状态灯的亮灭倒计时时间状态0主干道绿灯亮支干道红灯亮30S状态1主干道绿灯闪,黄灯亮支干道红灯亮5S状态2主干道红灯亮,支干道绿灯亮20S状态3主干道红灯亮,支干道绿灯闪,黄灯亮4S4.3倒计时赋初值程序的设计倒计时赋初值程序是本次毕业设计软件设计的难点,经过老师的指点自己也对这个问题掌握的很透彻。倒计时赋初值程序设计的关键是在主程序中通过设置标志位F0,然后在中断程序进入各个状态时判断是否要进行赋初值,如果标志位F0为0表示不用赋初值,否则立即赋初值,并且把标志位F0置0.同时,在每次切换状态时一定要把标志位置1。程序框图如下:主绿亮,支红亮F0=1?赋倒计时初值30S主绿亮,支红亮F0=1?赋倒计时初值30S调用显示程序中断程序返回状态0入口YN主绿闪,黄亮,支绿亮亮F0=1?赋倒计时初值5S调用显示程序中断程序返回状态1入口YN图16状态0的倒计时显示框图图17状态1的倒计时显示框图状态2入口状态3入口主红亮,支绿亮F0=1?赋倒计时初值20S状态2入口状态3入口主红亮,支绿亮F0=1?赋倒计时初值20S调用显示程序中断程序返回YN主红亮,支绿亮F0=1?赋倒计时初值4S调用显示程序中断程序返回YN图18状态2的倒计时时间显示框图图19状态3的倒计时时间显示框图4.4时间显示程序的设计时间显示程序的设计主要是由硬件设计决定的,由于时间显示硬件采用静态显示法,且通过口线来驱动,所以时间显示只能通过查表法来实现。当交通灯按照给定的变化规律进行运行时,同时用两位数码管进行30s递减时间显示,分别从P0口、P1口输出LED显示器的数值,达到显示时间的目的。当定时时间为1s时,程序跳转到下一个倒计时状态,它将依次显示交通灯的时间,同时一直显示该状态对应的交通灯的颜色,依次把所有的灯色的时间显示完成后再重新给赋初值,重新进入循环。时间显示图如下:图20状态0时间显示图21状态1时间显示图图22状态2时间显示图23状态3时间显示4.5按键切换程序的设计按键切换程序的功能是:当主干道为绿灯支干道为红灯且无车辆通行与行人通过时,可通过手动按键切换此状态到主干道为红灯,支干道为绿灯的状态。将INT0设置为中断优先级,只要P3.3一按下,就执行INTO_INT中断程序从而将状态切换为状态2.程序框图如下:开始INT0中断初始化并设置中断优先级休眠开始INT0中断初始化并设置中断优先级休眠中断唤醒LOOPINT0中断入口倒计时初值标志位置1SET_STA=2INT0中断程序返回主程序INT0部分的程序按键切换INT0中断程序框图4.6车辆检测程序的设计车辆检测程序的设计主要是通过INT1终端实现的。在主程序中把INT1初始化,并设置车辆记数器COUNT1。在每次进入INT1中断时,COUNT1自动加1,判断COUNT1是否到达设定的车辆记数初值。如果到达,自动将状态切换为状态0.其程序框图如下:开始开始INT1断初始化并设置中断优先级休眠中断唤醒LOOP主程序INT1部分的程序INT1中断入口程序倒计时初值标志位置1SET_STA=2INT1中断程序返回COUNT=3INT1中断入口程序倒计时初值标志位置1SET_STA=2INT1中断程序返回COUNT=3INT1中断程序框图第五章系统调试5.1硬件调试5.1.1硬件调试总述硬件调试是基本测试仪器(万用表、示波器等)检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。按照电路原理图将各元器件焊接在印刷电路板上,检查各焊点无虚焊、短接等情况,焊接质量较好。接电源,按键切换正常,用万用表检验输出数据真实性,基本吻合。5.2.2硬件调试中出现的错误修正⑴在硬件调试的过程中,发现不是每一个自己选择的器件都是好使的,必须通过万用表测一测。在调试实用交通灯控制器的过程中,自己就发现滑动变阻器103就不好使,判断方法是:将万用表的黑表笔的一端接地,红表笔与滑动变阻器的接地的一端相接,万用表显示0;再将万用表的黑表笔的一端接地,红表笔接滑动变阻器的高电平的一端,万用表显示5V;将万用表的黑色表笔的一端接地,另一端接滑动变阻器的中间的一端,结果万用表显示为0,且无论如何滑动滑动变阻器,该数值不变。由此,可判断该滑动变阻器已损坏。解决办法是重新选择一个好的滑动变阻器焊上。⑵在一次硬件焊接的时候将与非门的输出端口焊接在了P2.7上,导致功能无法实现。仔细检查电路才发现此错误,其主要原因是由于焊板线路太密,布线不合理,粗心导致的,最终也自己发现改过来了。⑶还有一个错误是在焊接与非门时出现的错误。车辆检测需要一个非门,自己在学习《单片机原理与应用技术》这门课时,看到一个芯片7406,从外形上看它很像非门,自己就把它焊接上准备实现车辆检测的功能,由于7406为反向驱动器,和非门有很大的区别,我们通常用的非门是74LS04,所以导致功能未能实现。⑷有一片89C52自己由于编程经验不足,反复装载了程序几十之后,当再次插入硬件的电路板子的卡槽里时,结果灯全部灭了,而且数码管显示全为0。换了另一块片子,写入程序,再调试完全实现了规定的要求。由此得出结论,原来那块AT89C52坏了。坏了的主要原因可能是写的次数太多了,也可能是芯片自身的原因。5.2软件调试5.2.1调试方法及优点本实验采用了模块化方法编写程序,调试程序时也是分块调试,首先将编写好的模块程序利用KEIL软件进行调试,仔细检查语法错误,在确定无语法错误后,将程序生成HEX文件,然后与硬件设备连接,试验程序是否能显示所预计值,该模块调试通过后,继续进行下一模式的添加,重复上述步骤。采用模块化调试程序的优点:使调试更具目的性,降低盲目性,并且提高调试速率。在调试通过的模块基础上添加另一模块程序,继续调试,避免了整体程序一起调试的盲目性,而且大大提高了调试速率,使程序编写和调试有条不紊的同时进行。5.2.2调试出现的错误刚开始编程时,自己的思路还不是太清晰,竟然调用定时器中断程序。经过自己反复查阅资料并仔细研读单片机书,自己慢慢有感觉了,开始写程序框图,慢慢编程序。在使用KEIL软件条程序时,一定要把一个叫STARTUP.A51的软件移除,否则可能产生莫名奇妙的警告。在编程调试过程中,自己发现了一下几方面的问题。⑴语法错误编写程序的初始阶段由于经验不足,经keil单片机仿真软件进行调试总会发现一些语法错误。如:在中文格式输入下的逗号以及注释前的分号,必须改为在英文格式下输入时,编辑才没有语法错误。错误1:MOVA,SECONG改正:MOVA,SECOND错误2:CJNEA,0,STATE0改正为:CJNEA,#0,STATE0错误3:未定义COUNT改正:在伪指令中定义COUNTBIT31H诸如此类错误还有很多,在这就不一一列举了,但是随着程序编写的熟练程度的加深,此类错误渐渐减少,主要解决的是逻辑错误。⑵逻辑错误确定编写完的程序无语法错误后,将程序用Easy51Pro3.1编程器将.hex文件写入芯片中,然后与实验设备连接,试验程序是否能显示所预计值。编写时发生的错误主要有:交通灯显示方面(1)刚开始自己编程时将驱动交通灯的口线定义为P1口的P1.0~P1.5端口,将程序写进片子后,六个交通灯没一个发亮。原因:由于自己检查硬件电路不仔细,硬件电路者将驱动交通灯的口线全部焊接在P2口的P2.0~P2.5端口上了。改正:将程序修改为驱动交通灯的口线定义为P2口就好用了。将自己写好的程序写进片子,配合硬件调试,只显示初值50且不递减,而且灯泡只是处在初始状态,主干道绿灯,支干道红灯。原因:自己在设置倒计时初值那一块出现了问题,导致程序只执行了初始化程序就停滞在那个状态。通过自己反复的查看框图和在老师的帮助下,自己终于把问题找到了,原来自己在设置了标志位之后,没有给标志位清零,而且在状态切换的时候必须把倒计时时间标志位F0置为1,才能正常执行程序,达到控制交通的目的。改正:在每次赋倒计时时间初值完之后,必须立马把倒计时时间初值标志位清零。而且在倒计在状态改变时必须把倒计时时间初值标志位置1。(3)将编好的程序写进片子里,配合硬件调试,发现时间显示特别快,其它的功能都实现了。原因:自己为了实现更高级的车辆检测功能,怕影响车辆检测的功能,所以就修改了定时器(原来用T0,改为用T1),由于定时器工作状态没改,所以就出现了上述问题。改正:将定时器的工作状态的设置为定时器T1的定时模式,并把定时器的工作方式设置为工作方式1,程序就可以正常运行了。二、按键切换方面(1)在编写按键切换程序时,本以为只要是任意一个键就可以且只要在状态0里调用该按键程序就可以实现按键切换功能,结果发现不能实现切换的功能。原因:任意键的调用根本切换不了定时器的状态,切换状态必须通过硬件的中断INT0或者INT1来进行强制切换,只有这样才能达到切换的真正目的。改正:利用INT0中断来进行强制切换,并把INT0设置为中断优先级比较高的中断,在INT0里修改状态参数,并将倒计时时间初值标志位置1。通过调试完全可以实现按键切换状态的功能。第六章实验结果与总结6.1实验结果分析通过自己几个月的努力,基本完成了本课程设计的目标,完成了对智能交通灯的软件设计,达到了智能控制的目的。不足之处就是自己还有一些更高级的功能未能实现,比如说通过按键改变倒计时的初值,当控制不能正常实现时设置报警功能等等。6.2总结通过做本次毕业设计,自己明白了研究和设计控制仪表的一套思路和方法。首先,我们要做

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论