求问能小天才app如何添加表情这种表情的app

捷配欢迎您!
微信扫一扫关注我们
当前位置:&>>&&>>&&>>&基于AT89C51单片机的交通灯控制系统设计与仿真
  摘要:的交通灯控制系统是由AT89C51单片机、键盘电路、LED倒计时、交通灯显示等模块组成。系统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、急车强行通过、交通特殊情况处理等相关功能,实验采用AT89C51单片机为控制芯片,采用"Proteus+KeilμVision2"对交通灯控制系统进行了仿真,仿真结果表明:该系统能够简单、经济、有效地解决交通堵塞问题,提高交通路口的通行能力。
  0 引言
  随着微控技术的日益完善和发展,单片机的应用不断走向深入。它的应用必定导致传统的控制技术从根本上发生变革。它在工业控制、数据采集、、机电一体化、家用电器等领域得到广泛的应用,极大地提高了这些领域的技术水平和自动化控制。同时,伴随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国的道路交通系统带来沉重的压力,很多大城市都不同程度地受到交通堵塞问题的困扰。为解决交通堵塞问题,采用AT89C51单片机为核心,与与组成特殊情况控制电路、七段及LED组成显示电路,设计出以人性化、智能化为目的的交通灯控制系统,如遇特殊情况可人为控制交通从而解决交通堵塞的实际问题,整个电路简单,易于实现。
  1 系统总体功能描述
  根据日常生活中交通繁忙路段十字路口车辆和行人的通行情况,设置本交通灯控制器控制十字路口的各交通按照以下规则转换状态:
  (1)主干道(A道)先通行且通行时间为45
  (2)支道(B道)通行时间为25
  (3)主道与支道的车辆交错通行;
  (4)主道与支道转换时,绿灯变红灯时,先绿灯闪3 s,而此时另一个红灯不改变,然后黄灯亮2 s.
  (5)若遇紧急情况,按K1时,主道与支道都为红灯20
  (6)根据实时交通堵塞情况人为控制时,按K2时,主道延时30 s通行,按K3时,支道延时30 s通行。
  2 系统硬件设计
  整个系统主要由主控中心(单片机)、复位电路、时钟电路、按键控制电路、数码管显示电路及LED模仿交通信号灯电路等功能模块组成。遇到特殊情况时可以通过按键电路控制实时交通实际情况,系统框图如图1所示。
图1 系统硬件结构框图
  2.1 最小应用系统
  系统中,复位电路、时钟电路与51单片机组成最小应用系统,使交通控制系统可以正常工作。其中复位电路采用按键复位,如图2所示。
