




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能电风扇的设计*专业班级 *学生姓名 竺*扌旨导教师*20*年*月* 日引言随着人们生活水平及科技水平的不断提高,现在家用电器在款式、功能等方面日益 求精,并朝着健康、安全、多功能、节能等方向发展。过去的电器不断的显露出其不足 之处。电风扇作为家用电器的一种,同样存在类似的问题。现在电风扇的现状:大部分只有手动调速,再加上一个定时器,功能单一。存在的隐患或不足:比如说人们常常离开后忘记关闭电风扇,浪费电且不说还容易 引发火灾,长时间工作还容易损坏电器。再比如说前半夜温度高电风扇调的风速较高, 但到了后半夜气温下降,风速不会随着气温变化,容易着凉。之所以会产生这些隐患的根本原因是:缺乏对环境的
2、检测。如果能使电风扇具有对环境进行检测的功能, 当房间里面没有人时能自动的关闭电 风扇;当温度下降时能自动的减小风速甚至关闭风扇,这样一来就避免了上述的不足。 本次设计就是围绕这两点对现有电风扇进行改进。I1总体方案设计及功能描述本设计是以AT89C51单片机控制中心,主要通过提取热释电红外传感器感应到的 人体红外线信息和温度传感器 DS18B20得到的温度以及内部定时器设定时间长短来控 制电风扇的开关及转速的变化。功能描述:电风扇工作在四种状态:手动调速状态、自动调速状态、定时状态、停 止状态。手动状态时可以手动调节速度;自动状态时通过温度高低自动调节速度,如果出现 手动现象则变为手动状态;
3、定时状态时可以调节定时时间,并设定是否启动定时,之后可 以手动退出,也可以在不操作6秒后自动退出进入手动状态;停止状态时可以被唤醒并 进入自动状态。当没有检测到人体存在超过3分钟或定时完毕时进入停止状态。在数码管显示方面,当没有定时时,只显示气温,当定时启动时气温和定时剩余时 间以3秒的速度交替显示。系统方框图如下图所示,主要包括:输入、控制、输出三大部分 8个功能模块。图1-1系统方框图32功能模块硬件简介与实现2.1键盘输入电路由于设计中用到的按键数目不多,所以可以直接用AT89C51的通用10端口且选用AT89C51的P1 口(内部有上拉电阻)作为键盘接口。对于按键只需一端接地另一端接P
4、1 口即可。见下图(2-1):AN1 I o O P1.x图2-12.2热释电红外传感器模块2.2.1热释电红外线传感器原理简介人体辐射的红外线中心波长为 910u m,而探测元件的波长灵敏度在 0.220um范 围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过 光的波长范围为710u m,正好适合于人体红外辐射的探测,而对其它波长的红外线由 滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。实质上热释电传感器是对温度敏感的传感器。它由陶瓷氧化物或压电晶体元件组 成,在元件两个表面做成电极,如图 2所示。在环境温度有 AT的变化时,由于有热释 电效
5、应,在两个电极上会产生电荷4Q,即在两电极之间产生一微弱的电压2.2.2热释电红外线传感器应用热释电红外线传感器有三个端口,如图2-2所示:一个接电源、一个接地、一个信VCC号端口,当有人进入其检测区域时,信号端口便产生一个电平跳变,并维持数秒钟,我 们就是利用这个跳变来判断是否有人在这个检测区域。绅线专感器VccSIGGND2.3温度传感器2.3.1温度传感器DS18B20简介新型数字温度传感器 DS18B20具有体积更小、精度更高、适用电压更宽、采用一 线总线,在实际应用中取得了良好的测温效果。DS18B20的主要特性:(1) 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条
6、口线即可实 现微处理器与DS18B20的双向通讯。(2) 测温温范围55C+ 125C(3) 最高分辨率为0.0625C。2.3.2 DS18B20的一般操作过程(1) 、初始化;(2) 、跳过 ROM (命令:CCH);(3) 、温度变换(命令:44H);(4) 、读暂存存储器(命令:BEH);注:每次读取温度都要经过上面四个过程。2.3.3 DS18B20的温度存储方式即温度计算DS18B20是用12位存储温度,最高位为符号位,下图为它的温度存储方式:2A32A22A12A02A-12A-22A-32A-4LSBYTEBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SSSS
7、S2A62A52A4MSBYTEBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8表2-1 DS18B20温度存储地址分配这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二 进制中的前面5位是符号位,如果测得的温度大于 0,这5位为0,只要将测到的数值 乘于0.0625即可得到实际温度;如果温度小于 0,这5位为1,测到的数值需要取反加 1再乘于0.0625即可得到实际温度。2.4数码管显示电路2.4 174IS164 简介移位寄存器是一类应用很广的时序逻辑电路,在时钟脉冲的作用下,低位寄存器的 数码送给高位寄存器,作为高位寄存器的次态输
8、出。在时钟脉冲的作用下,高位寄存器的数码送给低位寄存器,作为低位寄存器的次态输出;移位寄存器:除具寄存器的功 能外,所存储的数码在时钟脉冲的作用下还可以移位。74IS164是八位串入并出移位寄存器,其工作电压范围4.755.25V,大于2V的高电 平输入、小于0.8V的低电平输入,clock最高响应频率为25MHZ,八位并行输出可以 直接驱动八段数码管。74IS164的引脚图及功能图如下所示:141312111098Oh1234567OUTPUTSVcc OhOgOfOe CLEAR CLOCKABOaObOc Od GNDSERIAL INPUTSOUTPUTSInputsOutputsCl
9、earClockA BQaQbQhLXXLLLHLXQa0Qb0Qh0HtHHQAnQGnHtLLQAnQGnHtXLQAnQGn17图2-3 74ls164的引脚图及功能图2.4.2共阴极八段数码管简介共阴极八段数码管是将八段发光二极管封装在一起且二极管的阴极连在一起,原理图如下图所示,公共端接低电平,其它八个端口高电平点亮相应的二极管,低电平相反。243显示电路设计此显示电路采用两位静态数码管显示,用八位串入并出移位寄存器74LS164作为驱 动电路,采用共阴极八段数码管原理图示意图如下:数码管数码管data74LS16474LS164clock图2-5从图中可以看出控制线只有两条:1、数
10、据线;2、移位脉冲线。它只占用很少的10 口。2.5发光二极管电路发光二极管简称为LED,它是半导体二极管的一种。发光二极管的反向击穿电压约 5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。 限流电阻R可用下式计算:R=( E Uf)/ If式中E为电源电压,Uf为LED的正向压降,If为LED的一般工作电流。发光二极 管的两根引线中较长的一根为正极,应按电源正极。与小白炽灯泡和氖灯相比,发光二极管的特点是:工作电压很低(有的仅一点几伏); 工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命 长;通过调制通过的电流强弱可以方便地调制发光的强
11、弱。由于有这些特点,发光二极 管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。由于AT89C51的P0 口是开漏输出,所以此电路可以设计位如下简单形式:DLCCV图2-62.6蜂鸣器电路蜂鸣器工作原理简介:当控制端口通以不同频率及不同占空比的信号时蜂鸣器将发 出不同强度及不同频率的声音。由于其具有比传统的喇叭体积小,价格低等优点,所以 此次提示音电路选用蜂鸣器。具体电路见下图:VCC901 2图2-72.7继电器控制电路2.7.1继电器简介继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又 称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控
12、制较大电流 的一种 自动开关”故在电路中起着自动调节、安全保护、转换电路等作用。它有几个重要指标:1、额定工作电压:正常工作时线圈所需要的电压。2、直流电阻:继电器中线圈的直流电阻。3、吸合电流:继电器能够产生吸合动作的最小电流。4、释放电流:继电器产生释放动作的最大电流。5、触点切换电压和电流:继电器允许加载的电压和电流。2.7.2继电器驱动电路设计及工作原理简介采用晶闸管也可以用于小电流控制大电流电路,但是其控制电路比较复杂,而采用 继电器其控制电路就比较简单,且具有电气隔离作用。虽然其响应速度没有晶闸管快但 在低频情况下采用继电器控制电路较为方便。其电路图如下所示:电路工作原理简介:当控
13、制端口为低电平时,三极管导通继电器吸合,常闭触电断 开,常开触点闭合。当控制端口为高电平时三极管关断,继电器线圈通过二极管放电并 断开,常闭、常开触电复位。3软件设计与实现3.1整体设计思路介绍软件设计整体思路:主程序部分进行一些初始化以及温度的读取;外部中断0进行红外线感应延时时间的重新加载;定时器 0进行键盘的扫描及相关操作;定时器 1进行 显示、温控速度、以及相关需要延时(如倒计时等等)的操作。在显示方面,进行了一 些改善-要显示的值有变化才进行重新刷新,否则不刷新。这样就大大提高了效率及 最终的显示效果(不会出现不该亮的部分还有亮的现象)。3.2主要部分流程图如下:3.2.1主程序流程
14、图图3-1322外部中断流程图图3-23.2.3定时器0中断流程图图3-3324定时器1中断流程图图3-4结束语早在单片机原理及接口技术这门课还未结束的时候,陆仲达老师就给我们布置 了基于 51 单片机的课程设计。我从最初的茫然,到慢慢的进入状态,再到对思路逐渐 的清晰,整个写作过程难以用语言来表达。关于 51 的应用设计,从上课开始我就不满足于那些诸如电子钟、交通灯控制等司 空见惯的设计,我希望能把主题定位得更新颖、更具挑战性,正好夏天也到了,于是把 题目定为:智能电风扇的设计。题目确定下来,我便立刻着手资料的收集工作中,当时面对浩瀚的书海真是有些茫 然,不知如何下手。在导老师的指导及同学的
15、帮助下,我终于对自己的工作方向和方法 有了初步掌握。资料已经查找完毕,我开始着手论文的写作。在写作过程中遇到困难我 就及时和导师联系,并和同学互相交流,请教专业课老师。在大家的帮助下,困难一个 一个解决掉,论文也慢慢成型。当我终于完成了所有打字、绘图、排版、校对的任务后整个人都很累,但同时看着 电脑荧屏上的课程设计稿件我的心里是甜的,我觉得这一切都值了。这次课程设计论文 的制作过程是我的一次再学习,再提高的过程。在论文中我充分地运用了大学期间所学 到的知识。本设计最终实现了电风扇的手动调速、温控自动调速、定时、温度显示、人体检测 等预期功能,其中定时在 1 到 99 分钟连续可调,人体检测范围
16、角度 120 度、距离 6 米, 人体检测延时时间 3 分钟,定时器自动退出时间 6 秒。存在不足之处就是人体检测抗干 扰方面不够好,需要提高。我不会忘记这难忘的半个月的时间。课程设计论文的制作给了我难忘的回忆。在我 徜徉书海查找资料的日子里,面对无数书本的罗列,最难忘的是每次找到资料时的激动 和兴奋;亲手用protel 99 se设计电路图的时间里,记忆最深的是每一步小小思路实现时 那幸福的心情;为了论文我曾赶稿到深夜,但看着亲手打出的一字一句,心里满满的只 有喜悦毫无疲惫。这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏。在今后的日子里, 我仍然要不断地充实自己,争取在所学领域有所作为。在这次课
17、程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不 懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮 助我的同学。在此更要感谢我的指导老师和专业老师,是你们的细心指导和关怀,使我能够顺利 的完成课程设计。附录:程序清单/* touwenjian.h*/ typedef unsigned char byte;typedef unsigned int word;/以下管脚配置ds18b20 部分sbit DQ =P3A4;/显示部分sbit DB=P2A0;sbit CP=P2A1;/发光显示部分sbit LED_dingshi=P0A0;sbit LED
18、_shoudong =P0A1;sbit LED_zidong=P0A2;sbit LED_kuai =P0A3;sbit LED_zhong =P0A4;sbit LED_man =P0A5;/键盘定义部分#define wujian 0x3fsbit KEY1=P1A0 ;/状态转换 /启动sbit KEY2=P1A1 ;/+10 / 1sbit KEY3=P1A2 ;/-10/ 2sbit KEY4=P1A3 ;/ 3sbit KEY5=P1A4 ;/ 0 确定/继电器控制部分sbit JDQ1=P2A4; /0表示开通, 1表示关断sbit JDQ2=P2A5;sbit JDQ3=P2
19、A6;/蜂鸣器部分sbit call=P2A7;/低电平鸣叫*ds18b20.c* #include #includetouwenjian.h /*延时子程序 */ extern void delay(word useconds) for(;useconds0;useconds-); /*复位子程序*/static byte ow_reset(void)byte presence;EA=0;DQ = 0; / pull DQ line low delay(45); / leave it low for 480us /551usDQ = 1; / allow line to return hig
20、h delay(4);/ wait for presence /61us presence = DQ; / get presence signal delay(40); / wait for end of timeslot /491us EA=1;return(presence); / presence signal returned / 0=presence, 1 = no part/*从 1-wire 总线上读取一个字节子程序*static byte read_byte(void)byte i;byte value = 0;EA=0;for (i=8;i0;i-) value=1;DQ =
21、 0; / pull DQ low to start timeslotDQ = 1; / then return high unsigned char i;for(i=0;i0; i-) / writes byte, one bit at a time DQ = 0; / pull DQ low to start timeslotDQ=0;DQ = val&0x01; /6USdelay(5);/ hold value for remainder of timeslot /74us DQ = 1;val=val1;EA=1; delay(5);/* 读取温度*/ word Read_Tempe
22、rature(void) unionbyte c2;word x;temp;ow_reset(); write_byte(0xCC); / Skip ROM write_byte(0xBE); / Read Scratch Pad temp.c1=read_byte(); temp.c0=read_byte();ow_reset(); write_byte(0xCC); /Skip ROM write_byte(0x44); / Start Conversion return temp.x; /* 求解温度*/ extern byte Real_Tem(void)word wen; wen=R
23、ead_Temperature(); return(wen4)&0x00ff);/* Main.c*/ #include #includetouwenjian.h/数据区#define time_default 41byte dingshi_time=time_default;存放定时时间”bit flag_dingshi=0; /0 表示没有定时word dingshi_jishu3=1000;/1000*60=1 分钟/bit flag_dingshi_delay=0;/1 表示有 byte dingshi_delay=100;/#define hwx_delay_const 3 /人体感
24、应延时时间byte hwx_delay=hwx_delay_co nst;/用于保存红外线触发延长时间 word hwx_jishu1=0;/byte wendu=0;/用于存放温度值”/#define low_wen 18#define mid_wen 20#define hig_wen 24#define vhi_wen 28/byte time_stor=100; /存储主观时间 /触发显示byte wendu_stor=low_wen;存储主观温度/触发显示/enum station0zidong,dingshi,shoudong,weakstate;/函数说明区extern byte
25、 Real_Tem(void );extern void delay(word useconds);void mingjiao(void);void display(byte input,bit kkl);void auto_speed(void);void weak_default(void);主程序void main()/定时器 0 用于键盘扫描TMOD=0x01|TMOD;/ 定时器 0 的 1 方式TH0=0xd8;TL0=0xf0; /定时器0初始化10ms扫描一次 /定时器 1 用于显示TMOD=0x10|TMOD;/ 定时器 1 的 1 方式TH1=0x15;TL1=0xA0;
26、/定时器1初始化60ms中断一次 /外部中断TC0N=TC0N|0x01;外部中断0都下降沿触发 /以下为开启部分IP=0X01;/两个定时器同等优先级IE=0x8b;/开启定时器 0,1,外部中断 0 中断/while(Real_Tem()=85);auto_speed();LED_zidong=0;/刚开始为自动方式P1=P1|0X7C; /拉高五个键盘wendu_stor=100; /两个不可能值 / 用于启动显示 time_stor=100; /两个不可能值 /用于启动显示 /TR0=1; /开启定时器 0TR1=1;while(1)wendu=Real_Tem();/*定时器 0 中
27、断服务子程序 功能:进行键盘处理说明:键盘输入为P1.0到P1.4*/void time0(void) interrupt 1byte jianpan;TH0=0xd8;TL0=0xf0;jianpan = P1 & wujian;if(jianpan != wujian)/如果还有键盘值提取键盘值delay(500);延时消抖jianpan = P1 & wujian;if(jianpan=wujian)goto time_out;switch(state)case dingshi: if(KEY1=0)/ 状态转换时做些相应的处理 state=shoudong; LED_shoudong=
28、0; flag_dingshi_delay=0;dingshi_delay=100;time_stor=100;we ndu_stor=100;/触发 mingjiao();while(KEY1=0);else if(KEY2=0) 加分if(dingshi_time10) dingshi_time-=10; dingshi_delay=100;/ mingjiao(); while(KEY3=0);else if(KEY4=0)/ 定时与否flag_dingshi=flag_dingshi; if(flag_dingshi=1)LED_dingshi=0; else LED_dingshi=
29、1;dingshi_jishu3=1000; dingshi_delay=100;/mingjiao(); while(KEY4=0);else if(KEY5=0)weak_default();mingjiao();while(KEY5=0);break;case shoudong:if(KEY1=0) /状态转换时做些相应的处理state=zidong;auto_speed();LED_shoudong=1;LED_zidong=0;mingjiao();while(KEY1=0);else if(KEY2=0)/ 快 1JDQ2=1;JDQ3=1;JDQ 1=0;/关断其它LED_zho
30、ng=LED_man=1;LED_kuai=0; mingjiao();while(KEY2=0);else if(KEY3=0)/ 中 2JDQ1=1;JDQ3=1;JDQ2=0;关断其它LED_kuai=LED_man=1;LED_zhong=0; mingjiao();while(KEY3=0);else if(KEY4=0)/ 慢 3JDQ1=1;JDQ2=1;JDQ3=0;关断其它LED_zhong=LED_kuai=1;LED_man=0; mingjiao();while(KEY4=0);else if(KEY5=0)/ 停 4weak_default();mingjiao();
31、while(KEY5=0);break;case zidong: if(KEY1=0) / 状态转换时做些相应的处理state=dingshi; LED_zidong=1;flag_di ngshi_delay=1;di ngshi_delay=100;/开始延时 time_stor=100;/mingjiao(); while(KEY1=0);else if(KEY2=0) 快 1JDQ2=1;JDQ3=1;JDQ 仁0;/关断其它 LED_zhong=LED_man=1;LED_kuai=0; state=shoudong; LED_zidong=1;LED_shoudong=0;ming
32、jiao(); while(KEY2=0);else if(KEY3=0)/ 中 2JDQ1=1;JDQ3=1;JDQ2=0;关断其它 LED_kuai=LED_man=1;LED_zhong=0; state=shoudong; LED_zidong=1;LED_shoudong=0; mingjiao();while(KEY3=0);else if(KEY4=0)/ 慢 3JDQ1=1;JDQ2=1;JDQ3=0;关断其它 LED_zhong=LED_kuai=1;LED_man=0; state=shoudong; LED_zidong=1;LED_shoudong=0; mingjia
33、o();while(KEY4=0);19else if(KEY5=0)/ 停 4weak_default();mingjiao(); while(KEY5=0);break;case weak:if(KEY1=0) state=zidong;LED_zidong=0;we ndu_stor=100;/两个不可能值 time_stor=100;两个不可能值 auto_speed(); mingjiao(); while(KEY1=0);break;time_out: ;/*定时器 1 中断服务子程序功能: 用于定时 0.060s*/void timer1(void) interrupt 3TH1
34、=0x15;TL1=0xa0;/红外线到记时EX0=0;if(hwx_jishu10)dingshi_jishu3-; else dingshi_jishu3=1000;if(dingshi_time1)dingshi_time-; elseweak_default();/5 秒延时 if(flag_dingshi_delay=1)if(dingshi_delay1)dingshi_delay-; else state=shoudong;flag_dingshi_delay=0;dingshi_delay=100; LED_shoudong=0;time_stor=100;wendu_stor
35、=100; / mingjiao();/显示和温控switch(state)case di ngshi:/在定时的时候只显示时间if(time_stor!=dingshi_time)display(dingshi_time,1);time_stor=dingshi_time; /break;case shoudong:case zidong: /是否有定时,有则交替显示温度和时间,没有则只显示温度 if(flag_dingshi!=0)/static byte jiaoti_jishu2=0;static bit flag_jiaoti=0; if(jiaoti_jishu249)jiaoti
36、_jishu2+; else flag_jiaoti=flag_jiaoti;jiaoti_jishu2=0; if(flag_jiaoti!=0) if(time_stor!=dingshi_time)display(dingshi_time,1);time_stor=dingshi_time;wendu_stor=100;/ 显示时间else if(wendu_stor!=wendu) display(wendu,0);wendu_stor=wendu;time_stor=100;/ 显示温度elseif(wendu_stor!=wendu)display(wendu,0);wendu_stor=wendu;/ 显示温度 /温度控制速度 if(state=zidong) switch(wendu) case low_wen: JDQ1=1;JDQ2=1;JDQ3=1; LED_zhong=LED_man=LED_kuai=1;/ting zhi break;case mid_wen: JDQ1=1;JDQ2=1;JDQ3=0; LED_zhong=LED_kuai=1;LED_man=0;/man break;case hig_wen: JDQ1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软枣猕猴桃栽培技术分析
- 职业培训讲解
- 中医内科头痛诊疗体系
- 企业档案培训
- 商业综合体室外摊位布局与路灯照明一体化施工合同
- 城市交通枢纽车辆收费员劳动派遣合同
- 《绿色建筑设计与施工监理合同》
- 矿山土地权属变更与资源开采权许可协议
- 柴油发动机改装服务合同范本
- 餐饮企业商铺租赁及品牌拓展合同
- 希尔顿酒店设计和施工标准第12节套房
- 铝电解电容器
- GB/T 20307-2006纳米级长度的扫描电镜测量方法通则
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 结构设计总说明(带图完整版)分解
- 第二外语(日语)试卷
- 食品营养标签的解读课件
- 二手新能源汽车充电安全承诺书
- 品质异常8D报告 (错误模板及错误说明)指导培训
- 网页设计基础ppt课件(完整版)
- 贵阳市建设工程消防整改验收申请表
评论
0/150
提交评论