基于52单片机的楼道智能照明系统设计与实现文档格式.docx
《基于52单片机的楼道智能照明系统设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《基于52单片机的楼道智能照明系统设计与实现文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
![基于52单片机的楼道智能照明系统设计与实现文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/21/ff4b090e-196c-4fb5-9753-a678942edc18/ff4b090e-196c-4fb5-9753-a678942edc181.gif)
不便于人民日常生活的问题。
当有腿脚不便利的老人经过,需要用脚踏声或者说话呐喊声去亮起灯光,实在不利民,容易影响该楼层的居民日常生活,对其造成噪音骚扰,也不利于老人、手上拎着重物的居民。
不仅如此,现存的楼道照明也仅有照明单一功能,无法对生活环境进行实时监控,未能形成完整的照明系统。
在一些老居民楼中仍存在无消防报警系统,但很多时候出现问题的居民楼正是这些老楼房。
所以,我们对这一智能照明系统的需求迫在眉睫。
最近的一则居民区新闻2020年1月初,重庆市某花园小区居民楼发生火灾,火灾是从低楼层的阳台开始烧起迅速流窜至30层。
这是由于小区内群租房消防隐患,堆放过多杂物所致。
那么好在是火灾是从外墙开始,便于消防人员的扑灭工作开展。
那么,若是发生在楼道内呢?
我们目前很多以前的旧楼房,灯光破旧,消防安全更是危险,新楼房也未能把照明与消防所结合一起,楼道内复杂设施众多,更加不能体现现代化社会的便捷,所以拥有一个楼道智能照明系统尤为重要。
用一个系统便能解决整个楼道的问题,楼道智能照明系统能做到,能满足楼道的安全防控和智能照明省电的需求,以一次安装的费用完成所有的项目需求。
便于用户居家不被噪音所烦恼,更精确更灵敏的解决问题,给到用户一个安静智能便捷的居家环境。
楼道智能照明系统还可以不断的替换旧式的单独声控操作的楼道照明灯,也可以不断的替换掉过旧的消防报警器,在新的建筑上使用和旧式建筑上的替换,我们的楼道智能照明系统市场前景非常深远,市场需求量大。
1.2课题的研究方法和内容
1.2.1研究方法
主要使用的方法为:
基于STC89C52单片机为基础的理论研究法:
经过对楼道智能照明系统的具体需求进行详细分析后,找到楼道智能照明系统的理论和技术支持,完成可行性分析和需求分析。
基于STC89C52单片机为基础的实际操作法:
设计一个应用性比较强、具有实际操作意义的楼道智能灯光控制系统,将STC89C52单片机,液晶显示器模块,光敏检测模块,LED指示灯模块,继电器驱动模块,LM393电压比较电模块,人体感应模块等,组合起来参与实验操作、调试、实现。
1.2.2研究内容
撰写过程中将论文分为五大章节:
第1章:
绪论。
讲述设计的研究背景和意义,分析为什么要设计楼道智能照明系统。
同时,楼道照明系统的相关文献资料进行综述。
阐述本论文的研究意义。
第2章:
楼道智能照明系统的方案论证。
主要论证目前需要楼道照明系统达到什么功能,我们对楼道智能照明系统的控制和使用。
阐述本设计的一个可行性方案。
第3章:
系统硬件设计。
系统基本框架、以及各个功能模块的设计。
第4章:
系统软件设计。
系统软件总体架构,各功能结构逻辑设计流程。
第5章:
系统测试。
系统各功能模块测试,分析结果以及可升级部分。
第2章楼道智能照明系统的方案论证
2.1系统整体的设计方案
2.1.1系统主要目标
1.楼道可以进行无声控制,智能感应人体经过。
2.根据室外光照强度决定是否亮灯。
3.能够通过一个显示设备对楼道温度、光照强度、是否有人经过进行观察。
4.有消防报警预警的警示作用可确保我们的楼道安全。
2.1.2设计方案
以52单片机为核心,通过光敏电阻检测户外光照强度判断白天还是黑夜,红外人体感应器感应人体信号相结合,实现对楼道内灯光的控制;
通过人体感应模块、光敏电阻反映信号和温度传感器传出的数据信号,反映到液晶显示屏上,实现实时监控功能;
通过温度传感器检测实时温度,并联合灯光和蜂鸣器实现楼道内消防的联防联控,从而达到楼道智能照明系统对整个楼道的整体控制,以及节约能源的目的。
2.2各模块设计方案的选择与论证
2.2.1系统控制模块的选择与论证
方案一:
由AT89C51单片机、复位电路和时钟电路组成单片机最小系统。
优点:
51单片机是由美国的Intel公司开发研制的单片机,在知名度方面比较有优势、且具备较完善的中断功能,有2个外部中断、两个定时中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
缺点:
要实现断电保存就得另外扩展存储器、存储空间小、定时器少。
方案二:
STC89C52单片机、晶振电路、复位电路、上拉电阻,组成的单片机最小系统模块。
STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
其拥有灵巧的8位CPU和在系统可编程Flash,内带EEPROM,可以断电后保存资料且具有温度报警上下限的设置、存储空间大、拥有三个定时器。
方案一和方案二最大的区别在于单片机的区别,在优缺点对比后,经过谨慎考虑我选择的是方案二。
原因是:
在程序存储空间AT89C51只有4K,而STC89C52则有8K;
在数据存储空间上AT89C51只有128个字节,STC89C52有256个字节;
AT89C51只有2个定时器,STC89C52有3个。
两个芯片在同一区间内的价格方面相差不大,选择STC89C52芯片让性能更加优化,自然性价也就比较高,能够为应用系统提供高灵活、超有效的解决方案。
而且方案二还有一个上拉电阻。
是由8个电阻组成的,将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,目的就是为了在刚上电的时候,端口电压容易不稳定,为了让他稳定为高,就会用到上拉电阻。
2.2.2温度采集模块的选择与论证
市场上有很多不同的温度传感器,但要求高精度、高可靠性的温度传感器,第一时间就会想到DALLAS公司生产的DS18B20温度传感器,它应用广泛最为畅销在市场上高度使用。
它拥有超小的体积,不阻碍空间,抗干扰能力强,检测精度高,所以在温度传感器这一块,我从一开始便选择好了它进行温度采集。
我看中它的优点是:
支持全数字将温度转换及输出,能够方便我快捷读取数值不用来回转换,减小不少麻烦。
先进的单总线数据通信方式,省去了很多接口串口的麻烦。
它的测温范围为-55°
C到125℃,并且在-10°
C到85℃精度为±
5℃,其测温精确。
内置EEPROM,限温报警功能,非常适合我这次的设计使用。
所以在选择温度采集模块的方案是我没有太多的犹豫,因为DS18B20非常合适。
2.2.4灯光控制模块的选择与论证
光敏电阻、声控开关、LED灯组合而成,一个声控的灯光控制模块。
优点是:
器件少、常见的大众向的灯光控制方式。
不是我所希望的灵敏智能度、会对用户造成噪音困扰。
光敏电阻、人体感应模块、继电器、LM393、LED指示灯组合而成的灯光控制模块。
无声安静亮灯,不产生噪音困扰。
更加体现灵敏智能化的设备。
组合使用难度比方案一稍大些,零碎部件较多些许。
根据比较后,我选择方案二。
因为在光敏电阻的配置中还加入了LM393双电压比较器,这个双电压比较器将光敏电阻的电阻值与基准电压进行比较再输出信号,能够很好的控制灯光亮灭实现节能节约的效果。
继电器由铁芯、线圈、衔铁、触点簧片等组成的,其吸合、释放功能,达到了在电路中的导通、切断的目的,它存在也能很好的控制开关效果相当于一个智能的开关作用。
拥有人体感应模块,能够敏锐的感应人体,比起以往楼道照明所使用的声控方式更为智能化。
2.2.2实时显示模块的选择与论证
液晶显示器、LED指示灯。
可显示数字,图片,字符出现。
写入代码多些、难度稍稍大些。
数码管显示器、LED指示灯。
控制简易,难度小。
仅可显示数字,而且单次显示一组,不可多种同时显示。
我的选择是方案一:
方案一和方案二最大的不同在于显示器方面,方案一的液晶显示器显示的内容更多些,比较适用于我的设计当中温度显示和各种数据显示。
2.2.3声光报警模块的选择与论证
声光报警选用继电器的LED灯和蜂鸣器的联合报警。
LED灯选择了继电器中的LED指示灯,因为继电器是一种可以很好控制的开关。
单片机驱动他激蜂鸣器的方式有两种:
一种是PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。
我选择的蜂鸣器是利用I/O定时翻转。
用定时器做I/O定时翻转,产生驱动波形,驱动蜂鸣器。
蜂鸣器和LED灯的声音和视觉效果达成声光报警功效。
小结:
将功能模块进行一个大致的划分非常重要,这影响到我的整个设计思路,与实现步骤和结果。
在这个方案选择过程中,我非常明确自己需要什么不需要什么,希望能够实现什么的效果,所以在选择时,非常有目标。
第3章系统硬件设计
3.1系统总体框图
图3-1系统总体框图
打开电源时,液晶屏和人体感应模块进行系统初始化,当光敏电阻和人体感应模块感应到光线暗和有人时,将信息传输给单片机,单片机进行信号的处理和计算,发送指令让继电器吸合,使得照明LED设备亮。
继电器吸合30s后,照明LED设备灭。
光敏电阻和人体感应器再次检测是否感应到光线暗和人体,没有的话,继电器不吸合。
温度传感器实时采集环境温度数据,并将数据以数字形式发送给单片机。
在液晶屏上显示着,从单片机获取的光敏电阻、人体感应模块和温度传感器的信号,将获取的信号和数据在液晶屏上显示。
当温度传感器感应温度超过80°
C时,数据反馈给单片机,单片机控制LED灯和蜂鸣传感器实现声光报警,当温度低于80°
C后蜂鸣器停止报警,LED灯光保持亮,此时需要重启系统设备后才能关闭灯光。
3.2功能模块设计
3.2.1系统控制模块
图3-2系统控制模块原理图
系统控制模块是由单片机、上拉电阻、复位电路和晶振电路组成,也就是单片机最小系统。
在整个系统中,单片机控制电路是整个系统的核心。
从图3-2的左边起我们可以看到1号引脚P1.0端口连接的是光敏电阻LIGHT引脚采集到光信号进行处理和加工,并按照设定的指令执行相关程序步骤,并将结果传送给对应的电路。
9号引脚RST端口链接的是复位电路,利用它把电路恢复到起始状态。
14号引脚P3.4端口是T0(定时器0的外部输入),连接的是蜂鸣器BUZZ引脚是负责对启动蜂鸣器的中断定时响应。
15号引脚P3.5端口是T1(定时器1的外部输入),连接的是继电器JDQ引脚控制继电器的吸合指示灯亮起。
16号引脚P3.6端口(外部数据存储器写选通),是负责对人体感应模块RSD引脚的检测电路采集到的人体信号进行加工处理,并按照设定好的指令进行执行、运算,并将结果传送给相应的执行电路。
17号引脚P3.7端口(外部数据存储器读选通),是负责将温度传感器DQ引脚输送进来的温度数据进行处理,并按照设定的指令,将数据信号输送给相应执行的电路。
18/19号引脚XTAL2和XTAL1是振荡器反相放大器的输入端和内部时钟发生电路的输入端。
晶振电路的作用是提高精度和单片机的运行速度。
在单片机的右边我们可以看到有一个CON9的上拉电阻。
刚上电的时候,端口电压不稳定,为了让他稳定为高或低,用上拉电阻起到一个稳定电流的作用。
整个P0端口和P2.7端口和P2.6端口连接的是液晶显示器和LED指示灯,负责显示模块的信号输出。
3.2.2温度采集模块
图3-3温度传感器原理图
DS18B20温度传感器的温度检测与数字数据输出都在一个芯片上进行,由图3-3看到1脚是接地,3脚接电源还有上拉一个10K电阻控制电压稳定,DS18B20通过一个单线接口传输或获取信息,单片机与传感器之间仅需一条连接总线DQ。
C到+125℃之间,并且在-10°
C到+85℃之间的测量精度为正负5℃。
将温度传感器的用户自定义的报警预置值调整为80°
C,那么在测得的实时温度与预设值进行比较。
因为是单数据总线,也是他的优势,可供电和数据信息的传输。
平时的时候输出的是高电平,当检测温度达到80°
C时,构成报警条件后将通过DQ总线输出一个低电平信号传输给单片机。
3.2.3灯光控制模块
灯光控制模块有:
光敏电阻、LM393、人体感应模块、LED指示灯、继电器。
图3-4光敏电阻、LM393、继电器、人体感应模块原理图
从上图3-4可以看到,左侧R16是光敏电阻,光照强度影响电阻值的变化。
往上看LM393是双电压比较器,567脚为一组,56脚是采集电压值,6脚采集的是103,R8电阻连接着电源和地来分压,分压就会产生一个电压值给到6脚,这个电压值是不变的;
当6脚获取的电压值小于5脚获取的电压值,通过电压比对就会产生一个低电平给到7脚输出给到单片机P1.0端口。
当光敏电阻检测到的光线越强,阻值越小,其输出的电压值越大。
当这个电压值经过LM393双电压比较器,通过电压比较,比原定电压值大,则输出高电平信号给单片机。
当光敏电阻检测到的光线越弱,阻值越大,输出的电压值越小,进行电压比较,比设定值小输出一个低电平信号给单片机,单片机根据相应程序执行相应的操作。
人体感应模块有三个引脚,一个接地,一个接电源,中间OUT是信号输出脚,在感应到人体的时候会输出一个高电平,经过R8限流电阻,9013三极管就会被导通。
RSD口就会被拉低,输出一个低电平给单片机,然后单片机检测到低电平执行相应的程序。
所以,当光敏电阻输出的LIGHT的是低电平,有且仅有人体感应器输出的RSD的是低电平。
此时单片机定时器JDQ给出低电平的信号到继电器,控制继电器吸合,指示灯亮起。
楼道开关亮。
从而实现楼道对灯光的控制。
继电器的存在不是电源,它是个控制灯光操作的一个开关。
3.2.2实时显示模块
实时显示模块是由:
液晶显示屏、LED指示灯组成。
图3-5液晶显示屏原理图图3-6两个LED指示灯
液晶显示屏1脚接GND(地),液晶2接VCC(电源),3脚是液晶的灰度调整,一般时3脚与地之间的之间的阻值为200Ω~1k,3脚与电源之间的阻值为10k左右。
液晶的4脚接单片机的I/O口。
15脚(A)为背光的电源,16脚(K)为背光的地。
液晶显示屏单片机将接收到的人体感应模块的人体信号,光敏电阻的光敏信号和温度传感器传输的温度数值,通过P0端口传输给液晶显示屏,在液晶显示屏上读写出温度的数值和人体经过的信号。
指示灯正极接在电源,负极接在R2/R3的分压电阻上,我们的供电电压是5V而LED的工作电压是3V,所以必须串联一个分压电阻。
R2电阻和R3电阻不一样是因为两个D2、D3指示灯的颜色不一样,驱动电流是不一样的。
D2灯是绿灯,它的驱动电流比较大,所以它串联的分压电阻R2比较小,适用于我们的人体感应模块显示灯,当人体感应模块感应到有人时,绿灯亮。
而D3是红灯,它的驱动电流比较小,所以它串联的分压电阻R3比较大。
D3红灯就是用于我们光敏电阻的显示灯、当光敏电阻检测到光线暗时、红灯亮。
通过液晶显示屏和LED指示灯实现实时显示的功能。
3.2.3声光报警模块
声光报警模块是由:
蜂鸣器、继电器LED灯。
图3-7蜂鸣器原理图图3-8继电器原理图
当温度采集模块测得的温度高于80°
C,报警条件成立,这个报警标识就会被单片机读取,然后单片机I/O口输出低电平给BUZZ,三极管因为饱和导通,蜂鸣器通电响应。
同时触发JDQ口给到继电器低电平,让继电器吸合,D1指示灯点亮。
从而实现蜂鸣器与LED指示灯产生联合声光报警响应。
在硬件设计的过程中要大体知道每一个器件的基本使用方法以及应用原理,将器件组件串联起来实现我所需要的功能,为此我也努力翻阅了很多资料并且不断地去学习,了解器件的原理,知道我所使用的硬件在什么情况下是什么状态,输出什么信号,这个信号会产生什么作用。
保证器件最基本的搭建和应用问题。
第4章系统软件设计
4.1总体控制流程
图4-9总体控制流程
系统执行的主函数,一开始先初始化定时器、检测温度传感器的数值读取、读取需要时间的所以就delay延迟1秒,然后将液晶屏初始化后再次读取温度数据显示出来。
调用while循环、执行key按键函数判断三个条件,是否满足光照强度弱且有人条件,是否满足光照强度强条件,以及是否满足有人条件。
仅满足光照强度强液晶显示屏输出Bright,否则输出Dark。
仅满足有人条件液晶显示屏输出YES,否则输出NO。
同时满足光照强度暗且有人条件,则点亮输出,打开30s定时后,清零。
然后display显示输出。
调用if函数判断当温度大于80°
C,标志位Alarm为1开启中断,LED点亮输出,蜂鸣器定时I/O翻转响起,数据清零,定时器关闭,等待下次开启。
4.2各个模块控制流程
4.2.1系统控制模块实现
图4-10系统控制模块代码图
定义BEEP蜂鸣器引脚P3.4、DS18B20温度传感器总线DQ引脚P3.7、光敏电阻光线输入LIGHT引脚P1.0、人体输入RSD引脚P3.6、继电器输出控制灯的引脚P3.5、设定RS和RN液晶显示器的数据指令和执行命令引脚P26和P27。
定义sec变量控制灯亮的时间,定义两个标志位的关键字控制中断响应。
定义温度值全局变量以便调用。
设定上限温度报警默认值为80。
uchar定义四个tab数组,分别是输出温度显示、人体感应显示、光敏电阻的两个亮灭的调用。
4.2.2温度采集模块实现
图4-11温度采集模块流程图
首先设定Delay_DS18B20温度延时子程序,设定初始化温度,启动温度转换,再读取温度寄存器测得的温度数值,读取高低八位,计算获取的温度值得到实际温度值,输出温度值小数点后一位后结束。
4.2.3灯光控制模块实现
图4-12灯光控制流程图
调用key按键函数,判断光和人体是否满足光线强度弱和有人,是点亮LED输出,打开定时器30s,清零;
否,判断结束。
4.2.2实时显示模块实现
图4-13实时显示流程
设定液晶写入指令和数据函数,液晶初始化内容:
设置液晶工作模式16乘2行显示,设定5乘7点阵,8位数据。
从第一行开始,向液晶屏写固定符号部分NowTem,在后面两个冒号后,写入当时读取的温度值。
接着第二行开始,依次写入实时检测的光照数据字符和人体感应数据字符,结束。
4.2.3声光报警模块实现
图4-14声光报警流程
定时器初始化,读取温度,检测温度是否大于80°
C,如果是,标志位Alarm设为1,启动中断函数,点亮输出,蜂鸣器I/O定时翻转,蜂鸣器响应。
实现声光报警效应。
最后控制灯的变量清零,关闭定时器,等待下一次响应。
结束。
在写代码的时候,我有去阅读参考之前做过的实验,以及一些文献的资料参考,学习重温之前学过的一些代码,以及在设计的过程中尝试很多遍。
我明白首先要把整个架构构建起来,理清楚思路,所有的定义设定都要理清楚,然后才能开始书写代码。
在设计过程中对于我来说最难的还是中断部分。
第5章系统测试
5.1预期实现效果目标
楼道智能照明系统应实现以下功能:
1.系统控制模块是整个系统的核心,控制着各个器件以及程序的实现。
2.温度采集模块采集准确数据。
3.光敏电阻和红外人体感应器实现对楼道内的灯光控制。
4.显示模块应将光敏电阻检测结果、温度采集模块的采集数据和人体感应结构,通过液晶显示屏和LED指示灯实时显示出来。
5.蜂鸣器和LED指示灯收到温度传感器达到80°
C的信号后实现联合声光报警。
5.2系统功能测试
测试系统控制模块功能
图5-15系统控制模块测试结果
系统打开电源进行控制模块的测试,那么是测试各个模块是否连接准确,以及是否初始化的状态正确与否,那么一接通电源便可以看到,显示屏的连接准确,光敏电阻的指示灯红灯显示初始化,人体感应模块的连接也正确,绿灯亮起。
但是从这里无法看出其余模块是否连接成功,要一步步模块进行小测试才可证明。
测试温度采集模块功能
图5-16温度采集模块测试结果
由于人体温度是比室温要高些,那么我就选择了用手指捏紧温度传感器,当时测试时,室温是在28°
C,经过手部传导的温度,温度传感器的显示温度在上升,证明温度采集模块的测试成功。
以及温度的精确度还是比较良好,未见有什么大的差别。
测试实时显示模块功能
图5-17系统实时显示模块测试结果
从液晶显示屏上可以看到,第一行的显示是此时实时环境温度是28.9°
C,可以得出,输出显示的代码没有问题,以及液晶显示器是正确连接。
那么接着看左下是显示光敏电阻感应到光照强度强的结果,所输出的Bright,右下是显示人体感应模块RSD引脚的结果,感应到无人体经过,所以显示No。
得出的测试结果是能够实现在液晶屏上实时显示楼道状态,对楼道照明安全进行实时监控的一个效果目标。
测试