图2 系统仿真电路原理图
技术资料出处:heavend
该文章仅供学习参考使用,版权归作者所有。
因本网站内容较多,未能及时联系上的作者,请按本网站显示的方式与我们联系。
【】【】【】【】
上一篇:下一篇:
本文已有(0)篇评论
发表技术资料评论,请使用文明用语
字符数不能超过255
暂且没有评论!
12345678910
12345678910
12345678910
我国国家标准(GB)对的定义是:“能感受被测量并按照一定的规律转换成可用输出信号的器件或装置”。传感器作为信息获取的重要手段,与通信技术和计算机技术共同构成信息技术的三大支柱。下面主要为大家介绍下面七大传感器。传感器一:物理传感器物理传感器物理传感器是检测物...[][][][][][][][][][]
IC热门型号
IC现货型号
推荐电子百科新版图书-书店
当前位置: &
《基于PROTEUS 的单片机系统设计与仿真实例》正版图书
滚动鼠标滚轴,图片即可轻松放大、缩小
《基于PROTEUS 的单片机系统设计与仿真实例》正版图书(图1)
电&&&&&&话:
开&&&&&&本:16开
页&&&&&&数:
字&&&&&&数:
I&&S&&B&&N:1
售&&&&&&价:108.00元
Copyright(C)
孔夫子旧书网
京ICP证041501号
海淀分局备案编号基于单片机分时共享多任务处理的路灯节能控制
星期一, 06/13/2016 - 17:48 —
摘要: 以AT89S51单片机为例,使用分时共享的方法实现系统多任务控制,使用PCF8591实现A/D和D/A转换,通过采集的环境变量与预存数据比较,确定主照明灯的工作状态,同时设计了副照明灯控制电路辅助系统。此系统应用于路灯灯光控制,达到了智能处理、节能控制的目的。
单片机在微型智能控制系统中应用非常广泛。由于低端单片机自身功能限制,在智能控制系统中,单片机多数仅按人们设定的程序运行,即一个任务完成以后才能进行下一个任务。这种单任务模式效率较低,对外部控制反应较慢,没有最大限度的发挥单片机的机能。在智能灯光控制系统中,来自外界声、光、温度等多种信息,反映了当时的环境状态,系统捕捉到这些数据后进行分析,根据预设的规则进行实时处理,达到对灯光节能控制的目的。环境信息随机性强,可能同时产生,也可能顺序产生和变化,这就要求系统能够及时处理数据并产生准确判断,控制灯光的亮灭和明暗,以适应环境要求。
1单片机多路多任务控制的原理
研究表明,多任务系统就操作系统的来说,不外乎两种:协同式和抢占式。协同式多任务系统中,每个程序运行中都要适时地释放CPU控制权以便别的程序有机会运行,这包括显式地(Explicitly)和隐式地(Implicitly)交出控制权。显式地放弃控制权出现在当一个程序因执行有目的的特殊系统指令时,如对磁盘绝对的读写;隐式地放弃控制权出现在当执行某条系统指令又放弃CPU控制权时,如虚拟内存技术中的页面切换。抢占式多任务系统中,操作系统必须能够夺取任何一个正在运行程序的控制权,并使另一个程序获得控制权。抢占式系统会给每个运行任务合理地分配时间片,因此应用程序不必担心别的程序会独占系统,只不过系统可以在所给时间片内抢占运行程序的控制权,以处理紧急事务而已。
中低端单片机系统,由于只有一个处理器,系统并不能真的在同一时间段内运行多个程序,只能给各程序分配时间片,在一个时间片内程序独占CPU。时间片采用轮换分配方式,CPU在各个程序间飞快地切换,产生同一时间内运行多个程序的效果。
在低成本智能控制系统中,常采用价格低廉的51单片机或简化的16位单片机作为微处理器(MCU)。然而,低端单片机本身没有多任务处理功能,程序是单任务执行的,执行代码只能按顺序进行,除非中断。但是,8位以上单片机内部设置了2个以上定时器和多个外部中断源,可以充分利用这些资源实现多任务处理。如80C51单片机内置了T0、T1两个16位定时/计数器,若外接12MHz晶振,单个定时器可以进行1us-65.536ms的定时中断,2个定时器则可以定时4295s。可以按需要设置好定时器,得到相应时间片,再恰当利用定时中断分配这些时间片,完全可以实现多任务的分时轮换。
单片机一般都有多个外部中断源和并行I/O端口。可以通过外部中断(或扩充的多级外部中断)来感知外界多路传感器的信息,经CPU处理后,通过并行I/O口驱动效应器,以实时感知和处理外部事件,实现多路控制。再合理地配合使用定时器,就可以实现多路多任务控制。
2多任务控制调度算法设计
分时多任务控制的关键在于时间片的选取和调度算法的设计。假设一个智能控制系统,有n路设备需要实时控制,系统轮询时间在tmin—tmax之间变化。设n个设备的管理程序对应优先级分别为P1、P2、…、Pn,则设计如下时间片分配和任务调度算法。
2.1 平均分配、顺序调度
按设备数量n平均分配时间片,每个时间片在tmin/n—tmax/n之间取值,只要不低于单片机定时的最小时间即可。事实上,日常设备的控制一般以s或ms为单位,远比单片机定时的单位us长。设备按顺序依次分配时间片,1个时间片完后,不论设备管理程序是否执行完毕或者优先级如何,必须中断换下一个设备管理程序执行。
这种方法计算时间片和任务调度算法都最简单,每个设备获得CPU的机会均等,比较适合设备单一、任务相近的简单控制系统。
2.2 平均分配、优先调度
时间片长度平均分配,按设备运行时的优先级来确定调度任务的先后顺序。任务调度与优先级处理遵照下列规则:
1)优先级Pi分为0、1、…、m等m个级,数值越大级别越高。在系统初始化时为每个设备设置一个初始优先级(可以是全0或者按系统所需进行设置)。
2)系统快速扫描各设备优先级,为优先级最高的设备分配时间片,优先级相同的设备按编号先后处理。
3)获得时间片运行程序后,设备的优先级按某种算法降低。如优先级减1直至减到0,或者只要得到时间片其优先级直接降到0。
4)没有获得时间片的设备根据自身事务的重要程度,按事先设定好的程序自动增加优先级,以便快速获得时间片。
该方法比较好地体现设备运行的紧急程度,算法也比较简单,但是增加了系统访问设备的开销,降低了系统效率。
2.3 变长分配、优先调度
时间片的长短由设备管理程序执行时间和处理临时事件的需要共同确定。这需要设计设备管理程序时,计算出不同情况下程序响应并执行的时间,将这些时间存储在一张设备时间表内{tn1,tn2,…,tni}(1,2,…,i表示某种状态或需处理的分支)。设备运行的优先顺序可以通过外部中断由硬件来响应,也可以采用2.3节的算法规则来处理。获得优先执行的设备,分配的时间片长度由程序根据设备状态i查时间表实时计算出来,故时间片是变长的。
这种算法设备在处理紧急情况时可以充分占有CPU,执行效率较高,实时性较强,但是调度算法设计较为复杂,还需占用大量空间来存储时间表、临时数据。
3 智能灯光控制系统的硬件设计
照明灯光照强弱由环境决定,外界诸多因素都是控制所需的信息,其中环境光强弱、声音(噪声)大小和温度等是主要因素。环境光强则照明灯照度减弱或熄灭;噪声强而持久说明人员较多,则照明灯照度适当增强和照明时间延长;温度高则应适当降低照度已减少发热保护灯具。
3.1 系统工作流程
来自外界光(W)、声(S)、温度(T)等多种数据,反映了当时的环境状态,系统捕捉到这些数据进行分析,根据设计的规则进行处理并实时控制照明驱动电路,达到对灯光节能控制的目的。控制系统结构框图如图3-1所示。
图3-1 智能灯光控制系统结构框图
其中,传感器用于感知和采集环境因素,是多路同时工作的。
A/D转换将传感器采集到的环境信号进行数字化供MPU处理。
MPU是系统的核心,执行分时复用的多任务调度算法,读取各路A/D转换器的值并存储,然后根据内存中预设的各参数的临界值进行比较,决定输出的控制数据。
D/ A转换及控制器根据MPU处理结果转换为输出电压的大小,从而控制照明灯的状态。
看门狗复位电路防止程序运行时可能进入的混乱或死循环,在异常情况下,发出系统复位信号并记录当时的照明灯状态数据,使系统恢复工作。
时钟发生器是进行预设控制的时间,根据预存季节和正常天气下亮暗的时间数据,与这个基准时间对比,供MPU参考。[7]为了时钟能正常运行和校准,需要安装电池供电和增设一个简单的键盘,以供时钟消耗和设置当前时间。
照明灯部分的主灯部分需要一个调压电路。副灯使用继电器控制工作,以便深夜人员稀少主灯停止工作时开启。照明灯的亮灭和功率输出大小,均由MPU控制。
3.2系统硬件选择
考虑到简捷、实用和成本等因素,采用国内比较流行的低成本单片机AT89S51作为主控MPU,其是块高性能、低功耗CMOS 8位单片机,含有基本的并口、串口、定时器和中断,还含有看门狗(WDT)电路,适合大批量、规模化制造。
由于路灯照明控制并不需要太高的精度和速度,控制系统应小巧、功耗少、成本低、稳定性好。因此,可以选用以下二种方案:
1)A/D 转换采用带有高阻抗缓冲输入的低功耗4路8位串行数/模转换器TLC5620,实现4路模拟信号独立采集。D/A转换采用经典8位并行的DAC0832芯片,或者精度较高的12位串行数/模转换芯片AD7543。
2)直接使用单电源、低功耗8位COMS型A/D、D/A转换芯片PCF8591,其有4路模拟量输入通道和1路模拟量输出通道以及1个I2C总线接口。
环境因素中光和温度随季节、天气和时间变化,声音在白天除了阴雨天外对系统没太大影响,夜晚随机产生噪声可能激发路灯照明。这些因素若能够独立采集的话,则可以使用功能特有、参数不同的传感器来探知。但实际情况是,路灯照明的控制并不需要太精确,各路信号也不必同时采集,只要选用工作电压一致的传感器,用程序对采集的各路数据进行修正处理,再利用中断即可实时采集各路数据。因此选用上述第二种方案,使用芯片少,电路简单,功耗和成本较低。
3.3控制系统的硬件设计
根据以上分析,照明灯智能控制系统的硬件原理如图3-2所示。
图3-2 系统原理图
系统在初始化后,单片机U1即刻分时对U2的三路输入AIN0~2采集数据,并将数据转换成环境变量W、S、T进行存储。采集一定时间后,将数据统计,得到较为准确的环境变量值。然后通过控制算法判断环境状态和变化趋势,从而确定对照明灯的控制。若需开启主照明灯,则启动U2的D/A模式,根据计算出的数据,按8位精度步进调整输出电压,再通过调压模块,控制主照明灯开关和亮度增减。如在深夜人迹罕至时只需开启副照明灯,则将U1的P1.0清零,继电器吸合,副照明灯工作,此时系统按一个较长周期探测AIN1端(声音输入端),以减少系统开销,最大限度降低能耗。
PCF8591作为模拟/数字转换元件,体积小、耗电低,很适合微型化批量生产。传感器采用常见的光敏电路、热敏电阻和拾音器,外围电路简单,成本较低。电源由市电直接提供,方便统一控制。
4系统软件设计
系统采用模块化设计,由主程序和采集模块、控制模块、保护模块等构成。系统初始化后,调度时间片分配程序,分别为数据采集端和控制端给予时间片,然后等待响应。由于系统所处环境因素随机性较强,为简化程序,采用“平均分配、顺序调度”的多任务调度算法。响应后调用处理模块进行数据处理和系统控制。系统可以使用Keil μVision编程,利用Proteus设计硬件和仿真。
4.1 主程序流程
主程序的流程图如图4.1所示。首先进行系统初始化,完成内部环境变量存储单元清零,定时器T、PCF8591的初始值设置等;然后启动定时器T1定时(如50ms),依次采集光、声、温度等外界环境变量,将多次采集数据的平均值计算出来,存储在对应单元中。一轮时间调度完成后,调用数据分析与处理模块,根据反馈的数据判定系统有没有故障,进而调用照明灯控制模块或进行故障处理。
图4.1 主程序流程图
以下是通过时间片顺序轮换算法实现多路多任务控制的部分C源程序:
#define uchar unsigned char
uchar mode=0;
//设备编号,初始值为0,表示从第1号设备开始分配时间片
uchar s[3];
//存储环境采集到的光线w、声音s、温度t数据
void A2D8591 (uchar mode);
//采集处理函数
uchar analysis (uchar s[]);
//数据分析函数,返回值是照明灯控制数据
void ligcontrol(uchar k);
//照明灯控制函数(含D/A转换),k为主、副灯控制标志
/*********定时器1中断服务函数**********/
void T1_time() interrupt 3
//使用12Mhz晶振,则定时50ms
switch ( mode )
A2D8591 (mode); //按设备号启动数据采集
default: analysis (s);
//一轮采集完成则进行数据分析并启动D/A转换
mode = (mode +1)/4;
//顺序分配时间片
void main()
ligcontrol();
// 此处为其他处理语句
4.2 A/D和D/A处理模块
PCF8591采用典型的I2C总线接口,由内部地址选择字和转换控制字来设置,且高四位地址规定为1001,低三位A2A1A0为引脚地址。由于PCF8591同时承担A/D、D/A转换,因此必须对其工作方式即读/写操作进行选择,将其地址选择字最低位D0设置成1或0(即读与写)。在总线操作时,MPU先发送由器件地址、引脚地址和方向位组成的第一字节。然后发出第二个字节即控制字,其中:D1、D0是A/D通道编号,D2是自动增益选择(设为1不自动转换通道),D4、D5是模拟量输入方式(设为00四路单端输入),D6是模拟输出允许位(A/D和D/A转换时分别设置为0和l)。
此模块主要是对PCF8591进行初始化、启动、传送数据等操作。A/D的通道由定时中断来切换,D/A转换在数据分析后启动。A/D和D/A转换模块的程序流程图分别如图4.2和图4.3所示。需注意的是,A/D转换结束后,需要先发送一个非应答信号位A后,再发送结束信号位P。A/D转换的输出是上一次的转换结果,因此需两次读取,第二次读出的数据即为当前转换的数据。由于本系统仅将时间片内多次转换的数据进行平均处理,因此并不需要读取第二次。
A/D转换流程图
D/A转换流程图
4.3 照明灯控制模块
系统分主灯与副灯两个控制子系统,程序由3个主要判断构成:先判断环境亮度超过高临界值wmax时,说明环境光照环境好,关闭所有照明灯节省电力,小于低临界值wmin时,启动主照明灯;再判断环境温度,超过某个临界值tmax时说明温度过高,MPU将通过D/A转换输出值0,关闭主照明电路,防止消耗过大、温度过高损坏设备;最后判断环境亮度w介于一个区间内时,或者环境噪声低于某个值smin时,说明当时是凌晨(黄昏)光线较好,或者是深夜人车稀少时,仅需要辅助灯光即可,此时关闭主照明灯,启动副照明灯(让MPU的P1.0清零)。这里的临界值需要在实际环境下,用测试系统测试,然后写入系统ROM中。
4.4 其他程序
看门狗使用典型的89S51片内看门狗程序。数据处理程序对采集数据平均,算出即时的环境变量值,程序比较简单。系统预先设计了实时时钟为系统提供时间,以便处理季节变换对4.3节提及的各数据临界值的影响,在以上分析中并没有论述,留作系统的后续研究。
设计了灯光控制系统,用单片机时间片轮换算法,实现了多任务控制,应用在灯光控制中达到智能、节能控制的目的。如果再设计出单片机与单片机之间、单片机与PC之间的通信协议,即可通过串口实现对单片机的远距离通信与控制控制,系统在实际控制应用中将具有更高的实用价值。

我要回帖

更多关于 小天才app如何添加表情 的文章

 

随机推荐