欢迎来到天天文库
浏览记录
ID:10112567
大小:566.50 KB
页数:14页
时间:2018-05-26
《模拟路灯控制系统的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、模拟路灯控制系统的设计目录摘要2关键词2ABSTRACT2KEYWORDS21系统设计31.1设计要求31.1.1基本要求31.1.2发挥部分31.2总体设计方案41.2.1功能分解及设计思路41.2.2方案论证与比较41.2.3系统各模块的最终方案61.3系统功能说明书61.3.1路灯的工作模式61.3.2按键操作说明72单元电路设计72.1电源供电电路72.2单片机最小系统82.3输入与输出82.4电流源驱动93.1系统主程序流程图93.1.1系统流程图93.1.2定时器溢出中断处理函数流程图103.1.3按
2、键扫描流程图123.2系统子程序124系统测试134.1测试仪器134.2指标测试134.2.1各部分测试的指标134.2.2系统实现的功能135结束语14参考文献15附录1程序代码16附录2硬件原理图29附录3PCB图(部分)3014模拟路灯控制系统的设计摘要:本文介绍了一个模拟路灯控制系统的应用方案,用以实现模拟路灯的智能控制。本方案以STC12C5410AD为核心,加以简单的外围电路,实现了模拟路灯控制系统的技术要求。该系统除了选用廉价的单片机芯片,还采用了廉价的红外对射传感器,大大降低了系统成本。整个系统
3、结构紧凑,电源驱动仅采用变压器与三端稳压器相结合,附加少许滤波电容便实现了稳定的电源输出。经过测试,证实该系统能长时间稳定工作,满足设计要求指标。关键词:模拟控制LED照明单片机1系统设计1.1设计要求设计并制作一套模拟路灯控制系统。控制系统结构如图1.1所示:图1.1模拟路灯控制系统路灯布置如图1.2所示:图1.2路灯布置示意图(单位:cm)1.1.1基本要求(1)支路控制器有时钟功能,能设定、显示开关灯时间,并控制整条支路按时开灯和关灯。(2)支路控制器应能根据环境明暗变化,自动开灯和关灯。(3)支路控制器应
4、能根据交通情况自动调节亮灯状态:当可移动物体M(在物体前端标出定位点,由定位点确定物体位置)由左至右到达S点时(见图2),灯1亮;当物体M到达B点时,灯1灭,灯2亮;若物体M由右至左移动时,则亮灯次序与上相反。(4)支路控制器能分别独立控制每只路灯的开灯和关灯时间。14(5)当路灯出现故障时(灯不亮),支路控制器应发出声光报警信号,并显示有故障路灯的地址编号。1.1.2发挥部分(1)自制单元控制器中的LED灯恒流驱动电源。(2)单元控制器具有调光功能,路灯驱动电源输出功率能在规定时间按设定要求自动减小,该功率应能
5、在20%~100%范围内设定并调节,调节误差≤2%。(3)性价比高,工作稳定,符合电磁兼容(EMC)方面的要求,无对外干扰或干扰小。1.2总体设计方案1.2.1功能分解及设计思路本模拟路灯控制系统的设计方案要实现的主要功能主要分解为以下五个方面:(1)是时钟功能及定时开关灯。(2)是根据环境明暗变化,自动开灯和关灯。(3)是根据交通情况自动调节亮灯状态:当汽车靠近路灯时,路灯能自动点亮;当汽车远离时,路灯自动熄灭。(4)声光报警功能,当路灯出现故障时而不亮时,控制器发出信号,并显示有故障路灯的地址编号。(5)是根
6、据绿色节能照明要求,采用恒流源驱动LED路灯发亮且能调光,路灯驱动电源输出功率能在20%~100%范围内设定并调节,调节误差≤2%。以上功能的实现,都是以单片机为核心,在单片机系统实现的输入输出和显示功能的基础上,由单片机的内置逻辑和运算功能,加上一定的外围电路得以实现。针对以上的五个功能,采用模块化的设计思想,以下分别叙述之。1.2.2方案论证与比较(1)时钟功能及定时开关机【方案一】采用专用时钟芯片现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。其优势是可以单独使用,直接连接到单片
7、机外围,有自己独立的时钟晶振,精度较高。单片机通过串行接口读取和写入当前的时钟值,时钟芯片的运行受单片机死机的影响少。其缺点一是消耗了单片机IO口资源。二是在编程时需要增加读写串行口的内容,消耗了单片机的运行时间。三是增加了成本。增加了时钟芯片及其外围电路的开支。DS1302的典型应用电路如图1.3所示:14图1.3DS1302的典型应用电路【方案二】采用单片机内置时钟本方案直接利用单片机的内置定时器,通过定时器的中断和简单运算实现时钟功能。例如:STC单片机,在4M时钟时,单个指令的运行时间是1微秒,设置定时器
8、1每125个指令周期产生一个中断,即125微秒,8个中断后,时间平台是1毫秒,设置以下时间计数变量分别为:ucharTo1mS=0x00;//当该变量增加到某个数值时,表示经过了1毫秒ucharTo2mS=0x00;//当该变量增加到某个数值时,表示经过了2毫秒ucharIs2mS=0;//到达2毫秒时刻ucharTo20mS=0x00;//当该变量增加到某个数值时,表示
此文档下载收益归作者所有