智能电风扇设计.docx
- 文档编号:7902643
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:30
- 大小:223.09KB
智能电风扇设计.docx
《智能电风扇设计.docx》由会员分享,可在线阅读,更多相关《智能电风扇设计.docx(30页珍藏版)》请在冰豆网上搜索。
智能电风扇设计
智能电风扇设计
【摘要】
本设计以AT89S52单片机为控制中心,主要通过提取热释电红外传感器感应到的人体红外线信息和温度传感器DS18B20得到的温度以及内部定时器设定时间长短来控制电风扇的开关及转速的变化。
引言……………………………………………………………………………………3
1、总体方案设计及功能描述…………………………………………………………………4
2、功能模块硬件简介与实现…………………………………………………………………4
2.1、键盘输入电路……………………………………………………………………………4
2.2、热释电红外传感器模块…………………………………………………………………4
2.2.1、热释电红外线传感器原理简介……………………………………………………4
2.2.2、热释电红外线传感器应用…………………………………………………………5
2.3、温度传感器…………………………………………………………………………………5
2.3.1、温度传感器DS18B20简介…………………………………………………………5
2.3.2、DS18B20读写及初始化时序………………………………………………………5
2.3.3、DS18B20的一般操作过程…………………………………………………………6
2.3.4、DS18B20的温度存储方式即温度计算……………………………………………6
2.4、数码管显示电路……………………………………………………………………………6
2.4.1、74ls164简介…………………………………………………………………………6
2.4.2、共阴极八段数码管简介……………………………………………………………6
2.4.3、显示电路设计………………………………………………………………………7
2.5、发光二极管电路……………………………………………………………………………7
2.6、蜂鸣器电路…………………………………………………………………………………7
2.7、继电器控制电路……………………………………………………………………………8
2.7.1、继电器简介…………………………………………………………………………8
2.7.2、继电器驱动电路设计及工作原理简介……………………………………………8
2.8、整体电路硬件设计…………………………………………………………………………9
3、AT89S52软件设计与实现…………………………………………………………………10
3.1、整体设计思路介绍…………………………………………………………………………10
3.2、主要部分流程图……………………………………………………………………………10
3.2.1、主程序流程图………………………………………………………………………10
3.2.2、外部中断流程图……………………………………………………………………10
3.2.3、定时器0中断流程图………………………………………………………………11
3.2.4、定时器1中断流程图………………………………………………………………11
4、总结………………………………………………………………………………………………11
致谢词……………………………………………………………………………………12
参考文献…………………………………………………………………………………12
附页:
………………………………………………………………………………………………13
引言
随着人们生活水平及科技水平的不断提高,现在家用电器在款式、功能等方面日益求精,并朝着健康、安全、多功能、节能等方向发展。
过去的电器不断的显露出其不足之处。
电风扇作为家用电器的一种,同样存在类似的问题。
现在电风扇的现状:
大部分只有手动调速,再加上一个定时器,功能单一。
存在的隐患或不足:
比如说人们常常离开后忘记关闭电风扇,浪费电且不说还容易引发火灾,长时间工作还容易损坏电器。
再比如说前半夜温度高电风扇调的风速较高,但到了后半夜气温下降,风速不会随着气温变化,容易着凉。
之所以会产生这些隐患的根本原因是:
缺乏对环境的检测。
如果能使电风扇具有对环境进行检测的功能,当房间里面没有人时能自动的关闭电风扇;当温度下降时能自动的减小风速甚至关闭风扇,这样一来就避免了上述的不足。
本次设计就是围绕这两点对现有电风扇进行改进。
1、总体方案设计及功能描述
本设计是以AT89S52单片机控制中心,主要通过提取热释电红外传感器感应到的人体红外线信息和温度传感器DS18B20得到的温度以及内部定时器设定时间长短来控制电风扇的开关及转速的变化。
功能描述:
电风扇工作在四种状态:
手动调速状态、自动调速状态、定时状态、停止状态。
手动状态时可以手动调节速度;自动状态时通过温度高低自动调节速度,如果出现手动现象则变为手动状态;定时状态时可以调节定时时间,并设定是否启动定时,之后可以手动退出,也可以在不操作6秒后自动退出进入手动状态;停止状态时可以被唤醒并进入自动状态。
当没有检测到人体存在超过3分钟或定时完毕时进入停止状态。
在数码管显示方面,当没有定时时,只显示气温,当定时启动时气温和定时剩余时间以3秒的速度交替显示。
系统方框图如下图所示,主要包括:
输入、控制、输出三大部分8个功能模块。
图1-1
2、功能模块硬件简介与实现
2.1、键盘输入电路
由于设计中用到的按键数目不多,所以可以直接用AT89S52的通用IO端口且选用AT89S52的P1口(内部有上拉电阻)作为键盘接口。
对于按键只需一端接地另一端接P1口即可。
见下图(2-1):
2.2、热释电红外传感器模块
2.2.1、热释电红外线传感器原理简介
人体辐射的红外线中心波长为9~10--um,而探测元件的波长灵敏度在0.2~20--um范围内几乎稳定不变。
在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10--um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。
实质上热释电传感器是对温度敏感的传感器。
它由陶瓷氧化物或压电晶体元件组成,在元件两个表面做成电极,如图2所示。
在环境温度有ΔT的变化时,由于有热释电效应,在两个电极上会产生电荷ΔQ,即在两电极之间产生一微弱的电压ΔV。
2.2.2、热释电红外线传感器应用
热释电红外线传感器有三个端口,一个接电源、一个接地、一个信号端口,当有人进入其检测区域时,信号端口便产生一个电平跳变,并维持数秒钟,我们就是利用这个跳变来判断是否有人在这个检测区域。
2.3、温度传感器
2.3.1、温度传感器DS18B20简介
新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线,在实际应用中取得了良好的测温效果。
DS18B20的主要特性:
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(5)测温温范围-55℃~+125℃
(6)最高分辨率为0.0625℃。
2.3.2、DS18B20读写及初始化时序
2.3.3、DS18B20的一般操作过程
(1)、初始化;
(2)、跳过ROM(命令:
CCH);
(3)、温度变换(命令:
44H);
(4)、读暂存存储器(命令:
BEH);
注意:
每次读取温度都要经过上面四个过程。
2.3.4、DS18B20的温度存储方式即温度计算
DS18B20是用12位存储温度,最高位为符号位,下图为它的温度存储方式:
这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
2.4、数码管显示电路
2.4.1、74ls164简介
移位寄存器是一类应用很广的时序逻辑电路,在时钟脉冲的作用下,低位寄存器的数码送给高位寄存器,作为高位寄存器的次态输出。
在时钟脉冲的作用下,高位寄存器的数码送给低位寄存器,作为低位寄存器的次态输出;移位寄存器:
除具寄存器的功能外,所存储的数码在时钟脉冲的作用下还可以移位。
74ls164是八位串入并出移位寄存器,其工作电压范围4.75~5.25V,大于2V的高电平输入、小于0.8V的低电平输入,clock最高响应频率为25MHZ,八位并行输出可以直接驱动八段数码管。
74ls164的引脚图及功能图如下所示:
2.4.2、共阴极八段数码管简介
共阴极八段数码管是将八段发光二极管封装在一起且二极管的阴极连在一起,原理图如下图所示,公共端接低电平,其它八个端口高电平点亮相应的二极管,低电平相反。
2.4.3、显示电路设计
此显示电路采用两位静态数码管显示,用八位串入并出移位寄存器74LS164作为驱动电路,采用共阴极八段数码管原理图示意图如下:
从图中可以看出控制线只有两条:
1、数据线;2、移位脉冲线。
它只占用很少的IO口。
2.5、发光二极管电路
发光二极管简称为LED,它是半导体二极管的一种。
发光二极管的反向击穿电压约5伏。
它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。
限流电阻R可用下式计算:
R=(E-UF)/IF
式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。
发光二极管的两根引线中较长的一根为正极,应按电源正极。
与小白炽灯泡和氖灯相比,发光二极管的特点是:
工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。
由于有这些特点,发光二极管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。
由于AT89S52的P0口是开漏输出,所以此电路可以设计位如下简单形式:
2.6、蜂鸣器电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
由于蜂鸣器具有比传统的喇叭体积小,价格低等优点,所以此次提示音电路选用蜂鸣器。
具体电路见下图:
工作原理简介:
当控制端口通以不同频率及不同占空比的信号时蜂鸣器将发出不同强度及不同频率的声音。
2.7、继电器控制电路
2.7.1、继电器简介
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
它有几个重要指标:
1、额定工作电压:
正常工作时线圈所需要的电压。
2、直流电阻:
继电器中线圈的直流电阻。
3、吸合电流:
继电器能够产生吸合动作的最小电流。
4、释放电流:
继电器产生释放动作的最大电流。
5、触点切换电压和电流:
继电器允许加载的电压和电流。
2.7.2、继电器驱动电路设计及工作原理简介
采用晶闸管也可以用于小电流控制大电流电路,但是其控制电路比较复杂,而采用继电器其控制电路就比较简单,且具有电气隔离作用。
虽然其响应速度没有晶闸管快但在低频情况下采用继电器控制电路较为方便。
其电路图如下所示:
电路工作原理简介:
当控制端口为低电平时,三极管导通继电器吸合,常闭触电断开,常开触点闭合。
当控制端口为高电平时三极管关断,继电器线圈通过二极管放电并断开,常闭、常开触电复位。
2.8、整体电路硬件设计
3、AT89S52软件设计与实现
3.1、整体设计思路介绍
软件设计整体思路:
主程序部分进行一些初始化以及温度的读取;外部中断0进行红外线感应延时时间的从新加载;定时器0进行键盘的扫描及相关操作;定时器1进行显示、温控速度、以及相关需要延时(如倒计时等等)的操作。
在显示方面,进行了一些改善----要显示的值有变化才进行从新刷新,否则不刷新。
这样就大大提高了效率及最终的显示效果(不会出现不该亮的部分还有亮的现象)。
3.2、主要部分流程图如下:
3.2.1、主程序流程图
图3-1
3.2.2、外部中断流程图
图3-2
3.2.3、定时器0中断流程图
图3-3
3.2.4、定时器1中断流程图
图3-4
4、总结
本设计最终实现了电风扇的手动调速、温控自动调速、定时、温度显示、人体检测等预期功能,其中定时在1到99分钟连续可调,人体检测范围角度120度、距离6米,人体检测延时时间3分钟,定时器自动退出时间6秒。
存在不足之处就是人体检测抗干扰方面不够好,需要提高。
程序清单
/***********************************************************************
touwenjian.h
***********************************************************************/
typedefunsignedcharbyte;
typedefunsignedintword;
//以下管脚配置
//ds18b20部分
sbitDQ=P2^5;
//显示部分
sbitDB=P1^0;
sbitCP=P1^1;
//发光显示部分
sbitLED_dingshi=P0^0;
sbitLED_shoudong=P0^1;
sbitLED_zidong=P0^2;
sbitLED_kuai=P0^5;
sbitLED_zhong=P0^6;
sbitLED_man=P0^7;
//键盘定义部分
#definewujian0x3f
sbitKEY1=P1^2;//状态转换/启动
sbitKEY2=P1^3;//+10/1
sbitKEY3=P1^4;//-10/2
sbitKEY4=P1^5;//3
sbitKEY5=P1^6;//0确定
//继电器控制部分
sbitJDQ1=P2^1;//0表示开通,1表示关断
sbitJDQ2=P2^2;
sbitJDQ3=P2^3;
//蜂鸣器部分
sbitcall=P2^4;//低电平鸣叫
/***********************************************************************
ds18b20.c
***********************************************************************/
#include
#include"touwenjian.h"
/*****************************************************
延时子程序
*****************************************************/
externvoiddelay(worduseconds)
{
for(;useconds>0;useconds--);
}
/*****************************************************
复位子程序
******************************************************/
staticbyteow_reset(void)
{
bytepresence;
EA=0;
DQ=0;//pullDQlinelow
delay(45);//leaveitlowfor480us//551us
DQ=1;//allowlinetoreturnhigh
delay(4);//waitforpresence//61us
presence=DQ;//getpresencesignal
delay(40);//waitforendoftimeslot//491us
EA=1;
return(presence);//presencesignalreturned
}//0=presence,1=nopart
/*******************************************************
从1-wire总线上读取一个字节子程序
********************************************************/
staticbyteread_byte(void)
{
bytei;
bytevalue=0;
EA=0;
for(i=8;i>0;i--)
{
value>>=1;
DQ=0;//pullDQlowtostarttimeslot
DQ=1;//thenreturnhigh
{unsignedchari;
for(i=0;i<2;i++);}//11us
if(DQ)value|=0x80;
delay(6);//waitforrestoftimeslot
}
EA=1;
return(value);
}
/********************************************************
向1-WIRE总线上写一个字节
*********************************************************/
staticvoidwrite_byte(charval)
{
bytei;
EA=0;
for(i=8;i>0;i--)//writesbyte,onebitatatime
{
DQ=0;//pullDQlowtostarttimeslot
DQ=0;
DQ=val&0x01;//6US
delay(5);//holdvalueforremainderoftimeslot//74us
DQ=1;
val=val>>1;
}
EA=1;
delay(5);
}
/*******************************************************
读取温度
*******************************************************/
wordRead_Temperature(void)
{
union{
bytec[2];
wordx;
}temp;
ow_reset();
write_byte(0xCC);//SkipROM
write_byte(0xBE);//ReadScratchPad
temp.c[1]=read_byte();
temp.c[0]=read_byte();
ow_reset();
write_byte(0xCC);//SkipROM
write_byte(0x44);//StartConversion
returntemp.x;
}
/***************************************************************
求解温度
***************************************************************/
externbyteReal_Tem(void)
{
wordwen;
wen=Read_Temperature();
return((wen>>4)&0x00ff);
}
/***********************************************************************
Main.c
***********************************************************************/
#include
#include"touwenjian.h"
//数据区
#definetime_default41
bytedingshi_time=time_default;//存放定时时间''''''
bitflag_dingshi=0;//0表示没有定时
worddingshi_jishu3=1000;//1000*60=1分钟
//
bitflag_dingshi_delay=0;//1表示有
bytedingshi_delay=100;
//
#definehwx_delay_const3//人体感应延时时间
bytehwx_delay=hwx_delay_const;//用于保存红外线触发延长时间
wordhwx_jishu1=0;
//
bytewendu=0;//用于存放温度值''''''
//
#definelow_wen18
#definemid_wen20
#definehig_wen24
#definevhi_wen28
//
bytetime_stor=100;//存储主观时间//触发显示
bytewendu_stor=low_wen;//存储主观温度//触发显示
//
enumstation0{zidong,dingshi,shoudong,weak}state;
//函数说明区
externbyteReal_Tem(void);
externvoiddelay(worduseconds);
voidmingjiao(void);
voiddisplay(byteinput,bitkkl);
voidauto_speed(void);
voidweak_default(void);
/*******************************************************************
主程序
*******************************************************************/
voidmain()
{
//定时器0用于键盘扫描
TMOD=0x01|TMOD;//定时器0的1方式
TH0=0xd8;TL0=0xf0;//定时器0初始化10ms扫描一次
//定时器1用于显示
TMOD=0x10|TMOD;//定时器1的1方式
TH1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 电风扇 设计