基于单片机的光控路灯设计含程序和仿真图Word文档下载推荐.doc
《基于单片机的光控路灯设计含程序和仿真图Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《基于单片机的光控路灯设计含程序和仿真图Word文档下载推荐.doc(25页珍藏版)》请在冰豆网上搜索。
![基于单片机的光控路灯设计含程序和仿真图Word文档下载推荐.doc](https://file1.bdocx.com/fileroot1/2022-10/29/bd7761ce-320f-4935-a24b-5bdd070b0721/bd7761ce-320f-4935-a24b-5bdd070b07211.gif)
1
绪论·
3
一、目标及任务·
4
二、硬件设计
2.1主要模块构成·
4
2.2电路设计·
9
2.3系统流程·
11
三、 系统的软件设计
3.1详细步骤·
3.2具体程序设计·
12
3.3系统软件执行流程·
四、结论与设计调试
4.1结论·
14
4.2课程设计过程中遇到的主要问题以及解决办法·
五、心得体会·
15
六、参考文献·
16
七、附录(仿真图、源程序)·
17
绪论
随着社会的发展,路灯已经成为一个城市的照明系统中不可分割的一部分,在城市照明中发挥着举足轻重的作用,而其所依靠的就是路灯自动化控制系统。
但当前大多采用的是定时的路灯自动化控制系统。
其通常都是采用全夜式开启路灯的自动化控制系统。
但因为夏天跟冬天因为天亮与天黑的时差颇大,使得夏天晚上过早的路灯就开启,早上又过晚的关闭。
且世界奇观这么多,偶尔总会出现点极端的天气状况,会造成白天天过黑、夜晚又如白昼般亮的情况(如日全食等),而路灯又不会自动开启或者关闭,这就使得交通事故的发生概率增大,路灯在这种情况下失去了其应有的价值和意义也造成能源的白白浪费。
而且现在路灯已经全球基本普及,大到世界有名的大城市,小到小城镇、小乡村都已经有了路灯,可想而知世界能源在这块的浪费上是多么的巨大。
光控路灯不仅可以解决这类问题,还可以使路灯在有需要的时候自动开启或者关闭,避免了路灯在不需要的时候自动开启或者关闭。
大大的避免了能源不必要的浪费,对于地球环保和能源的节约,可以起到巨大的作用。
一个城市每年在这块能源的经济支出上对于普通人来说简直是一个天文数字,一个人一辈子的用电可能都没有城市路灯几天的使用量大。
光控路灯如果可以普及化,不仅可以为城市省下了一大笔的开支,使其可以将节省下的资金投资到更有意义的地方去,使得城市可以更好、更快的发展。
对于世界来说,更是可以取得巨大的节约能源效果,对于绿色地球的实现做出巨大的贡献。
路灯自动化的控制方式有很多,本系统采用STC89C52和七段数码管显示器、LED灯等相关的光电检测、控制、显示设备,来设计智能光控路灯自动化系统。
实现能根据外界光线条件通过IIC总线模块、AD/DA转换模块等的处理实现控制路灯的自动化开启或者关闭功能。
一、目标及任务
本设计是以光敏电阻可以根据外界光线的强度而改变自身阻值的特性(光线越强,阻值越小;
光线越弱,阻值越大)为基础设计的光控路灯自动化控制系统。
其原理是利用光敏电阻感受外界光线强度并体现在自身阻值的变化上,然后根据这一阻值的大小来判断外界的光线亮度情况,然后根据所得数据判断LED是该亮起还是该灭掉。
即当外界光线强度弱到使光敏电阻阻值大于等于200欧的时候,LED灯会自动开启;
2.1主要模块构成:
(1)光敏电阻感应模块与AD/DA转换模块
所谓的AD/DA转换就是模数/数模转换,该设计中我们涉及到的是ADC(模数转换)。
PCF8591是具有IIC总线接口的8位A/D及D/A的转换器,具有4路A/D输入、1路A/D输出。
这里该设计利用PCF8591来实现ADC转换数据的功能和连接IIC总线的功能。
其引脚:
1)ANI0~ANI3为模拟信号输入端,不用时接地。
2)SDA为IIC总线数据输入输出端
3)SDL为IIC总线时钟输入端
4)VREF为基准电压输入端
其原理为:
光敏电阻通过感应外界的光线强度获得数据,通过PCF8591的ANI0端口(数据输入端口)输入数据,进行ADC(模数转换)将感应数据转换成数字数据。
AD/DA模块和光敏电阻感应模块仿真图如下:
(AD/DA转换模块与光敏电阻感应模块)
(2)IIC总线模块
随着大规模集成电路技术的发展,一个系统所需要的组件越来越多,所以各组成部分之间便需要总线来实现组件之间数据的传输、控制。
而IIC总线具有简单、有效、高性能优点。
可以大大简化系统的硬件设计。
因此得到广泛应用。
因为AT24C02拥有存储芯片,且可重复擦除数百万次和重复读写的能力。
因此在这里我们便采用AT24C02来实现IIC总线的EEPROM功能。
用它来存储数据并控制数据的输出与接收,实现IIC总线的双向串口通信功能。
a)SDA为串行数据输入输出端,是一个双向漏极开路结构的引脚,这里作为IIC总线数据输入输出端。
b)SCL为串行移位时钟控制端,这里作为IIC总线时钟输入。
写入数据时,上升沿有效;
读出数据时,下降沿有效。
IIC总线仿真图如下:
(IIC总线模块)
(3)LED灯与数码管显示模块
这里我们应用了74HC573,它包含八路D型透明锁存器。
适用于面向总线的三态输出。
所有锁存器共用一个锁存使能(LE)端和一个输出使能(OE)端。
利用74HC573的锁存功能,使其LE端口接单片机。
利用单片机编程控制锁存数据的输入延迟时间,以此来达到控制LED灯亮与灭和七段数码管显示数值的稳定。
使得LED灯和七段数码管不会一直亮灭亮灭的闪。
a)当LE为高电平时,数据从Dn输入到锁存器;
b)当LE为低电平时,锁存器存储D输入上的信息一段就绪时间直到LE的下降沿来临。
c)当OE为低电平时,8个锁存器的内容可被正常输出;
d)当OE为高电平时,输出进入高阻态。
LED灯模块和七段数码管模块仿真图如下:
(LED灯显示模块)
(七段数码管显示模块)
(4)单片机最小化系统模块
最小系统是51单片机的最基本的组成部分,51单片机的引脚虽然只有四十,但它有很多的扩展功能,根据相应的课题设计要求可以设计相应的外围电路。
编写出相应的控制程序便可以跟外围电路很好的组合成功能复杂的系统。
a)18,19脚为单片机的晶振引脚;
外接11.0592MHz的晶振,晶振外围还有2个22pF的起振电容,可以使单片机更好的起振。
b)9脚为单片机的复位引脚;
当复位引脚出现连续两个机器周期的高点平时,单片机复位。
c)31引脚为/EA引脚;
当/EA接高电平时读取内部储存数据,当内部存储器读取完成后,单片机自动读取外部存储器;
当/EA接低电平是,单片机只读取外部存储器,
单片机仿真图如下:
(单片机最小系统模块)
2.2电路设计
该设计是将上述的六个模块拼接一起组成一个系统体系,以实现设计所需要的功能及光控路灯自动化控制系统。
单个模块其功能相对会比较简单、单一,但将一些模块合理的串接起来就可以实现复杂的功能。
当然也可以实现该设计所需的功能。
其连接方式:
1)光敏电阻通过感应外界的光线强度,将其转换成模拟信号,利用PCF8591的AIN0模拟信号输入端,将模拟数据输入到PCF8591。
2)PCF8591对数据进行ADC转换(模数转化)将模拟信号转换成数据信号。
并根据单片机对SCL(IIC总线时钟输入端)高低电平的控制,利用SDA(IIC总线数据输入输出端)将数据传输至IIC总线的缓存元件AT24C02使其行使EEPROM功能。
3)根据单片机传输给AT24C02的SCL(串行移位时钟控制端)端口的高低电平信号来执行数据的写入或者读出。
利用AT24C02的SDA端来进行数据的双向串口通信。
4)AT24C02在SCL为下降沿的时候通过SDA端将缓存的数据传输给单片机。
5)74H573的LE端口接单片机的端口,利用单片机对LE的输入电平进行控制。
当LE为高电平时,数据从Dn输入到锁存器;
当LE为低电平时,锁存器存储D输入上的信息一段就绪时间直到LE的下降沿来临。
实现对LED灯模块跟七段数码管显示模块的延时时间控制,防止一闪一闪的。
6)单片机通过处理数据,判断LED灯模块该亮还是该灭,并输出数据到LED灯模块和七段数码管模块所连接的74HC573的Dn端口。
7)单片机通过对SCL和LE端口电平的输入来控制各模块间数据的传输、接收。
其模块连接流程图:
光敏电阻
感应模块
AD/DA转换
模块
IIC总线
单片机
数码管
显示模块
LED灯
电路总图如下:
2.3系统流程
其流程为:
光敏电阻读取外界光线的强度,通过ADC转换为数据编码传输给单片机,单片机接收、处理、输出数据使得七段数码管显示出数据(当前光敏电阻的阻值)。
执行中断,判断该光线的强度是否达到设定的要求(这里设定光敏电阻阻值大于、等于200时,LED灯亮;
小于200时,LED灯灭),若达到则LED灯亮起;
若达不到则LED灯灭掉。
其系统框图如下:
晶振
电路
路振