版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能家居操纵系统(软件)设计摘 要 本文通过对现有的家居智能操纵系统功能以及实际情况分析,设计了一种安全、有用、方便的智能家居操纵系统。本文首先阐述了智能家居操纵系统的研究状况和进展现状,以及一般家居操纵系统所要检测的物理量。依照家居操纵系统常用的检测信号类型,选取了红外信号、温度信号、光线强度信号和密码输入等作为本设计的检测依据。本设计选取红外信号、温度信号和光线强度信号作为监测信号。密码验证是否通过作为整个电路是否工作的依据。当密码验证通过之后,整个系统同时监测红外信号、温度信号和光线强度信号,红外信号达到阈值则开始报警。温度信号实时显示。光线强度信号操纵步进电机的动作。关键字:智能操纵;
2、光强度;红外;温度;步进电机Intelligent home control system (software) designHYPERLINK /search?q=abstract&keyfrom=E2CtranslationAbstract Smart home control systems also emerged. This paper designs a practical and convenient smart home control system based on the existing smart home control system and the actual s
3、ituation.This paper describes the intelligent home control system research and development, as well as detected physical signals of the home control system. This design chooses the infrared signal, the temperature signal, the light intensity signal and the password input signals as the detection sig
4、nal types.The design selected infrared signal, the temperature signal and the light intensity signal as the monitoring signals. Password authentication is as the basis situation if the circuit works. When password authentication is passed, the entire system monitors the infrared signal, the temperat
5、ure signal and the light intensity signal. The system alarms when the infrared signal reaches the threshold. Temperature signal real-time displays on the LCD1602. Light intensity signal controls the stepper motor movements.Keywords: intelligent control; light intensity; infrared technology; temperat
6、ure control; stepper motor 目 录TOC o 1-3 h u HYPERLINK l _Toc12964 1 绪 论 PAGEREF _Toc12964 1 HYPERLINK l _Toc31653 1.1 课题背景及研究意义 PAGEREF _Toc31653 1 HYPERLINK l _Toc14595 1.2 智能家居操纵系统的进展概况 PAGEREF _Toc14595 2 HYPERLINK l _Toc891 1.3 本设计研究的要紧内容 PAGEREF _Toc891 2 HYPERLINK l _Toc31051 2 智能家居操纵系统的总体介绍 P
7、AGEREF _Toc31051 3 HYPERLINK l _Toc16736 2.1 整体系统的原理 PAGEREF _Toc16736 3 HYPERLINK l _Toc12543 2.2 系统各个模块介绍 PAGEREF _Toc12543 3 HYPERLINK l _Toc32059 2.2.1 系统中ADC0832的介绍 PAGEREF _Toc32059 3 HYPERLINK l _Toc12076 2.2.2 电机驱动电路介绍 PAGEREF _Toc12076 4 HYPERLINK l _Toc23965 2.2.3 矩阵键盘电路介绍 PAGEREF _Toc2396
8、5 4 HYPERLINK l _Toc11504 2.2.4 声光报警电路介绍 PAGEREF _Toc11504 5 HYPERLINK l _Toc30899 3 智能家居操纵系统的软件设计 PAGEREF _Toc30899 6 HYPERLINK l _Toc19237 3.1 系统功能结构图 PAGEREF _Toc19237 6 HYPERLINK l _Toc18891 3.2 软件设计主程序 PAGEREF _Toc18891 6 HYPERLINK l _Toc26199 3.3 软件系统构成 PAGEREF _Toc26199 8 HYPERLINK l _Toc6124
9、 3.4 显示子程序 PAGEREF _Toc6124 8 HYPERLINK l _Toc15214 3.5 温度数据读取程序 PAGEREF _Toc15214 9 HYPERLINK l _Toc32344 3.6 中断程序 PAGEREF _Toc32344 11 HYPERLINK l _Toc27319 3.7 光线检测与步进电机操纵子程序 PAGEREF _Toc27319 11 HYPERLINK l _Toc3568 3.8 报警条件子程序 PAGEREF _Toc3568 12 HYPERLINK l _Toc5172 4 智能家居操纵系统软件调试环境与分析结果 PAGER
10、EF _Toc5172 14 HYPERLINK l _Toc30410 4.1 开发环境简介 PAGEREF _Toc30410 14 HYPERLINK l _Toc24404 4.1.1 编程软件介绍 PAGEREF _Toc24404 14 HYPERLINK l _Toc25474 4.1.2 程序的工程建立 PAGEREF _Toc25474 14 HYPERLINK l _Toc4484 4.2 程序的调试 PAGEREF _Toc4484 15 HYPERLINK l _Toc15372 4.2.1 主程序的调试 PAGEREF _Toc15372 15 HYPERLINK l
11、 _Toc12859 4.3 调试结果展示 PAGEREF _Toc12859 16 HYPERLINK l _Toc29708 5 结论及展望 PAGEREF _Toc29708 18 HYPERLINK l _Toc28779 附录一 程序清单 PAGEREF _Toc28779 19 HYPERLINK l _Toc26885 附录二 实物图 PAGEREF _Toc26885 43 HYPERLINK l _Toc23682 参考文献 PAGEREF _Toc23682 44 HYPERLINK l _Toc14041 致 谢 PAGEREF _Toc14041 451 绪 论1.1
12、课题背景及研究意义 在信息化技术日益进展的21世纪的世纪,各种电子和互联网新技术是了人类文明的取得巨大进步要紧途径。而智能化家居操纵系统的出现使得人们能够通过手机或者互联网互联网络在任何时候、任何地点远程的对家中的任何电器(空调、加热器、电饭煲、灯光、音响、DVD影碟机)进行操纵;也能够在下班途中,让热水器提早烧好热水、预先将家中的空调机打开、让电饭煲煮好香喷喷的米饭而这一切都仅仅只需要轻轻的点几下鼠标键盘,或者打一个简单的电话就能够实现。此外,还有些家庭能够通过智能家居系统对家里的东西具有远程监听、多途径报警、数字留言等多种便捷功能。现今追求舒适、时尚和便捷的家居生活是社会进步的日趋表现,因
13、为系统能够能够在不改变家中任何家电的情况下,远程的操纵家中的电器、灯光、电源及家里环境,使人们能够方便的快捷的生活。现今我们常用的密码锁是一种利用输入密码的正确与否推断与他相联系的机械开关的闭合的电子产品。由于他的严密性和可靠性,使它的种类专门多。有基于芯片的性价 比较高的产品,也有简易方便的电子产品。通过密码锁的加入能够防止一些设备被非法开启。提供安全性。 随着社会信息化技术的不断更新,红外传感技术也随之前进。目前已在多个领域发挥它巨大的作用。红外不是可见光,具有良好的隐蔽性,白天和夜里都能用,而且抗干扰能力强,我们利用红外线的特性来制作功能性器件,因此要紧被用来制作防盗报警系统。我们为了防
14、止社会上日益泛滥的偷盗现象,常将红外技术运用各大商场、博物馆及有关严密的场所。而本设计综合研究了现有的光电防盗报警装置的优缺点,本身具有有用性强、安装操作简易,价格低廉,误报率低等特点,同时在其原有基础上进行设计的。设计通过查找资料,采纳红外对冲管的无线发射与接收来操纵是否进入报警模式,通过红外线判读信号,通过电路传输给并由89C52单片机进行处理,因此报警电路是否进行触发将由单片机依照检测模块输入的信号来决定。 现代家居生活是追求舒适、方便的自动化的生活。而自动窗帘但是我们的生活发生实质性变化,利用全自动窗帘的感应基础是依照日照光线和温度来操纵的,设计时能够预先设定的光线强度和温度,用来自动
15、开启窗帘和关闭窗帘; 温度是人们日常生活中经常遇到的一个基础变量,现今市场上能测量温度值的传感器有专门多种,专门多操纵系统对温度的测量也是的功能之一。而本设计中运用的是经典的温度传感器DS18B20来检测温度。1.2 智能家居操纵系统的进展概况 我国的智能家居技术共历经了概念、研发、实验、推广以及普及四个大时期,大概时刻是从2000年的概念年到2007年普及年之间的7年左右的时刻。由于硬件和软件间的协调有专门大的困难,因此我们中国在推行智能化家居的难度更加之大。这些问题在国外往往需要更长的时刻来完成。而自2003年开始的实验,一些国外的成熟的智能家居计算开始流向中国,这就给我的研发及实验带来了
16、特不之大的关心,极大地缩短了时刻,是我们在追赶国外的步伐更加迅速。在随后的两年里,我国的智能家居技术与欧美国家相比差距并不大,只是国外的相关技术的种类特不多,这是我们国家所不能比的。例如:微软公司开发的“梦幻之家”IBM公司开发的“家庭主任”等均以完善而且成熟的技术强占了大部分家居市场。自2008年奥运会开始,我国的智能化家居技术差不多在整个家具市场上占有专门大的比重,而国外的智能化技术由于不适应中国认得生活方式因此占到的比例反而小了许多。相比较而言,智能化家居更能体现出科技的力量在我们生活中的重要性。专门难再预测在2016年的时候,全球化的智能家居技术将达到如何样的地步,然而能够清晰家居智能
17、化正在走进千家万户。1.3 本设计研究的要紧内容 本设计的内容要紧是基于89C51单片机的智能家居操纵系统,利用单片机猎取各个传感器的数据并处理,从而执行相应的操纵与有关功能。设计中采纳模块化设计原则,利用多种集成传感器芯片,将硬件模块和软件系统相组合,初步设计了一个简易的智能操纵系统,并能够完成简单的防盗报警、温度显示、自动操纵等功能。依照设计原则,设计中选用性能价格比较高的单片机STC89C52。温度数据的采集系统,本设计中选用DS18B20这一典型的温度传感器。而关于距离的感应,设计方案选用了红外传感器。本文通过对光线的检测是采纳光敏电阻与模数转换ADC0832相结合的方案。之外还能够对
18、步进电机进行操纵。为了满足密码功能,用液晶屏LCD1602和矩阵键盘来完成密码验证功能。当密码输入错误或是红外的遮挡时刻大于阈值时,启动报警电路来报警。本文个章节安排如下: 第一章绪论,要紧分析课题提出的背景意义,及智能家居系统的进展概况。 第二章是本文对系统硬件部分的简单介绍。 第三章家居智能操纵系统的软件部分的设计,对系统主程序与子程序的流程图的设计 进行分析论述。第四章是调试部分,介绍编程环境与分析软件可能出现的问题,进一步提高软件的操作行。第五章是结论部分,总结了本设计的成果意义,并对本课题的相关展望。2 智能家居操纵系统的总体介绍2.1 整体系统的原理 一个完美的家居操纵系统能够提供
19、一个家用电器的操纵,照明操纵,窗帘操纵,电话远程操纵,室内和室外的远程操纵,防盗报警,并为你的各种编程时刻操纵功能和方法。本系统设计充分利用了已软件代替有关硬件进行设计的原理。在设计中为了简化处理,关于家居系统中几个关键的量进行处理。家居室内温度和光线强度是舒适度的一个重要指标,本系统中对温度进行实时检测和显示,对光线值实时检测并通过步进电机来操纵窗帘自动调整室内的光线强度。除了温度和光线强度的检测为,本系统还能够满足简易的防盗防盗功能。通过密码验证幸免非法启用设备,通过红外检测能够幸免人员非法进入。整个系统的总体原理框图如图2-1所示。 图2-1 智能操纵系统总体原理框图2.2 系统各个模块
20、介绍 2.2.1 系统中ADC0832的介绍通过ADC0832模数转换之后,单片机读的数据确实是光敏电阻上的分压值。单片机对读到的数据推断就能够明白当前光线强度的情况了从而提高转换的宽度。因为ADC0832有两个通道,本设计中只需要对分压值进行推断,因此选用其中一路就能够了。有关资料表明,选用CH0通道,将CH1通道悬空,作为单通道模拟信号输入时ADC0832的输入电压是05V且8位分辨率时的电压精度为19.53mV。而假如是由IN+与IN-输入的输入时,能够将电压值设定在某一个较大范围之内,使其上下浮动。但值得注意的是,在进行IN+与IN-的输入时,假如IN+的电压小于IN-的电压则转换后的
21、数据结果始终是00H。从图上能够看出,光敏电阻R9与电阻R8构成分压电路。光线强度会改变R9的阻值,当R9的阻值发生变化之后,R9上的电压值随之改变,而模数转换器ADC0832的2管脚CH0上的电压值也跟着改变。光敏电阻操纵电路部分的原理图如图2-2。 图2-2 光敏电阻操纵电路原理图 2.2.2 电机驱动电路介绍由于驱动步进电机需要较大的功率,因此单片机输出接口需要通过ULN2003放大再连接到相应的电机接口用于带动电机的转动。步进电机的电路图如图2-3所示。图2-3中,J2是步进电机的接口。R4R7是串联限流电阻。图2-3 步进电机驱动电路图 2.2.3 矩阵键盘电路介绍在本设计中,当处于
22、密码处于输入状态时,通过键盘输入密码,能够通过LCD显示输入时的密码状态。在正常工作状态下,LCD显示实时的温度值和红外值。矩阵键盘及显示电路如图2-4所示。图2-4 矩阵键盘及显示电路 2.2.4 声光报警电路介绍当达到报警条件时,要有报警信号发出。这种报警信号通常有三类:闪光报警,鸣音报警和语音报警。本设计的报警电路包括灯光报警和蜂鸣器报警两种方式。实现声光报警电路比较简单,如图2-5所示。 图2-5 声光报警电路3 智能家居操纵系统的软件设计3.1 系统功能结构图家居智能操纵系统的软件设计分为2个工作状态:等待密码输入状态和正常工作状态。在等待密码输入状态下,电路等待矩阵键盘的数据输入。
23、当输入的数据和定义的密码一致时,系统进入到正常工作状态。假如输入的数据和密码不一致,则提示密码错误并报警1秒,然后转入等待密码输入状态。直到密码输入正确为止。 在正常工作状态下,系统实时检测温度值、光线值、矩阵键盘值和红外值。将检测的值显示到液晶屏上。假如光线值发生改变则相应转动电机,模拟自动窗帘。整个系统的功能结构框图如图3-1所示。等待密码输入状态等待密码输入状态 正 常 工 作 状 态矩阵键盘温度传感器光敏电阻红外传感器步进电机LED显示 图3-1系统功能结构图3.2 软件设计主程序 系统的程序烧录到STC89C52内部的FLASH内存中,有主程序、温度读取程序、中断延时程序、红外遮挡时
24、刻判定程序、光线强度判定程序、由光线强度值操纵电机程序、键盘输入、LCD显示程序和报警子程序等组成。为了方便编程,使程序完成后条理清晰,就必须对数据存储器的存储空间进行规划。STC89C52提供用户的RAM有256字节。 主程序的功能是完成开机界面和对单片机所进行的初始化,初始化确实是设置各个变量的初始值、进行相关的中断设置等。各部分的地址分配如下:LCD1602的数据端口:P0口;LCD1602的操纵端口:P2.5P2.7;DS18B20温度传感器接口:P1.0;矩阵键盘接口:P1.1P1.7;红外接口:P3.2;报警器接口:P3.3;步进电机接口:P3.4P3.7。主程序的流程图如图3-2
25、所示。初始化初始化设置定时器0打开定时器中断读取密码值读取温度值报警显示密码错误显示温度值读取光线强度主程序密码是否正确红外值是否大于阀值YNYYNN图3-2 主程序流程图3.3 软件系统构成本系统的软件部分要紧包含五个文件即CLOCK.H文件、LCD1602.H文件、DS18B20.H文件、MOTOR.H文件、ULTRASONIC.H文件和MAIN.C文件。由于项目文件并不太大,因此用五个头文件的形式将一些必要的时钟设置、宏定义和一些简单的驱动程序包含在主函数中,如此,既能够实现程序设计的模块化,又不阻碍程序编译的效率。其中MAIN.C文件要紧完成系统初始化以及红外检测、模数转换功能,同时,
26、它还包含了单片机应用中最重要的定时器设置、定时器中断、端口中断等内容。3.4 显示子程序 LCD1602典型应用和本设计一致,能够参看原理图。其差不多操作时序如下: 读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字 写指令:输入:RS=L, RW=L,D0D7=指令,E=高脉冲 输出:无 读数据:输入:RS=H, RW=H, E=H 输出:DOD7=数据 写数据:输入:RS=H, RW=L,D0D7=数据,E=高脉冲 输出:无显示子程序负责状态的显示,在输入密码状态负责提示语的显示,和输入密码过程的显示,当密码输入完毕之后将密码推断的结果显示出来。在系统进入正常工作状态后,显示
27、当前的温度值和红外值。(1)LCD1602的读操作时序如图3-5所示。图3-3 1602读操作时序(2) LCD1602的写操作时序如图3-6所示 图3-4 1602写操作时序 3.5 温度数据读取程序 温度检测模块本设计选用了DS18B20元件。DS18B20元件是由DALLAS设计生产的一款单总线方式访问的数字温度计。该元件具有体积小,外围电路简单等特点。因此本设计选择该元件为基础组建一个温度检测系统。由于该元件遵循单总线协议,即只要使用一个引脚就能够进行数据的传输,因此它对读/写操作的时序要求比较严格。在进行此操作时为保证数据的可靠性,需要关闭总中断。此外该元件上电后默认精度为9位,在写
28、完读取温度指令后,会在该器件内部的两个8位的RAM中猎取有效数据。其中前8位用来表示测得数据的正负,即为数据的符号位,后面的8位用于表示数据值。由于测量精度为9位,因此当测得温度为正数时,实际温度值为数据值乘以0.5。当测得值为负数时,实际温度应为数据值的补码乘以0.5。例如,对应于-25的数据格式为: MSB LSB1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 (符号位“-”) (温度值“ ”) 11001110的补码00110010,即,被测温度值为: T=-(125 +124 +12)0.5=-25 表3-1 9位DS18B20温度与数据的对应关系温度/二进制数据输出十
29、六进制数据输出+12500000000 1111101000FAH+2500000000 001100100032H+0.500000000 000000010001H-0.511111111 11111111FFFFH-2511111111 11001110FFCEH-5511111111 10010010FF92H当系统处于正常工作状态时,要循环的对温度数据采集、显示和判定。对温度值的读取由DS18B20来完成。DS18B20是一线式的器件,数据的读写都通过一个数据端口来完成。因此对DS18B20的操纵时序就要求比较高。读取和写入数据的过程中无法被中断,因此在DS18B20的读写的情况下关
30、闭中断。 DS18B20的操纵是典型的操纵类程序。共享4个函数来完成。初始化、读数据、写数据和得到温度4个函数。DS18B20操纵程序的流程图如图3-7所示。初始化初始化ds18b20写温度转换命令等待温度转换命令读取温度值温度程序结束图3-5 DS18B20流程图3.6 中断程序在DS18B20的程序中,当启动DS18B20温度转换之后,需要等待750ms以上,才能从DS18B20端口上读到当前的温度值。而红外的数据什么时候到来是不确定的,为了平衡二者的关系。使用定时器中断,来产生5ms的中断。没当中断到来读取红外的端口,当红外有输出时,打开内部计数器来记录红外被遮挡的时刻。通过定时器中断不
31、仅满足的DS18B20的读取问题,也兼顾了红外数据的读取和显示的问题。定时器中断流程图如图3-9所示。进入中断、定时进入中断、定时存数据爱护现场取数据指向下一地址请标志位开始退出现场结束图3-6 定时器中断子程序流程图3.7 光线检测与步进电机操纵子程序依照本设计的模拟量转换要求,系统采纳的ADC083是8位分辨率的A/D转换芯片,其最高分辨可达256级,转换时刻仅为32S,转换速度快且稳定性能强,完全能够达到要求。因其内部参考电压的复用与电源的输入,使得芯片的模拟电压输入保持在05V之间,达到稳定的工作状态。芯片还具有双数据输出可作为数据校验,能够有效地减少数据误差。选用独立的芯片使能输入,
32、通过数据输入,我们能够专门容易地实现信道选择功能。光线检测要紧是通过ADC0832来完成的。通过读取ADC0832的值,并与上一个读取的值相比较,来推断光线是变暗了依旧变亮了。依照本次读取的值和上次读取的值取差值,用差值来操纵电机的正反转以及电机的转动幅度。光线检测与步进电机操纵子程序的流程图如图3-10所示。初始化DS18B20初始化DS18B20开始读取模数转换值 保存检测值,计算初始值或上一值的差值取反转程序及转动幅度 推断差值的大小取正转程序及转动幅度结束小于0大于0等于0图3-7 光线检测与步进电机操纵程序流程图3.8 报警条件子程序报警条件讲明 :(1)密码输入:当密码输入错误时报
33、警,密码输入正确则进行下一步操作;(2)红外传感器:红外被遮挡5秒以上为达到报警条件,以下为未达到报警条件。因为所要监测的传感器要紧是温度传感器和红外传感器,任何一个传感器假如达到报警条件,都能够发出报警信号。在硬件设计方面差不多对每个传感器的报警条件进行了设置。程序流程图如图3-11所示。 读取密码值读取密码值初始化进入报警状态读取红外值推断密码是否正确红外值是否达到阀值报警是否解除开始结束YNNY 图3-8 报警条件子程序流程图4 智能家居操纵系统软件调试环境与分析结果本次系统调试,是以硬件模块为准,先模块后整合的方式进行的。因此,单片机的差不多时钟和引脚设置必不可少。在系统联调时,出现了
34、许多实际问题。现将要紧方面阐述如下。4.1 开发环境简介 4.1.1 编程软件介绍 在本设计中,由于用的是C语言编程,因此我选用的软件开发环境是美国Keil SOFTWARE公司出品的51系列兼容单片机。KEIL VISION能够方便的使用同时利用其强大的仿真功能进行软硬件的调试工作。目前最新版的KEIL系统提供了包括于C编译器、宏汇编、连接器、库治理和一个功能强大的仿真调试器等在内的一整套完善的开发方案,并能够通过一个集成开发环境(UVISION)将这些部分严密的组合在一起共同工作。WIN98、NT、WIN2000、WINXP等操作系统都能够有效的运行KEIL软件进行编程。 实际使用KEIL
35、 51时,干集成环境既可用于C语言开发也可用于汇编语言开发。它内部集成了文件编辑、项目治理、编译链接和仿真调试等多种功能。用户能够在那个地点用文件编辑器编写自己的程序,用多种方法来调试和修改程序。编译程序也能关心用户检查错误,提示用户修改错误,直至程序无误。 为了使软件编程环境更加灵活多样,因此在2009年2月公布了引入灵活的窗口治理系统的UVISION4编程环境,能够使用更多的监视器,视觉上能够对窗口位置的任何地点进行完全操纵是本次软件更新的最大亮点,同时充分利用屏幕空间和更有效地组织多个窗口是新的用户界面显著地特点,它为我们提供一个整洁的、高效的环境来开发应用程序以提高工作效果。 4.1.
36、2 程序的工程建立 (1)先建立一个名为“hyx”的空文件夹,把工程文件放到里面,防止和其它文件相混。开始工作并启动KEIL UVISION4软件。 (2)点击“PROJECT-NEW UVISION PROJECT”新建一个系统工程。 (3)在弹出的对话框中,选择刚刚建立的“HYX”的文件夹,保存该项目的名称,不需要填写,默认的工程后缀与UVISION3及UVISION2版本不同了,为UVPORJ。(4)弹出一个对话框后,就能够依照设计中所需要的单片机。能够在找到并选中“HYX”下的AT89C52,用于开始编译程序。 (5)编程完毕之后,开始建立一个源程序文本: (6)找一个空白的文档开始写
37、入源程序。 (7)输入源程序文件名名称,因为是C语言,则是“HYX.C”然后保存。 (8)在项目设置中,能够编译、链接,选择菜单项目建立目标,连接到单一的工程项目,生成代码。如下图3-3所示:图4-1 基于Keil的编程讲明图4.2 程序的调试在对工程成功的进行汇编、连接后,要进入软件调试状态,只要选择菜单中的DEBUGSTART/STOP DEBUG SESSION即可,并建立了一个仿真CPU用来模拟执行该程序。 4.2.1 主程序的调试 因为本设计中采纳的模块较多因此系统采纳了实时多任务系统,实行逐个分任务进行调试。当逐个子程序调试好以后,再观看各个任务同时运行时操作系统中有没有错误。等调
38、试全部完成后,为了调试效果应反复运行多次,其中如发觉错误时部分程序作了适当修正后系统才能够正常运行。利用单步运行的的性质,能够对一些多次循环重复的程序进行检查。而如此的调试能够选用KEIL VISION开发环境来进行调试,既方便又快捷。从中找到程序出错的环节及故障点进行修改,直到程序完全正常。如下图3-4所示: 图4-2 Keil程序的调试 4.2.2 软件抗干扰措施当单片机受到干扰,不再按照一定的规律执行,被改变了的程序指针(PC)的值后,使程序而跑飞到其它非程序区,此后它不仅执行了一系列毫无意义的指令,而且还可能破坏数据存储器的内容,造成难以预料的后果。激活看门狗的程序其工作指令如下程序:
39、 SFR WDTRST = 0XA6 _NOP_(); WDTRST = 0X1E ;先送1E WDTRST = 0XE1 ;后送E14.3 调试结果展示设计中的要求差不多完成,如下图4-1和4-2所示:开机画面,需输入正确密码密码正确后,会显示当前室内温度 (3)红外,光敏,步进电机都能实现且运行良好图4-3 开机画面图4-4 温度及其他显示画面5 结论及展望 智能家居操纵系统的核心任务是数据的采集、运算和处理,关于实际物理量的采集必须要有传感器。传感器是一种检测装置,它能够直接将物理量转换为电信号的量,现今的传感器还能直接将物理量转换为单片机能够接收的数字量。传感器的工作指标与运行性能是能
40、否圆满完成检测和操纵的重要环节,假如没有对原始物理量精确可靠的反应,那么就无法进行最佳检测和操纵。 本设计的操纵系统是基于STC89C52单片机为核心,进行必要的计算技术,以软件代替专门多传统的操纵系统的硬件,多种功能完美的将多种系统功能集于一身。用本文设计的智能家居操纵系统具有如下特点: (1)通过矩阵键盘输入密码,当密码正确电路进入正常工作状态。 (2)系统实时监测红外传感器的值,能够对非法进入的情况进行报警。 (3)实时采集温度值,将室内的温度值实时的显示出来。 (4)实时采集光线强度值,通过光线强度值来操纵窗帘的开合,来保持室内光线的稳定。 (5)单片机及接口电路的设计使I/O接口线利
41、用率高。电路简单、成本降低、外接器件少、性能可靠。 展望,家居环境的实际情况比较复杂,需要测量的参数一般都比较多,本设计要紧采集了温度参数,红外参数以及光线强度参数等。温度是家庭室内舒适度的一个重要参数。为了防止人员的非法进入红外参数也是一个比较重要的参数,为了能够操纵室内的光线强度,对光线强度的检测和对窗帘电机的操纵也是必不可少的。为了提高一些设备使用的安全性,进行简单的密码认证也是专门必要的。本课题所设计的智能家居操纵系统能够用来检测非法进入、温度值、光线强度以及密码认证。 本设计也有许多不足之处,最明显的是所涉及的家居家电太少,以及智能化的操作行不高,假如有可能我会在原方案上加入以下的系
42、统: (1)在原模块上加上万年历以及烟雾报警系统。 (2)在原来的设计上加入远程操纵系统(GSM),是整个设计更加体现智能化家具的价值。 现在基于各种因素限制,因此本系统设计只能做到如此。附录一 程序清单#include#include #include #definetime_length10000/us#defineinf_length5/s#definetemp_max40/度#defineL1602_DBP0sbit L1602_RS=P27;sbit L1602_RW=P26; sbit L1602_E=P25;sbit ds18b20_bit = P10;sbit Inf_bit=
43、 P32;sbit KEY_LA=P11;sbit KEY_LB=P12; sbit KEY_LC=P13;sbit KEY_LD=P14;sbit KEY_L1=P15; sbit KEY_L2=P16;sbit KEY_L3=P17;sbit ADC0832_CS=P20;sbit ADC0832_CLK=P21;sbit ADC0832_DI=P23; sbit ADC0832_DO=P22;sbit SETP_1=P34;sbit SETP_2=P35;sbit SETP_3=P36; sbit SETP_4=P37;sbit Beep_bit=P33;unsignedcharbdat
44、astatus;sbitnormal_work= status0;sbitflag_alarm= status1;sbitflag_1820= status2;sbitflag_inf= status3;unsigned char code time_num_h = (unsigned char)(65536-time_length)/256);unsigned char code time_num_l = (unsigned char)(65536-time_length)%256);unsigned char code ticks_second = (unsigned char)(1000
45、000/time_length);unsignedchartemperature=30;unsignedcharseconds=0;unsignedcharadc_value=0;unsignedcharworkstate = 0;unsigned char psd6;staticcode unsigned charDPY_TAB16 = 0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0X77,0X7c,0X39,0X5e,0X79,0X71,;static code unsigned char MOTOR_STEP8 = 0 x80,0
46、xc0,0 x40,0 x60,0 x20,0 x30,0 x10,0 x90;unsigned char lcd_data16=KEY: *;/*延时函数 */voiddelayms(unsigned char ms)unsigned chari,j;while(ms-)for(i=0;i3;i+)for(j=0;j107;j+);/*延时函数 */voiddelay100us(unsignedcharcnt)unsignedchari,j;for(i=0;icnt;i+)for(j=0;j22;j+)_nop_();/*延时函数 */voiddelay10us(void)_nop_();_
47、nop_();_nop_();_nop_();_nop_();_nop_();/*按键状态判定函数 */unsigned charkey_station(void)unsigned chari,key;KEY_LA=0;KEY_LB=0;KEY_LC=0;KEY_LD=0;i=P1;i&=0 xE0;if(i = 0 xE0)key=0;elsedelayms(10);i=P1;i&=0 xE0;if(i = 0 xE0)key=0;elseKEY_LA=0;KEY_LB=1;KEY_LC=1;KEY_LD=1;i=P1;i&=0 xE0;i=i;if(i & 0 x80)key = 0 x3
48、1;if(i & 0 x40)key = 0 x32;if(i & 0 x20)key = 0 x33;KEY_LA=1;KEY_LB=0;KEY_LC=1;KEY_LD=1;i=P1;i&=0 xE0;i=i;if(i & 0 x80)key = 0 x34;if(i & 0 x40)key = 0 x35;if(i & 0 x20)key = 0 x36;KEY_LA=1;KEY_LB=1;KEY_LC=0;KEY_LD=1;i=P1;i&=0 xE0;i=i;if(i & 0 x80)key = 0 x37;if(i & 0 x40)key = 0 x38;if(i & 0 x20)ke
49、y = 0 x39;KEY_LA=1;KEY_LB=1;KEY_LC=1;KEY_LD=0;i=P1;i&=0 xE0;i=i;if(i & 0 x80)key = 0 x08;if(i & 0 x40)key = 0 x30;if(i & 0 x20)key = 0 x0D;KEY_LA=0;KEY_LB=0;KEY_LC=0;KEY_LD=0;while(1)i=P1;i&=0 xE0;if(i = 0 xE0)delayms(10);i=P1;i&=0 xE0;if(i = 0 xE0)break;KEY_LA=1;KEY_LB=1;KEY_LC=1;KEY_LD=1;returnkey
50、;/* DS18B20 程序 *voidInit_DS18B20(void)unsignedchari;ds18b20_bit=1;_nop_();ds18b20_bit=0;delay100us(5);ds18b20_bit=1;delay10us();delay10us();delay10us();delay10us();delay10us();delay10us();if(ds18b20_bit=0)for(i=0;i250;i+)if(ds18b20_bit = 1)delay100us(3);flag_1820= 1;elseflag_1820=0; /*读18B20函数 */uns
51、ignedcharread_18b20(void)unsignedchari;unsigned charc;for(i=0;i=1; if(ds18b20_bit = 1) c |= 0 x80; else c &= 0 x7f; delay10us();delay10us();delay10us();delay10us();delay10us();ds18b20_bit = 1;returnc;/*写18B20函数 */voidwrite_18b20(unsigned char cnt)unsignedchari;for(i=0;i=1;/*得到温度值函数 */unsigned intget
52、_number_18b20(void)unsigned char temp=0;unsignedchar h,l;Init_DS18B20();if(flag_1820 = 1)EA=0;write_18b20(0 xcc);write_18b20(0 x44);EA=1;delayms(200);delayms(200);delayms(200);delayms(200); Init_DS18B20();EA=0;write_18b20(0 xcc);write_18b20(0 xbe);l = read_18b20();h = read_18b20();EA=1;temp = h;temp
53、 = temp 4;temp += l;if(h & 0 xf0) !=0)temp -= 1;temp = temp;temp |= 0 x80;returntemp;/* DS18B20 程序 */* LCD1602 程序 *staticunsigned char L1602_read_status() unsigned char s;L1602_RW=1; L1602_RS=0;L1602_E=0; L1602_DB=0 xff;_nop_();_nop_();L1602_E=1;_nop_();_nop_();s=L1602_DB;L1602_RW=1;_nop_();return(s
54、);void L1602_write_command( unsigned char com )unsigned char i;do i=L1602_read_status(); i&=0 x80; delayms(2);while(i!=0); L1602_DB=com;L1602_RW=0;/L1602_RS=0;L1602_E=1;/ _nop_();_nop_();L1602_E=0;/ _nop_();_nop_();L1602_RW=1; void L1602_write_data( unsigned char dat ) unsigned char i;do i=L1602_rea
55、d_status(); i=i&0 x80; delayms( 2);while(i!=0); L1602_DB=dat;L1602_RW=0;L1602_RS=1;L1602_E=1;_nop_();_nop_();L1602_E=0;_nop_();_nop_();L1602_RW=1;void L1602_init( void ) L1602_write_command(0 x38);L1602_write_command(0 x0C);L1602_write_command(0 x06);L1602_write_command(0 x01);delayms(2); voidLCD_di
56、splay_char(unsigned char x , unsigned char y , unsigned char dat)unsigned char add;if(x=1)add=0 x80+y;elseadd=0 xc0+y;L1602_write_command(add);L1602_write_data(dat);voidLCD_display_str(unsigned char x)unsigned char i;if(x = 0 x01)L1602_write_command(0 x80);elseL1602_write_command(0 xc0);for(i=0;i16;
57、i+)if(lcd_datai = 0)break;L1602_write_data(lcd_datai);voidLCD_clear(void)unsigned char i;L1602_write_command(0 x80);for(i=0;i16;i+)L1602_write_data(0 x20);L1602_write_command(0 xc0);for(i=0;i= 6)if(skey = 0 x0D)if(psd0=0 x31)&(psd1=0 x32)&(psd2=0 x33)&(psd3=0 x34)&(psd4=0 x35)&(psd5=0 x36)LCD_clear(
58、);strcpy(lcd_data, The password is);LCD_display_str(1);strcpy(lcd_data, Right !);LCD_display_str(2);delayms(200);delayms(200);delayms(200);delayms(200);delayms(200);LCD_clear();break;elseLCD_clear();strcpy(lcd_data, The password is);LCD_display_str(1);strcpy(lcd_data, Worng!);LCD_display_str(2); Bee
59、p_bit = 1;delayms(200);delayms(200);delayms(200);delayms(200);delayms(200);count=0;psd_clear();LCD_clear();Beep_bit = 0;strcpy(lcd_data, Please input the);LCD_display_str(1);strcpy(lcd_data, Password:);LCD_display_str(2);if(skey = 0 x08)count-;psdcount=0;LCD_display_char(2,9+count,0 x20);elseif(skey
60、 = 0 x0D)LCD_clear();strcpy(lcd_data, The password is);LCD_display_str(1);strcpy(lcd_data, Worng! );LCD_display_str(2); Beep_bit = 1;delayms(200);delayms(200);delayms(200);delayms(200);delayms(200);count=0;psd_clear();LCD_clear();Beep_bit = 0;strcpy(lcd_data, Please input the);LCD_display_str(1);str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模因论融入大学英语写作教学:理论、实践与成效探究
- 槟榔碱对口腔粘膜成纤维细胞uPARAP表达影响的机制探究
- 2026年高考作文预测及佳作赏析《知行之间踏歌而行》
- 左半结肠根治性切除术后护理查房
- 雨课堂学堂在线学堂云《万众创新第一课:创新总论与技术产业化(吴贵生工作室)》单元测试考核答案
- 2024-2025学年广东深圳盐田高级中学高一下学期期中语文试题含答案
- 2025-2026学年高三下学期四月阶段检测 英语
- 2024年江苏省镇江市丹阳市小升初数学试卷
- 课程标准与教材开发作业指导书
- 个人时间管理策略方案预案
- ISO27001最新版信息风险评估表
- 商铺出租可行性方案
- 写字楼物业各项应急预案
- 基于无人机的公路基础设施健康监测与安全预警系统设计
- 2023年非车险核保考试真题模拟汇编(共396题)
- 市场监管总局直属事业单位招聘考试题库2023
- 高三通用技术专题复习草图设计-转动类连接件
- 2022-2023年明纬开关电源手册
- 家庭伦理思想及性理疗病课堂参考教材-教材讲义
- 劳动教育智慧树知到答案章节测试2023年丽水学院
- 家具(家居)公司专卖店加盟管理手册
评论
0/150
提交评论