多功能智能台灯照明系统毕业论文Word文档格式.docx
《多功能智能台灯照明系统毕业论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《多功能智能台灯照明系统毕业论文Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
图2-1
系统结构框图
3
图3-1
电源模块电路
5
图3-2
MCU模块电路
6
图3-3
人体红外模块电路
7
图3-4
测距模块电路
8
图3-5
温度传感模块电路
图3-6
时钟模块电路
9
图3-7
AD转换模块电路
10
图3-8
LCD1602显示模块电路
11
图3-9
灯光模块电路
12
图4-1
主程序流程图
13
图4-2
键闭合及断开时电压抖动波形
15
图4-3
RC去抖动电路
16
图4-4
按键检测处理流程图
图4-5
按键控制流程图
17
图5-1
作品完成图
19
图5-2
灯光最亮图
20
图5-3
灯光较暗图
1绪论
二十一世纪是科学技术迅速发展的时代,人工智能快速发展,使得高科技产品的使用也越来越平民化,走进人们的日常生活,这一变化使得各种家用电器都趋向于科技化、智能化,这种变化大大提高了人们的工作效率,改变了生活方式,提高了生活质量。
家用电器的智能化大多是单片机和智能理论的结合实现的。
随着家用电器的迅速发展,家用电器的成员之一小台灯也应顺应科技发展智能化。
日常生活中人们使用的台灯大致分为两种类型:
立柱式和夹子式。
其工作原理是把灯光集中于一个有限的小区域,使光线集中方便学习和工作大多数的照明台灯使用的都是白炽灯泡和节能灯泡。
就目前而言,市面上出售的灯具虽然样式繁多,但是都采用220V电源供电。
这类台灯的缺点有以下几点:
一、高电压带来的不安全因素;
二、灯光的频闪效应会伤害眼睛,不利于健康;
三、光源以日光灯为主耗电量大;
四、需要人工控制,繁忙的工作难免让人们忘记关灯而造成电能的浪费。
而智能台灯却避免传统台灯的弊端,具有以下优点:
一、采用+5V的直流电源供电消除不安全因素;
二、采用体积小,轻便的LED固体光源有效消除频闪[2];
三、以LED灯为主的智能台灯能耗小,发光效率高;
四、智能台灯的开关是由单片机控制的系统通过对周围环境的监测反馈控制的,实现有效的节能。
多功能智能台灯不仅仅是为了帮助使用者预防近视和脊椎疾病,更能节省能源,一定条件下的自启功能为使用者提供很多的便利。
2.总体设计方案
本设计主要包括硬件设计和软件设计两部分,其中硬件部分的功能主要是用价格低廉,实用性髙的STC89C52单片机和人体红外热释电集成模块及光敏电阻采集信号,发送给模数转换模块,将采集的模拟信号转换为数字信号,最后再传送给单片机,单片机控制各个模块的功能实现。
此次设计实现的功能主要有:
1.利用人体红外感应模块检测台灯周围是否有人,决定是否开灯;
2.使用光敏电阻检测周围环境光线强度,实时调节台灯亮度;
3.光电测距模块的作用是检测人体与台灯的距离,人体太靠近桌面时,台灯发出警告,提醒三次还未改正即强制关灯;
4.离开台灯系统的监测范围,台灯自动关闭,节约能源;
5.可在台灯上设置学习时长,台灯自动倒计时,倒计时结束,蜂鸣器提醒休息;
6.LCD1602液晶显示屏主要是显示学习定时、年月日、环境温度和当前时间。
软件设计部分采用的是基于C语言的keilC51软件进行软件程序的编写设计,实现时钟日期显示。
如图1-1所示为系统结构框图:
图2-1系统结构框图
智能台灯设计了两种工作模式,手动模式下主要是用触摸按键来调节灯光的亮度的。
以上结构框图主要显示的是自动模式下智能台灯的各个模块电路的工作情况。
在自动模式下,首先是人体红外模块检测是否有人在台灯周围,若在检测范围内有人,并且光敏电阻检测到周围光线昏暗,单片机将此信号发送于灯光控制模块,台灯会点亮;
在台灯正常工作的状态下,测距模块会检测人体是否在设置的警示范围之外,若在警示范围之内,则通过单片机启动蜂鸣器报警电路;
温度传感模块检测到的环境温度和时钟电路的时钟信号都通过单片机的控制直接显示在LCD1602液晶显示屏上。
3.系统硬件电路设计
本次设计的主要核心是以MCS-51系列的STC89C52单片机作为最小控制系统,电路主要有采集的传感器电路,处理信号的BISS0001模块集成电路,LCD1602显示模块、按键模块和LED灯光源模块组成。
此次设计之所以选择这个型号的单片机,因为其开发技术比较成熟,使用起来比较方便,并且使用广泛,性价比较高,使用单片机主要是为了接受传感器的反馈信号实现对蜂鸣器电路和LED光源模块的智能控制。
3.1电源模块
电源模块设计中采用DC电源插座设计的供电电路提供5V电压,电源模块电路如图3-1所:
图3-1电源模块电路
电源模块主要是由三部分组成,DC电源接口、自锁开关和一个470uf的电解电容构成,当自锁开关按下之后,VCC与DC接口联通,整个电路通电开始工作。
3.2MCU模块
设计中控制系统的核心主要由单片机完成任务,单片机采用的是STC89C52,此单片机具有8K字节flash,512字节RAM,内带4K字节EEPROM存储空间,可直接使用串口下载32位I/O,具有看门狗定时器。
模块电路如图3-2:
图3-2MCU模块电路
MCU模块主要由四部分:
复位模块、晶振模块、程序下载模块和单片机芯片组成,单片机的8个I/O口上接了一个A103J排阻,实际是一个上拉排阻,其作用是对I/O数据端口使能。
本次设计复位模块有两种复位方式:
上电复位和按键复位,在单片机通电之后,复位电路的电容在充电的过程中完成对单片机的一次复位;
当电容充电完成之后,由于电容具有通交阻直的特性,所以相当于断路,此时就需要使用按键进行复位操作。
晶振模块给单片机提供一个模拟时钟。
3.3人体红外模块电路
人体红外电路模块主要采用热释电红外传感器和BISS0001集成电路模块组成的信号采集电路模块,热释电传感器是利用热电效应工作的传感器,它主要有以下四个优点:
(1)光谱响应宽
(2)工作频率宽
(3)响应速度快
(4)能在室温下工作
热释电红外探测器以集成度高、低功耗、小体积、高稳定性等优点,被广泛应用。
热释电红外探测器一般都要采用菲涅尔透镜作为窗口。
菲涅尔透镜的作用是将红外能量集聚起来,以扩大其探测距离。
当它用来配合热释电红外传感器时,可以提高接受灵敏度和提高探测距离、扩大探测范围。
热释电红外探测器如果不加菲涅尔透镜,探测距离仅为2m左右,而加上菲涅尔透镜探测距离可达10m以上[3]。
以BISS0001集成电路模块的主要作用就是信息的采集,其主要电路如图3-3所示:
图3-3人体红外模块电路
信号检测及处理电路主要由光敏电阻、信号放大滤波电路以及延时电路三部分组成。
当外界光照射光敏电阻时,光敏电阻的阻值发生变化,光照越强,阻值越小。
当外界光照足够强、使电阻阻值足够小的时候,热释电模块禁止传感器传输信号。
当外界光线较弱时,光敏电阻有较大的阻值,传感器产生微弱的电信号,经过信号放大滤波电路和延时电路,输出信号。
3.4测距模块电路
本次设计中的采用光电传感器检测人与台灯的实时距离,通过光电传感器距离信号,并且将距离信号转换为电信号,便于单片机控制。
如图3-4为测距模块电路:
图3-4测距模块电路
光电传感器在上电之后,在设置的检测范围内未检测到障碍物或者未被遮挡的时一直输出高电平信号1,一旦被遮挡,则输出低电平0
3.5温度传感器模块电路
DS18B20是一种单线数字温度传感器芯片,可将模拟量(温度)转换为数字量(数字信号),供单片机进行处理,性能高而且抗干扰能力强,基于以上优点,本设计用它作为温度传感器。
如图3-5为温度传感器模块电路:
图3-5温度传感模块电路
DS18B20芯片在系统上电后,还未接收到系统的测温指令时,会处于低功耗状态,直到接收到读取温度的命令之后,才会将测量到的温度读取出来传递给显示器件。
DS18B20还有一种寄生电源工作状态,这个工作模式使得芯片可以采集当下环境的实时温度数据。
但是要读取数据需要使用4.7K电阻上拉,否则不会有返回值。
3.6光敏电阻
光敏电阻是利用光电效应制作的器件,光敏电阻的电阻值随光照的变化而改变,光照越强,其电阻值越小。
光敏电阻是一个没有电极性的纯电阻器件,两端加直流或交流电压时,随光照的变化,流过的电流随之改变,从而实现光电转换。
光敏电阻种类很多,光谱响应范围也比较宽,从可见光波段到到中、远红外区间都有相应的光敏电阻。
常见的光敏电阻一般由金属硫化物、硒化物和碲化物组成,如CdS、PbS、PbTe、InSe等,制作材料不同,相应光敏电阻的特性也有较大的区别。
光敏电阻一般都是做成薄片状并封装在带有透明窗的外壳中。
在一块均匀的光电半导体两端加上欧姆接触电极,电极一般采用梳状图案来提高灵敏度[3]。
3.7DS1302时钟电路模块
DS1302是串行实时时钟芯片,它在提供年、月、日、星期、时、分、秒等信息的同时,还提供了32字节的RAM存储单元[1]。
采用普通32.768晶振。
各引脚的功能如下:
VCC2和GND为电源端。
X1和X2为时钟信号端。
VCC1为辅助电源引入端。
RST为复位信号端。
SCLK为串行脉冲信号端。
I/O为串行数据输入输出端。
如图3-6为时钟模块电路:
图3-6时钟模块电路
采用DS1302时钟芯片作为实时时钟,主要是因为其有两个电源:
一个主电源,一个负电源。
主电源为系统的供电电源,负电源是一个纽扣电池,相当于备用电源,在系统断电之后时钟的时间继续,如果没有备用电源,那么在系统断电的一瞬间,时钟就会停留于断电时刻的时间。
所以,采用备用电源比较方便。
3.8ADC0832模数转换模块电路
信号转换芯片本次使用的是具有8位转换精度的双通道A/D转换芯片,并采用SPI接口来传递数据,相对而言,性价比也比较高,其主要电路如图3-7所示:
图3-7AD转换模块电路
当外界光照射光敏电阻时,光敏电阻D1两端的电压就会发生变化,此时光敏电阻将电压的变化值通过CH0通道传输给ADC0832芯片,转换芯片将电压变化的模拟量转换为数字量输送给单片机系统。
3.9显示电路模块
本次设计的电路显示部分采用的是LCD1602液晶显示屏,LCD1602液晶显示分为有背光和没有背光两种,这两种显示器除了在外观上有厚度的微小差别外,在实际应用中并无差别,本次设计采用带背光的显示器[1],如图3-8为LCD1602显示模块电路:
图3-8LCD1602显示模块电路
LCD1602液晶显示屏具有两组VCC和GND,其中一组是直接为LCD1602芯片供电,另外一组是给显示屏的背光供电,VO口是显示屏的对比度的调节,通过接一个3K的电阻来实现调节。
8个数据端口与单片机的端口连接,并且通过上拉电阻进行数据驱动。
3.10LED灯光模块电路
如图3-9为LED灯光模块电路:
图3-9灯光模块电路
灯光模块电路由单片机控制,因为单片机的驱动电流是有限的,所以电路中NPN型的8050三极管和PNP型的8550三极管都起到放大电流的作用,提高单片机的驱动能力。
LED的负极都接地,所有的LED灯都是并联关系。
当P35(I/O口)输入高电平时,三极管8050导通,8550的基极被拉低,随之被导通,LED灯正极与电源接通,LED灯被点亮;
当输入低电平时,当输入低电平时,8050截止,8550的基极被10K电阻拉高,不被导通,所以8550也截止,LED灯的正极与电源无法接通,LED灯被熄灭。
当I/O口的电平不断变化时,就能够控制LED灯的明暗变化了。
4.系统软件设计
本设计软件部分的设计采用的是基于C语言的51系列单片机的开发工具KeilC51,C语言比汇编语言在在机构功能上有很大的优势,容易学习,使用比较方便,并且keilC51生成的目标代码运行效率非常高,多大数程序语句生成的汇编代码机构都很紧凑,非常容易理解。
4.1主程序流程图
如图4-1为主程序流程图:
图4-1主程序流程图
系统通电之后,首先进行初始化,然后检测当前系统中是否使用按键进行定时操作,若已经进行了定时操作,则在显示器上显示当前的倒计时状态,同时执行软件程序操作;
倒计时完毕后,再一次回到初始化之后的状态,扫描按键是否进行了定时操作,循环此过程。
部分程序如下:
#include<
reg52.h>
voidkey(void)//按键函数的申明
{uchari;
if(key_3==0)//手动模式下调暗灯光
{
LCD1602_delay(50);
if(key_3==0)
{while(key_3==0);
switch(state)
{
case0:
if(flag_auto)scale--;
//灯光比例--
if(scale<
=1)
scale=1;
display();
break;
case1:
if(time_data_1[0]>
0)time_data_1[0]--;
elsetime_data_1[0]=59;
case2:
if(time_data_1[1]>
0)time_data_1[1]--;
elsetime_data_1[1]=59;
case3:
if(time_data_1[2]>
0)time_data_1[2]--;
elsetime_data_1[2]=23;
case4:
if(time_data_1[5]>
0)time_data_1[5]--;
elsetime_data_1[5]=98;
case5:
if(time_data_1[4]>
1)time_data_1[4]--;
elsetime_data_1[4]=12;
case6:
if(time_data_1[3]>
1)time_data_1[3]--;
case7:
if(fen_1>
0)//设置倒计时
{
fen_1--;
fen_2=fen_1;
miao_1=0;
}
SectorErase(0x2000);
//保存上限值
byte_write(0x2000,fen_2);
break;
}
}
if(key_5==0)
LCD1602_delay(10);
if(key_5==0)//再次判断按键按下
{
if(time!
=0&
&
time>
150)//倒计时时间到,蜂鸣器报警
beep=1;
time=0;
}
else{
time_star_on=~time_star_on;
//开始倒计时
while(key_5==0)display();
4.2去抖动设计
触摸按键是硬件设计中最常用的输入器件,若干按键可构成键盘。
按键主要有两种方式:
触点式和无触电式。
无论是何种按键,其作用都是控制信号的有无。
对于机械式按键,从它的开启到稳定闭合,或是从闭合到完全开启,总要经过几毫秒的抖动时间,如图4-2所示:
图4-2键闭合及断开时的电压抖动波形
按键的操作带来的抖动将会影响按键的分析处理,因此必须予以去除。
消除抖动的方法有两种,一种是采用软件程序延时来消除抖动;
另一种是采用硬件来消除,如图4-3所示。
由于人为的差异,按键操作时间也会存在较大的不同。
对键值的认定有两种方式,一种是按一次认定,无论其按下时间的长短;
另一种是采用时限设置的方法,一旦超过时限就按2次处理。
图4-3RC去抖动电路
按键检测处理流程图:
图4-4按键检测处理流程图
在很多作品的设计中经常会采用触摸按键控制电路中信号的有无,但在这种按键的闭合瞬间经常会出现很短时间的抖动,这些抖动经常会影响按键的分析处理,因此在使用软件设计来消除抖动。
按键操作开始的时候,程序首先检测按键是否按下;
若按键没有按下,则程序结束;
若按键已经按下,进行延时去抖。
去抖动之后,再次重新检测按键是否按下,若没有按下按键,则程序结束;
若按键再次按下,就开始处理程序。
程序处理之后,检测按键是否被释放,若未被释放,再检测一遍是否被释放,若按键被释放,程序结束。
图4-5按键控制流程图
按键的工作过程:
系统初始化之后,开始进行按键扫描,检测是否有按键按下,若有,判断是那个按键按下。
若key1按下,切换模式;
若未按下,扫描key2。
若key2按下,则切换设置项;
若未按下,扫描key3。
若key3按下且是设置状态,则设置项加1且返回程序继续扫描;
若不是设置状态,进一步判断是否是手动模式,若是则亮度增加且返回程序继续扫描,若不是,也返回程序继续扫描。
若是key4按下且是设置状态,设置项减1且返回程序;
若不是设置状态,进一步判断是否是手动模式,若是则亮度减小且返回程序,若不是,则继续扫描。
若是key5按下,则判断是否启动定时,若是,则开始倒计时;
若不是,判断是否暂停定时;
若是,则暂停倒计时,若不是,进一步判断是否为取消报警器报警;
若是,则停止报警,若不是,返回程序继续扫描key6。
若是key6按下,则取消强制关灯,打开台灯;
若不是Key6按下,结束扫描返回主