




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..WORD格式整理专业资料值得拥有毕业设计〔论文题目基于单片机的恒温调控及proteus仿真摘要温度的测量和控制对人类日常生活、工业生产、气象预报、物资仓储等都起着极其重要的作用。在许多场合,及时准确获得目标的温度是十分重要的,近年来,温度测控领域发展迅速,并且随着数字技术的发展,温度的测控芯片也相应的登上历史的舞台,能够在工业、农业等各领域中广泛使用。单片机具有体积小控制精度高的且价格低等诸多特点,将单片机与温度传感器相结合,构成的温度控制电路具有良好的测温温控功能。8952单片机的温度控制系统由AT89C52单片机、七段温度显示数码管、温度传感器DS18B20、工作状态LED灯等模块组成。恒温系统除有温度检测功能外,还具有温度报警与外部控制功能,调节温度手动设置、可数显各项系统参数、上限温度报警等相关功能。理论证明该系统能够简单、经济,有效地提高系统的工作效率。本设计主要做了如下几方面的工作:一是确定系统温度控制的总体设计,包括实时温度的采集系统应拥有的各项功能,二是进行外部电路设计、显示电路等的设计和基本功能要求。三是进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,总体上完成了相应要求。关键词:温度控制,温度检测,AT89C52,温度显示,上限报警AbstractTrafficcontrolsystemisamodernsocietywithlogistics,traveletcoftrafficdevelopmentauniquesetofpublicmanagementsystem.Toensuretheeffectivesafetytraffic,exceptforaseriesoftrafficrules,stillmustthroughcertaintechnologicalmeanstoachieve.Basedonanalysisoftrafficcontrol,basedonreal-timedetectionsensor,adjusttheimplementationtechnologyofintelligentcontrol,real-timemonitoring,sensoradjustvehiclestimealgorithmandsingle-chipmicrocomputercontrolfunctionisproposed,whichcombinesthetrafficcontrolsystembasedonsinglechipdesignscheme.The8051microcontrollercontrolsystemconsistsofthetrafficlightsdisplay,8051monolithicintegratedcircuits,andLEDthecountdown,trafficviolationdetection,emergencyadjustment,manualmode,timeasmodules.Inadditiontothebasictrafficfunctionoutside,stillhavetimetomanuallyset,canpassthecountdown,carthatforcedthroughtraffic,inspectionandadjustment,transportationandprocessingabnormaldiscriminantfunctions.Theoryshowsthatthesystemcansimple,economicandeffectiverelievestraffic,improvethecrossroadscapacity.Thisdesignmainlydothefollowingaspects:oneistheworkofthetrafficcontrolsystemdesign,includingthecrossroads,specificdesignandsystemshouldberestrictedwitheachfunction,twoisthatthesensor,thehardwarecircuitdesignofthecircuitandthebasicfunctionandrequirement.Threeissoftwaresystemdesign,thissystemforIMCUassemblylanguage,overallfinishedwritingsoftware.KeyWords:trafficcontrol,sensingdetection,display,andcountdownAT89C52abnormaldiscriminationandprocessing.目录摘要IAbstractII目录III1绪论51.1单片机温度控制系统的选题背景51.2单片机交通控制系统选题的现实意义51.3单片机交通控制系统主要研究的内容82单片机恒温控制系统总体设计92.1单片机温度控制系统的方案设计92.2单片机温度控制系统的功能要求102.3单片机恒温控制系统的基本构成及原理123系统硬件电路的设计133.1系统硬件总电路构成及原理13系统硬件电路构成13系统工作原理133.2单片机的选择15单片机的概述153.2.2AT89C52芯片的主要性能153.2.3AT89C52芯片的内部结构框图153.2.4AT89C52芯片最小系统163.3其它硬件介绍及连接17温度检测方案17七段数码管显示方案183.3.3其它器件214系统软件程序的设计234.1程序主体设计流程234.2理论基础知识244.3子程序模块设计264.4源程序314.5系统软件调试36结论39参考文献40致谢41..专业资料值得拥有1绪论1.1单片机交通控制系统的选题背景温度的测量和控制对人类日常生活、工业生产、气象预报、物资仓储等都起着极其重要的作用。在许多场合,及时准确获得目标的温度是十分重要的,近年来,温度测控领域发展迅速,并且随着数字技术的发展,温度的测控芯片也相应的登上历史的舞台,能够在工业、农业等各领域中广泛使用。温度控制对于社会的工业经济和人们的生活生产中有着十分重要的意义。随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,温度自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比走进千家万户。1.2单片机交通控制系统选题的现实意义随着制造工艺的快速增长,以及人们对于产品的完美追求,工业生产对于外部因素愈加重视,温度控制就应运而生,在人类的设计生产中,外部环境因素被人们所重视,而其中温度因素扮演着极其重要的角色。近年来,温度测控领域发展迅速,冰洁随着数字技术的发展,温度的测控芯片业相应的登上了历史的舞台,在工业农业等个领域中广泛使用。1.3单片机恒温控制系统主要研究的内容基于整个恒温控制系统的发展情况,本设计主要进行如下方面的研究:用智能,集成,且功能强大的单片机芯片为控制中心,设计出一套控制系统,以指挥外部电路进行相应的温度调节。本设计主要做了如下几方面的工作:一是确定系统控制的总体设计,包括,环境温度的实时扫描方案设计以及系统应拥有的各项功能,在这里,本设计除了有温度扫描与调节装置能实现基本的温度自动调节功能,还增加了上限温度报警功能,基于实际情况,设计了双温度传感器同时采集信号求取平均值以保证采集信号的准确性,同时对双通道进行监测报警处理和键盘可设置等强大功能。二是进行智能传感器的硬件电路,显示电路等的设计对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。三是进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解中断以及延时原理,总体上完成了软件的编写。2单片机交通控制系统总体设计2.1单片机恒温控制系统的方案设计设置两个温度传感器,分别同时采集环境温度,求取平均值数显在LED数码管上,外部通过按钮调节设置时间并与所求取的平均值对比以确定外部电路工作状态,另一方面系统设置上限温度,如果环境温度超过40度,系统停止一切工作,状态处绿灯闪烁,当外部温度恢复正常后按下按键区的复位键系统重新开始正常工作。硬件上设置状态灯使外部电路工作情况一目了然,具体外部电路如图2.1所示:温度传感器DS18B20A温度传感器DS18B20AT89C52上限温度数显设定温度数显环境温度数显外部电路驱动工作状态灯显示外部按钮调节通过具体的运行状态演示分析我们可以把整个过程归纳如下:◆分别取两处环境温度将平均值显示在七段数码管上。◆将设定温度和上限温度40度显示在七段数码管上。◆系统通过软件实现设定温度与环境温度想比较以确定外部电路工作状态。◆外部电路的工作状态我们用以下图表表示:环境温度与设定温度对比外电路工作情况状态指示灯大于驱动加热继电器红灯小于驱动降温继电器蓝灯等于等待灯点亮黄灯当环境温度大于40度停止工作绿灯闪烁表2.1运行状态及指示灯状态2.2单片机恒温控制系统的功能要求本设计能模拟基本的恒温控制系统,用继电器代表外部调温电路的加热和降温,还能进行设定温度显示,环境温度检测及调整等功能。〔1设定温度显示系统默认初始设定温度为25度,用户可以通过按钮区的INC和DEC按钮自行调节设定温度值,以适应用户的不同需求。〔2环境检测及调整电路设计两个温度传感器同时检测环境温度通过求取平均以确定环境温度,这样可以减少环境因素对系统精确性的影响。〔3上限温度设置除系统自动按照设定环境温度自动控制调整外,系统通过软件写入上限温度,以防止温度因素对硬件电路产生破坏,避免自动故障和意外发生,当环境温度恢复正常时可通过复位按钮恢复系统的工作。〔4紧急处理环境温度过高的现象在所难免,但是当因外部因素引起的系统停工后毕并须要有相应的重启动功能,在这种情况下设置了复位按钮用于系统停工后的重启动。3系统硬件电路的设计3.1系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用AT89C52单片机及外围器件构成最小控制系统,4个发光二极管分成1组红绿黄绿四色灯构成状态灯指示模块,6七段数码管构成3组温度显示模块,温度传感器DS18B20温度传感器采集温度数据,若干按键组成温度设置和复位重启动按钮,以及用1个蜂鸣器进行报警。系统硬件电路构成本系统以单片机为核心,组成一个集温度采集、处理、自动控制为一身的闭环控制系统。系统硬件电路由温度检测检测电路,单片机,状态灯,LED显示,按键,蜂鸣器组成。其具体的硬件电路总图如图3.1所示。其中P0口,用于送显六片LED数码管,P1.0和p1.1实现接通DS18B20温度传感器实现外部数据的串行采集,P1.2用于控制绿色发光二极管通过软件使其闪烁报警,XTAL1和XTAL2接入晶振时钟电路,设计采用12MHZ的晶振,一个汇编指令周期为1us,便于对系统运行时间评估,P3.2即INT1温度加一INC按钮,P3.3即INT1温度减一DEC按钮,系统采用中断方式相应外部设定温度调节,相比于键盘扫描的方式改变设定温度,中断方式具有受程序扫描周期影响小的特点,P1.5和P1.6分别接通两个继电器以实现外部温控电路的驱动,P1.7连接等待灯,表示实时温度与设定温度一致,P3.0、P3.1对环境温度显示的两个数码管进行片选,P3.4、P3.5对上限温度显示的两个数码管进行片选P3.6、P3.7对设定温度显示的两个数码管进行片选。因为系统程序未超过4KB,所以为添加外部ROM,故将EA位电平拉高。图3.1图3.1系统工作原理系统上电之后,系统默认设定温度为25摄氏度,上限温度为40摄氏度,外部信号采集后,立即求取平均值,系统自动判断环境温度值,并驱动继电器工作,并将工作情况反应在工作状态灯处。,设定温度通过外部按钮区的INC和DEC按钮实现加一减一,此处通过软件延迟方式去抖动,延时时间为200ms可以在一定程度上去除按钮的抖动。接下来,系统显示状态灯及LED数码管,将状态码值送至P1.5、P1.6、P1.7口,并将状态灯与外部驱动电路连接,以实现外部电路与状态显示的同步化,而温度显示通过数码管的动态显示实现6个数码管显示以1.2秒的周期不断刷新显示。但温度高于40度时系统停工,工作灯绿灯闪烁,当外部温度恢复正常后可以通过START/RES按钮实现系统的重启动。当然,还要开启两个外部中断,其一为设定温度的加一,一旦信号触发,中断开始,进入中断服务子程序,设定温度由系统默认温度25度实现加一功能,200ms后系统中断返回,并于下一周期数显在数码管上。其二为设定温度的减一,一旦信号触发进入相应的中断子程序,设定温度由系统默认温度25度实现减一功能,200ms后系统中断返回,并于下一周期数显在数码管上,若为自动模式,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达到自动控制的目的。3.2单片机的选择单片机的概述单片微型计算机简称单片机,又称微控制器,嵌入式微控制器等,属于第四代电子计算机。它把中央处理器、存储器、输入/输出接口电路以及定时器/计数器集成在一块芯片上,从而具有体积小、功耗低、价格低廉、抗干扰能力强且可靠性高等特点,因此,适合应用于工业过程控制、智能仪器仪表和测控系统的前端装置。正是由于这一原因,国际上逐渐采用微控制器<MCU>代替单片微型计算机<SCM>这一名称。"微控制器"更能反映单片机的本质,但是由于单片机这个名称已经为国内大多数人所接受,所以仍沿用"单片机"这一名称。单片机的主要特点有:1>具有优异的性能价格比。2>集成度高、体积小、可靠性高。3>控制功能强。4>低电压,低功耗。3.2.2AT89C52芯片的主要性能芯片AT89C52是ATMEL公司生产的带2K字节快闪存储器的8位单片机。它具有如下的一些特性:★指令和89C51产品兼容★内含2K字节可重复编程快闪存储器★耐久性1,000写/擦除周期★2.7V~6V的工作电压范围★全静态操作0Hz~24MHz★二级程序存储器加锁★内含128*8位内部RAM★15根可编程I/0引线★2个16位的计数器/定时器★6个中断源★带有可编程串行通讯口★可直接驱动LED输出★片内模拟电压比较器★低功耗空载和掉电方式另外,该单片机还具有体积小,价格低等特点。3.2.3AT89C52芯片的内部结构框图AT89C52是一带有2K字节快闪可编程可擦除存储体<EEPROM>的低电压、高性能8位CMOS微型计算机。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS—51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPL1和快闪存储器,ATMEL公司生产的AT89C52是一强劲的微型计算机,它对许多嵌入式控制的应用,提供了一种高度灵活和成本低的解决办法。图3.2为AT89C52的内部结构框图。图3.2AT89C2051内部结构图3.2.4AT89C52芯片最小系统一个最简单的单片机系统包括晶振、复位、电源、系统的输入控制、输出显示,以及其他外围模块<如通信、数据采集等>。〔1时钟电路首先介绍一下单片机的晶振电路,即时钟电路。单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。单片机系统常用的晶振频率有6MHz、11.0592MHz、12MHz、本系统采用11.0592MHz晶振,电容选22pF或30pF均可。〔2复位电路系统刚上电时,单片机内部的程序还没有开始执行,需要一段准备时间,也就是复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑飞或死机时,也需要进行系统复位。复位电路有很多种,有上电复位,手动复位等。〔3EA脚的功能及接法单片机的EA脚控制程序从内部存储器还是从外部存储器读取程序。由于现在单片机内部的flash容量都很大,因此基本都是从内部的存储器读取程序,即不需要外接ROM来存储程序,因此,EA脚必须接高电平。3.3其它硬件介绍及连接车流量检测电路及模拟为了达到对温度的控制功能,需要对环境温度进行检测。当前比较流行的温度检测器件,是一种串口温度传感器DS18B20。其工作原理是通过内部电路采集环境温度模拟信号并通过内部AD转化电路将采集的模拟信号转换为数字信号,再将12位数字温度信号串行传输到单片机内部,考虑到单片机系统的便利性,本次采用DS18B20具有众多优点,首先由于DS18B20内部集成AD转换电路节约了外部电路另需添加AD电路的成本,其次由于是串行传输,节省了单片机为数不多的管脚,再者由于DS18B20采用TO-92B封装,在一定程度上节约了PCB面积。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。本次设计检测电路如下图3.4所示。图3.4温度检测电路图3.4温度检测电路本次设计拟使用单片机内存28H和29H分别存储温度信号,DS18B20串口通信为12位二进制数据,因为12位转化时每一位的精度为0.0625度,而设计要求是保证温度精度在个位,不要求显示小数,所以可以抛弃29H的低4位,将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度。按键电路及模拟在系统运行时,设定温度是可以自行调整的,本次设计提供了良好的人机界面,使用者可通过按键实时改变设置,按键采用中断方式,提供了温度改变的实时性。设计提供一个START/RES按钮用于温度报警后的重启动。按钮电路如图3.5所示。图3.5按钮检测电路图3.5按钮检测电路其基本设计思想是:通过按钮INC接通P3.2实现外部中断0通过软件更改设定温度加一;通过按钮DEC接通P3.2实现外部中断1通过软件更改设定温度减一;START/RES按钮实现系统在报警状态下的重启动,因为系统报警子程序很简短,所以不需要考虑程序时序问题。七段LED数码管LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。LED数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。以八段共阳管为例,它有7个发光二极管<比八段少一个发光二极管,用来显示小数点>,每个发光二极管的阳极连在一起,如图3.6所示。这样,一个LED数码管就有I根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。为方便起见,本文主要讨论共阳八段LED数码显示管,其他类形的显示管与其类似。图3.6LED数码管LED灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如dp,g,f,e,d,c,b,a全亮显示为8,采用共阳极连接驱动代码,代码表如下表3.1所示。显示数值dp,g,f,e,d,c,b,a驱动代码011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H表3.1驱动代码表相应在程序软件上,可以通过调用程序给定的数值通过除十确定余数和商从而确定温度值的个位与十位,然后再通过DPTR调取七段数码管断码表TAB的代码实现相应值的数显。LED7段数码管的设置为每个方位上的一对2为显示器。四个方位上总共用7个LED接在单片机的IO口上。虽然路口不一样,但是显示的时间在数字上是一样的,所以两边连接的IO口是对称的。如图3.7所示,其中A,B分别是P0,P1的网络标号。图3.7LED连接图3.3.4其它器件〔1发光二极管根据本设计的特点,状态灯的显示不可少,状态灯显示采用普通的发光二极管。设置4个LED灯使现场运行状况一目了然,如果红灯亮,外部加热电路运行,如果绿灯亮,外部降温电路运行,如果黄灯亮,外部调温电路处于等待状态。如果绿灯亮,系统曾出现过报警信号,现已排除。如果绿灯闪烁,温度超过上限值系统停工以保证微电子器件的安全。图3.8状态灯的连接〔2外部驱动继电器本设计采用继电器驱动外部电路,通过使用NPN三极管进行驱动控制,当P1.6和P1.7引脚输出为高电平,NPN导通,继电器接通;当P1.6和P1.7引脚输出低电平时,NPN截止,外部继电器停止工作。如下图3.9所示图3.9继电器连接图3.9继电器连接〔3等待灯本设计设置了外部电路的第三种状态等待状态。高电平有效,当环境温度与设置温度一致时系统停止外部调温电路运行点亮等待灯。如下图3.10所示图3.10等待灯示意图..4系统软件程序的设计4.1程序主体设计流程全部控制程序实际上分为若干模块:按键设置处理程序,状态灯控制程序,LED数码管显示程序,消抖动延时程序,温度扫描处理程序,上限温度报警程序,中断服务子程序,设定温度实时稳定比较程序等。整个软件程序方面主要分两大部分:实时温度扫描程序,温度对比判断程序。系统流程图如图4.1所示。传感器初始化并写入工作方式传感器初始化并写入工作方式写入完成开始接受采样值调用转换控制子程序保存转换值显示设定温度显示当前温度NY图4.1系统总流程图首先是温度扫描程序,89C52通过对P1.0和P1.1扫描温度传感器,确定实时温度,再与系统内部的设定温度对比,根据ACC累加器的到按键处理程序。按键处理结果可设置两种工作模式:红绿灯时间设置模式和红绿灯时间自动模式,次程序相当于系统的模式设置,若想重新设置则要按下复位键。设置过后进入50ms扫描程序。50ms扫描程序开始后,先刷新显示模块,若为自动模式则接下来要计数车流量,然后扫描紧停信号和违规信号,若捕获则调用中断,中断服务子程序主要启动蜂鸣器,直至恢复键按下。50ms已到则重新扫描。扫描20次之后计时到达1s则时间数据减1,在显示模块中修改显示缓冲区内容。在半个状态对换时,车流量计数程序在一个状态变换循环先后计数两个方向的车流量,然后调用红绿灯时间调整程序,更新红绿灯时间。当前状态时间已到,则判断次状态装入相应数据,然后进入下一状态。4.2理论基础知识〔1定时器原理定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC可得到如下计算通式:TC=M-C式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。计算通式变为:T=〔M-TCT0模值和计数器工作方式有关。在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。这就是为什么扫描周期为50ms的原因,若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。〔2软件延时原理MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*〔1/12MHZ=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。我们设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到。设定定时器需要定时50毫秒,故T0必须工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH,程序如下:……WAIT:JNBTF0,WAIT1CLRTF0MOVTH0,#01HMOVTL0,#0B01HDJNZR2,WAIT……〔3中断原理本系统主要使用了外部中断,中断信号有引脚INT0和INT1输入,低电平有效,CPU每个时钟周期都会检测INT0和INT1上的信号,8051允许外部中断以电平方式或负边沿方式两种中断方式输入中断请求信号,可由用户通过设置TCON中IT0和IT1位的状态来实现。以IT0为例,IT0=0,为电平触发方式,IT0=1,为负边沿触发方式,本设计采用电平方式,IE0为其中断标志位,有中断信号则置位,中断服务子程序响应后,IE0自动清零。IE中的EA为允许中断的总控制位,为1开启,EX0为外部中断允许控制位,为1开启。在优先级的允许下,一旦有外部中断信号产生,单片机CPU首先保护断点,PC值进栈,然后执行相应的中断服务子程序,执行完后,用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。〔4红绿灯时间调整原理车流量检测传感器可对单片机控制系统提供实时数据,系统对所获数据进行模糊处理。实现红绿灯模糊控制必须解决对当前十字路口的交通状况的检测,并完成如下工作:1.输入量的采集,系统采集两个输入量,即两个方向的车流量。2.输出量的确认,即红绿灯时间值。3.设计将输入映照到输出的模糊规则。4.决定被激活模糊规则的组合方式和清晰处理,生成精确的输出控制信号。为了采集上述数据,在十字路口的四侧共设置2个传感器。分别检测两个方向的车流量,车流量检测不是最终目的,在每半个循环周期,系统会检测到两个方向的车流量数据,除以时间,那么就可以得到单位时间的车流量,然后比较两个方向单位时间车流量多少,以确定下一次循环红绿灯时间,达到调整的目的。如,在一次循环过后,检测到南北向车流量〔设此时南北绿灯,东西红灯时间为20s为100辆,东西向车流量〔设此时东西绿灯,南北红灯时间为30s为90辆,则单位时间车流量南北向和东西向的比例是:〔100/20/〔90/30=1.6,显然南北向交通严重,那么现在就可以把南北绿灯,东西红灯时间调长。上面的比例1.6还是一个确定数值,究竟多少为多,多少为少,这就必须设定模糊规则,划定几个值域范围,分别对应到具体的调整时间上,系统就调用具体的输出值了。4.3子程序模块设计〔1按键扫描程序首先程序不断扫描模式设置键,分别记为:S键,J键,F键对应IO端口的P3.6,P3.2,P3.7,低电平有效,按键顺序是指定的,若直接按F键,则为自动调整模式,然后进入下一程序;若先按S键,再按J键,F键则为设置时间模式,然后进入下一程序。程序的开始要判断是否有键按下,可以不断将S键值和F键值相与,与值为1则表示没有键按下,为0则表示有键按下,程序如下:K1:MOVC,P0.0ANLC,P0.1JBC,K1……接下来要判断具体是那个键,若为F键,则将自动标志位置1,进入下一程序,否则为S键,则表示设置南北绿灯时间,用R0存值,按1下加1,同时还需判断此时J键是否按下,若按下,则表示南北绿灯时间设置完毕,开始设置东西绿灯时间,用R1存值,同样按1下加1,同时判断此时F键是否按下,若按下,则表示时间设置完毕,进入下一程序。在这个过程中,S,J键的计数是循环的,从初值20开始,加到40则循环回到20。如判断S键程序如下:CJNZR0,#40,V1MOVR0,#20V1:INCR0……〔2状态灯显示及判断在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。定义IO端口如下,其中均是低电平有效。H_GREENBITP2.2H_YELLOWBITP2.3L_REDBITP2.4L_GREENBITP2.5L_YELLOWBITP2.6共有4钟状态:东西红灯亮,南北绿灯亮〔11011101/DDH;东西红灯亮,南北黄灯亮〔10111101/BDH;东西绿灯亮,南北红灯亮〔11101101/EDH;东西黄灯亮,南北红灯亮〔11100111/E7H。括号中是P2端口8个引脚值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及对应的十六进制码。在用于显示发光二极管时,直接由MOV指令将十六进制码送入P2口。刚才的4个状态是依次变换的,这就要涉及到状态的判断和衔接了。先把P2端口的值与所有的4个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显P2即可。程序如下:MOVA,P2CJNZA,#0DDH,D1MOVP2,#BDHD1:CJNZA,BDH,D2MOVP2,#EDHD2:CJNZA,#EDH,D3MOVP2,#E7HD3:CJNZA,#E7H,YMOVR2,#DDH……〔3LED倒计时显示LED计时每1秒都要刷新1次,那么计时满1秒时就要将存储时间的工作寄存器R4减1,然后送入LED显示程序中显示。下面要将时间数据R4的十位,个位分开送显P1,P0端口,首先将R4除以10,整数即十位放在A中,余数即个位放在B中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。具体程序如下:MOVA,R4MOVB,#10DIVA,BMOVDPTR,#LEDMAPMOVCA,@A+DPTRMOVP1,AMOVA,BMOVCA,@A+DPTRMOVP3,ALEDMAP:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH……〔4车流量检测中断服务子程序车流量检测是用外部中断引脚P3.3即INT1捕获到一个低电平,则进入相应的中断服务子程序,在子程序中,用R5计南北向车流量,用R6计东西向车流量,设车向标志位为01H,判断车向,程序如下:JNB01H,UINCR5U:INCR6……〔5紧停及违规中断服务子程序紧停按键和违规信号传感器均连接到外部中断引脚P3.2,即INT0捕获到一个低电平,则进入该中断,中断程序中先把蜂鸣器P3.4端口置0,启动蜂鸣。并且等待恢复键F键P3.7按下,然后关闭蜂鸣返回。INT0:SETBP0.5JBP0.0,$LCALLDELAYCLRP0.5RETI……〔6红绿灯时间调整程序根据红绿灯时间调整原理,一个周期下来,R5,R6中分别存储着南北,东西的车流量,接下来求单位时间车流量,此时南北向时间,东西向时间分别存储在R0,R1中,则两个方向的流量比例为〔R5/R0/〔R6/R1=<R5*R1>/<R6*R0>,显然该比例是1左右带小数的值,然而单片机程序中只取整数,重要的数据信息就会丢失,所以本设计中首先将<R5*R1>乘以10,比例就变为10左右的值。将该比例值放在A,然后进行时间调整。由于受到多方面的限制,时间调整在此只划定3个范围。比例0到0.7为一个范围,0.8到1.5为一个范围,1.5以上为一个范围。第一范围显然表明东西向交通严重,应将时间调长;第二范围表明两向相当,可设置一样的时间,第三范围表明南北向交通严重,应将该向时间调长。具体设置如下表4.1.南北与东西向比例0—0.70.8—1.51.5及以上调整南北向时间203040调整东西向时间403020表4.1比例及调整时间由表可知,对应的时间调整也只有三种,分别是20,40;30,30;40,20.显然在实际应用中这样简单的处理难以尽如人意,但在此处,本设计只是模拟大致的调整过程,以上要求的程序如下:CJNZA,#7M1M2:MOVR2,#20MOVR1,#40SJMPOUTM1:JBC,M2CJNZA,#15N1N2:MOVR0,#30MOVR1,#30SJMPOUTN1:JBC,N2MOVR0,#40MOVR1,#20OUT:CLRR5CLRR6RET……〔7消抖动程序另外,在按键计数的过程中,还存在机械抖动与软件方面的矛盾,即当程序检测到了有按键按下,则会计一次数,但是实际上,按键闭合后在微观上还会弹起,然后闭合,一直到达稳定,显然后面的弹落是无效的,为了使程序避免这个问题,可以在检测到首次闭合时,调用一定时间的延时程序。此处延时程序完全用软件完成,利用程序执行一条指令的时间,再加上两次累减嵌套,程序如下:DELAY:MOVR2,#14HA1:MOVR7,#0FFHDJNZR2,$DJNZR7,A1RET4.4源程序H_REDBITP2.1;定义IO端口H_GREENBITP2.2H_YELLOWBITP2.3L_REDBITP2.4L_GREENBITP2.5L_YELLOWBITP2.6;*****************************************************************;主程序,选择设置红绿灯时间模式或自动调整模式;*****************************************************************ORG0000HLJMPMAINORG0003H;中断入口LJMPINT0ORG0030HMAIN:MOVR3,#20;用于嵌套50ms软件方法计时1sMOVR0,#20;预设值红绿灯时间MOVR1,#20CLREX0K1:MOVC,P3.7;等待检测何种模式按键按下ANLC,P3.2JBC,K1JNBP3.7,F;F键按下为自动模式,进入扫描K2:JNBP3.2,S;S键按下并等待计数次数SJMPK2F:LCALLDELAYMOVR0,#30MOVR1,#30SETB00HSETBEASETBEX1SJMPSTARTS:LCALLDELAYCJNZR0,#40,V1MOVR0,#20V1:INCR0JNBP0.1,$JNBP3.6,J;J键按下并等待计数次数SJMPK2J:LCALLDELAYCJNZR1,#40,V2MOVR1,#20V2:INCR1JNBP3.6,$JNBP3.7,START;设置完毕为设定时间模式,进入扫描JNBP3.6,JMOVP2,#0DDH;预设信号灯状态,时间和车向MOVR4,R0SETB01HSETBEX0;*****************************************************************;程序开始,进行每50ms扫描;*****************************************************************START:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HCLRTF0SETBTR0;开始50ms计时DJNZR3,Y;1s是否计时完毕MOVR3,#20DJNZR4,Y;本状态是否结束,并进行下一状态设置MOVA,P2CJNZA,#0DDH,D1MOVP2,#BDHMOVR4,#5D1:CJNZA,BDH,D2MOVP2,#EDHMOVR4,R1CLR01HD2:CJNZA,#EDH,D3MOVP2,#E7HMOVR4,#5JNB00H,D3LCALLDATAD3:CJNZA,#E7H,YMOVR2,#DDHMOVR4,R0SETB01HY:MOVA,R4;LED倒计时显示MOVB,#10DIVA,BMOBDPTR,#LEDMAPMOVCA,@A+DPTRMOVP1,AMOVA,BMOVCA,@A+DPTRMOVP0,ALEDMAP:DBC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HJNB00H,WAIT;判断是否要计数车流量JBP3.3,WAIT;判断是否有车经过WAIT:JNBTF0,WAIT;50ms一次扫描完毕SJMPSTARTINT1:JNB01H,U;判断车向INCR5U:INCR6RETIINT0:SETBP3.4;中断服务子程序,闯红灯或紧停按键JBP3.7,$LCALLDELAYCLRP3.4RETIDATA:MOVA,R6;车流量数据处理及红绿灯时间调整MOVB,R0MULA,BMOVR6,AMOVA,R5MOVB,R1MULA,BMOVB,#10MULA,BMOVB,R6DIVA,BCJNZA,#7M1M2:MOVR2,#20MOVR1,#40SJMPOUTM1:JBC,M2CJNZA,#15N1N2:MOVR0,#30MOVR1,#30SJMPOUTN1:JBC,N2MOVR0,#40MOVR1,#20OUT:CLRR5CLRR6RETDELAY:MOVR2,#14H;延时程序,用于按键消抖动A1:MOVR7,#0FFHDJNZR2,$DJNZR7,A1RETEND程序中部分端口说明:P2状态灯P0LED个位P1LED十位P3.7F键自动调整模式/时间设置模式确认P3.2S键设置南北向通行时间P3.6J键设置东西向通行时间/紧停P3.3车流量检测P3.2红外对管P3.4蜂鸣器R3存20用于乘以50ms计时1sR4暂存状态灯持续时间R0存南北向通行时间R1存东西向通行时间R5计南北向车流量R6计东西向车流量R2,R7用于软件延时00H自控标志位01H车向标志位4.5系统软件调试〔1TKS仿真器仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。单片机系统开发中的仿真包括软件仿真和硬件仿真。软件仿真这种方法主要是使用计算机软件来模拟实际的单片机运行,因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最后的设计;硬件仿真使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就可以对程序的运行进行控制,例如单步、全速、查看资源断点等。〔2集成开发环境KEILKEILIDEVision2集成开发环境主要由以下部分组成:◆uVision2IDE。ision2IDE包括:一个工程管理器,一个功能丰富并有交互式错误提示的编辑器选项设置生成工具,以及在线帮助。使用vision2创建源文件并组成应用工程加以管理。vision2可以自动完成编译汇编链接程序的操作;◆C51编译器和A51汇编器。Vision2IDE创建的源文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物燃料在交通运输中的可行性研究
- 焦耳电熔炉玻璃固化工艺控制系统设计及温控算法研究
- 每季度副总经理工作总结
- 装配车间年终总结
- 肺癌化疗患者心理护理
- 财务部的安全生产工作总结
- 智能烤面包片机企业制定与实施新质生产力战略研究报告
- 微型电子设备超市企业县域市场拓展与下沉战略研究报告
- 年货企业ESG实践与创新战略研究报告
- 芥末酱企业ESG实践与创新战略研究报告
- 《人工挖孔桩安全教育培训》
- 全省检察机关公诉业务知识考试试卷
- 10KV开关柜教学讲解课件
- 损伤疼痛病(软组织损伤)中医临床路径
- 航模队第一讲-飞机基本原理和弹射机制作
- 高速铁路牵引供电系统课件
- 知名房地产抖音代运营方案
- 红外线测温技术方案
- 人教版八年级下册英语全册教案完整版教学设计含教学反思
- 煤矿探放水作业安全技术实际操作考试标准
- 银行案件风险排查方案
评论
0/150
提交评论