光控照明系统
成都信息工程学院电子工程学院
[电子技术综合设计]
题 目:专 业:班 级:姓 名:指导教师:评 分:
总结报告
光控照明系统 生物医学工程 111班 夏阳 瞿倩 马静 李建
2013 年 11 月 28 日
目 录
1 项目计划 ..................................................................................................................................................... 1 1.1 方案可行性分析 ................................................................................................................................. 1 1.2项目执行计划 ...................................................................................................................................... 1 2 设计说明 ..................................................................................................................................................... 1 2.1设计流程 .............................................................................................................................................. 1 2.1.1 单片机最小系统设计.................................................................................................................. 2 2.1.2 ADC前置运算电路设计 . .............................................................................................................. 2 2.1.3 液晶显示模块设计,.................................................................................................................. 2 2.2各单元模块设计原理 .......................................................................................................................... 2 2.2.1 系统原理 ..................................................................................................................................... 2 2.2.2 单片机最小系统.......................................................................................................................... 2 2.2.3 ADC前置运算电路....................................................................................................................... 3 2.2.4 液晶显示 ..................................................................................................................................... 4 2.3流程图 .................................................................................................................................................. 4 3.1硬件调试 .............................................................................................................................................. 5 3.2软件调试 .............................................................................................................................................. 5 3.2.1 方法介绍 ..................................................................................................................................... 6 3.2.2 调试数据 ..................................................................................................................................... 6 4 总结 ............................................................................................................................................................. 6 5参考文献 ...................................................................................................................................................... 7 6附录 .............................................................................................................................................................. 7 6.1主要程序 .............................................................................................................................................. 7 6.2实物图: .............................................................................................................................................. 9
1 项目计划
1.1 方案可行性分析
光控电路有着广泛的应用。比如城市中的路灯或楼道照明灯一般都是由人工操作的,如果采用光控电路,根据光线的强弱来自动开启和关闭照明灯,做到无人自动控制,可以减轻工人的劳动强度,更有效地节约能源。我们的这个电路虽然简单,却应用广泛。
本照明光控制电路的特点是可以根据光线的亮度自动控制照明, 与人工操作比较, 开关及时, 具有好的节能效果。光控照明电路的制作主要是利用半导体光电器件———光敏电阻的特性制作而成的, 光敏电阻器是利用半导体的光电效应制成的一种电阻值岁入射光的强弱而改变的电阻器。它利用光线的强弱来控制照明开关的动作, 动作点可根据实际光线的强弱调节。运行时无须人员操作, 避免了人工操作开关不及时等不利因素, 因而有效地节约了电能。
对于市场分析,现代环保节能市场对于光控照明系统设计与开发有着较大的需求。面对现今多场地长时间的照明系统应用,根据自然光照强度自动控制灯光照度能够有效可行的节约能源与推行环保,适用于各种酒店、学校、家居等场所。其环保和节约能源消耗费用的作用对各场所都有很强吸引力。
1.2项目执行计划
光敏电阻的阻值随环境光照强度改变而改变时,其一端在分压电路内的分压会随之改变,通过增强型单片机的A/D可以将电压变化量采集并进行A/D转换;利用单片机内部的定时器,分别为输出的量的高、低电平设定持续时间,而定时器的初值是由A/D采集得到的值通过算式计算后设定的,从而实现了光敏电阻的阻值改变引起输出电压占空比的变化,进而影响LED 的亮暗程度。光敏电阻的阻值与环境光照强度成反比;STC12C5A60S2单片机自带A/D;通过对PWM 波的调节,可以实现对LED 灯亮度的控制。
光控照明系统采用传感器取得当前自然光照强度数据,进行处理后由单片机控制流经LED 灯平均电流大小,实现不同自然光照强度对应LED 不同照度的功能。
2 设计说明
2.1设计流程
本设计是以光敏电阻可以根据外界光线的强度而改变自身阻值的特性
(光线越强,阻值越小;光线越弱,阻值越大)为基础设计的光控灯自动化控制系统。其原理是利用光敏电阻感受外界光线强度并体现在自身阻值的变化上,然后根据这一阻值的大小来判断外界的光线亮度情况,然后根据所得数据判断LED 是该亮起还是该灭掉。
光敏电阻读取外界光线强度,通过A/D转换为数据编码传输给单片机,单片机接收、处理 、输出数据使得Nokia5110显示出数据。执行中断,判断该光线的强度是否达到设定要求。
2.1.1 单片机最小系统设计
这一部分主要包含四个模块,有单片机,电源开关,晶振电路和复位电路,其中采用12M 晶振为单片机提供时钟信号,复位电路则为按键复位。单片机选用带有AD 功能的STC12C5A60S2型,STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口,有8路10位高速A/D转换器,速度可达到250KHz (25万次/秒)。8路电压输入型A/D,上电复位后P1口为弱上拉型IO 口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不须作为A/D使用的口可继续作为IO 口使用,用于采集电压信号及输出PWM 波驱动LED 灯。
2.1.2 ADC前置运算电路设计
说明:以LM324为核心,先通过光敏电阻和一个固定阻值的电阻分压,然后将分得的电压通过一个由LM324构成的电压跟随器,得到一个稳定的电压供A/D采集。其中我们小组三个讨论分析了关于分压电阻阻值的选择问题,为了使A/D采集能够获得稳定且数值相对较大的电压,对光敏电阻取值范围的分析,通过假设计算我们小组成员达成一致共识,均认为该分压电阻阻值取为10K 比较合适。
2.1.3 液晶显示模块设计,
说明:选用低功耗LCD —Nokia5110。其显示质量高,而且没有电磁辐射,最重要其功率消耗小。
2.2各单元模块设计原理
2.2.1 系统原理
光控照明系统以光敏电阻为传感器,将光强度的变化转化为电信号的变化,然后通过模数转换(ADC ),利用单片机计算出当前光照强度,对应的产生响应的PWM 波控制LED 灯的亮度。
2.2.2 单片机最小系统
单片机最小系统原理部分截图如图1所示,这一部分主要包含四个模块,有单片机,电源开关,晶振电路和复位电路,其中采用12M 晶振为单片机提供时钟信号,复位电路则为按键复位。使用外部电源供电,供电电压5V ,J1接电源地,J2接电源正。
从图中可以直观看出单片机21脚即I/0P2.0接了一个LED 灯,这就是本系统的重要输出,其作为主要展示成果对象起到了很关键的作用,我们通过肉眼观察LED 灯的亮度来判断当前光照强度,例如LED 灯处于很微弱的亮度状态,则
说明当前光照很强,为节约能源系统不用亮灯,如果LED 灯处于高亮状态,则表示当前环境处于黑暗状态,LED 必须点亮提供照明。以此来自动控制照明系统。如图中复位模块,当按键一经按下,单片机系统则恢复初始设置状态。
图1 单片机最小系统
2.2.3 ADC前置运算电路
ADC 前置运算电路如图2所示,该部分主要目的就是信号采集,其中利用光敏电阻在不同光照强度下呈现不同阻值的特点,采用分压电路获得一个分压信号,为使分压信号较为稳定,如上图使用一个电压跟随使得分压信号可以更为稳定。
关于STC12C5A60S2单片机ADC 功能,其由多路开关、比较器、逐次比较寄存器、10位DAC 、转换结果寄存器以及ADC_CONTER构成。该单片机的ADC 是逐次比较型ADC 。主次比较型ADC 由一个比较器和D/A转换器构成,通过逐次比较逻辑,从最高位(MSB )开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量
对应值。逐次比较型A/D转换器具有速度高,功耗低等优点。需作为AD 使用的口先将P1ASF 特殊功能寄存器中相应位置为‘1’,将相应的口设置为模拟功能即可。
图2 ADC前置运算
2.2.4 液晶显示
图3 液晶显示
如图3所示以NOKIA5110液晶显示当前自然光照强度等级。微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
2.3流程图
如图5所示,首先对各参数进行初始化,设置其初始参数,然后进入主程序,主程序通过调用实现相关功能的子函数实现A/D采样读数以及液晶显示,最后通过不停歇的读取,显示,实时的显示当前分压电阻所对应的值。
图5程序流程图
3调试说明
3.1硬件调试
所用到的调试工具为:万用表和示波器
⒈首先是焊接的顺序问题。板子做好以后,一口气就把所有的元件焊上去,这样对于没有调试过的板子,就很难找到原因。所以焊接的顺序很重要,应该是应该按功能划分的器件进行焊接,顺序是功能部件的焊接--调试(OK)--另一功能部件的焊接,这样容易找到问题的所在。
⒉如果在调试按功能划分的器件上出现问题,可以按以下步骤进行: 1)检查原理图连接是否正确 2)检查原理图与PCB 图是否一致 3)检查原理图与器件的DATASHEET 上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DATASHEET ,分析一下时序是否一致,同时分析一下命令字是否正确(6)可以用示波器。通过波形来查找问题所在。 7)飞线。用别的端口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。
3.2软件调试
软件调试主要有以下两种方法: ⒈联调,对整个软件的功能进行验证;
⒉分模块调试,就是将系统分成独立的小模块,然后分别对这些小模块写入
程序调试。
3.2.1 方法介绍
于不同自然光照强度的环境中运行系统,得到不同数值,建立表格记录,分析数据制定合理PWM 波周期。
3.2.2 调试数据
如下表所示,我们小组分别在晴天和阴天针对不同环境下不同光照强度对灯光亮度影响的测试数据,从表中可以看出我们共测试了六组数据,最后根据不同条件下显示屏显示值进行了求平均处理,从表中数据可以看出光照强度越低显示值越高,光照强度越高显示值越低。
4 总结
通过这次实作设计,我们学到了很多知识,也使我们的能力得到了提升。 在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。单片机正朝着大容量片上存储器、多功能i/o接口、宽范围工作电源和低功耗方向发展。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅要掌握单片机的工作原理,而且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。
而作为当代大学生,电子综合设计课程让我们了解了光控照明系统的原理与指标,明确了设计思路,完成了设计作品,同时,最重要的是我们在设计的过程中同组的每一位同学都亲身参与了设计制作,体会了电子系统的研发过程,并对其有了更深的了解,同时对于增强型单片机内部功能的使用,有了更深体会,在Protel 绘图方面也有了长足进步。虽然在设计中遇到了诸多问题,但是我们共同
努力使得最终都得以解决,作为电子信息工程专业的学生,这种经历对我们来说是很宝贵的。
我们会吸取本次设计的经验教训,争取取得更大进步。
5参考文献
[1] 谢宜仁. 单片机实用技术问答. 人民邮电出版社,2003 [2] 沈兰荪. 据采集与处理[M]北京:能源出版社,1987 [3] 姚永平 STC12C5A60S2中文手册最新版2010.11.13.pdf
[4] 邵贝贝. 龚光华. 单片机认识与实践[M].北京:北京航空航天大学出版 006
[5] 沙占友、王彦朋、孟志永. 单片机外围电路设计. 电子工业出版社,2003 [6]郑郁正 单片机微型计算机原理及接口技术,高等教育出版社,2012
6附录
6.1主要程序
/*********************************************************** 函数名称:time0(void) 函数功能:定时器0中断 入口参数:无 出口参数:无 备注:
主程序修改全局变量PWM_time值控制当前定时时长,决 定PWM 占空比,通过平均电压控制LED 亮度
***********************************************************/ void time0(void) interrupt 1 {
counter++; if(counter == circle) {
P2 = 0x01;
//LED亮
//PWM周期
占空比
}
}
counter = 0;
//开始新周期
//主程序修改PWM_time决定PWM
if(counter == PWM_time) { }
P2 = 0x00;
//LED灭
/*********************************************************** 函数名称:time0(void) 函数功能:液晶显示运行界面 入口参数:无 出口参数:无 备注:
显示当前光照强度
***********************************************************/ void Disp_Running(uint Num) { }
uchar tab[] = {'L','i','g','h','t','_','L','e','v','e','l',':'}; LCD_set_XY(10, 1); LCD_write_str(tab); LCD_set_XY(25, 3);
LCD_write_numstr(25,3,Num);
6.2实物图:
第9页