《基于单片机的智能窗帘控制器的设计(共36页).doc》由会员分享,可在线阅读,更多相关《基于单片机的智能窗帘控制器的设计(共36页).doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上本科生毕业设计 基于单片机的智能窗帘控制器的设计 院 系 电气信息工程学院 专 业 电气工程及其自动化 班 级 09级本科3班 2013年 4月专心-专注-专业独 创 性 声 明本人郑重声明:所呈交的毕业设计是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,设计中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在设计中作了明确的说明并表示了谢意。签名: 年月日授 权 声 明本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即:有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕
2、业论文(设计)被查阅和借阅。本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”): 签名: 年月日指导教师签名: 年月日基于单片机的智能窗帘控制器的设计摘 要本设计是基于单片机AT89S52的智能窗帘控制器。通过光敏电阻对单片机外部光线进行检测,根据光线的强弱来控制窗帘的开闭。同时采用红外线遥控以及按键实现一键控制窗帘的开闭。单片机对采集到的信号予以分析判断,及时控制驱动步进电机不同的转动状态实现窗帘的开闭,并通过发光二极管指示不同的工作状态
3、。整个系统的电路结构简单,实用性强。样品控制器测试结果表明,电机运行平稳,可靠性高,在长时间工作中没有出现问题,窗帘控制器的整体性能良好。关键词:单片机;AT89S52;智能窗帘控制器;光敏电阻;红外线;步进电机。Design of Intelligent Curtain Controller Based on the Microcontroller ABSTRACTThis design is an intelligent curtain controller based on the the microcontroller AT89S52. Through the photoresisto
4、r detecting the external light , the microcontroller control the the curtain opening and closing according to the strength of light.At the same time, infrared remote and button keys also control the opening and closing of the curtain. The signal collected are analyzed by microcontroller, timely cont
5、rol to drive the motor to rotate in different states to achieve opening and closing of the curtain , and through the light-emitting diode indicating different work state.The whole system circuit structure is simple, and practical. The sample curtain controller test results show that the motor runnin
6、g smooth, high reliability, and there were no problems in the long hours of work, the curtain controller has good overall performance .Key words: Microcontroller;AT89S52;Intelligent curtain controller;Photoresistor;Infrared;Stepping motor.目 录1 绪 论1.1研究背景及意义众所周知,在21世纪这个信息化的时代,精神文明以及科学技术高度发展,人们对周围的环境与
7、舒适度要求越来越高。在计算机领域、通信领域、网络领域以及智能控制领域飞速发展的趋势下,家庭居住环境也变得越来越舒适,家中的各项家具渐渐地实现了现代化与智能化。对于人们追求更加舒适化的以及智能化生活的要求,遥控智能窗帘控制系统改变了以往陈旧系统的缺点,该系统能够根据室外光照强度的不同来控制窗帘的打开闭合,也可以通过红外线遥控一键打开或者关闭窗帘。本设计利用光敏电阻对系统外部的光线强弱进行检测,然后将光敏检测模块的电阻变化转化为电压变化,再将电压变化的信号传送到单片机,最后单片机通过电机驱动模块控制着步进电机的正反转实现窗帘的来回移动。本设计正是把利用AT89S52单片机的优点以及简单实用性,顺利
8、的实现了对智能控制的要求,这样就为智能化人性化的家居设备奠定了良好的基础1。1.2设计内容本设计是用AT89S52单片机作为主控制芯片控制的智能遥控窗帘控制器。控制该系统的窗帘打开闭合的任务,采用步进电机作为驱动元件。同时也使用红外线进行远程控制,实现远程控制窗帘的打开与闭合,在此基础上,采用光敏电阻对系统外部的光线进行检测,然后系统根据光线的强弱来控制窗帘的开闭。此外,再加上键盘以及LED显示灯,最终,在每个电路基本模块的配合下实现了智能电动窗帘控制器系统的智能化的要求。1.3设计思想以及基本功能首先,该系统能够通过窗帘上的开关按钮来开闭窗帘,显然,这是目前市场上自动窗帘都具有的基本功能。在
9、这个基本功能的前提下,同时本设计还根据不同的需求设计了可以根据光照强度和声音强弱来控制窗帘的开闭,在实际选取设计方案和采用元器件方面,该系统本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的元件来达到系统设计的要求。自动窗帘控制系统具有以下几个基本功能:(1)红外线控制:用户可以通过遥控器控制窗帘的开闭;(2)手动控制:用户可以一键打开或者关闭窗帘;(3)智能控制:系统可以根据用户设定的光照强度来自动控制窗帘的开闭。2 硬件电路设计2.1 系统方案的确定众所周知,在当前这个社会,单片机利用其廉价的成本以及强大的功能已经适用在众多电子产品中,同样本文选取的控制芯片也是
10、单片机,型号是AT89S52。在此基础上,针对整体窗帘需要实现的功能,首先选取了两套设计方案,它们分别是: 方案(一):基于温度传感器检测以及声音传感器检测的自动控制。 方案(二):基于光照强度器件的自动控制。这两个窗帘设计方案都是基于单片机微处理器作为主控制芯片的,并且采用步进电机来控制(图中未画出),而不同的部分在主要在于单片机外部的检测器件。方案(一)的系统框图如图2-1所示,方案(二)的系统框图如图2-2所示。图2-1 方案一系统框图图2-2 方案二系统框图纵观方案(一)与方案(二),发现他们的区别主要在于外部传感器件的应用,方案(一)采用对系统外部温度检测同时加以声音检测元件,通过外
11、部的温度变化来控制窗帘的开闭,以避免室内温度差异过大,深入分析,同时采用的声音控制虽然方便性有所提高,但是其误差还是比较大的。方案(二)采用的光照强度来控制窗帘的开闭,加以红外线控制更加方便实用,基本能够满足人们对窗帘的智能化要求。最后,决定选用方案(二)。2.2 AT89S52单片机以及相关电路AT89S52是一种CMOS8位微控制器,它所具的性能有高性能、低功耗的特点,同时还具有8K 在系统内可编程的Flash 存储器。它与工业上的80C51 单片机类的产品指令以及对应的引脚全部兼容;AT89S52的产生运用的技术有:高密度、非易失性的存储技术;在单芯片上,拥有非常灵巧的8 位CPU 和在
12、系统可编程Flash,这样就使得AT89S52为众多嵌入式控制应用系统提供出了十分灵活以及有效的解决办法。系统内的Flash是允许程序在存储器在系统内可以编程;这个也同样适用与普通的编程器;它一共有40个引脚;在这四十个引脚当中,可编程I/O口的数量是32个;其中还有八个中断向量源以及三个定时器;全双工UART穿行通道;三级加密程序存储器 2 。AT89S52的引脚如图2-3所示。图2-3 AT89S52单片机2.3晶振电路模块电路中的晶振就是石英晶体震荡器。它是一种高精度和高稳定度的振荡器。基准频率就是石英晶体震荡器来产生的,它能产生基准频率的主要原因就是因为石英晶体震荡器具有非常好的频率稳
13、定特性,以及拥有较强的抵抗外界因素原因干扰的超强能力。它不仅能够很好的控制电路中的频率的准确性通过基准频率。于此同时,晶振还能够产生振荡电流,然后向单片机控制芯片发出时钟信号 1 。如图2-4电路是单片机的晶振电路。CPU的所有工作都在时钟脉冲的同步下进行。位于片内振荡器产生的振荡频率非常的接近于晶振的频率;一般情况下频率大都在1.2MHz24MHz之间选取;C1、C2是反馈电容,其值在20pF100pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。振荡周期;机器周期,指令周期。XTAL1接外部晶体的其中一个引脚,XTAL2接外外部晶体的另一个引脚,在单片机内部
14、,接至上文所述的振荡器的反相放大器的输出端。在采用外部晶体振荡器的时候,对HMOS单片机的引脚接到外部振。什么是压电效应,所谓的压电效应就是在石英晶体的的两个管脚加上交变电场,于此同时,它将会产生具有相应频率的机械型变形,而这种机械振动又会产生相应的交变电场。通常情况下,无论是电场的振幅,还是机械的振动产生的振幅,这两个振幅具有的供电点就是交变都非常的小。如图2-4所示电容,C1以及C2(它们的典型值都为30pF)可以帮助快速起振,而我们正是通过合理调节它们的大小才能达到实现微调fOSC的目的的。在石英晶振起振后,要能够输出一个3V左右的正弦波在XTAL2线端,之所以这样是为了使MCS-51片
15、内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率fOSC为0.5MHz-16MHz,典型值为11.0592MHz或者12MHz。图2-4 单片机晶振电路图2.4复位电路对单片机进行初始化操作就是复位电路的主要的功能;一般的为了防止在按键过程中引起的抖动而影响复位。等电源稳定后还要经一定的延时才撤销复位信号,这样就能很好的保证了在复位按键的相对稳定性。通常情况下,在单片机进行初始化的整个过程中,需要在复位引脚上面加上大于2个机器周期的高电平;而经过复位后的单片机的地址初始化变成0000H;则单片机在今后的执行程序都会从刚才初始化的地址开始执行。在复位电路中提供复位信号,等到系
16、统电源稳定后,再撤销复位信号。如图2-5所示的复位电路,其中复位电路与单片机的REST即9号引脚相连,按下K1按键的同时,输入单片机的为高电平,单片机进行初始化2。反之,K1不动作时候输入的是低电平。图2-5 复位电路图2.5电压比较部分2.5.1 LM393概述LM393是由两个高精度、独立的电压比较器组成的集成电路。失调电压比较低,最大为2.0mV。LM393就是专门为单电源供电以及获得比较宽裕的电压范围而设计的,它不仅能够实现单电源供电,还可以实现双电源供电;并且不管单电源供电还是双电源供电,不管系统的电源电压过大还是过小,LM393消耗的电流都非常之低;还有另外一个特性是:如果是单电源
17、供电,比较器的共模输入电压范围也接近地电平。本设计中LM393的功能主要就是做比较。2.5.2 LM393的特点LM393的特点有如下几点:(1)电源电压范围宽: 单电源:20.V 36V 双电源:10.V 18V(2)电源电流消耗很低(0.4mA);(3)输入失调电流低:5nA;(4)输入偏置电流低:25nA;(5)最大输入失调电压:3mA;(6)输出饱和电压低:250mA at 4mA;(7)输入共模电压范围接近地电平;(8)差模输入电压范围等于电源电压;(9)输出电平兼容TTL,DEL,ECL,MOS和CMOS逻辑系统。2.5.3 LM393的电路图以下是LM393的功能框图以及管脚图以
18、及管脚功能排列表。图2-6 功能框图图2-7 管脚图表2-1 管脚功能引出端序号符号功能1OUT A输出A2INT A-反相输入A3INT A+同相输入A4GND接地端5INT B+同相输入B6INT B-反相输入B7OUT B输出B8Vcc接电源2.6 光控电路在本窗帘设计的系统中,智能窗帘自动控制系统中要实现的光控功能,就是依据室外光线的强弱来实现窗帘的自动开闭的,这样我们就需要用到依据光线感应的传感元器件。在本设计中采用了光敏电阻。制作光敏电阻的通常用材料为,另外还有硫化铅等其他半导体材料。这些特别材料具有在特定的光照射下,其阻值能够迅速变小的特性。而我们所用到的光敏电阻器就是利用了这些
19、材料的特性而制作成的。入射光变强,电阻减小,入射光变弱,电阻变大。下面是本设计中光控部分的电路图。其中D3为光敏电阻,当外部的入射光照射D3,光敏电阻D3阻值立刻减小,同时2处电压变大,经过LM393电压比较器U2U3,输入单片机的P3.0端口的为低电平,此时处于关闭状态的窗帘自动打开。反之窗帘会自动关闭。用户可以根据个人爱好,通过调节与R11相连的滑动变阻器来设定LM393电压比较器的参考电压。图2-9 光控电路2.7 步进电机步进电动机,是一种能够将接收到的电脉冲信号,直接转换而成线位移或者角位移的一种驱动元件;通常,输入步进电机的是脉冲序列,而从步进电机的输出量则为相应的步进运动或者相应
20、的增量位移。在步进电机正常运转的情况下,它每运转一周具都有固定的步数。当步进电机在正常运转的时候,步进电机的输入脉冲的频率与步进电机的旋转转速都会保持相当严格的对应关系,丝毫不会受到负载的变化的影响,同样也不会受到电压波动的影响。如图2-10所示,为本设计中步进电机运行的原理图。图2-10 步进电机工作原理步进电机不但具有瞬间启动的优势,同时还具有急速停止的优越特性;在控制步进电机的电路中,步进控制器的主要作用,就是把将接收到的输入脉冲转换成环型脉冲,然后步进电机根据相应的脉冲来控制步进电机的运转方强。可以通过改变脉冲的顺序,达到改变转动的方向的效果。在窗帘控制系统中选用了型号为24BYJ48
21、的步进电机。24BYJ48步进电机的主驱动方法以及主要参数如下图所示。步进电机的驱动方法如下表所示:表2-2 步进电机的驱动方法导线颜色123456786红+4橙-3黄-2粉-1蓝-步进电机的接线如下图所示:图2-11 步进电机接线图主要技术参数如下表所示:表2-3 步进电机的参数电机型号电压V相数相电阻布距角度减速比启动转矩启动频率定位转矩摩擦转矩嘈声缘介电强度24BY-J48543005.625/641:6430050030035600VAC1S2.8 步进电机驱动电路使用驱动芯片直接驱动步进电机,本模块使用ULN2003双极型线性集成电路ULN2003是一个单片高电压、高电流的达林顿晶体
22、管阵列集成电路。ULN2003是有7对NPN达林顿管组合而成的;在LIN2003的高电压输出特性能够转换感应负载;对于单个达林顿对的集电极电流是500mA。而达林顿管并联可以承受更大的电流。本设计中驱动电路图2-12所示。采用了单片机的P3.0口作为外部信号的输入,用单片机的P2口作为信号输出。其中ULN2003的1,2,3,4引脚分别与单片机的P2.3,P2.2,P2.1,P2.0相连接。然后ULN2003的16,15,14,13引脚分别与步进电机P1的2,3,4,5相连。其中P1上的1始终接电源正极,然后根据单片机输出的P2口输出的信号,转化为步进编码实现电机的正转与反转。为了防止各个单元
23、之间的耦合,ULN2003的9号引脚接的是电源去耦电路。图2-12 步进电机电路与单片机的连接2.9 红外线发射部分一般情况下,红外遥控信号发射器、红外线信号微处理器、红外遥控信号接收器以及红外线外围电路四个模块组合在一起,就能构成一完整的个外线遥控系统。当按下红外线遥控器上面的其中一个按键,就会产生相应的红外线遥控的编码脉冲;本电路设计的遥控接收模块型号是TSOP1838 ,接收模块完能够通过遥控信号的接收、放大、检波、整形,然后解调出遥控编码脉冲。本设计采用了市场上较为廉价的万能遥控器,遥控器如图2-13所示。型号是hs-021。用户识别码为00FF。本设计采用了遥控其上的“1”,“2”号
24、按键,分别作为手动开关、手动自动切换开关4。图2-13 红外线发射器2.10 红外接收部分本设计的红外线接收部分采用了红外线一体化接受头,它的型号是TSOP1838。静态的时候输出端输出的是高电平,当接收到红外信号后,则按照红外线信号的数据波形输出相应的负脉冲数据信号。单片机的P3.2口的第二功能是外部中断0 (INT0),利用P3.2口的第二功能接收红外线的信号。当红外线的信号从遥控器传输过来,这时与单片机连接的P3.2口电平被拉低,如果此时单片机正在进行其他的工作,单片机就会立刻停止工作,并且瞬间转移到接收红外线信号,并进行处理接收到的信号的工作。如图2-14所示,为红外接收硬件电路图4。
25、图2-14 红外硬件接收电路图2.11 指示灯设计对不同的工作状态以及控制模式有着相应的指示。共有4个LED,其中1,2,3,4指示灯分别与单片机的P0.0,P0.1,P0.2,P0.3接口相连,分别指示手动控制/自动模式,窗帘的运行停止。指示灯的电路图如下图所示,实际电路中电阻采用了电阻排,每个电阻的大小都为1K。图2-15 指示灯的电路图2.12 电源模块为避免电机等元器件对系统的产生不必要的干扰,窗帘的驱动部分单独供电,采用电源为双路开关电源,明伟牌D-30W双路开关电源,或者使用三节干电池。本设计中采用了三节1.5V干电池。如图2-16所示为电源的电路图。D4为电源指示灯。图2-16
26、电源电路2.13 窗帘构架设计窗帘架的制作采用两只滑轮作为主动轮和从动轮,轮子类似皮带轮,底径约为25 mm,槽宽和槽深约为4 mm;1根绳子,直径约为4 mm;在主动轮的槽底用胶水粘一圈薄胶皮以增加摩擦力;将主动轮固定在电动机轴上,而将电动机固定在窗帘盒的一端,将从动轮固定在窗帘盒的另一端,固定时调节装置,绷紧拉绳。窗帘杆选用19 mm的不锈钢管,采用2根杆其目的在于左右窗帘能重合。拉绳的接头处与左右窗帘的第一环连接。窗帘架的构成及窗帘的布置如图2-17所示4。图2-17 窗帘构架2.14 整体电路图整个窗帘控制器的电路图如下图所示:图2-17整体电路图3系统设计系统软件设计主要有几部分组成
27、,其中包括按键子程序,步进电机控制程序等。本章节着重介绍了智能窗帘控制系统的主程序还有步进电机程序的设计,它们的相应程序代码详见附录。3.1 主程序设计主程序要的任务是系统初始化操作以及各个子程序间的联系,主程序是一个无限循环,主要的功能就是完成单片机初始化,开关中断,对按键进行扫描,控制步进电机工作,显示步进电机的工作状态。电路主要分为以下几个部分,分别是电源部分、红外线控制部分、按键部分、步进电机控制部分、光控部分、单片机主控器件部分,各部分具有不同的子程序。主程序的作用主要是初始化寄存器以及显示内容;然后查询按键操作,并且对按键进行分析以及处理,通过分析处理,执行转换为相应的手动控制或者
28、自动控制。图3-1 主程序流程图3.2 步进电机程序设计控制窗帘转动的动力部分是步进电机,步进电机的程序设计主要实现的步进电机的正转与反转。步进电机控制是根据单片机P2.0口输出的高低电平实现电机的正反转。图3-2是步进电机程序流程图。图3-2 主程序设计流程图4总结本次设计系统地介绍了智能遥控窗帘控制器系统的硬件电路设计和软件设计。设计中应用了AT89S52单片机作为主控制芯片,通过红外线遥控器对控制器进行远程控制;同时通过光敏电阻对外部光线进行检测,单片机经过处理后,控制步进电机正转与反转,实现了智能控制。最后完成了样品窗帘控制器的制作,实现了上述功能。本次毕业设计,完成了智能窗帘控制器的
29、制作,通过后期调试,达到了最初基本的要求。但是由于个人能力有限,还有很多问题,希望老师老师的批评和指正,以求达到最佳设计结果。另外我觉得以下一点可以改进。由于考虑到家中窗帘的数量不止一个,可以更改电路,用以控制两个或两个以上的步进电机,这样就能通过传输一个信号同时控制家中的多个窗帘。这次毕业设计完成以后,我从中学到了很多东西。从开始做毕业实际到完成都是一个不断学习的过程。特别是Word软件,从最初的生疏到最后能够熟练的掌握。由此我认识到了实践的重要性。5致谢经过这么长时间的忙碌,毕业设计和论文都已经渐渐的接近了尾声。在本次毕业设计的过程当中,如果单独完成设计,有着很大的难度。正是因为老师以及同
30、学在前期选题,中期设计,后期修改调试等方面细心的指导帮助,才能够预期完成。在这里,请接受我诚挚的谢意。首先我要感谢的是我的导师陈素华老师,在完成整个毕业设计的过程中,陈老师给我提供了很大的帮助,在选题以及修改论文的环节里老师给我指出了很多错误,提出了很多意见,对于设计中存在的问题也是耐心的回答和指导,让我能够顺利的完成毕业设计。在此谨向陈老师致以诚挚的谢意和崇高的敬意。 其次要感谢的是在毕业设计忠帮助过我的同组同学,这次毕业设计在老师的帮助之外,同组同学也给我提供了很大的帮助,特别是陈群同学,细心的帮我检查论文中的错误,帮我完成论文。最后我还要向在大学期间帮助过我的所有同学致以最真挚的谢意!
31、参考文献1 沈玉龙,王琨,智能家居控制系统设计J.电子科技,2004年2 王幸之,AT89系列单片机原理M.北京航空航天大学出版社 ,2004年3 史先传,一种经济实用的智能红外遥控模块J.机械设计与制造工程,2001年4 郭成林,智能遥控窗帘系统设计J.山西电子技术,2006年6月5 胡汉才,单片机原理及接口技术M.清华大学出版社,2004年4 6 求是科技, 单片机典型模块设计实例导航M.人民邮电出版社, 2004年7 李全利,迟荣强,单片机原理及接口技术M.高等教育出版社,2001年8 吴爱萍,黄振兴.基于AT89S52的智能窗帘群控系统J.科技资讯,2007年9 程学先,林珊,程传慧.
32、汇编语言程序设计M.机械工业出版社,2005年10 陈杰,黄鸿,传感器与检测技术M.高等教育出版社,2002年11 阎石,数字电子技术基础M.高等教育出版社,1998年12 W.Harold Parady, J.Howard Turnered. Electric Motors. Georgia:the american association For vocational instructional materials, 1978年13 孙健,智能家居电动窗帘的设计与实现J.机械工程与自动化,2012年6月14 谭浩强,C语言程序设计M.清华大学出版社,2005年附 录实物图:主程序:#inc
33、lude #define uchar unsigned char#define uint unsigned intsbit key=P10; /按键控制步进电机的方向sbit s2=P11;unsigned char speed=8; /步进电机的转速sbit LED1=P02;/开窗指示sbit LED2=P03;/关窗指示sbit zi=P00;sbit shou=P01;sbit guang=P30;bit ZD;uchar irdate33;uchar irbyte4;uchar disp8;uchar irtime,irflag,bitnum,irdateok;uint num,fl
34、ag,disnum,count,a;/*八拍方式驱动,顺序为A AB B BC C CD D DA*/unsigned char code clockWise=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; unsigned char code clockWise1=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; uchar code table= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0xa3
35、,0x8c,0xc8,0xff;void delay(uchar z)unsigned char x,y;for(x=0;xz;x+)for(y=0;y110;y+); void qing() uint i;for(i=0;i33;i+) irdatei=0;void init() TMOD=0x02;TH0=0;TL0=0;EA=1;EX0=1;ET0=1;TR0=1;IT0=1; LED1=1;LED2=0;flag=0; ZD=1;void deal_with()uchar i,j,k,temp;k=1;for(j=0;j4;j+)for(i=0;i1;if(irdatek7)temp=temp|0x80;k+;irbytej=temp;/*步进电机正转函数*/void zhengzhuan()uchar i; for(i=0;i8;i+) P2=clockWisei; delay(speed); /*步进电机反转函数*/void fanzhuan()uchar i; for(i=0;i32)bitnum=0;irdatebitnum=irtime;irtime=0;