基于单片机控制的定时插座.docx
- 文档编号:10509282
- 上传时间:2023-02-17
- 格式:DOCX
- 页数:36
- 大小:910.59KB
基于单片机控制的定时插座.docx
《基于单片机控制的定时插座.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的定时插座.docx(36页珍藏版)》请在冰豆网上搜索。
基于单片机控制的定时插座
基于单片机控制的定时插座
摘 要
本文设计了一款基于STC89C52RC单片机控制的光敏定时插座,它可以通过人为设定时间和光照强度的强弱,实现自动通电和断电功能,从而达到节能的目的。
硬件电路设计包括:
单片机最小系统电路、电源稳压电路、1602液晶显示电路、独立式按键电路、温度控制电路、光敏电阻电路、继电器电路以及报警电路,设计原理主要利用DS1302时钟芯片和PCF8591芯片经A/D转换后在1602液晶上显示定时时间和光强大小,利用按键来选择工作模式和设定定时时间以及设定光照的阈值,当定时时间结束或光照强度小于设定光照阈值时,通过继电器的吸合作用来驱动插座的切断,红色发光二极管和蜂鸣器的状态来表示插座的工作状态。
软件程序的设计包括:
1602液晶显示程序、DS1302定时程序、AD转换程序,按键处理程序、蜂鸣器报警程序,在本文的最后对设计了硬件和软件部分,并进行了调试和制作,基于单片机控制的定时插座系统具有电路简单,可靠性高,定时准确等特点,基本满足设计要求。
关键词:
STC89C52;光敏;定时;插座
THETIMINGSOCKETBASEDONSINGLE-CHIPMICROCOMPUTER
ABSTRACT
DesignabasedonSCMSTC89C52RCphotosensitiveregularoutlet,byartificiallysettingtimeandthestrengthofthelightintensity,itcanachieveautomaticpower-onandpower-offfunction,soastoachievethepurposeofenergysaving.Hardwarecircuitdesignincludes:
thesmallestsingle-chipsystemcircuit,powerregulatorcircuit,1602LCDcircuit,anindependentkeycircuit,temperaturecontrolcircuit,thephotoresistorcircuit,therelaycircuitandalarmcircuitdesignprinciplesmainlyusetheDS1302clockchipandPCF8591chipbyA/Dconversiontimingin1602andtwolightlevels,usekeystoselecttheoperatingmodeandsetthetimingandsettingathresholdoflight,whenthetimerunsoutorwhenthelightintensityislessthanthesetlightthreshold,thestateoftheredlightemittingdiodeandabuzzertoindicatetheworkingstatusofthesocket.Softwaredesigninclude:
1602LCDprocedures,DS1302timerprogram,theADconversionprocess,thekeyhandler,thebuzzeralarmprogram,attheendofthisarticleonthefinaldesignofthehardwareandsoftwarecomponentsinthedesignandcommissioningandproduction,basedonsingle-chiptimingcontrolsocketsystemhasasimplecircuit,highreliability,andtimingaccuracy,basicallymeetthedesignrequirements.
Keywords:
STC89C52;photosensitive;Timing;Socket
目 录
1 绪论
1.1 课题来源及意义
随着现代科学技术飞速发展,给电子产品市场带来了巨大市场机会和挑战,同时人们对电子产品的需求也越来越高。
目前市场上出售的插座功能还比较单一,并不完全具备定时开启和关闭以及断电保护功能,长期通电会使家用电器电路老化,降低了电器的使用寿命,还容易漏电引发火灾,不能从根本上解决人们的需求。
比如说长时间开着饮水机,这样不仅浪费了能源,而且长时间饮用多次烧过的热水会给身体带来非常严重疾病,通过使用定时插座,当家里没人时,可以关断饮水机,家里有人时,则让饮水机工作,这样不仅节约了能源,还可以保护饮水机的使用期限,也能让人们喝上更健康的水。
其次,我们现在使用的手机,照相机等电子产品,如果长时间的给电池充电,这不仅缩短了电池的使用寿命,还有可能引起火灾,面对这样的难题,利用定时插座,将插头插在定时插座上,设定好定时时间,等电池充满电后,定时插座会自动停止工作,从而保护了电池。
鉴于上述问题,研究定时插座,有着非常现实的意义,在无人监视的情况下,可以自动切断电源,这样不仅节约了电能,还消除了火灾隐患,使我们的生活更加智能化,因此,由单片机控制的定时插座控制系统,可以用于家用电器设备中。
高精度、多功能、小体积、低功耗、智能化,是现代定时插座发展的趋势。
本文简述了定时开关插座的硬件电路设计和软件设计的方法,设计出了定时插座的制定方案,它可以自动对家中一些需要在特定时间对电器进行自动断、通电控制,而不需要拔掉插头,减少电器的待机损耗,解决生活中的烦恼。
1.2 定时插座发展趋势
单片机具有优异的性能性价比,集成度高、体积小、可靠性高,控制功能强,低电压、低功耗等特点,利用单片机技术来完善现有插座的功能,从根本上解决了传统电器启动的额定电流高,使传统电器易造成过热引起高温而加速绝缘老化、电压降过大而影响正常运转以及大的冲击力缩短设备的使用寿命等各种弊端。
定时插座给生活带来许多的方便,减少因家中没人,用电设备长时间工作带来的隐患,定时插座可以通过人为设置好定时时间,定时时间一到,定时插座会自动切断电源,从根本上保护了用电电器,更节约了能源。
定时插座是更加贴近实用、易用和人性化的智能家居概念,真正体现智能家居的价值,这也是现代科技价值的核心所在。
定时插座在国内外已经成为生活中的一部分,智能插座还处于刚刚发展的阶段,然而现在市场上销售的定时插座绝大多数只具备简单的定时功能,不具备检测白天和黑夜以及温度过高自动保护等功能,本设计本着这一思想,在定时插座具有单一定时功能的基础上,又利用光敏电阻和温度控制,能够自动检测白天和黑夜,采用光敏电阻,对于道路上的路灯控制起到了非常重要的作用,其次当温度过高时,定时插座会自动断电,安全系数更高,从而使用电设备更加合理的得到充分的保护,更加节能。
2 定时插座系统设计
本文设计一个基于STC89C52单片机控制的定时插座,设计要求:
实现24小时之内任意时间段的定时,完成定时时间后,能自动切断电源,发出“嘀”的报警声,利用了光敏电阻器件和温度控制,可以用来检测白天和黑夜,随意选择两种模式之间的控制,温度过高自动保护等,从而更加方便和节能。
2.1 设计方案的选择
对定时插座的研究与设计,具有很多的优越性。
基于单片机控制的定时插座,再加上光敏和温度器件,电路设计简单,功能更加强大,时间控制精确度更高。
采用STC89C52单片机,选择LCD1602液晶显示时间、温度及光照强度以及插座的工作状态,选择独立按键,方便的实现对定时时间和光照设定的调节,选择SONGL SRD-05VDC-SL-C继电器,在电路中起着自动调节、安全保护、转换电路等作用,实现小电压控制大电压的目的,使用光敏电阻,可以检测白天和黑夜,光敏电阻检测到当前环境的状态,反馈到单片机来控制继电器的闭合与断开。
使用DS18B20温度计,可以提高定时插座的安全指标,防止出现温度过高或者火灾等危险,采用DS1302时钟芯片,更能准确的实现对时间的定时,采用5v蜂鸣器实现插座工作状态的提醒。
系统的设计框图如图2-1所示。
图2-1 系统设计框图
2.2 定时插座的工作过程
本设计是利用STC89C52RC单片机来实现,通过按键key1来选择控制模式,系统默认为时间模式,当key1按下时,系统选择光强度模式。
当选择时间模式时,当按下key2时,可进行时间定时的时间段设置,再按下key3时,可进行时间调整的小时设计,再按下key3时,可进行时间调整的分钟设计,key4、key5是用来对时间的加减设定,把时间设定好之后,再按下key2键则恢复正常的时间和设定定时时间。
当选择光强度模式时,系统可随光强度的强度进行变化,系统设置的光强度阈值为30,当光强度低于30时,则用电设备不工作。
此系统也可以重新设定光强度阈值,按下key1键,按下key2键,再按key3键,用key4、key5对光强度重新设定阈值,把阈值设定好之后,再按下key2键则恢复正常的时间和光强度阈值。
1602液晶显示定时时间和阈值,定时时间到,驱动继电器断开插座,达到切断的目的,同时液晶显示OFF,指示灯熄灭,蜂鸣器发出“嘀”的短暂报警声。
3 定时插座的硬件电路设计
定时插座的核心器件是STC89C52单片机,硬件电路包括单片机最小系统电路、电源稳压电路、1602液晶显示电路、独立式按键电路、温度控制电路、光敏电阻电路、继电器电路以及报警电路,选择各部分电路来搭建一个完整的电路。
3.1 主控制器STC89C52RC
STC89C52RC具有8k字节的程序存储器,通过向其写入语言执行相应的功能。
单片机的18和19引脚外接12M的晶振,构成时钟电路,机器周期为1us,C1和C2两个瓷片电容对振荡频率起微调的作用,EA端为高电平(Vcc端),CPU则执行内部程序储存器中的指令。
单片机的9脚接复位电路,通过硬件复位,防止程序运行出错或者操作失误使系统处于死锁状态,由电源电路、时钟电路和复位电路构成了单片机的最小系统。
单片机最小系统原理图如图3-1所示。
图3-1 单片机最小系统原理图
3.2 定时插座的电源电路
电源是一个系统正常工作的基础,为系统的正常运行提供可靠的能源保证,因此电源模块的设计至关重要。
本设计采用LM2940[1]稳压芯片,LM2940是一款三端低压型稳压器,最大输出电流为1A,最大输入电压26V,能够输出5V电压以驱动单片机及系统的正常工作,其电路原理图如图3-2所示。
图3-2 电源电路
3.3 DS1302时钟电路
本设计采用DS1302时钟芯片[2]实现计时。
DS1302芯片是一款高性能时钟芯片,可自动对时间进行计数,而且精度高,工作电压在2.5V~5.5V,采用这种专用时钟芯片可以更精确地实现定时插座的定时目的,定时准确又不占用太多系统资源。
系统采取DS1302作为计时器,从而实现定时插座能在24小时内实现任意时间的可变定时。
这样可以使得定时准确,方便,节约系统资源。
X1和X2是振荡源,外接32.768KHz晶振,VCC1接干电池,作为后备电源。
单片机P2口的高3位分别接时钟芯片的SCK(时钟输入端),IO(数据输入输出信号)和RST(复位/片选信号)通过把RST输入驱动置高电平来启动所有的数据传送,其电路原理图如图3-3所示。
图3-3 DS1302时钟电路
3.4 DS18B20测温电路
DS18B20[4]是一款先进的单总线数据通信的数字测温器件,工作电压范围在3.0V—5.5V,可实现检测温度在-55°C—+125°C范围内,具有线路简单,体积小的特点。
单片机的P1.6口送入DS18B20的DQ(单数据总线),其电路原理图如图3-4所示。
图3-4 DS18B20测温电路
3.5 光强检测电路
光敏电阻[5]又称光导管,通常制成薄片结构,以便吸收更多的光能,主要特性与参数包括光电流、亮电阻,暗电流、暗电阻,灵敏度,光谱响应,光照特性,伏安特性曲线,温度系数,额定功率。
本设计采用的是光敏电阻,不同的光强对应着不同的电压,把它的电压接到AD芯片(PCF8591)【5】上,再配合计算程序,就可以测出光强。
当外界光照低于设定的光照时,则插座停止工作。
PCF8591是一款逐次逼近A/D转换器,具有4个模拟输入、1个模拟输出和1个串行I²C总线接口,采样频率取决于I2C总线传输速率,本设计选取AIN0和AIN1通道,单片机P2.4和P2.3分别接芯片的SCL(I2C时钟线)和SDA(I2C数据线),模拟量AIN0和AIN1经采样保持器,经过逐次逼近A/D转换,输出数字信号,其电路原理图如图3-5所示。
图3-5 光强检测电路
3.6 LCD1602显示电路
本设计采用的是LCD1602[6]字符型液晶显示器。
LCD液晶显示器是一种低功耗的显示器件,它不仅省电,而且能够显示大量的信息,LCD1602液晶可同时显示32个字符,内部含有的字符发生存储器里面存储160个不同的点阵字符图形,单片机P2.0接1602的第4脚RS(寄存器选择)高电平1时选择数据寄存器、低电平0时选择指令寄存器。
P2.1接第5脚:
RW(读写信号线)高电平1时进行读操作,低电平0时进行写操作。
P2.2接第6脚:
EN(使能端)。
P0口控制1602液晶D0-D7的数据端,1602液晶的第3脚接1K的滑动变阻器,可以调节亮度,电路原理图如图3-6所示。
图3-6 LCD1602显示电路
3.7 报警电路
蜂鸣器是一种一体化结构的电子讯响器,本设计采用5V蜂鸣器作为报警设备,由单片机的P1.5口经三极管放大电流后控制蜂鸣器发出声音,当定时时间到或者光照小于阈值时,蜂鸣器发出短暂警报,告知插座已停止工作,其电路原理图如图3-7所示。
图3-7 报警电路
3.8 继电器电路
继电器是一种电子控制器件,它是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用,实现小电压控制大电压的目的。
本设计采用的是SONGLESRD-05VDC-SL-C[7]继电器,主要是用于控制插座的开关状态,通过单片机P1.7输出信号控制继电器的工作已否从而达到控制插座开关的目的。
为了防止倒流,电路中加入了光电耦合器4N25[8],4N25光耦是一种发光二极管与光电晶体管面对面得封装的单回路、内光路光电耦合器,开关的通断状态用一个红色LED灯显示插座的开关状态,当红灯亮时,插座处于工作状态,液晶上显示ON,反之则不工作。
其电路原理图如图3-8所示。
图3-8 继电器电路
3.9 总体硬件电路及其工作原理
整个定时插座系统由9V电源通过LM2940稳压模块输出5V电源供电,把插座的火线切断,将其两端接在线柱上,外接一个5V直流电机来表示插座的工作状态。
系统可通过选择key1键选择工作模式,系统默认是时间模式,通过key2、key3、key4、key5四个独立式按键设置24小时内的任意时间内的定时,任意时间定时可以让定时插座在未设置的时间内停止,而设定的定时时间内正常工作,当定时时间到达之后,电机停止运行,红色指示灯熄灭,与此同时蜂鸣器发出报警声,液晶屏上显示OFF,则插座停止工作。
当系统选择光模式时,通过key2、key3、key4、key5四个独立式按键设置0—100之内光照强度的阈值,当光照低于所定阈值时,电机停止运行,红色指示灯熄灭,蜂鸣器发出报警声,液晶屏上显示OFF,则插座停止工作。
电动机的运行速度会随着光照强度的变化而变化,光照越强,运行速度越快,反之。
系统的整体电路如附录2的电路原理图所示,单片机由5V电源输入,开机时各模块分别初始化,开始工作,插座的工作与否由继电器控制。
单片机从DS1302[9]模块中读取计时参数,在LCD1602液晶上显示,开始时继电器电路不工作,红色指示灯不亮,蜂鸣器也不响。
当单片机检测到独立按键设定定时时间后,单片机发出开启信号让继电器电路开始工作,同时红色指示灯亮,电动机开始运行,等定时时间到达后,单片机发出一个关闭信号让继电器停止工作,红色指示灯熄灭,同时蜂鸣器发出短暂“嘀”的一声,电动机停止运行。
当独立按键选择光模式控制时,单片机立刻发出开启信号给继电器电路,让继电器工作,指示灯亮,电动机开始运行,当光照小于设定的光照阈值时,单片机发出关闭信号给继电器,关闭继电器,从而达到关闭插座的目的。
整体电路的实物如图3-9所示。
图3-9 整体电路实物
4 软件设计
本系统采用C语言进行编程,采用模块化结构设计,用Keil[10]软件进行编译,STC—ISP软件进行下载。
软件设计部分包括1602液晶显示程序、DS1302定时程序、A/D转换程序,按键处理程序、蜂鸣器报警程序。
图4-1为主程序的流程图。
图4-1 主程序的流程图
主程序
#include
unsignedintpattern=1;//模式指针
unsignedcharmode=1;
voidmain(void)
{
Lcd_Init();//初始化液晶
ds18b20_init();//初始化ds18b20
read_rtc();//读取时间
while
(1)//进入大循环
{
switch(pattern)//判断处于那种模式
{
case1:
//时间控制插座模式
read_rtc();//读取时间
time_display();//在液晶上显示当前时间
temperature_display();//温度测量及显示
time_control();//根据设定时间来控制插座的开关并显示到液晶上设定的时间段和当前插座的状态
if(key_scan
(1))//检测第一个按键是否按下
{
pattern=2;//若第一个按键按下则切换到光强控制模式
Write_Com(0x01);//液晶清屏
}
4.1 DS1302计时程序的编写
DS1302[11]串行时钟芯片的主要组成部分:
移位寄存器控制逻辑、振荡器、实时时钟以及RAM。
为了初始化任何的数据传送,把RST置为高电平,在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
DS1302的读写时序如图4-2所示。
图4-2 DS1302的读写时序图
读写程序如下:
/*********对1302某一确定地址的写操作*********/
staticvoidwrite_ds1302(unsignedcharadd,unsignedchardat)
{
rst=0;
_nop_();
sck=0;
_nop_();
rst=1;
_nop_();
write_ds1302_byte(add);
write_ds1302_byte(dat);
rst=0;
_nop_();
io=1;
sck=1;
}
/*********对1302某一固定地址的读操作*********/
staticunsignedcharread_ds1302(unsignedcharadd)
{
unsignedchari,value;
rst=0;
_nop_();
sck=0;
_nop_();
rst=1;
_nop_();
write_ds1302_byte(add);
4.2 A/D转换程序
光敏电阻采来的模拟量经PCF8591[12]逐次逼近A/D转换之后输入到单片机内部,进行数字量输出,程序如下:
sbitSCL=P2^4;
sbitSDA=P2^3;
#defineAddWr0x90//写数据地址
#defineAddRd0x91//读数据地址
#defineadCon0x40//AD控制字节
unsignedcharlight_uth=30;
/**********IIC通信协议的几个子函数**********/
staticvoiddelay(unsignedintcnt)
{
while(--cnt);
}
staticunsignedcharrecive(void)
{
unsignedchari=0;
unsignedchartemp=0;
SDA_SET;//必须设置
for(i=0;i<8;i++)
{
SCL_CLR;//拉低允许数据改变
delay
(1);
SCL_SET;//拉高保持数据,等待读走
delay
(2);
if(SDA)
temp|=0x01;
else
temp&=0xfe;
if(i<7)
temp<<=1;//最低位发送完成不能移位,否则出错
}
SCL_CLR;
returntemp;
}
4.3 DS18B20程序初始化
由于采用单总线数据传输方式,DS18B20[13]的数据I/O均由同一条线完成,因此,对读写的操作时序要求严格。
初始化如图4-3所示。
图4-3 初始化时序图
写时序包括写0时序和写1时序。
所有写时序都至少需要60微秒的时间,且在两次写时序之间至少需要1微秒的恢复时间,两种写时序都起始于主机拉低总线时。
写“0”时序:
主机输出低电平,然后延时60微秒,释放总线;写“1”时序:
主机输出低电平,延时至少1微秒,然后释放总线。
读时序同样包括读“0”时序和读“1”时序。
温度传感器在主机发出读时序时,才能向主机传输数据,故在主机发出读指令后,必须立即产生读时序,以便能传输数据。
所有读时序都至少需要60微秒的时间,且在两次读时序之间至少需要1微秒的恢复时间,两种读时序也都起始于主机拉低总线时。
图4-4 DS18B20读/写时序图
程序如下:
voidds18b20_init(void)//初始化
{
unsignedcharn;
DQ=1;
delay(8);
DQ=0;
delay(60);
DQ=1;
delay(8);
n=DQ;
delay(4);
}
unsignedcharreadtemprature(void)//读取当前温度值
{
unsignedinta,b;
ds18b20_init();//初始化
write_byte(0xcc);//跳过ROM
write_byte(0x44);//启动温度测量
delay(300);//等待检测完成
ds18b20_init();//初
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 定时 插座