1、综合课程设计设计题目: 窗 帘 的 自 动 控 制 学校全称: 合 肥 学 院 系别班级: 电 子 系 08 级 3 班 指导老师: 赵 春 江 组员姓名: 08电子班 刘扬 080507024408 电子班 程坤 080507026308 电子班 郭守迪 0805070239基于单片机控制的智能窗的设计摘要:我们现在使用的窗户大部分采用人工关闭方式,不具有自动防雨、防风、防强光以及低温自动关窗等人性化的功能;平时我们外出时经常忘记关闭窗户,遇上下雨时,雨水会进入室内,对室内的电器、摆设等物品造成不必要的损害。本文借助单片机、电子电路及传感器的知识设计了可以实现自动开窗、防风雨、低温自动报警并
2、开窗的智能窗,从而可解决现实生活中存在的很多问题。本智能窗的设计本着安全、方便、节能、人性化的原则进行,可使现代生活显著提高。关键词:防风雨、防低温、强光;单片机;窗扇的旋转;智能51 single-chip microcomputer control based on the design of the intelligent windowAbstract: we now use the most windows using artificial off mode, do not have automatic rain-proof, wind-proof, glare and low tem
3、perature automatic window closing humane function; we often forget to close the windows when you go out, it rains, the rain will enter the room, the indoor appliances, equipment and other items to cause unnecessary damage. In this paper, by means of single chip, electronic circuit and sensor designe
4、d can realize the automatic window, against the wind, low temperature automatic alarm and fenestration of the intelligent window, which can solve many problems that exist in the real life. The intelligent window design in a safe, convenient, energy-saving, humanized principle, can make modern life i
5、mprove.Key words: wind and rain prevention,anti low temperature, strong light; 51 single sash rotating; intelligence;1引言:当今世界建筑正朝着智能化方向发展,这种发展趋势也正是人类社会的文明程度在一定历史时期的体现。但现在使用的窗户大多数是单纯的推拉式或平移式的,并且与自动控制毫不沾边,更不用说智能化了。如果使窗户具有一定的智能,如下雨则自动关、室内温度超标则自动开、报警等,就会给人们的居家生活带来诸多方便,从而进一步提高人们的生活质量。沿着这样的思路,我们设计了以 AT89C
6、52 单片机为中央控制器的智能窗。该智能窗能通过其数据检测传感电路不断循环检测室内湿度、温度,光照强度等信号,经处理后传入单片机。单片机对信号进行运算,然后与由预先设置的参数临界值相比较,从而作出开/关窗 的判断,再结合窗状态检测电路所检测到的当前窗状态,再输出脉冲信号调整步进电机,完成下雨刮风自动关窗、温度超标自动开窗等。1 总体方案的设计1.1 本设计的主要任务和内容1、自动防雨:平时上班或临时加班不能及时关窗、出门在外也总有忘记关窗的时候,遇到下雨时,湿敏传感器检测到下雨信息,单片机控制板控制电动机动作,窗门自动关闭,使您的家用设备遭雨水侵袭,解除您的后顾之忧。此功能特别适合高楼住户。2
7、、低温自动关窗:当室内温度低于 30 摄氏度时,温度传感器检测到低温信息,单片机控制板控制电动机动作,窗门自动关闭。1.2 智能窗的总体构成本智能窗主要机械传动部分和自动控制系统组成。其中,机械传动部分要由窗框、窗扇、齿轮齿条等。自动控制系统主要包括 AT89C52 单片机组成的中央控制器,数据检测传感电路,窗驱动控制接口电路、窗驱动电路、步进电机等组成。其整体结构如图 1-1 所示。AT89C52湿度检测模块温度检测模块窗户状态显示模块电源模块电机驱动模块2图 1-1 控制系统架构图2 机械结构的设计2.1 自动开关窗机械传动形式设计2.1.1 自动开关窗任务分析 智能窗的传动任务是由动力源
8、通过传动机构带动窗扇在滑移槽内来回滑动,任务简单,但要求精确度较高。齿轮齿条传动传动较为准确、可靠,并且机械效率高,因此,选定齿轮齿条传动能满足智能窗传动任务的要求。传动形式见图 2-1。图 21 齿轮齿条传动2.2 窗框与窗扇的结构设计2.2.1 窗框结构设计 此窗框是在常规窗框的基础上进行的更改设计,在窗框上下两侧各开一道滑移槽,使窗扇开关窗时在滑移槽内装上齿条,齿条滑动带动支撑杆实现开关窗。其实体见图 2-2 窗户打开图。3图 2-2 窗户打开图2.2.3 步进电机设计为实现窗户的自动开关,特别将电机卡座设计在窗户底框中间部位,两个齿条交汇处,齿条上下夹住齿轮,故当齿轮正转,两个齿条相向
9、运动,实现关窗。当齿轮反转,两个齿轮背向运动,实现开窗。具体设计见图 2-3 步进电机滑槽设计装配局部图。图 2-5 步进电机滑槽设计装配局部图3 自动控制系统主要硬件的设计3.1 单片机选型3.1.1 单片机发展过程 单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存储器 ROM 和数据存储器 RAM) 、输入、输出接口电路(I/O 接口)集成在同一块芯片上,构成一个既小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。3.1.2 AT89S52 单片机简介 4AT89S52是一种低功耗、高性能
10、 CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位 CPU 和在系统可编程Flash,使得 AT89S52在众多嵌入式控制应用系统中得到广泛应用。主要性能(1)、与 MCS-51 单片机产品兼容; (2)、8K 字节在系统可编程 Flash 存储器; (3)、全静态操作:0Hz-33MHz; (4)、32 个可编程 I/O 口线; (5)、三个 16 位定时器/计数器; (6)、六个中断源;
11、(7)、低功耗空闲和掉电模式; 图 3-1 AT89S52 引脚图 DIP 封装3.2 数据检测传感器的选择3.2.1 数据检测传感模块组成 根据该设计的功能要求数据检测传感系统由两个个部分组成: 1)温度传感电路; 2)湿度传感电路;3.2.2 传感器选型及电路 传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。1、温度传感器;DS18B20 数字温度传感器接线方便,耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字
12、测温和控制领域。 特点:温度传感器 DS18B20 主要性能: (1) 、适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电; 5(2) 、独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯; (3) 、DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温; (4) 、DS18B20 在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内;(5) 、温范围55+125,在-10+85时精度为0.5;(6) 、可编程 的分辨率为 912
13、 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温; (7) 、在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快; 其引脚如图 3-2 所示:图 3-2 DS18B20 引脚图 DIP 封装2、 湿度传感器DHT11 数字温湿度传感器是一款含有已校准熟悉信号输出的温湿度复合传感器,传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT11 传感器都在即为精确的湿度
14、校验室中进行校准。校准系数以程序的形式存在 OTP 内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达 20 米以上。产品为 4 针单排引脚封装,连接方便。技术参数(1)供电电压:3.35.5V DC; (2)输出:单总线数字信号; (3)测量范围:湿度 20-90%RH,温度 050; (4)测量精度:湿度+-5%RH,温度+-2; (5)分辨率:湿度 1%RH,温度 1; 其引脚如图 3-2 所示6图 3-2 DHT11 引脚图3.3 温度检测电路如 3-3 所示:图 3-3 温度检测电路3.4 湿度
15、检测电路如 3-4 图所示:图 3-4 湿度检测电路3.5 窗户状态参数显示电路(1602 液晶显示)1602 显示当前的温度和湿度,电路图见附录 1。73.6 报警电路当温度或湿度达到设置的上限值时,蜂鸣器报警。如 3-5 图所示:图 3-5 报警电路3.7 电源设计电路电源需提供单片机、显示器、步进电机的不同电压。电源电路原理图如下所示,三端稳压芯片 7805、AMS11173.3 起稳压作用,2200uf 电解电容、 100uf 和 0.33uf 瓷片电容起滤除纹波作用,输出分别为+5V,+3.3V 提供给各单元电路。如 3-6 图所示:图 3-6 电源设计原理图3.8 步进电机驱动电路
16、驱动系统电路利用 ULN2003 作为驱动器,ULN2003 是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中,可直接驱动继电器等负载。 ULN2003 共有 16 引脚,外围在与电机相接时要接 8 个二极管 IN4007 作振幅用,其具体电路图见附录 2。4 系统软件的设计该控制系统的软件主要由一个主程序及一些子程序组成。主程序由一些状态选择语句组成,主要是在系统复位后重新检测环境状态,如温度、湿度等因素。当传感器传回相应的温度、湿度等信息后,AT89S52 响应相应信号,控制电机转动。子程序的主要作用是通过电机正反转控制窗子的开关,然后判断行程开关的状态来决定是否
17、停止停止转动。程序流程图如图4-1所示:8开始初始化温度条件是否满足湿度条件是否满足驱动电机结束Y YN N图4-1 程序流程图具体程序见附录3。5 结术语经过几周的奋战我们的课程设计终于完成了。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。期间,通过题目选择和设计电路的过程中,加强了我们思考问题的完整性和实际生活联系的可行
18、性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。在课程设计完成的时候我们都有一种如释重负的感觉,在做的过程中我们也有不会和不懂的时候,比如窗户的模型怎么做,尽管从网上搜到东西了,但是很难实现,最后只能通过模拟来实现,还有一些功能较难实现,如根据风速来实现窗户的开关,另外由于光敏传感器没买到,用光照强度来实现的功能也没做到。虽然做完了但还是有一点点缺憾,我们也有点遗憾。总之谢谢赵老师的指导和同学们的帮助。9参考文献:1 王煜东. 传感器应用电路400例M. 北京:
19、中国电力出版社,2008. 2 赵负图. 新型传感器集成电路应用手册(下)M. 北京:人民邮电出版社,2009.9. 3 卿太全.最新传感器选用手册M. 北京:中国电力出版社,2009.7. 4 张毅刚,彭喜元. 单片机原理及接口技术M. 北京:人民邮电出版社,2008.11. 5 王幸之,钟爱琴,王雷,王闪. AT89 系列单片机原理与接口技术M. 北京:北京航空航天大学出版社,2004.9. 6 邓学欣, 檀润华. 智能窗的概念设计J. 河北工业大学学报,2003(1). 7 马忠梅. 单片机的C语言应用程序设计M. 北京:北京航空航天大学出版社,1997. 8基于多传感器的智能窗系统设计
20、.电子工程设.中国测控网,2011.4.10附录 1附录 211附录 3程序:/dj.h#ifndef _DJ_H_#define _DJ_H_#include“lcd1062.h“sbit di=P23;sbit led=P24;void delay2(uint a);void zheng();void fan();#endif /ds18b20.h#ifndef _DS18B20_H_#define _DS18B20_H_#include #include“lcd1062.h“12uint get_temp();extern uchar b;uchar tempread(void);bit
21、 tempreadbit(void);void dsreset(void);void delay1(uint z);void display();void chuli();void tempchange(void);void tempwritebyte(uchar dat); void n();void m(); #endif/lcd1602.h#ifndef _LCD1062_H_#define _LCD1062_H_#include#define uchar unsigned char#define uint unsigned intsbit lcden=P34; /液晶使能端sbit l
22、cdrs=P35; /液晶数据命令选择端void write_com(uchar com);void write_data(uchar date);void init();#endif/rh.h#ifndef _RH_H_#define _RH_H_#include“lcd1062.h“extern uchar a;sbit P2_0 = P20 ;void Delay4();void Delay_10us();void COM();void RH();void zhuanhuan();void display2();void zj();13void jz();void s();void d(
23、);#endif /main.c#include“ds18b20.h“#include“dj.h“#include“rh.h“void main()uchar i;a=1;b=1;TMOD=0x11;EA=1;ET0=1;ET1=1;init();while(1)display();display2();d();s();n();m();/dj.c#include“dj.h“#include“rh.h“uchar j;uchar z=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;uchar f=0x09,0x08,0x0c,0x04,0x06,0x02,0x03
24、,0x01;void delay2(uint a)while(a-);14void zheng()uchar i;uint j;j=512;while(j-) di=1;for(i=0;isbit ds=P22; /温度传感器信号线uint temp,t;15float f_temp;uchar wendu4;uchar b;void delay1(uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void dsreset(void) /18B20 复位,初始化函数uint i;ds=0;i=103;while(i0)i-;ds=1;i=4
25、;while(i0)i-;bit tempreadbit(void) /读 1 位函数uint i;bit dat;ds=0;i+; /i+ 起延时作用ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return (dat);uchar tempread(void) /读 1 个字节uchar i,j,dat;dat=0;for(i=1;i1); /读出的数据最低位在最前面,这样刚好一个字节在 DAT 里return(dat);16void tempwritebyte(uchar dat) /向 18B20 写一个字节数据uint i;uchar j;bit testb;f
26、or(j=1;j1;if(testb) /写 1ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0; /写 0i=8;while(i0)i-;ds=1;i+;i+;void tempchange(void) /DS18B20 开始获取温度并转换dsreset();delay1(1);tempwritebyte(0xcc); / 写跳过读 ROM 指令tempwritebyte(0x44); / 写温度转换指令uint get_temp() /读取寄存器中存储的温度数据uchar a,b;dsreset();delay1(1);tempwritebyte(0xcc)
27、;17tempwritebyte(0xbe);a=tempread(); /读低 8 位b=tempread(); /读高 8 位temp=b;temp200)if(b=1)zheng();b=0;18void n()if(t0;x-)for(y=110;y0;y-);void write_com(uchar com)lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date)lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void init()19l
28、cden=0;write_com(0x38);/设置 16X2 显示,5X7 点阵,8 位数据接口write_com(0x0c);/设置开显示,不显示光标write_com(0x06);/写一个字符后地址指针加 1write_com(0x01);/显示清零,数据指针清零/rh.c#include“rh.h“#include“dj.h“#include #include /typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号 8 位整型变量 */typedef signed char S8; /
29、* defined for signed 8-bits integer variable 有符号 8 位整型变量 */typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号 16 位整型变量 */typedef signed int S16; /* defined for signed 16-bits integer variable 有符号 16 位整型变量 */typedef unsigned long U32; /* defined for unsigned 32-bits intege
30、r variable 无符号 32 位整型变量 */typedef signed long S32; /* defined for signed 32-bits integer variable 有符号 32 位整型变量 */typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32 位长度) */typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64 位长度) */#define
31、Data_0_time 4/-/-IO 口定义区-/-/-/-定义区-/-/20U8 U8FLAG,k;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata5; /定义发送的字节数 U8 indata5;U8 count, count_r=0;U8 str5=“RS232“;U16 U16temp1,U16temp2;uchar shidu8;uchar djflag;uchar a;void Delay4(U16 j) U8 i;for(;j0;j-) for(i=0;i70)if(a=1)zheng();a=0;void d()if(U8RH_data_H_temp70)if(a=0)fan();a=1;void display2()uchar i;RH();zhuanhuan();write_com(0x80+0x40+3);for(i=0;i8;i+)write_data(shidui);24