《毕业设计(论文)-自动窗户控制器设计(40页).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-自动窗户控制器设计(40页).doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-毕业设计(论文)-自动窗户控制器设计-第 35 页题 目 自动窗户控制器设计 学生姓名 学号 所在学院 物理与电信工程学院 专业班级 电子信息工程专业12级4班 指导教师 _ _完成地点 陕西理工学院 _2016年6月5日自动窗户控制器设计作者:(陕西理工学院 物理与电信工程专业12级4班,陕西 汉中723000)指导老师:摘要目前广大家庭中仍然是以手动推拉的方式控制窗户的开与关,其不具备自动防雨、通气等人性化的功能。本次设计的自动窗户系统分别通过以下功能实现家具智能化,首先能通过DHT11其数据检测传感电路不断循环检测室外温湿度,当室外湿度达到一定时(下雨时)窗户自动关闭,防止潮湿空气或雨
2、水进入房间,当室外温度过高时窗户自动开启,以便通气防止室内闷热;其次有LCD1602显示温湿度传感器实时监控的数据及DS1302时钟和键盘实现手动控制窗户开关及其程度的功能;再有便是以步进电机为窗户驱动的装置,以此可以达到控制窗户开关精度的目的;最后以51单片机为中央控制系统,用来分别处理DHT11检测到的外部信息用来显示及控制电机、键盘按下松开的高低电平用来实现手动控制的作用、LCD1602显示温湿度和时钟信号数据等。本设计解决了原始的人工开关窗户的不便,实现了针对不同情况下窗户的智能开关。关键词:51单片机;温湿度信息采集;信息显示;手动控制;智能开关;The Design of Auto
3、matic Window ControlAuthor:Bian Hao(Grade 12, Class 4, Major electronic1s and information engineering, School of Physics and Electronic Information Engineering, Shaanxi University of Technology, Hanzhong 723000, Shaanxi)Tutor: Shuai ChunjiangAbstract: The majority of families still in manual push an
4、d pull mode control window switch, it does not have the automatic rain proof, ventilation and other functions. Designed to be improved. First, it has the function of external temperature and humidity detection and display. According to the information, the automatic switching window can be carried o
5、ut. Secondly, it uses the key to replace the manual push pull. This design solves the inconvenience of the original way, and realize the intelligent switch of the window under different conditions.Keywords: Intelligent way; Information collection; Information Display;Manual control;目 录1引言11.1 课题的背景1
6、1.2 课题的意义11.3 自动窗户发展现状12系统总体方案设计22.1 设计要求22.2 系统基本方案的选择22.2.1主控制模块方案22.2.2显示模块方案22.2.3传感器模块方案22.2.4按键模块方案22.2.5驱动模块方案23系统的硬件构成43.1 单片机控制模块43.2 驱动电路模块63.3 传感器模块73.4 液晶显示模块83.5 时钟电路模块94软件仿真114.1 仿真软件114.1.1 Proteus软件介绍114.1.2 Keil软件介绍114.2 主程序流程图114.3Protues仿真125系统组装及调试135.1组装步骤135.2调试135.3 功能及其实现145.
7、3.1 温湿度及时钟显示145.3.2 窗户的人工控制145.3.3 窗户的环境控制155.4 焊接及注意事项165.4.1 焊接前处理165.4.2 焊接166结束语17致谢18参考文献19附录A 外文文献20附录B 中文译文27附录C 系统原理图32附录D 实物图33附录E 元器件清单34附录F 部分C语言程序351引言1.1 课题的背景改革开放后,经济的发展远远超过了我们的想象,人们对物质生活的态度也改变了许多,不仅仅停留在吃饱穿暖的地步,而是开始追求有舒适、温馨的住所和汽车,并且对其的安全性、智能性有了更进一步的要求。自动家具控制系统已经在为我们的生活提供了便利,在各个方面,一种可以帮
8、我们决策开关的智能窗户急需引入我们的生活当中,它能够根据不同天气进行不同的开关模式,例如高温天气会适当开启一些进行透气,大雨天气则会关闭起来防止屋内受潮。因此,智能窗在各个领域中已被日益的重视起来。目前市场上也存在一些自动开关的窗户,但由于其可靠性差、造价高难以推广。随着电子技术额发展,单片机以其颇高的性价比已在工业领域、智能仪表领域得到了广泛的应用。1.2 课题的意义随着科技的进步和人们对生活质量的追求也逐渐提高,人们更加重视生活环境是否较好室内的空气是否清新,时常的开窗通风换气也成为人们共同的生活习惯。可是在当今较快的生活节奏中,开窗关窗常常是人们出门后的后顾之忧,今天刚洗过的衣服晾在窗外
9、,一旦刮风下雨,便无法不去担心,进而造成工作上的分神。现在市场上的自动关窗装置固然品种功能多样,但主要应用在一些较为高档建筑和各种公共场所,并且主要的都是和窗框一起定制,费用比较高与此同时不管是老的还是新建的住房事先安装的基本都是手动推拉窗,基本没有人愿意把已安装好的窗户拆掉,更换成多功能自动窗1。 综上所述,本设计希望开发一种在普通窗户的基础上改进的自动开关窗装置,该装置装有湿度传感器,每当下雨或出现高温天气,窗户便自动关闭或关闭,解除用户的后顾之忧,让生活变得更加美好。1.3 自动窗户发展现状智能窗户的关键,是使用了一种合成的氧化铟锡纳米晶体新材料。这种材料既能作为涂层涂于窗户玻璃表面,也
10、可作为液体溶剂注入窗户双层玻璃的夹层之中。这种纳米晶体对光和热的传播,可以通过电压来调节:在严寒天气,可见光和近红外光都可以通过,从而使热量进入房间;而在酷暑季节,施加微弱电流可使窗户依然能够传播可见光,却会阻挡近红外光,从而避免太阳的热量进入房间。此外,锡还另外带有电荷,当施加电压时,纳米晶体里电子的密度会发生改变,从而使得所吸收的红外光的量也随之改变,于是房间始终保持适宜的温度。与此有异曲同工之妙的,是英国工程师弗雷德里克麦基发明的一种全部由双层玻璃构成的智能窗户。玻璃夹层中充满水而不是空气。溶于水中的一种化学物质,能将阳光中的红外线能量和热量吸收掉,但不影响可见光的通过。玻璃夹层中的水是
11、通过一台热交换器循环的。热交换器可以使水中的热量存储起来,也可以使之冷却,以便根据室外气温的变化,合理地加以利用。据介绍,这样动态性地改变红外光和热量的吸收,是一项重大技术创新2。上述新型智能窗户的问世,不仅能够使居住者感到十分舒适,而且可以减少普通窗户带来的能耗和花费仅就美国建筑业而言,这笔花费每年大约为400亿美元。 韩国研究人员研制出一种新型智能窗户,窗玻璃能根据室外温度不同变黑或变透明,起到隔绝热量或增加室内光线的作用。研究团队在美国化学学会主办的杂志中说,这种智能窗户有助节省能源。该智能窗户由韩国电子技术研究所的林浩苏和崇实大学的曹郑浩、金株勇共同研制。研究人员说,这种智能窗户可以在
12、“夏季模式”与“冬季模式”间自由转换。夏季室外温度高,智能窗户会变暗,以“反射大部份太阳光,防止建筑内部受阳光照射而过热”;冬季室外温度低,智能窗户的玻璃会变得透明,以接收太阳带来的免费热量,“通过吸收太阳能,让房间保持温暖”。智能窗户由完全不透明状态转变成几乎完全透明状态用时很短,只需要几秒钟时间。智能窗户应用范围广,写字楼和住宅楼均能使用3。2系统总体方案设计2.1 设计要求基本要求:(1)需要有相应的手动控制;(2)检测的实时数据和时钟能显示在LCD屏上;(3)对窗户开关程度有一定的把握。创新要求:(1)温湿度信号控制步进电机;(2)内置预置可调。2.2系统基本方案的选择2.2.1主控制
13、模块方案方案:STC89C52是STC公司生产的一种功耗低、性能高CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。在单芯片上,拥有8位CPU和在线系统可编程Flash,使得STC89C52为众不多的嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下的标准功能:8k字节Flash,512字节RAM,看门狗定时器,32位I/O 口线,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,2个外部中断,全双工串行口。另外STC89C52可降至0Hz静态逻辑操作 ,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继
14、续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。下载程序方面直接串口就可以下载4。2.2.2显示模块方案方案(一):LED二极管显示屏管易于安装耗电少、使用寿命长、成本低、亮度高等特点,但考虑到显示电路不仅仅用于显示单一数据,因此予以排除。方案(二):LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,能够同时显示16x2即32个字符。相比于方案一方案二更加符合我们的要求。2.2.3传感器模块方案方案(一):DHT11数字温湿度传感器是一款含有已校准
15、数字信号输出的温湿度符合传感器,具有优质的长期稳定性、超低能耗、使用便捷、价格实惠等特点,是我们的不二选择。方案(二):DHT21是一种更加灵敏的温湿度传感器,但相对于DHT11体型偏大,价格更是DHT11的5倍多,并不适合于本设计。2.2.4按键模块方案方案:使用独立式键盘。独立式键盘是直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。2.2.5驱动模块方案方案(一):步进电机可实现精确定位,适用于本设计对窗户开关程度的掌控,但控制相对直流电机复杂。方案(二):直流电机控制相对简单,但定位精确度不高,可用于对速度要求高,而对位移定位不高的系统中。综上各方案所述:采用S
16、TC89C52作为主控制系统,DHT11作为传感器模块,LCD1602作为显示模块,独立按键作为控制模块,步进电机作为驱动模块,系统框图如图2.1所示。中央控制器驱动器步进电机温湿度传感器显示电路检测电路电源电路图 2.1 系统结构框图具有以下特点:可靠性高,在系统设计的每一个环节,都应该将高可靠性作为首要的设计准则,系统一旦失去了可靠性也就失去了产品的生命力。因此,针对系统在具体使用过程中可能存在的情况根据理论原理对系统的设计方案深刻论证严格把关。性价比高,此自动关窗系统具有体积小、速度快、功耗低等特点,并且集成了丰富的硬件资源,具有很高性价比。在设计硬件时,尽量地做到简化设计,减少元器件的
17、使用数量,提高复用度。操作简便,的功能将受到更多用户的欢迎,显著增加产品在市场上的竞争力。实现功能完备的同时,系统的操作使用上,尽量做到简单、方便,高度的人性化。比如说设防时只需要拨动一个按键就可以,系统状态全面直观,一目了然。模块化设计,根据本系统是用于自动关窗的这一应用目的,系统尽量使用模块化设计,实现模块化积木式组合与拆分的功能,便于以后的升级换代,减少二次投资,可以满足家庭使用的重要性和复杂度以及使用对象对功能和价格的选择。3硬件系统3.1 单片机控制模块89C52是一个低电压,高性能CMOS 8位单芯片微型计算机,包含了8k 字节的可反复擦写的闪速只读程序存储器和256 字节的随机存
18、取数据存储器(RAM),它采用ATMEL公司的高密度、非挥发性存储技术生产,与工业 80C51 单芯片微型计算机的指令与引脚完全兼容,片内置通用8位中央处理器和闪速存储单元,89C52单片机在电子行业中有着广泛的应用4。 89C52主要功能特性:1) 兼容MCS51指令系统2) 8kB可反复擦写闪速只读存储器;3) 32个双向的I/O口;4) 256x8比特内部随机存储器;5) 有3个16位的可编程定时/计数器中断;6) 时钟频率0-24兆赫兹;7) 2个串行中断,可编程UART串行通道;8) 2个外部的中断源,共8个中断源;9) 2个读写中断口线,3级加密位;10)有低功耗空闲状态和掉电模式
19、,能将软件设置成睡眠状态并能将其唤醒;11)有PDIP、PQFP、TQFP及PLCC等几种封装形式,以便能够适应不同产品的需求。 89C52管脚功能及管脚电压管脚图如图3.2所示:图3.1 STC89C52管脚功能及管脚电压管脚图89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的89C51 相同,其主要用于会聚调整功能的控制。其特点包括主IC的内部寄存器,RAM和外部接口的初始化数据融合,收敛调节控制,收敛测试图控制,红外遥控信号的接收和解码和红外主板和CPU通信的功能组件。其主要管脚有:XTAL1(19脚)和XTAL2(18脚)为专门为产生时钟振荡信号设立
20、端口,外接12兆赫兹晶振。RST/Vpd(9脚)为引导内部复位输入端口,在外部与电阻电容组成复位电路。VCC(40脚)和VSS(20脚)为电源端口,分别接+5V电源和接地。P0P3 为可编程的通用I/O 脚,其功能用途由软件定义,在本次设计中,P0 端口(3239脚)和P2 端口(2128脚)被定义为1602显示器的功能实现控制端口,分别与1602显示器相应的功能管脚相连,1013脚定义为按键输入端, 12脚、27脚及28脚定义为握手信号的功能端口,连接主板单片机的相应功能端,用于检测当前制式,会聚调整状态进入的控制功能5。P0 口是一组8位漏极开路型双向I/O 口,也即地址/数据的总线复用口
21、。当其作为输出口时,每位驱动8个双极型逻辑集成电路,对其写“1”时,可当做高阻抗输入端来使用。在访问外部的数据或者程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问的这段时间内启动内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校正检验时,输出指令字节,校正检验时,要求外接电阻并上拉。P1是一个带有内部上拉电阻的8位双向通行的I/O 口,P1输出的缓冲级可以驱动(即吸收或输出电流)4个双极型逻辑集成电路。对其写“1”,通过内部自带的上拉电阻把端口拉到高电平,这时可作输入口。当作输入口使用时,因为内部有上拉电阻,当某个引脚被外部信号拉低时会输出一个电流(IIL)。
22、与89C51不同的是,P1.0和P1.1还可以分别当做定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)见表3.1,在闪存编程和程序校正检验期间,P1接收低8位的地址。表3.1 P1第二功能表端口引脚第二功能P1.0P1.1T2(定时/计数器2外部计数脉冲输入),时钟输出T2EX(定时/计数2捕获/重装载触发和方向控制)P2是内部含有上拉电阻的8位双向通行的I/O口,P2输出的缓冲级可以驱动(即吸收或输出电流)4个双极型逻辑集成电路。对其写“1”,通过自带的上拉电阻将端口拉到高电平,这时可将其作输入口,当作为输入口来使用时,因为内部有上拉电阻,当外部信号引脚被拉低时会输
23、出一个电流(IIL)。在访问外部的程序memory或16位地址的外部数据memory时,P2口送出高8位的地址数据。在访问8位地址的外部的数据存储器(如实现MOVX RI 指令)时,P2口输出P2锁存器中的内容。在Flash编程或校验时,P2则接收高位地址和一些控制信号。P3是拥有内部上拉电阻的8位双向I/O口。P3输出的缓冲级可以驱动4个双极型逻辑集成电路。对其写入“1”时,通过内部上拉电阻拉将电平变成高电平并可作为输入端口。这时,被外部器件拉低电平的P3口将用内部上拉电阻来输出电流(IIL)。P3口除了作为普通的I/O口线外,更重要的是它的第二作用见表3.2,P3口还可以接收一些用于闪速存
24、储器编程和程序校正检验的控制信号。表3.2 P3口第二功能表端口引脚 第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行输入)TXD(串行输出)INT0(外部中断0)INT1(外部中断1)T0(定时/计数器0外部输入)T1(定时/计数器1外部输入)WR(外部的数据memory写选通)RD(外部的数据memory读选通)RST复位输入端口。在振荡器进行工作时,只要RST引脚出现两个及以上机器周期的高电平就将单片机复位。ALE/PROG当访问外部的程序memory或者数据memory时,ALE输出的脉冲信号就用于锁存地址的低8位字节。通常情况下,ALE以时钟的振荡
25、频率的1/6固定的输出脉冲信号,因此它可用于对外输出时钟信号或用于定时。特别注意的是:每当在访问外部数据memory时将会跳过一个ALE脉冲。对闪存存储器编程期间,这个引脚还被当做输入编程的脉冲(PROG)。如果有必要,可以通过对SFR区中的8EH单元的D0位进行置位,可禁止ALE进行操作。这个位置位以后,只有一条MOVX指令和MOVC指令才能够将ALE启动。另外,这个引脚会被稍微拉高,在单片机执行外部的程序时,应该将ALE禁止位设置为无效。PSEN程序储存使能(PSEN)输出是外部程序存储器的读选通脉冲信号,当STC89C52由外部程序memory取指令(或数据)时,在一个机器周期中PSEN
26、有两次是有效的,即输出两个脉冲信号。与此同时,当访问外部数据memory,就会跳过两次PSEN脉冲信号。EA/VPP外部访问允许。如果想要使CPU只是访问外部的程序存储器(地址为0000HFFFFH),那么EA端必须为低电平(接地)。如EA端接Vcc端,CPU就会执行内部程序memory中的指令。闪存存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。XTAL2 振荡器反相放大器的输出端。在STC89C52片内memory中,80H-FFH的共128个单元是SFR并不是所有的地址都被定义,从
27、80HFFH只有一小部分是被定义的,还有一部分并没有被定义。对于那些没有被定义的单元进行读写操作是无效的,不仅读出的数据是不确定的,而且写入的数据也将被丢失。这些地址单元在将来的使用中可能会有新的功能,在这种情况下,复位后这些地址单元中数据总是为“0”6。STC89C52有256个Bit的内部RAM,80H-FFH高128个Bit与SFR地址是相同的,但物理上它们是独立的。当一条指令访问的地址为7FH 以上的内部单元时,指令中所用到的寻址方式是有区别的,也即寻址方式决定是访问高128 字节RAM 还是访问SFR。STC89C52的定时器0和定时器1 的工作方式与STC89C51 相同。本设计系
28、统中单片机最小系统如图3.2所示。图3.2单片机最小系统3.2 驱动电路模块 借助单片机STC89C52实现对四相步进电机的控制时,需要通过单片机的I/O端口输出具有一定时序的方波信号作为步进电机的控制信号,但如果只是靠这个TTL电平还是不能直接驱动电机。如果想用74LS373对电机进行驱动,那么必须要有许多寄存器的配合才能够驱动电机,因此考虑使用ULN2003芯片来驱动步进电机。ULN2003是一种高电压、大电流的达林顿陈晶体管。每一对达林顿都串联一个2.7K的基极电阻,在5V工作电压下与TTL和CMOS电路直接相连,可以直接处理需要标准逻辑缓冲器来处理的数据。ULN2003的灌电路可达50
29、0mA,并且在关态是能够承受50V的电压,可在高负载电流下并行输出运行。电机驱动的关键要点就是准确控制电机旋转的角度。在进行程序设计时需要根据系统中各传感器检测的信息判断电机方向,以更好的起动相应的所需要转动方向子程序。正转和反转控制程序根据控制脉冲序列的要求,使用相应的系统模型,并确定是否大幅度转向,使用改变脉冲宽度的方式来调节电机的转速。在应用程序的设计中将电机的控制方法形成控制模型,并将该模型用数据表形式保存在程序存储器中,这样程序在使用过程就能直接使用。一般都是用逻辑电路来对步进电机进行脉冲控制,单片机控制电机时,电机的运行方式、方向及转速通常可以通过编写相应的程序由I/O口输出脉冲信
30、号来决定。为了能够提高电机转动角度的准确性,采用减速比为1:64的减速齿轮构成的传动机构,也就是当角度改变90时,外部所能看到到的设备才转动1。系统中步进电机及其驱动电路如图3.3所示,ULN2003的数据传输口与单片机P1口的前四位连接。图3.3 电机驱动连接图3.3 传感器模块DHT11数字温湿度传感器是一款复合传感器。它利用特殊的数字模块采集技术和温湿度传感技术,以保证其具有较高的可靠性与优异的长久稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件。因此该传感器具有优良的品质、响应速度快、较强的抗干扰能力、成本低性能好等优点。采用单总线串行接口,使系统变得简便而快捷。超小的体积、极
31、低的功耗,具有20米以上的传输能力,使其成为普通的应用乃至最为苛刻的应用中最佳的选择7。产品采用4针单排的引脚封装形式,在使用中方便连接,其管脚如表3.3所示。表3.3 DHT11管脚表管脚名称功能1234VDDDATANCGND供电 35.5VDC串行数据,单总线空脚,请悬空接地,电源负极DHT11采用的电源为35.5V。传感器在得电后,要等待1s以达到稳定的状态。电源(VDD,GND)之间可利用一个100nF的电容,用以去耦滤波。DATA用于中央处理器与DHT11之间的信息传送和通讯,一次通讯周期4ms左右,数据由小数部分和整数部分两部分组成,具体传送格式如下说明。操作流程如下:一次完整的
32、数据总长度为40字节,高位数据先出。数据格式:8字节湿度整数部分数据+8字节湿度小数部分数据+8字节温度整数部分数据+8字节温度小数部分数据+8字节的校正检验和。正确的校验和数据等于8字节湿度整数部分数据+8字节湿度小数部分数据+8字节温度整数部分数据+8字节温度小数部分数据的结果的最后8位8。用户单片机发出一次启动指令后,DHT11将从低耗能状态变换成高速状态,当单片机的启动指令结束后,DHT11发送出响应信号,送出40字节的数据,并进行一次信号的采集。此状态下,DHT11只有在接收到启动信号时才会进行一次温湿度的采集工作,如果没有接收信号,DHT11不会主动进行数据的采集。采集数据后自动转
33、换到低速状态。对湿度的定义:(1)相对湿度,指空气中水汽压与饱和水汽压的百分比。湿空气的绝对湿度与相同温度下可能达到的最大绝对湿度之比。也可表示为湿空气中水蒸气分压力与相同温度下水的饱和压力之比。(2)相对湿度有三种表示方法:a.含湿量,它表示湿空气中水蒸气质量(g)与干空气质量(kg)之比,单位是g/kg。b.绝对湿度,它表示每立方米的湿空气中含有的水蒸气的质量,单位是千克/立方米(kg/m)。c.相对湿度,表示空气中的绝对湿度与同温度下的饱和绝对湿度的比值,得数是一个百分比。相对湿度用RH来表示。相对湿度的定义是单位体积空气内实际所含的水气密度(用d1表示)和同温度下饱和水气密度(用d2表
34、示)的百分比,即RH(%)=d1/d2x100%。9由于Protues元器件库中没有DHT11,故此找到与其功能管脚相同的SHT11来代替,其DATA口与单片机P3.5口连接,如图3.4所示。图3.4 DHT11连接图3.4 液晶显示模块1602液晶显示,它是一种专门用来显示简单数据的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符
35、液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,管脚如图3.5所示。 图3.5 LCD1602管脚图1602的管脚功能如下:第一脚:VSS为接地端;第二脚:VCC为接+5V端;第三脚:VDD用来调节对比度,为了更好的显示需接一个10K的滑动变阻器来进行调节;第四脚:RS=1是使用数据寄存器,RS=0是使用指令寄存器;第五脚:RW是读写信号线,高电平时进行读操作。低电平时进行写操作;第六脚:E端为使能端,高电平时读取信息,负跳变时执行指令;第七至十四脚:D0D
36、7为8位双向数据端;第十五、十六脚:为背景电源,十五脚为正,十六脚为负。系统中显示模块电路LCD1602数据口D0D7与单片机P0口连接,RS与P2.7口连接,R/W与P2.6口连接,E与P2.5口连接,如图3.6所示。图3.6 LCD1602连接图3.5 时钟电路模块DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个
37、口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于 1mW。DS1302是由DS1202改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域10。下面将主要的性能指标作一综合:实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力还有闰年调整的能力31*8位暂存数据存储 RAM串行 I/O 口方式使得管脚数量最少宽范围工作电压 2.0 5.
38、5V工作电流 2.0V 时,小于 300nA读/写时钟或 RAM 数据时 有两种传送方式 单字节传送和多字节传送 字符组方式8脚DIP封装或可选的8脚SOIC封装根据表面装配简单3线接口与 TTL 兼容 Vcc=5V可选工业级温度范围 -40 +85与 DS1202 兼容在 DS1202 基础上增加的特性系统中时钟模块DS1302I/O口与单片机P3.2口连接,SCLK与单片机P3.3连接,RST(低电平有效)与单片机P3.1连接VCC2为备用电源,X1与X2外接32.768KHz晶振,如图3.7所示。图3.7 DS1302连接图4软件仿真4.1 仿真软件4.1.1 Proteus软件介绍Pr
39、oteus软件是英国Labcenter electronics公司研发的EDA工具软件。它是一个集模拟电路、数字电路、模数混合电路以及多种微控制器系统为一体的系统设计和仿真平台。从原理布图、代码调试一直到单片机和 外 围 电 路 的 协 同 仿 真 , 一 键 切 换 到 PCB的设计,真 正 的 实 现 了 从 概 念 到 产 品 的 全 套 设 计 。 是 目 前 世 界 上 唯 一 将 电 路 仿 真 软 件 、 P C B 设 计 软 件 和 虚 拟 模 型 仿 真 软 件 三 者 结 合 为 一 体 的 设 计 平 台 , 其 处 理 器 模 型 支 持 8051、HC11、PIC1
40、0/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续添加其它系列的处理器模型。在 编 译 这 方 面,它也支持IAR、Keil和MPLAB等 多 种 编 译 器 的 使 用11。4.1.2 Keil软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(
41、uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil使用说明:启动Keil 建立一个工程 选择工程保存位置 选择单片机(MCU)型号Keil弹出对话框询问是否将初始化代码一起加入工程 建立.c文件 将.c文件添加到工程 开始编写程序 写完程序后,点“编译”“链接” 编译成功后,生成HEX文件,将生成的HEX装载到仿真单片机完成相应的功能。4.2 主程序流程图本系统的单片机使
42、用了ATMEL公司的低功耗单片机STC89C52。主程序中仅完成了系统的初始化和开始的显示部分,然后就进入待机模式。当产生中断时,单片机被唤醒并执行相应的中断服务子程序,从中断子程序返回后,系统又进入到待机模式。整个程序的设计使系统在绝大多数时间都处于最低功耗状态。整个系统软件需要对温度传感器DHT11、窗户控制系统进行管理。温度传感器DHT11为数字式温度传感器,直接与单片机的串口连接来读取温度。以上所有模块均在主程序中完成初始化过程,系统流程图如图4.1所示。各模块的驱动子程序主体思路分别是:驱动模块:由于步进电机并不是依靠电流驱动,而是靠ULN2OO3将电脉冲进行分配,所以单片机将以00
43、01(A),0011(AB),0010(B),0110(BC),0100(C),1100(CD),1000(D),1001(DA)的脉冲形式分为8拍控制步进电机12;传感器:系统初始化后通过单片机发出的起始信号DHT11进入高速工作模式,由DATA口发送40位数据,分别是8位湿度整数+8位湿度小数+8位温度整数+8位温度小数=8位校正位; 显示模块:LCD1602是以读/写数据的步骤来完成数据的显示,首先以将要显示数据的位置写入程序,再将所示数据的内容写入。大于设定值开始结束NY系统初始化LCD初始化传感器数据读取驱动电机图4.1 主程序流程图4.3 Protues仿真如图4.2所示为本设计的
44、总体系统仿真图。其左下部分为步进电机及驱动电路,左上为单片机最小系统,右下是DHT11温湿度传感器电路,右中为时钟电路;再其左侧是键盘电路,右上是LCD1602显示电路。图4.2 系统仿真图5系统组装及调试5.1组装步骤将之前各个模块的原理图组合最终形成整体的原理图,根据整体原理图进行实际电路的连接与调试。(1)形成整体的原理图,并对其进行完善。(2)对万能板进行检查,是否存在问题。(3)清点所需要的器件及工具,是否完全。(4)将各器件进行焊接,形成实际电路板。(5)对电路板进行调试,解决存在的问题13。其主要组成部分有控制模块、传感器模块、键盘/显示模块、时钟模块、驱动模块。虽然其模块组成不
45、多,但是在布局及焊接时出现的问题却频频不断,比如在走线过程中焊锡供量不均匀导致的短路、模块管脚与芯片管脚出现断路等。经过反复的检测与资料查找了解了PCB电路的走线方式通过导线来完成连接解决了此问题,在整体电路走线方面则采用杜邦线来完成LCD1602与STC89C52单片机及DHT11与STC89C52单片机的连接,这样不仅减少了焊接的工作量也避免了短路情况的再次发生。5.2调试在调试环节分别对系统硬件调试、软件调试及软硬结合的调试。硬件调试主要是针对电路中存在的短路、断路、虚焊等问题来进行。在焊接所有模块之前首先对各个模块的性能管脚导通性进行测试,主要是通过一些简单的小程序来测试芯片能否达到预
46、期目标。软件调试则是先对各部分模块的子程序进行验证,然后再将各个子程序引用于主程序中整体调试,逐步改进。实物组装完成后如图5.1所示。图5.1 实物连接图5.3 功能及其实现 5.3.1 温湿度及时钟显示系统开启后LCD1602对温湿度及时钟开始显示。温湿度显示在第一行,时钟显示在第二行。如图5.2所示。图5.2系统开启图5.3.2 窗户的人工控制本系统采用单点键盘控制,key1来控制电机正转(左上第一个),key2来控制电机反转(左上第二个),每一次按下步进电机便会有一定角度的转动。UNL2003A灯亮则表示其正常工作,而亮灯的顺序则表示此时驱动步进电机的相位拍数。如图5.3和5.4所示。图5.3 手控电机转动前图5.4手控电机转动后5.3.3 窗户的环境控制经数据收集人体最舒适的室内温湿度是:冬天温度为18至25,湿度为30%至80%;夏天温度为23至28,湿度为30%至60%。在此范围内感到舒适的人占95%以上。据此数据本设计在内置程序中预置开窗温度设定在3035,高于此温度可视为高