电子信息工程智能家居控制系统的设计与实现.docx
摘要随着时代的发展,生产水平逐步提高,人们开始注重生活的质量,开始追逐更加方便简洁,高尚智能的生活方式。而另一方面,IT技术不断发展,已经不再局限在某个特定的公司和团体里,它渗入每个人的生活里,智能家居应运而生。然而传统的智能家居缺少国家的统一标准,而且价格高昂,操作繁琐,服务单一,这使得智能家居不能很好的普及到普通家庭。今日,智能家居降低成本,简化操作,势在必行。本文设计的智能家居控制系统使用红外通信对STC89C52芯片进行控制,间接的控制温度模块,光强度模块,舵机模块,MQ2烟雾传感器模块,并让LCDI602显示相应的动作界面。其中光强度模块和MQ2烟雾传感器模块都采用AD模数转换,SPl总线,使用者可以通过调控烟雾敏感度阈值来调控火灾报警模块的敏感度,可以很好的符合某些人居家需求。测试结果证明,本系统运行正常,使用者可以在红外通信最大范围通过遥控器正常的对家居进行控制。关键词:智能家居STC89C52红外通信AD模数转换SPI总线AbstractWiththedevelopmentofTheTimes,thelevelofproductiongraduallyimproved,peoplebegantopayattentiontothequalityoflife,begantopursueamoreconvenientandsimple,nobleandintelligentwayoflife.Ontheotherhand,thecontinuousdevelopmentofITtechnology,isnolongerlimitedtoaspecificcompanyandgroups,ITinfiltrateseveryone'slife,smarthomecameintobeing.However,thetraditionalsmarthomelackstheunifiedstandardofthecountry,andthepriceishigh,theoperationistediousandtheserviceissingle,whichmakesthesmarthomecannotbewellpopularizedtoordinaryfamilies.Today,intelligenthouseholdreducescost,simplifyoperation,imperative.TheintelligenthomecontrolsystemdesignedinthispaperUSESinfraredcommunicationtocontroltheSTC89C52chip,indirectcontroltemperaturemodule,lightintensitymodule,steeringgearmodule,MQ2smokesensormodule,andlettheLCD1602displaythecorrespondingactioninterface.Amongthem,boththelightintensitymoduleandMQ2smokesensormoduleadoptADanalogtodigitalconversionandSPIbus.Userscanadjustthesensitivityofthefirealarmmodulebyadjustingthesmokesensitivitythreshold,whichcanwellmeettheneedsofsomepeopleathome.Thetestresultsshowthatthesystemrunsnormallyandtheusercancontrolthehouseholdnormallythroughtheremotecontrolinthemaximumrangeofinfraredcommunication.Keywords:smarthome,STC89C52,Infraredcommunication,ADtodigitalconversion,SPIbus1绪论11.1 研究的背景与意义11.2 国内外研究情况21.2.1 国外发展情况21.2.2 国内发展情况22系统总体设计42.1 智能家居的系统组成42.2 介绍关键技术42.2.1 红外通信的起始与原理42.2.2 SPI总线52.2.3 ad模数转换52.3 智能家居控制系统的设计整体方案63系统硬件电路设计73.1 系统硬件电路总体设计73.2 系统主用芯片的选择和介绍73.3 各个模块的介绍与实现83.3.1 检测温度模块83.3.2 检测光强度模块93.3.3 控制舵机模块103.3.4 报警模块114系统软件设计134.1 开发环境和计算机语言134.1.1 KEIL4基础介绍134.1.2 选择计算机语言144.2 界面设计155总结与展望195.1 测试195.2 项目总结205.3 不足与展望20参考文献22致谢231绪论1.1 研究的背景与意义上个世纪中叶,互联网开始诞生,到了90年代,第一个提出物联网概念的是比尔盖茨,但是被那时候较为落后的设备所限制,这个划时代的概念并未被其他人看重。而智能家居系统的概念起源于四十多年前的美国,随后这个概念在东亚岛国地区、欧洲等国家得到了很好的发展,物联网与智能家居便结下了不解之缘2|。随着时代的变迁,科技在无时不刻的改变着人们的生活,经济越来越繁华,人们也越来越注重生活质量,追逐更加方便简洁,高尚智能的生活方式。而智能家居便是其中之一。在我国,智能家居的概念传播得比较晚,大约在90年代才步入家居智能系统,但发展速度非常惊人,已经出现了数量相当多的智能小区和住所。智能家居综合了多种现代技术,在建筑内建立十分灵活的信息传输通道,这种通道的存在把家居集成一个平台,在服务方面更为人性化,用更少的功耗实现更好的功能,运用声音和图像将各种参数展示给用户,让整个家充满温馨体贴的氛围3。与以往相比,现在这个阶段的智能家居是相对成熟,但是现在看看传统的家居仍然占据了绝对的主导地位,它被一些制造商过分夸大了智能家居的功能但不能达到这种效果,这使得很多消费者望而止步,更糟糕的是,学习成本高,企业简单地开发代理,却忽略了代理培训和支持制造商(市场上大部分的公司),很多人不了解,也不想知道智能家居的使用,即使是现在在智能家居拥有高口碑的小米。但是智能家居和人工智能一样都是第三次工业革命的重要因素,是家具发展的必经之路。智能家居的发展前景一定是伟大的、辉煌的。至目前为止,智能通信系统的实现主要有WiFi、ZigBee,蓝牙和红外技术四种方式。WiFi技术,传输距离长,穿透能力强,通讯能力高,但功耗高;ZigBee技术,安全性高,功耗低,但成本较高,穿透能力低4;蓝牙技术,低功耗,成本低,低延时,但不同设备间协议不兼容。而红外技术与这些技术相比似乎微不足道,但红外拥有以下优势:稳定性好,通过模拟传输将信息传达给接收方,每种模拟信号都有所不同,因此基本不会有类似的信号干扰红外;隐私性强,因为波长短的缘故,一旦在传输过程中被物体遮挡,容易导致信号丢失,通常适用于短距离信息传输,也正是这个原因,使它拥有上述技术不可比拟的隐私性;低成本,红外技术发展多年,产商和用户数量极多,相比上述提到的技术,在成本上具有很大的优势F尽管红外技术还存在着些缺陷,比如通信角度较小,传输距离短,但前面的几个优势总是有一定的竞争力。红外传输技术即使是在现代的智能家居领域也应用广泛。1.2 国内外研究情况智能家居的开拓史分为三部分,分别是家庭电子,住宅自动化和家居智能化,目前国内外的水平都处在第二与第三阶段之间,近代以来我国的科技技术蓬勃发展,对智能家居的发展形成了巨大的推力,相信在不久的将来,我国就能全面迈入第三阶段6。1.2.1 国外发展情况在1984年,世界上第一栋能称得上是智能建筑的大楼在美国落成,由此拉开了智能家居在世界大舞台的帷幕,各国大大小小的公司都争相研发相关智能家居的产品。第一个家用电器设计标准是由美国电子工业协会在1988年制定的,名为家庭自动化系统和通信标准。又过了10年,新加坡在“98亚洲家电器和电子消耗品国际展览”上推出新的智能家庭系统,它拥有视频通话,监测防护报警,家电集成控制等功能,这个会议奠定了往后智能家居发展的方向与基础。根据一家在美国的专业顾问公司的资料表示:从90年代中期开始,预计智能家居市场的年均增长率达8机这意味着智能家居前景十分可观。在21世纪09年,随着“物联网”概念的提出,令如今的智能家居更加地广泛使用和方便,智能家居、智能社区在整个国家乃至全球似乎已经成为未来的发展趋势。1.2.2 国内发展情况在我国,智能家居还是个“少年”,相对于其他大国起步较晚,而且由于消费观念的局限,到目前为止智能家居面对的多是一些高消费群体,大多数人对其高价望洋兴叹。近年来,百姓们的生活习惯与消费思维逐渐发生了改变,他们开始从看重家居的实用性转向看重家居的舒适性,智能家居也因此迎来了个新的发展高潮。尽管智能家居在中国的利益是巨大的,但是使用成本高,操作系统的复杂性和不一致性也是一个不可避免的问题。为了让每一个老百姓都能得到随智能家居而来的舒适和便利,这些问题使必须得被克服的。如果智能家居系统能被大众所接受,智能家居将会成为家居制造业的主流指日可待,这加速智能时代的来临。1.3 本课题的分章安排本论文内容可划分为5章,每个章节划分如下:第1章,介绍本系统的研窕背景及意义,介绍相关的无线传输技术,通过比对,介绍了红外通信的优势。末尾文章给出了研究内容与组织结构。第2章,分析了智能家居控制系统的组成,介绍其中使用的关键技术并说明了系统的总体方案。第3章,介绍控制系统的硬件电路设计,使用了何种芯片,使用了哪种型号的功能模块,并详细介绍功能模块的设计与实现。第4章,介绍软件开发环境,与相应的简易控制系统界面。第5章,测试系统和对研究实验进行总结和展望。2系统总体设计2.1 智能家居的系统组成智能家居又称居住智能,将可能是未来建筑的必不可少的组成部分,随着现代技术的飞速发展与人民生活需求的持续激增而诞生,是当代炙手可热的技术之一7。它被定性为一种控制系统,这种控制系统常常运用当代众多的电子技术创建分布合理的信息传输通道和与生活息息相关的各种各样的子系统,给予使用者多方面的信息和使用功能,让使用者在家轻松掌握家中的所有情况,一目了然。即使使用者外出,也能通过网络了解家中电器的使用状态及家居情况,让用户能安心的出行8。本系统使用的是红外控制,使用红外技术控制的智能家居系统一般的操作流程包括了通过手机红外遥控,或者是使用红外遥控器遥控,系统接收后经过处理转化为有效的数据,模块配合芯片执行相关的操作,最后由显示器显示相关动作界面。2.2 介绍关键技术2.2.1 红外通信的起始与原理1800年,德国科学家赫歇尔通过观察玻璃三棱镜分离出的七彩光谱,并用温度计测量各个光谱中的能量时,意外的发现了红外线的存在。1898年,尼克拉特斯拉发明了最早的遥控器之一(超声波遥控器),1980年,能够集发射与接收红外线一体的半导体器件被发明面世后,越来越多的人开始使用红外控制,挤占了超声波遥控的市场,尽管更多的无线传输方式被不断地发明拓展,但红外控制经久不衰还是被众多的人们所使ffl9.现今,在很多电器身上都能看到有红外的影子,它给世界带来了诸多方便。红外属于无线传输方式,在传输过程中必不可少的两个部件是接收端与发送端,发送方把要进行传输的信息转化为一长串的方波信号,使用IR发射半导体发出相应信号,接收方接收到了信号后再转化成方波,单片机将对方波进行一系列的操作后解析得到正确的信息10o如图2.1所示:障器当II红外发射电路c=2>I一体化红外接(=>I单片机I输出调制发送接收调解解码图2.1红外信号的发送与接收过程得到的信息中蕴含有四种数据格式码,每种码都有8位,我们要用到的是数据码,反码用来给系统校正红外在传输过程中是否被干扰而产生了错误,本课题不需要使用其他两个码;而判断'0'和'1'的方法不是看高低电平,而是看脉冲之间的高电平持续了多久,以此划分'0,和'1',O,高电平持续地时间为1.125毫秒,1'高电平持续地时间为2.25毫秒,由于硬件误差,高电平持续时间并不会精准到每微秒,所以在写程序时会留有缓冲时间llo该器件如图2.2所示,HS0038抗干扰能力强,传输数据速度达800bits,完全适用于家庭中;图2.2HSOO38实物图2.2.2SPl总线SPl是一种高效的,拥有全双工的4线通信总线,能节省输入输出口资源,它的硬件能力优秀,集成这种协议的app并不复杂,能减少CPU在SPl方面使用的时间12。SPI的这种优势,促使更多的芯片采用SPl协议,如STC89C52,而SPI的通信原理也十分易懂,它工作的方式是主从,在不用双向通信时,用3条线就可以完成单向通信工作闻。2.2.3ad模数转换有关于ad模数转换就不得不说ADC的分辨率,它的意思是计算出来的数值与下一个模拟电压的相差值,差值越接近于零,精度越高,它常用二进制的位数表示14。我们使用XPT2046来进行ad模数转换,该器件运用二分法的方式来无限逼近模拟电压,其内部有个二点五伏的对照电压源,由于器件本身体积小,所以在ad转换时需图2.3引脚功能描述QFN引脚号TSSoP引脚号VFBGA引脚号名称说明1;13A5BUSY忙时信号线。当CS为高电平时为高阻状态214A4DIN串行数据输入端。当CS为低电平时,数据在I)CLK上升沿锁存进来315A3Cs片选信号。控制转换时序和使能串行输入输出寄存器,高电平时ADC掉电416A2DCLK外部时钟信号输入51BI和ClVCC电源输入端62DIXPXP位置输入端73ElYPYP位置输入端84G2XNXN位置输入端95G3YNYN位置输入端106G4和G5GND接地117G6Vaxt电池监视输入端128E7AUXADC辅助输入通道139D7V参考电压输入/输出1410C7IOVDD数字电源输入端1511B7PENIRQ笔接触中断引脚1612A6DOUT串行数据输出端。教据在DCLK的下降沿移出,当CS高电平时为高阻状态XPT2046引脚功能描述图要外部时钟输入15。该器件的引脚功能如图2.3所示。2.3智能家居控制系统的设计整体方案本课题研究的是使用红外通信控制的智能家居控制系统,主要硬件构图如图2.4所图2.4主要硬件构图手机红外遥控或红外遥控器发送编码,51单片机上的一体化红外接头接收数据,并把它转化为单片机可识别的信息,经芯片处理后,做出相符合的动作。感光模块可对周围的光强度进行检测,检测到的数据经过xpt2046转换,模拟信号转变为单片机可理解的数字信号,处理后超过或低于阈值就会关闭或打开室内灯;感温模块则可以感知周围的温度,超过一定值,开启风扇进行降温;舵机模块模仿的是开关窗户,由遥控器直接控制,也可以通过烟雾报警模块间接控制;当烟雾报警模块感知到了室内空气浑浊度超过了设定值,将发出警报声,并打开窗户,开启风扇,让室内的空气流动起来,保证室内氧气充足。3系统硬件电路设计3.1 系统硬件电路总体设计在了解了红外的工作原理和结构后,针对现有家庭的不足,本文设计了一款低成本、性能较高的智能控制系统。为了适应市场的需要,论文对硬件需要用到的电路进行分析。硬件核心是STC89C52芯片,硬件电路设计方面有7个模块,分别是:红外,LCD1602,开关,感温,烟雾报警,舵机和最小系统模块116。在本章中,主要介绍了包括主用芯片、红外模块的选择,并介绍了硬件电路的总体架构,红外模块接收到信息后交由芯片处理,芯片传出特定指令,对其他功能模块进行控制,而一些模块也能反馈些信息数据给单片机,让芯片根据设定的程序发出相应的指令。3.2 系统主用芯片的选择和介绍拥有低能耗、性能优越的STC89C52是宏晶科技发明的,内部含有8192bit可编写高速闪存器,该芯片用的是经典的MCS-51内核,不过这个内核被做了许多优化,己经比以前的51多了许多功能17;其中它有32个I/O口,能给系统更多的应用方案,所以选择这个型号的单片机能很好的配合智能家居控制系统,图3.2是STC89C52芯片的结构图。图3.1系统硬件模块结构图SOP=ZZ ah 2p (gxzd 二z J G<x Zd VNM-ESVZdNgSd Doud .3VAV3 z,¾ (9QV9od A=AXod - =QS 鱼弓Od S用.金 二PA- OP odc08士痛匚常名离需工* 兴料肃工青巾群黄STC89C52里9INlX巧XIldafeK(出匚 Eda2)IJd a0 H X 一 Ma 。S.(F) IS=苫-S=SZ 一工(1920 =喻IuZ-LSJ-图3.2STC89C52结构图STC89C52发行年长久,C51系列从2005年开始生产,而C52和C51的内核是一样的,C51能用的程序,C52大多能兼容,这就使得C52的资源极其丰富,网络资源一抓一大把,各种各样的程序都有,这就能很好的利用有限的资源进行开发智能家居控制系统,而且STC89C52内拥有中央处理器等单片机常用模块,这个系列的单片机几乎包含了所有必需的作为一个单元的数据采集和控制模块,可谓是一个片上系统18。外部电路的一些工作可以由内置的电路代替,所以本课题使用了STC89C52作为智能家居控制系统的主控芯片。3.3 各个模块的介绍与实现3.3.1 检测温度模块本文采用的温测器件是DS18B20,实物图如图7所示,该器件使用方法简单,而且拥有多种封装方式,能够适用于很多不同的环境,即使是在一些空间窄小环境恶劣的地方,我们选用DS18B20的TO-92封装,这种封装表皮较厚,十分耐磨,体积还小19。S3.3DS18B20实物封装图一般单片机使用的电压在35V,DS18B20工作电压大部分在这区间之内,该器件除了正常的电源供电以外还有寄生电源供电,在数据线或者VPo为高时,电路便可正常运作,可是有一定的限制性;该器件有3根管脚,分别是地线,电源线和数据线,单线总线的方式可以为我们节省很多的输入输出口资源,而且在工作过程中不用布设外围电路,在器件内集成了测量温度所需的电路和元件,测温值域也很大,在负十度到八十五度之间时误差少于零点五度,完全适用室内外温度检测20。&CRC生成器电源检测图3.4DS18B20内部结构图值得一提的是,多个该器件能够组网测温,实现多方面温度测量覆盖,但如何识别每一个器件呢,它的识别码就隐藏在光刻ROM中,在出厂前就已经刻好的了,可以把识别码当成是它的地址序列号21o每一个该温度器件的地址序列号都是不一样的。DS18B20与单片机的连线图如图3.5所运ggGND I 卜TVCe图3.5DS18B20连线图该器件在通电之后就会维持在低能耗休眠,只有在要检测温度和AD转换时,总线一定要传入指令44h,完成转换以后,得到的温度数值将会以两个字节的形式存储在高速暂存器中,然后该器件将进入休眠221。为了实时检测,单片机会不断地发送44H命令,得到的两个字节经过处理后变成了实时温度数值,本文章在程序里设定了阈值范围,这个阈值范围用户不可调。一旦实时温度数值超过阈值范围的最高值,将会启动风扇进行室内降温,低于阈值范围的最低值将关闭风扇。这里的风扇模拟的是空调。3.3.2 检测光强度模块本文采用的感光元件是光敏电阻,如果周围的环境都很幽暗,它的阻值会很高,当有光照射到它时,它的欧姆值就会随着坎德拉值的变大而变小。将该器件从有光的地方移入到黑暗的环境,它的阻值将会逐渐增大直到恢复到原来的数值。经过测试,处理后得到的数值会随着坎德拉值的变大而变大。本文的室内智能照明就是根据光敏电阻的这种特性写出来的。它与XPT2046连接到一起,方便XPT2046及时的将光敏电阻产生的模拟信号通过逐次逼进的方式转化为数字信号,以供给单片机使用。如图3.6所示。> X >xBuSYa DINCS1)( I L,AlJX VBAT GNDY-图3.6光敏电阻与XPT2046的连接图本文使用的是SPI总线方式实现基于XPT2046的AD转换。对XPT2046写入命令0XA4,XPT2046就会返回一个字节,但这个字节它是从高位到低位传过来的,经过程序处理后得到了相应的光强度数值23。本系统预设了一个阈值范围160200,光强度超过200,室内灯将熄灭,小于160,室内灯会被打开,处于中间值无变化。设置这个阈值区间能很好的避免室内灯光出现闪烁的现象。这个阈值范围用户不可调。为了用户方便使用,本系统设定了灯光屏蔽位,一旦手动控制过灯光,那么将会自动关闭智能照明系统,方便用户的使用习惯,若要打开智能照明系统,只需通过遥控器或手机红外关闭灯光屏蔽位即可。3.3.3 控制舵机模块本系统采用的舵机是SG90舵机,该器件除开VCC与GND以外,使用的信号线只有一根,只要对输入控制线输入模拟信号,就能让SG90舵机转到我们想要的位置24。由于SG90舵机是模拟舵机,而非数字舵机,所以需要不断地给它发送目的地的PWM信号,知道SG90舵机旋转的相应的位置。经测试,SG90舵机只需23个时基脉冲即可转到指定的位置,一个时基脉冲的周期为20ms,控制SG90舵机转到指定的方法是调整高电平在周期内的占空比,脉冲宽度一般在0.5ms2.5ms范围之内。给SG90舵机传入时基脉冲后,舵机内部会产生一个直流偏置电压,经过内部芯片的一系列处理后,会得到一个电压差,而电机左右转向由这个差值的符号决定,电机带动电位器转动,直到电压差降到零,才会停下来25。5690舵机如图3.7所示:图3.7SG90舵机实物图SG90舵机模拟的是打开或者关闭窗户,每一次开机程序都会对SG90舵机进行初始化,将舵机的角度调整到45度,即为关窗状态。初始化能很好的避免舵机出现失误,导致打开窗户角度过小的情况。90度为开窗状态,开关窗都由手机红外或遥控器进行控制,也可由下述模块进行控制。3.3.4 报警模块报警模块由MQ2烟雾传感器,风扇(直流电机),无源蜂鸣器,XPT2046和SG90舵机组成,MQ2烟雾传感器除了能检测烟雾外,还能检测酒精,液化气,烷,氢气,苯等气体,应用非常广泛,MQ2是一种二氧化锡半导体气敏材料261,这种材料能吸附氧气形成氧负离子,致使材料本身内部电子数量变少,电阻值就变大了。当MQ2与烟雾碰触,材料的整体导电率就慢慢恢复,烟雾或其他上述气体的浓度越高,其电阻值越低,就会得到越大的模拟信号。烟雾传感器如图3.8所示:图3.8MQ-2烟雾传感器模块实物图蜂鸣器有源无源的最大区别在于器件内部有没有震荡源,前者只需通电就能振动发声,而后者还得另外加方波来驱动才能振动发声27。它们的驱动电压都在5V左右,直接由芯片驱动的话,会导致供给蜂鸣器和其他模块的电压不足,所以需要外接5V电压。为简化电路设计,所以选用无源蜂鸣器,只需让输入或输出电压产生波动即可让蜂鸣器发声。无源蜂鸣器连线如下图3.9所示:Plj.BU j 31 P1 14INlOUTlIN2 0UT21A3 OU13IN4 0UT4IN5 OUTSIKG 0UT6IN?UUlGND COM16 OLTlIS OllT2 14-4 4一工4R15-一 15BFEP7 -_!,T'1一 二 10.-AeJ与 IYrC上11.N7OO3OGNT空图3.9无源蜂鸣器连接图为了烟雾传感器的正常使用,通常要让MQ2运行预热2分钟在使用。MQ2收集到了周围环境的空气混浊数值后,输出模拟信号给XPT2046,XPT2046经过处理后得到了数字信号的空气混浊数值。本系统预设了空气混浊阈值,实时数值会和阈值进行比较,一旦大于或等于阈值,将会发出警报声并打开窗户,开启风扇,保持室内的空气混浊数值保持在一个较低的程度,为用户逃离火灾现场创造一个良好的条件。4系统软件设计4.1 开发环境和计算机语言系统的硬件电路和基本模块设计完成后,根据系统模块功能需要,编写相应的软件代码。使用的代码语言是C语言,开发环境是KEIL4,编写完代码后下载至单片机中进行硬件调试仿真,若仿真结果未符合预定功能,则需要修改代码,在进行仿真。4.1.1 KEIL4基础介绍KeilSoftware公司发行的kei14软件能兼容单片机软件开发系统,内包含了C编译器和连接器等模块,将之组合成一个集成开发环境,不论使用C语言还是汇编都能很好的简化我们的操作步骤,下面讲STC89C52在keil4的开发环境配置。创建新的项目project,如图4.1。File Edit :View ProjectWindow.HNew uVision Projed./ J )interfac interruf IighUPJJJQJJ IS-+l-lffil(amatLCNew Multi-Project Workspace.Qpen Project.Cle ProjetExportManageSelect Device for Target Target 1'.Remoye itemK Options for Target Target.Clean target. j Build target、 DahuklalHhniaLfjL-图4.1创建新项目图确定项目名称后储存到已经创建好的文件夹内,如图4.2所示。图4.2保存项目图新建后选择STC中对应的芯片,由于keil4中不存在STC系列的芯片型号,所以选择的是与STC89C52芯片内核相同的AT89C52芯片,如图4.3所示。图4.3选取芯片型号图搭配完成好我们的开发环境,就能往其中添加自己编写的软件程序,进行单片机开发。4.1.2 选择计算机语言使用keil4软件进行单片机程序开发,软件支持的语言一共有两种,一种是C语言,另一种是汇编语言。两种语言各有千秋,C语言是高级语言,拥有优秀的移植性,在不同的微机平台几乎不用怎么改变代码就可以完美嵌入28。C语言还可以进行结构化编程,这种编程方式使得代码条理清晰,易修改和维护29。而汇编语言在不同的微机平台使用的指令都是不同的,所以不具有可移植性,但汇编是贴近硬件的语言,它有很强的实时性和高效性。由于每个系统所使用的的寄存器和其他元件都有所不同,即使是做同一种功能,指令也千差万别,这也导致了汇编语言枯涩难懂,维护和修改困难。本系统在研究过程中需一边开发一边调试仿真,而C语言很好的契合要求,它的结构化编程也符合系统的模块化编程,所以本系统使用C语言编程。4.2 界面设计本系统用于显示的器件是LCDl602,它能显示两行,每行能显示16个ASCll码字符,显示一个字符的点阵的大小为5*10或5*7,。由于本身的限制,LCD1602并不能很好的显示图片和汉字,它自带背光源,即使晚上显示的字符也清晰可见。1602的数据传输方式分为4线传输和8线传输,为保持刷新率,本系统选用的是8线传输。LCD1602图4. 51602连线图图4.4LCD1602结构图图4.6,图4.7为手机红外遥控的图:图4.6手机红外遥控1图图4.7手机红外遥控2图图4.6中设定能使用的按键为数字键,上下方向键和返回键,图4.7展示的是数字键。由于16002每次只能显示两行字符,而在手动模式中也是有多行需要展示,所以程序内含有翻页的函数,下面是翻页函数的代码:if(inf_key=key_under)&&welcome_flag)inf,key=Oxfe;LcdWriteCom(Ox80+0x()0);/从第一行第一格开始写入interface_manual_mode();/手动模式LcdWriteCom(0x80+0x40);/从第二行第一格开始写入interfacesetmode();设置模式其中inf_key是红外接收到的数据,而WeICome_flag则是标志位,是辨认系统当时进入到哪个界面的标志。进入到不同的界面标志位都有所不同。接收到红外并执行相关指令后会立即清除inf_key内的数据(OXfe表示空的意思),key_under表示接收到向下翻页,与此对应的还有key_on向上翻页,与此代码大同小异。InterfaCe前缀的函数都是界面函数,负责打印相应的字符。图4.9是自动模式下的界面流程图,它能循环显示实时的温度和光强度数值,直至使用者按返回键,返回主界面。自动模式相当于手动模式的第一第二功能的结合。图4.10手动模式下的界面流程图图4.10是手动模式下的界面流程图,按对应的键位就能进入对应的功能,其中第一第二功能拥有独立的子界面,方便显示对应功能,而第三第四功能的变化直接显示在手动模式子界面上的,它是实时刷新的,图4.11的代码是关于界面内实时刷新显示开关窗户的代码,SeIKLClk()函数为发送控制开关窗户的时基脉冲,window_refresh确定显示开关窗户字符的位置,开关灯的实时刷新与其大同小异。=0):if(inf_key=key_3)66(under_count!=8t(manu_flag=l)66(welcome_flagLCaRriteCom(x01)y/inf_key=Oxfe;send_clk(dj);window_refresh=0x10)(IcdwriteCom0x8D+*40)jinterface_manual_switch_window()/开关密户elseiRwindowJrefreSh=0x20)(LcdWriIcCom(0x80+0x00);/从第一行第一格JT始Ij入interface_manual_switch_windov0;开关窗户3图4.11开关窗户实时刷新代码图图4.12是设置模式下的界面流程图,光敏屏蔽和上面的一样,也是实时刷新的,设置空气浑浊度拥有独立的子界面,在其中可以看到周围实时的浑浊数值,可以设置警报阈值,一旦实时数值超过阈值就会触发火灾警报并打开窗户开启风扇排风,保证室内氧气充足。TCe恶恶的3 理A团mlClDn0002C:6AOOQ2C:bxoaq4ClOxOOOS c:Cx2306 C>*ODOT Ctx*Oda c:*000900int-R*.*at: ZeISLCIi4d)?d3钊it iwindrw retresh人.!6二开第一格井的写人 开先的户-3a2olLedRrts9CnlW*C4017× Intertaoe nawa 1 av i tah_v i ndas)clac If iwindos_zctrcahIcdWritsCan (2=«2*3x00) tafwatoh放黑一行典一格开加算人WindOMU )开先案户5总结与展望5.1 测试5.1.1 软件测试我们使用keil4进行软件仿真,设置好系统要仿真的参数,把写好的代码生成为HEX类的文件烧录进单片机内,然后一步步的进行比对分析,看看哪些地方出现了错误,逐步调试,让程序尽量按我们的想法走,从而达到应有的效果。.;.eeBithasnhig士49件完*AflMLBee00!00rlcooxt及>吗0x0000Ha000Syr图5.1使用keiI4进行软件仿真图5.1.2 功能测试图5.2是实物连接图,通电后出场动画显示正常,成功进入主界面,下一步对各个模式进行测试。自动模式下功能运行无异常,可以正常循环的展示光强度和温度,唯一美中不足的是,检测光强度时会一直显示一个数值,没有发生变化,反复测试也没发现问题出在哪里;温度显示正常。手动模式下其他功能正常显示,也是光强度显示出现上述问题,每六七秒才刷新一次,但退出显示光强度后,室内灯对光强度的感应恢复正常,能够实时响应。设置模式功能检测正常,设置空气浑浊阈值能正常设置,实时数值超过阈值后系统正常响应。图5.2实物连接图5.2 项目总结本文在网上收集了大量的有关智能家居控制系统的文献与文章,也查看过当前一些较热门的智能家居系统,如杭州聪普智能科技,分析了现代智能家居的发展方向和传统的智能家居的特点,研究学习了很多的有关器件的资料,以此设计出了偏向于传统的红外智能家居控制系统,先对本系统做一个总结:第一,本文先对国内外的智能家居的发展情况做出了分析,研究了相关的理论,了解到了红外智能家居在未来仍能占据市场一角和该系统的可实行性30。第二,介绍红外智能家居控制系统的设计方案,并对系统用到的关键技术进行了研究,即红外通信技术,SPI总线,AD模数转换技术等。第三,对系统硬件电路进行设计,阐述系统主用单片机STC89C52,对各个功能模块用到的器件进行介绍和各个功能的电路连线。第四,介绍了软件开发环境的具体配置和系统的界面大体流程。本系统是偏向于传统的智能家居控制系统,偏向于传统有一个明显的好处,中年人和老年人对这类型的控制系统的抵触没那么大,用户操控本系统就和用电视遥控器操控投影机一样简单易懂。在这个中国逐渐步入老年化的时代,这对本系统在未来的发展有一定的助力。5.3不足与展望基于红外的智能家居控制系统的设计和实现方面还有很多理论技术和方法,在本系统上都没有用到,系统本身也有很多问题待解决,1、在给直流电机发送控制信号时,电机启动后,其他模块的电压明显降低,最明显的就是1602背光灯变暗,即使是已经给电机外接电源;2、在进入实时显示到1602上面的实时光强度数值刷新界面频率降低,一退出来就恢复原状,检查了几次代码亦发现不了问题;3因前期考虑不足,界面设计是使用switch嵌套还是使用标志位平铺中选择了后者,导致主函数在结构方面比较混乱。若程序不大,标志位是正确的选择,反之,使用SWitCh会更加好。高楼大厦平地起,我在这些方面的基础打得仍然不够结实,还有提高的余地,期望在往后的工作与学习中,努力提升自身的学业水平,在社会中更好地实现自我。参考文献