基于89C51的智能交通灯软件设计.docx
- 文档编号:4948578
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:52
- 大小:494.42KB
基于89C51的智能交通灯软件设计.docx
《基于89C51的智能交通灯软件设计.docx》由会员分享,可在线阅读,更多相关《基于89C51的智能交通灯软件设计.docx(52页珍藏版)》请在冰豆网上搜索。
基于89C51的智能交通灯软件设计
JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY
本科毕业设计(论文)
基于89C51的智能交通灯设计(软件)
学院名称:
电气信息工程学院
专业:
电气工程及其自动化
班级:
05自控1W
姓名:
王士林
指导教师姓名:
路子赟刘伟
指导教师职称:
助教副教授
2009年6月
基于89C51的智能交通灯设计
摘要:
本设计将运动检测技术与交通灯控制结合起来,除了具有正常的交通灯时序控外,当发现有闯红灯的情况时还能发出报警,从而使交通灯控制系统具有初步的视觉感知功能。
系统是由显示模块、控制模块、运动检测处理模块,以及MATLAB环境下PC机STC89C51单片机的实时串口通信模块等组成。
本次设计中的关键技术环节是用软件模拟了一个串行口,即用P1口的P1.6和P1.7来分别模拟RXD和TXD,通过模拟串口控制74HC164来实现数码管的显示;PC机串口与单片机原有串口之间通过MAX232电平转换芯片和RSR-232数据总线进行硬件连接,利用MATLAB设备控制工具箱中提供的serial函数来创建串口设备对象,PC机对串口的读写操作都通过调用设备控制工具箱的各种函数对串口对象的操作来实现。
运动检测模块属于图像处理的内容,采用简单的帧间差分和阈值判断来实现,程序在MATLAB环境下运行。
最后,做出了实物,并且实验表明达到了设计目标。
关键词:
89C51单片机;交通灯;模拟串行口;运动检测;MATLAB
Thedesignofintelligenttrafficlightsbasedon89C51
Abstract:
Thisdesignunifiesthemovementexaminationtechnologyandthetrafficlightcontrol,besideshasthenormaltrafficlightsequentialcontrol,whendiscoveredhaswhensituationwhichrunsaredlightalsocansendoutreportstothepolice,thusenablethetrafficlightcontrolsystemtohavethepreliminaryvisualsensationfunction.Thesystemisbythedemonstrationmodule,thecontrolmodule,themovementexaminationprocessingmodule,aswellasundertheMATLABenvironmentPCmachineandtheSTC89C51monolithicintegratedcircuitreal-timeserialportconnectionmoduleandsooncompose.Inthisdesignkeytechnologieslinkhassimulatedaserialportwiththesoftware,namelysimulatedRXDandTXDseparatelywithP1mouthP1.6andP1.7,controlled74HC164throughthesimulationserialporttorealizethenixietubedemonstration;BetweenthePCmachineserialportandthemonolithicintegratedcircuitoriginalserialportcarriesonthehardwareconnectionthroughtheMAX232leveltransformationchipandtheRSR-232databus,usestheserialfunctionwhichintheMATLABdevicecontroltoolboxprovidestofoundtheserialportequipmentobject,PCmachinetotheserialportread-writeoperationallthroughtransferdevicecontroltoolboxeachkindoffunctiontotheserialportobjectoperationrealizes.Themovementexaminationmodulebelongstotheimageryprocessingcontent,usesduringthesimpleframethedifferenceandthethresholdvaluejudgmentrealizes,theproceduremovesunderthematlabenvironment.Finally,hasmadethematerialobject,andtestsindicatedhasachievedthedesigngoal.
Keywords:
89C51single-chipcomputer;Trafficlights;Simulationserialport;Motiondetection;MATLAB
第3章交通灯控制系统软件设计
第4章系统测试
附录1....................................................44
附录2……......…………………………………………………………….49
附录3……...………………………………………………………………51
附录4...........................................................................................................53
引言
今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。
道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。
现在交通系统已不能满足经济发展的需求。
由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
中国车辆数量不断增加,交通管制的工作量越来越大,利用计算机代替人进行高效交通管理是必然的发展趋势,而让计算机控制的交通灯拥有类似人类的感知智能,具有很强的现实意义,比如通过摄像机让交通灯控制系统获得视觉感知功能,就可以代替人类的眼睛,使系统根据所“看到”交通情况自适应改变管制策略,提高了交通管理的自动化水平,使得交通更高效、更顺畅。
第1章交通管理方案论证
2.1设计任务
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
红灯的设计时间为40秒,绿灯及左转绿灯各为20秒,并通过图像处理来检测是否闯红灯,如果有闯红灯,通过报警灯报警。
设A道和B道的车流量相同。
2.2方案介绍
把设计任务细化为四个状态,其对应状态:
如图1-1:
A道为40秒红灯,B道绿灯20秒
A道为20秒红灯,B道左转20秒绿灯
A道为20秒绿灯,B道为40秒红灯
A道左转20秒绿灯,B道为20秒红灯
图1-1状态转换图
整个交通灯控制由四个状态组成,可以用程序设计实现,也可用时序逻辑实现.以下方案就是分别用了这两种方法。
方案1设计思想:
采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。
以主干道为例,简述其设计思想。
如前分析,已经确定该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表如表1-1:
表1-1置数表
状态
主干道预置数
次干道预置数
00
40
20
01
20
20(左转)
10
20
40
11
20(左转)
20
由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的四个状态去译码,从而得到不同的输出,即预置数,由上分析可用一个计数器和跳转指令去完成的预置数。
而红绿灯的显示也是一样,由状态分析可以得出红绿灯的变化表如表1-2:
表1-2红绿灯变化表
状态
主干道灯显示
次干道灯显示
00
红灯
绿灯
01
红灯
左转绿灯
10
绿灯
红灯
11
左转绿灯
红灯
通过这张表就可以用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。
还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组电路去判断符合的状态。
方案2设计思想:
状态转换表如表1-3:
表1-3状态转换表
状态
主干道灯显示
次干道灯显示
00(15S)
红灯
绿灯
01(05S)
红灯
黄灯
10(15S)
绿灯
红灯
11(05S)
黄灯
红灯
本方案分三步:
(1)要建立三路信号灯的控制系统,本设计采用7408芯片通过组合逻辑控制三路灯的显示关系。
(2)建立显示控制系统,本设计采用74190芯片倒计时控制,每个方向用两片相连实现,另外用74153芯片,因为分析中设置的时间末位均为5,所以只要用一片74153对高位置位,将低位的初值预置锁定为5,而高位则根据需要由反馈部分提供预置值。
(3)建立反馈和细节连接部分,本部分主要解决显示和灯控的同步问题本系统采用倒计时系统减为0,如当系统减为0时通过两个D触发器得到两个变量,即为开头分析中的状态,通过它的变化得到不同的逻辑关系,驱动74153控制哪组灯亮(对应关系如表所示),另外他还要同步反馈到显示系统的置数环节。
注意:
本实验中若采用更复杂的四片74190控制主干道的两组灯,再用八片74153分别对74190置数可实现任意数值的交通灯系统。
另外对7408片子的控制红灯的端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯时,另一边的红灯在闪烁。
方案比较:
方案1(以下称1)用了模块设计,而方案2(以下称2)采用的是一般设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。
2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。
我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。
对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。
第2章交通灯控制系统硬件设计
2.1单片机概述
单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。
单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。
通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
它主要是作为控制部分的核心部件。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
2.2系统构成
电路板一块,STC89C51单片机一片,74HC164芯片八片,七段数码管八个。
74LS04反向器一片,发光二极管13个(8个绿的,4个红的用于交通控制,1个用于标识电源),7805三端稳压电源一个,一个按键,一条数据下载线。
系统结构框图如图2-1:
74HC
164
基于pc机的图像检测
串行接口电路
图2-1系统结构框图
系统各部分工作:
(1)程序设置初始时间,通过STC89C51单片机寄存器实现。
(2)由STC89C51单片机就通过P3.0口向74HC164的数据端口送信息,由74HC164的输出口显示红、绿、黄灯的点亮时间情况;由STC89C51的P1.0、P1.1、P1.2、P1.3口显示每个灯的点亮情况。
(3)STC89C51通过程序设置各个信号灯的点亮时间,通过程序设置左转绿、绿、红时间依次为20秒、20秒、40秒循环,由AT89S51的P3口向74HC164的数据口输出。
(4)通过STC89C51单片机的P3口来控制系统是工作。
(5)74HC164的A、B口用于串行输出时间位,经过串并转换送到七段数码管的八的引脚。
而P1口用于输出控制信号.而通过74LS04反向器实现控制各个灯的情况.它采用5V的直流电来驱动二极管。
(6)STC89C51本身集成了看门狗指令,当系统出现异常看门狗将发出溢出中断。
通过专用端口输出,引起RESET复位信号复位系统。
2.3芯片选择与介绍
2.3.1STC89C51芯片
ATMEL89系列单片机是以8031为结构的,所以,它和8051系列单片机是兼容的系列。
2.3.289系列单片机的优点
89系列单片机对于一般的用户来说,存在下面很明显的优点:
1.含有FLASH存储器
因此在系统的开发过程中可以十分容易进行修改,这就大大缩短了系统的开发周期。
同时,在系统工作过程中,能有效地保持一些数据信息,即使外界损坏也不影响到信息的保持。
2.和80C51插座兼容
89系列单片机的引脚是和80C51一样的,所以,当89系列单片机取代80C51时,可以进行代换。
(1)静态时钟方式
89系列单片机采用静态时钟方式,所以可以节省电能,这对于降低便携式产品的功耗十分有用。
(2)错误编程亦无废品产生
一般的OPT产品,一旦错误编程就成了废品。
而89系列单片机内部采用了FLASH存储器,所以,错误编程后可以重新编程,直到正确为止,故不存在废品。
(3)可进行反复系统试验
用89系列单片机设计的系统,可以反复进行系统试验;每次试验可以不同的程序,这样可以保证用户的系统设计达到最优。
而且随用户的需要和发展,还可以进行修改,使系统不断能追随用户的最新要求。
3.89系列单片机内部结构
89系列的内部结构和89C51相近,它主要含有如下一些部件。
(1)8031CPU
(2)振荡电路
(3)总线控制部件
(4)重点控制部件
(5)片内FLASH存储器
(6)片内RAM
(7)并行I/O接口
(8)定时器
(9)串行I/O接口
2.3.3ATMEL89系列单片机的分类
ATMEL89系列单片机可分成标准型号、低档型号和高档型号三类。
89系列单片机的标准型有STC89C51等4种型号,它们基本结构和89C51是类似的,是80C51的兼容产品,89系列单片机的低档型有STC89C1051等2种型号,它们的CPU和89C51是相同的,但是并行I/O口较少。
高档型的有STC89C8252,这是一种可下载FLASH单片机,它和IBM微机通信进地程序是十分方便的。
2.3.4I/O口的功能
在STC89C51中有四个双向I/O端口P0~P3口,每个端口都是由锁存器、输出驱动器、输入缓冲器组成。
当CPU控制系统与外部设备交换信息时,都是通过端口锁存器进行的。
四个I/O端口都可作输出输入使用,其中P0和P2口通常用于对外部存储器的访问。
接通锁存器时,P0口作为双向I/O使用,如P0口的锁存器的值为1,使输出驱动器中的场效应管截止,引脚空,此时端口可作高阻输入。
锁存器的值为0时,下面的场效应管导通,输出为0。
P0口作为地址/数据总线口使用时,由“控制”线控制将电子开关接通至“地址/数据”端,分别输出扩展外存的低8位地址A0~A7和数据D0~D7。
一般情况下,当P0口作输入输出线使用时,都要外接拉高电阻。
在STC89C51和STC89C52中,I/O端口复位值均为1。
写端口操作:
当执行指令来改变端口锁存器的值时,新的值在最后一个指令S6P2被写入锁存器的。
在每一个时钟周期的S1P1,锁存器的值由输出缓冲器采样并保存至下一个机器周期的S1P1才到引脚。
当锁存器的状态发生变化时,这个变化不会立即出现在输出端,至少经过一个时钟周期后,才把新的值输出。
在P1、P2、P3端口内,都接有内部上拉电阻,此上拉电阻分为固定部分和附加部分,当端口的状态要从0变为1时,在发生变化的哪个机器周期的S1P1和S1P2接通附加的拉高电路以增加变化的速度,否则这个状态的变化将十分缓慢。
附加的拉高电路允许通过的电流比普通的上拉电阻大100倍。
读端口及接口操作:
P1~P3口的输出缓冲器每个都能取代4个LSTTL输入。
CMOS型的芯片引脚可由集电极开路电路的漏极开路电路驱动,但在状态从0变1时,边化的速度很慢,输入0时,TP3截止,仅靠TP2非常微弱的上拉来驱动状态的变化。
在外部总线方式下,P0口的输出缓冲器能驱动8个LSTTL输入,但P0口用作输入输出口时需外接上拉电路驱动输入。
2.3.5结构框图
图2-28051结构框图
STC89C51具有下列主要性能:
1.4KB可改编程序FLASH存储器(可经受1,000次的写入/擦除周期)
2.全静态工作:
0HZ~24MHZ
3.三级程序存储器保密
4.128*8字节内部RAM
5.32条可编程I/O线
6.2个16位定时器/计数器
7.6个中断源
8.可编程串行通道
9.片内时钟振荡器
另外,STC89C51是静态逻辑来设计,其工作可下降到0HZ并提供可用软件来选择的省电方式——空闲方式(IDLEMODE)和掉电方式(POWERDOWNMODE)。
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。
在掉电方式中,单片机振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。
2.3.6引脚描述
图2-3是STC89C51的引脚结构图:
图2-38051引脚图
STC89C51有40条引脚,分为端口线、电源线和控制线三类
1.端口线(4*8=32条)
8051有四个并行I/O端口,每个端口有8条口线,用于传送数据和地址。
(1)P0.0~P0.7:
这组引脚共有8条,为P0口所专用,其中P0.7为最高位,P0.0为最低位。
这8条引脚口有两种不同的功能,分别使用于两种不同的功能。
第一种情况是89C51不带片外存储器,P0口可以作为通用I/O使用,P0.0~
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C51 智能 交通灯 软件设计
![提示](https://static.bdocx.com/images/bang_tan.gif)