1、1基于51单片机的模拟路灯控制系统1系统设计11设计要求一、任务(来自原题)设计并制作一套模拟路灯控制系统。控制系统结构如图1所示,路灯布置如图2所示。输入、显示装置支路控制器单元控制器1单元控制器2LED灯1LED灯2图1路灯控制系统示意图2LED灯1LED灯2402040SABCS404040M定位点图2路灯布置示意图(单位CM)二、设计要求1基本要求(1)支路控制器有时钟功能,能设定、显示开关灯时间,并控制整条支路按时开灯和关灯。(2)支路控制器应能根据环境明暗变化,自动开灯和关灯。(3)支路控制器应能根据交通情况自动调节亮灯状态当可移动物体M(在物体前端标出定位点,由定位点确定物体位置
2、)由左至右到达S点时(见图2),灯1亮;当物体M到达B点时,灯1灭,灯2亮;若物体M由右至左移动时,则亮灯次序与上相反。(4)支路控制器能分别独立控制每只路灯的开灯和关灯时间。(5)当路灯出现故障时(灯不亮),支路控制器应发出声光报警信号,并显示有故障路灯的地址编号。2发挥部分3(1)自制单元控制器中的LED灯恒流驱动电源。(2)单元控制器具有调光功能,路灯驱动电源输出功率能在规定时间按设定要求自动减小,该功率应能在20100范围内设定并调节,调节误差2。(3)性价比高,工作稳定,符合电磁兼容(EMC)方面的要求,无对外干扰或干扰小。12总体设计方案121功能分解及设计思路本模拟路灯控制系统的
3、设计方案要实现的主要功能主要分解为以下五个方面一是时钟功能及定时开关灯。二是根据环境明暗变化,自动开灯和关灯。三是根据交通情况自动调节亮灯状态当汽车靠近路灯时,路灯能自动点亮;当汽车远离时,路灯自动熄灭。四声光报警功能,当路灯出现故障时而不亮时,控制器发出信号,并显示有故障路灯的地址编号。五是根据绿色节能照明要求,采用恒流源驱动LED路灯发亮且能调光,路灯驱动电源输出功率能在20100范围内设定并调节,调节误差2。以上功能的实现,都是以单片机为核心,在单片机系统实现的输入输出和显示功能的基础上,由单片机的内置逻辑和运算功能,加上一定的外围电路得以实现。针对以上的五个功能,采用模块化的设计思想,
4、以下分别叙述之。122方案论证与比较1221时钟功能及定时开关机。方案一采用专用时钟芯片。4现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。其优势是可以单独使用,直接连接到单片机外围,有自己独立的时钟晶振,精度较高。单片机通过串行接口读取和写入当前的时钟值,时钟芯片的运行受单片机死机的影响少。其缺点一是消耗了单片机IO口资源。二是在编程时需要增加读写串行口的内容,消耗了单片机的运行时间。三是增加了成本。增加了时钟芯片及其外围电路的开支。DS1302的典型应用电路如图3所示图3DS1302的典型应用电路方案二采用单片机内置时钟振荡电路及定时器构建时间平台。本方案直接利
5、用单片机的内置定时器,通过定时器的中断和简单运算实现时钟功能。5例如STC单片机,在4M时钟时,单个指令的运行时间是1微秒,设置定时器1每125个指令周期产生一个中断,即125微秒,8个中断后,时间平台是1毫秒,设置以下时间计数变量分别为UCHARTO1MS0X00/当该变量增加到某个数值时,表示经过了1毫秒UCHARTO2MS0X00/当该变量增加到某个数值时,表示经过了2毫秒UCHARIS2MS0/到达2毫秒时刻UCHARTO20MS0X00/当该变量增加到某个数值时,表示经过了20毫秒UCHARIS20MS0/到达20毫秒时刻UCHARTO1S0X00/当该变量增加到某个数值时,表示经过
6、了1秒UCHARIS1S0/到达1秒时刻在秒时间平台,用TOMIN变量,计数60秒后进入分钟平台,计数60分钟后,进入小时平台。方案二没有增加外置电路,充分利用了单片机的定时器功能,实施简洁方便,主要的缺点是当控制系统断电或死机以后,需要人工重新定时。本系统的时钟功能实现采用方案二。1222根据环境明暗变化,自动开灯和关灯功能。方案一采用比较器的解决方案。光敏电阻与固定电阻串联,加一级电压跟随器后输入比较器,与比较器负输入端的电压值进行比较,得到一个高电平或低电平输出,进入单片机的IO口。6优点是电路比较直观,操作比较方便,可直接通过电位器调节路灯的开启亮度。对维护人员的要求不高。缺点是不方便
7、进行数码控制。方案二采用AD变换。光敏电阻与固定电阻串联,由单片机内置的AD变换接口读入当前的电压值,然后根据读取的电压值判断当前的环境亮度。路灯的开启电平由内部的变量控制。方案二的优点在于可以方便以实现对路灯开启电平的数码控制和远程控制。本系统采用方案二。1223根据交通情况自动调节亮灯状态。当汽车靠近路灯时,路灯能自动点亮;当汽车远离时,路灯自动熄灭。方案一采用工业级的光电传感器。这种光电传感器普遍运用于电梯、生产线等工业场所。优点是使用方便,型号很多,输出量是开关量,不需调理电路。缺点是价格较贵。方案二采用廉价的红外对射传感器。红外对射的特点是传输距离较远,能量集中。当没有物体遮挡时,红
8、外光直射到红外探头上,红外接收管连续输出低电平到单片机,当有物体经过时,红外光被遮住,此时红外探头输出高电平到单片机。由于红外光的发射有一定的偏角,本设计利用了黑色套管遮挡红外发射灯头,以减少红外光的散失。本系统采用方案二。1224故障报警功能采用光敏电阻检测路灯的亮度,同时排除环境光的干扰。7利用单片机的AD口,读入光敏电阻上检测到的路灯亮度值。1225恒流源驱动LED及20到100范围内可调亮度。方案一采用恒流源驱动芯片,目前市场上成品的恒流源驱动芯片比较多,一般采用使用取样电阻调节输出电流的方式。这些芯片使用方便,性能较好,但价格较贵。方案二采用PWM方式驱动功率三极管输出驱动电流,用电
9、流取样电阻串入LED供电回路,用AD口读取当前的电流值,实现闭环控制。方案二利用了单片机的AD变换资源,同时采用PWM方式,可以使LED工作在断断续续的状态,可以延长LED的使用寿命。本系统采用方案二。8123系统各模块的最终方案13系统功能说明书(用户使用说明书)131路灯的工作模式本模拟路灯控制系统具备5种工作模式,分别是自动群控模式、自动分控模式、根据照度自动控制模式、根据交通情况自动控制模式、手动控制模式,下面对每种工作模式简单介绍如下(1)自动群控模式9在该模式下,支路控制器根据设定好的定时信息,自动地同时打开或者关闭两盏路灯。系统启动后默认进入该模式。(2)自动分控模式在该模式下,
10、支路控制器根据设定好的定时信息,分别控制两盏路灯的开关,例如,当系统的时间和路灯1开灯的时间相等时,开启路灯1;当系统的时间和路灯2关灯的时间相等时开启路灯2。(3)根据照度自动控制模式在该模式下,当环境照度低于一定的值时开启两盏路灯,当环境照度高于一定的值时关闭两盏路灯。(4)根据交通情况自动控制模式在该模式下,当可移动物体M由左到右到达S点时(见图),灯1亮;当物体M到达B点时,灯1灭,灯2亮;若物体M由右到左移动时,则亮灯的次序与上相反。(5)手动控制模式在手动模式时,两盏路灯只能由支路控制器用增加和减少键手动的调整亮度,路灯的亮度可以在0100自由的上下调整,步进为10。(1)(4)等
11、四种工作模式是互斥的,即在某一时刻只能具有其中的一种功能,不过各种模式可以手动的切换,手动调整路灯亮度的功能在这四种模式中都是有效的。另外,该路灯控制系统还具备故障检测功能,当路灯出现无法正常工作的状况时,该控制系统能够判定是哪一环节出现问题,并将故障通过声音警报及数码管显示告知用户。10132按键操作说明支路控制器具备5个按键,分别为时间调整键、模式选择键、增加键、减少键、确认键。时间调整键按时间调整键时,可以循环地选择系统时间、路灯1和2共同的开关灯时间、路灯1的开关灯时间和路灯2的开关灯时间。模式选择键按模式选择键可以进行系统工作模式的切换,顺序为自动群控模式自动分控模式根据照度自动控制
12、模式根据交通情况自动控制模式手动控制模式。增加、减少键按这两个键可以对时间或者亮度进行增减,长按时时间或者亮度可以连续变换。确认键确认键只在时间调整时有效,分别确认小时、分钟、秒的输入。2单元电路设计21每部分模块的电路设计211电源供电电路采用变压器与三端稳压器相结合11212单片机最小系统其核心芯片是STC12C5404AD。213输入与输出键盘12采用AD变换输入口为键盘输入口,节省了IO口资源。LED显示13214电流源驱动143软件设计软件采用C语言编写,可移植性和可读性强。软件编写体现了模块化的任务驱动方式。代码尽量符合变量定义规范。31子程序本系统包含以下子程序/键盘处理VOID
13、KEYBOARDSCANVOID/键盘扫描函数VOIDKEYBOARDOPERATEUCHARKEYNUM/按键处理函数/定时器处理VOIDINITTIMERVOID/定时器参数设定及启动/路灯控制15V特调OIDBRIGHTNESSSETUCHARLIGHTNUM,UCHARBRIGHTNESS/亮度调整/AD采样VOIDADEXCHANGEUCHARNUM/AD采样/亮度调整函数/VOIDBRIGHTNESSSETUCHARLIGHTNUM,UCHARBRIGHTNESS;额头纹/溢出中断处理程序/VOIDINTERRUPT6TIMERINTERRUPTVOID1617儿也让他32系统主程
14、序流程图321系统流程图18开始单片机存储器及变量初始化显示初始化对几路模拟信号轮流进行采样,每2毫秒采样一个信号按键扫描及处理检测环境的明暗度并决定是否自动开关灯路灯的故障检测检测交通情况,并根据交通情况对路灯的开关进行管理定时管理19322定时器溢出中断处理函数流程图20开始1毫秒变量递增到达1毫秒时刻清零1毫秒变量,设置激光传感器扫描标志,2毫秒变量递增到达2毫秒时刻清零2毫秒变量,设置2毫秒标志,20毫秒变量递增到达20毫秒时刻清零20毫秒变量,设置20毫秒标志,1秒变量递增,管理蜂鸣器响的时间到达1秒时刻清零1秒变量,设置1秒标志,管理报警灯,如果需要响蜂鸣器,则驱动蜂鸣器清中断标志
15、是是是是否否否否退出21323按键扫描流程图22开始对按键的扫描线进行AD采样判断AD值是否大于245按键消抖并根据AD值确定键值按键处理退出否复位按键扫描的相关变量是234系统测试41测试仪器流明计而同样问题数字示波器功率计万用表直流电源等42指标测试421各部分测试的指标功率测试设置功率/W路灯两端电压/V路灯电流/A实际功率/W误差/0255800360201042403如上图是人体57100530303090458100680395120559100840496070660201010608130760601150697040860901320804050961201470900001
16、6170163100606功能测试序号指标(目标值)实测值1故障指示(编号)LCD上显示正确2过中点后前灯亮后灯灭,试验成功率(100)1003自动开关灯功能,试验成功率1004实时误差,采用时间加速方法(误差小于5MIN)误差1MIN255单元控制器具有调光功能,路灯驱动电源输出功率能在规定时间按设定要求自动减小,该功率应能在20100范围内设定并调节,调节误差2。电流从0MA至850MAM变化平缓稳定422系统实现的功能1基本要求序号功能是否实现1支路控制器有时钟功能,能设定、显示开关灯时间,并控制整条支路按时开灯和关灯。是2支路控制器应能根据环境明暗变化,自动开灯和关灯。是3支路控制器应
17、能根据交通情况自动调节亮灯状态当可移动物体M(在物体前端标出定位点,由定位点确定物体位置)由左至右到达S点时(见图2),灯1亮;当物体M到达B点时,灯1灭,灯2亮;若物体M由右是26至左移动时,则亮灯次序与上相反。4支路控制器能分别独立控制每只路灯的开灯和关灯时间。是5当路灯出现故障时(灯不亮),支路控制器应发出声光报警信号,并显示有故障路灯的地址编号。是2发挥部分序号功能是否实现1自制单元控制器中的LED灯恒流驱动电源是2单元控制器具有调光功能,路灯驱动电源输出功率能在规定时间按设定要求自动减小,该功率应能在20100范围内设定并调节,调节误差2。是3特色功能序号功能是否实现271自制微型红外光发射与光敏电阻组合替代工业光电传感器是2利用单片机的AD变换功能,实现用一个IO口读多个按键是3使用单片机内部的定时器代替时钟芯片,实现时钟功能和定时开关机功能是4采用PWM与电流取样方式,实现闭环的恒流源控制是285结论本方案的系统设计符合本次试题的要求,经过功率扩大、电网通讯等方面的改良,可以用于实际路灯控制,是一个低成本,高可靠性的合理方案。293031附录附录1程序代码附录2硬件原理图32附录3PCB图(部分)33而同样外