您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页简易智能家居系统

简易智能家居系统

来源:抵帆知识网


武夷学院 毕业论文 (设计)

简易智能家居系统

院 系 : 专业(班级): 姓 名: 学 号: 指导教师: 职 称: 完成日期:

电子工程系 09电子信息工程(1)班

王珍 20094081034 邵海龙 讲师 年 月 日

摘 要

随着人们生活水平的不断提高,生活质量也越来越好,人们追求高品质住房的要求也不断提高,所以家居智能化概念的普及,智能化装修的观念必将深入人心。近年来智能家居系统已经开始一步一步地走进越来越多的普通家庭。

本设计是以单片机STC12C5A60S2为主控核心,通过红外对射管计数器检测探测房间内进出人数并记录在单片机中,当有人在房间时开启整个系统,否则不开启。通过LCD1602能够显示当前房间内的温度和亮度的实时情况,系统会根据房间内光的亮度来自动调整照明装置的亮暗,根据房间内的温度的高低来来调整风扇的大小。与此同时还在模块中添加了按键功能实现手动的调节,进而实现智能效果。该智能家居系统性能良好,工作稳定可靠,易于维护升级,具有很高的性价比。

关键词:智能家居;单片机 ;光敏感应;温度感应

II

Abstract

With the continuous improvement of people's living standard, peoples’ life is becoming better and better, the demand of striving for high quality housing is also rising, so the concepts of household intelligent will be spread, intelligent decoration idea is also be popularly supported. In fact, the smart home system in recent years has begun to go into a growing number of ordinary households step by step.

This design uses the STC12C5A60S2 microcontroller to control the core,Through the dual active infrared detector to detect the number of people who come into or out the room and recorded in the single chip microcomputer. When the people in the house then open the whole system, or does not work,Through the LCD1602 to display the current temperature in the room and the luminance of light,The system will automatically adjust the brightness in the room lighting device of light to the light and dark, According to the room temperature to adjust the size of wind power. At the same time we also added to the key function of the realization of manual adjustment. In this paper, we detailed analysis the principle of hardware circuit, software design method the smart home system in good, stable and reliable operation, easy maintenanced and upgrade, have very high price/performance ratio.

Key words:Smart Home;SCM;The Photosensitive Induction;Temperature Sense

III

目 录

1 引言 ................................................................... 1 2 简易智能家居系统的简介 ................................................. 1

2.1 简易智能家居系统的简介 ............................................. 1 2.2 简易智能家居系统的背景及应用 ....................................... 1 2.3 简易智能家居系统的发展趋势 ......................................... 2 3 简易智能家居系统的总体设计方案及论证 ................................... 3

3.1 简易智能家居系统总体设计方案 ....................................... 3 3.2 系统基本方案的论证与选择 ........................................... 3

3.2.1 单片机的选择 ................................................. 3 3.2.2 温度传感器的选择 ............................................. 3 3.2.3 光强传感器的选择 ............................................. 4 3.2.4 显示模块的选择 ............................................... 4

4 简易智能家居系统硬件电路设计 ........................................... 5

4.1 简易智能家居系统总体结构 ........................................... 5 4.2 简易智能家居系统设计模块 ........................................... 6

4.2.1 主控模块 ..................................................... 6 4.2.2 驱动模块 ..................................................... 6 4.2.3 稳压电源模块 ................................................. 7 4.2.4 温度采集模块 ................................................. 7 4.2.5 光强采集模块 ................................................. 8 4.2.6 按键模块 ..................................................... 8 4.2.7 LCD显示模块 ................................................. 8 4.2.8无线传输模块 ................................................. 9

5 系统软件程序设计 ....................................................... 9

5.1 系统总流程图 ....................................................... 9 5.2 DS18B20温度控制程序设计 .......................................... 10 5.3 光敏电阻控制程序设计 .............................................. 11 5.4 1602显示子程序设计 ............................................... 12

IV

5.5 无线模块程序设计 .................................................. 13 5.6 红外检测模块程序设计 .............................................. 14 6 系统制作及调试 ........................................................ 15

6.1 硬件制作与调试 .................................................... 15

6.1.1 系统PCB板的设计 ............................................ 15 6.1.2 系统硬件调试 ................................................ 15 6.2 软件调试 .......................................................... 16 7 结论 .................................................................. 16 谢辞 ..................................................................... 16 参考文献 ................................................................. 18 附录A ................................................................... 19 附录B ................................................................... 27

V

简易智能家居系统

1 引 言

随着社会的进步人们生活水平不断提高,精神和物质上的品味都有了很大的改变。现代社会人们不再只求生活的需要,而是更多的追求生活的智能化。现在人们生活质量越来越好,居住是一个重要的选择,随着家居智能化概念的普及,智能化装修的观念必将深入人心,家居智能化装修的选择必将是大势所趋。近年来智能家居系统也已开始一步一步走进越来越多的普通家庭。起初,智能家居连接的只是一些简单的家电设备,但是随着现代高科技技术发展的今天,将实现多种电器相互连接控制,实现智能化来适应生活需要。即便您的家居已装修也可轻松升级为智能家居,不再是人们所担心的问题了。

本设计要通过单片机STC12C5A60S2为主控芯片,CC1101来无线发送和接收,实现一个能够通过红外对射管计数器检测房间内人数进出,当房间内有人时系统会根据房间内光线的强弱来自动调整照明装置的亮暗,根据房间内的温度的高低来调整风扇的大小的一个简易系统,可以通过主控模块中的按键来实现手动调整风扇转速和照明灯的强弱,最后会通过LCD1602显示当前房间内的温度和亮度变化值情况。

2 简易智能家居系统的简介

2.1 简易智能家居系统的简介

智能家居又称智能住宅,是以住宅为平台,结合各种高科技技术如网络通信技术,数字化技术等将各种家电有效地联合为一体控制,实现家居的安全性、可靠性、稳定性、舒适性等。在各地对智能家居都有不同的理解含义,在欧美国家称智能家居为电子家庭、网络家居、智能家庭/建筑,而在我国和等地区,还有数码家庭、数码家居等称法[1]。智能家居不是一个单独的产品,是一种能让人们轻松享受生活的居住环境,能实现家庭生活更加安全,节能,智能,便利和舒适[2]。智能家居之所以能够成为众人追捧的热点也不足为奇,因为它为人类提供了一个舒适轻松的生活环境,造福了人类。

2.2 简易智能家居系统的背景及应用

1

近年来,随着房价不断上涨,作为拥有大户型家居的“80后”和中产阶级的户主们必将更注重房屋的装修质量。大户型住房的装修不同于普通家装,通常大户型的房主非常注意提升自己的生活品质和生命质量,对自己住房的装修也有着严格的要求,主要是建造一个安全、舒适、清新、便利的生活环境。我国将住宅小区智能化定义为:利用4C(即计算机、通讯与网络、自控、IC卡)技术,通过有效的传输网络,将多元信息服务与管理、物业管理与安防、住宅智能化系统集成,为住宅小区的服务与管理提供高技术的智能化手段,以实现快捷高效的超值服务与管理,提供安全舒适的家居环境[3]。

智能家居技术主要面向通讯或控制方面,主要涉及硬件接口和软件协议两部分。对此在1988年编制了世界上第一个适用于家庭住宅的电气设计标准,即《家庭自动化系统与通信标准》有鉴于此很多公司都相继的推出基于物联网的智能家居,是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理、控制为一体的高效、舒适、安全、便利、环保的居住环境[4]。很多国家都相继的提出各种方案来设计出符合人类理想居住的智能家居。在《2012-2020年中国智能家居市场发展趋势及投资机会分析报告》分析了智能家居各子系统产品领域的发展状况、企业销售额、省市区域分布情况[5];具体统计了最近几年来的销售情况,并对未来智能家居做了规划和预测,报告重点分析了智能家居在人们生活中的运用如:家庭防盗,楼宇对讲系统,家庭监控系统等。这些都和人们生活息息相关也将对人类以后选择智能家居做更好的铺垫。

2.3 简易智能家居系统的发展趋势

近年来我们国家在对家居环保方面也下了不少功夫,以节约减排,绿色环保为主要目标,凸显现代智能家居的合理规划,共同创建一个绿色智能家居。随着现代人民生活水平的提高,人们对居住意识也有一定的增强,更会去注重家庭的舒适,方便,安全等,所以越来越多家庭倾向于选择智能家居装置,因此智能家居系统必将有一个很好的发展前景。作为智能家居核心系统的智能家居控制系统,它设计功能的完善必将推动住宅智能化的发展,智能家居系统也在各方面不断的完善,最终将发展成为一个功能集成、市场平民化的系统。随着信息化走进千家万户,由国家经贸委牵头成立了家庭信息网络委员会,而信息网络技术体系研究及产品开发已经被列为国家技术创新的重点专项计划[6]。智能家居数据采集终端以现代的信息化、智能化、网络化等为发展方向,形成了一个综合的数据端采集系统。智能家居是人们追求高品质生活的体现,它将不断的涌入社会更多的家庭,它的存在势必掀起一场热潮。家居智能化控制的开发和建设是未来国家、经

2

济发展的必然趋势。

3 简易智能家居系统的总体设计方案及论证

3.1 简易智能家居系统总体设计方案

本设计采用的是单片机STC12C5A60S2为主控芯片,通过红外对射管计数器来检测进出房间的人数,记录在单片机中。当有人进入房间时开启整个系统,温度采集模块采集是用DS18B20,采集周围环境温度与参考值进行对比,光照采集模块是采用光敏电阻,光敏电阻采集周围的的光照强度和设定的参考值进行对比,通过无线模块将主控板中采集到的数据处理后发送给下位机,下位机接收信息后调整风扇和照明灯,如果周围温度低于参考值则不开风扇若是高于参考值风扇则会随周围温度变化来进行自动调整,能够让室内的温度保持在一个特定的环境中,如果周围光强低于参考值,照明灯会随着光线强弱来自动调整,与此同时还在主控模块中添加按键功能实现手动的调节,若是没人则不开启。

3.2 系统基本方案的论证与选择

3.2.1 单片机的选择

方案一: 选用 ATC52芯片,内部具有 4KB ROM 存储空间,最低承受电压为3V,而且与 MCS-51 系列单片机完全兼容[7]。 但是由于ATC52不具备 ISP 在线编程技术和PWM调节。当要烧入程序对软件调试时,要对芯片多次拔插不仅会对芯片造成一定的损坏更严重的还会使芯片烧坏。所以ATC52不适合运用于本次电路设计。

方案二: 选用 STC12C5A60S2,该芯片内部有 8KB ROM 的存储空间,最低承受电压为3V;除了具有与ATC52相同的功能外,还具有在线编程可擦除技术,PWM的调节。当要烧入程序对软件调试时,STC12C5A60S2可以不需要拔下芯片烧写,直接对芯片进行改写这样就减少了对芯片的损伤。综上所述,本设计选择 STC12C5A60S2作为主控制系统的核心。

3.2.2 温度传感器的选择

方案一: 选用热敏电阻作为温度传感器,它温度灵敏度高,热惰性小,寿命长,体积小,结构简单等,它最基本的特性是其阻值随温度的变化有极为显著的变化,热敏电阻通过与一个电阻串联来分压,利用伏安特性分析两个电阻变化的电压值,采集数值

3

并进行 A/D 转换。此设计方案需用 A/D 转换电路,不但增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,敏感度较大就会产生较大的测量误差。

方案二: 采用数字式温度传感器 DS18B20,DS18B20总共有三个端口中间的DQ为数字信号输入/输出端,其余两个分别为电源和接地端口,输入/输出只有一个端口易于与单片机连接,这样就可以去除 A/D 模块,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。综上所述,本设计选择 DS18B20 对温度进行采集。

3.2.3 光强传感器的选择

方案一:TSL256x是第二代周围环境光强度传感器。采用TSL256x实现光强度实时监测的系统,具有精度高、体积小等优点,芯片内部集成了积分式A/D转换器,采用数字信号输出,因此抗干扰能力比同类芯片强[8]。但是由于该芯片价格昂贵,对电路精度,布线方面要求较高。所以在本次设计中不适用。

方案二:使用光敏电阻作为传感器,具有灵敏度高,所测光谱范围广。光敏电阻会感应光源来改变电阻阻值。此设计现实中声光控制技术的运用已经证明了光敏电阻完全可以达到实际要求,且价格低廉,电路简单等优点[9]。

3.2.4 显示模块的选择

方案一:采用LED数码管动态显示,显示较为直观,发光效果较好,对于显示数字最适合,而且显示结果较为单一,不采用。

方案二:采用LCD液晶显示屏,其能够清晰地显示各种文字、数字、字母等易于辨认,可以给人们视觉带来舒适感。综上所述所以采用LCD液晶显示屏作为本设计的显示器。

4

4 简易智能家居系统硬件电路设计

4.1 简易智能家居系统总体结构

本设计采用的是单片机STC12C5A60S2为主控芯片,电源模块为单片机供电,通过按键来改变照明灯强弱和风扇大小,通过温度传感器和光敏电阻采集数据经过单片机处理后在LCD1602上显示,最后采用CC1101进行无线发送。系统框图如图4-1所示,下位机通过CC1101无线接收主控系统发来的数据,单片机处理后通过驱动模块驱动照明

灯和风扇工作,结构框图如4-3所示。

电源模块 显示模块 按键输入模块 单 无线发送模块

片机 温度采集模块

光强采集模块 图4-1 主控系统框图

5

照明灯亮暗

无线接收 驱动模块 单片机图4-2下位机框图

风扇转速快慢

4.2 简易智能家居系统设计模块

4.2.1 主控模块

STC12C5A60S2单片机是一个小系统,因为它包含了采集模块和控制模块中所需的单元模块。STC12C5A60S2是一种带60K字节FLASH存储器的低电压、高性能单片机

[9]

。该单片机只要通过串行口就可以进行程序调试和软件更新。STC12C5A60S2单片机

最小系统包括晶体振荡器电路、复位开关电路如图4-4所示。

图4-4 STC12C5A60S2最小系统

4.2.2 驱动模块

本次驱动电路中采用的是L298做为电路的驱动模块电路图如图4-5所示,用单片机的P1.3和P1.4输出的PWM来控制驱动模块,来驱动风扇转动。其工作电压高,最高工作电压可达46V,输出电流大,瞬间峰值电流可达3A,持续工作电流为2A,额定

6

功率25W[10]。

图4-5驱动电路

4.2.3 稳压电源模块

7805构成的稳压电路只要输入电压在7V到36V之间,电路的输出就将稳定在+5V,给单片机提供需要的电压。此电路中给定输入的电压为7.8V,使得输出的电压稳定在5V。稳压电路图如图4-6所示:

图4-6稳压电路

4.2.4 温度采集模块

DS18B20总共有三个端口中间的DQ为数字信号输入/输出端;其中GND为电源地电路图如图4-7所示;VCC为外接供电电源输入端,此传感器是用单片机的P3.7口控制。DS18B20适用范围广,相对测温度也比较精确。在寄生电源接线方式时接地,工作原理中只要将数据端接个电阻即可完成其测温,方便且操作简单。

7

图4-7温度采集电路

4.2.5 光强采集模块

光敏电阻属半导体光敏器件,除具灵敏度高,反应速度快,光敏电阻只要将一端接地,另外一个端接上一个10k的电阻分压作用再接到电源上[11]。用单片机的P1.0口控制,就能对光照进行采集。

4.2.6 按键模块

最常见的按键电路有一对一的直接连接和动态扫描的矩阵式连接两种。一对一的直接连接就是一个按键直接对应一个CPU的输入口,即式键盘,用单片机P1.2-P1.5端口来控制按键。本设计有四个按键来调整风扇大小和照明灯亮暗,采用单片机端口一对一直接控制按键,只占用了单片机四个端口,方便又简单。连接方式如图4-8所示:

图4-8按键电路

4.2.7 LCD显示模块

1602液晶也叫1602字符型液晶,其能够清晰地显示各种文字、数字、字母等易于辨认,可以给人们视觉带来舒适感。传感器采集到温度和光照强度转换值,通过单片机

8

控制在液晶显示屏中显示出。本次的设计中我们要显示温度数值以及字母,1602液晶能够很清晰的显示,简单易读,所以此次方案我们采用的是1602LCD。

4.2.8无线传输模块

CC1101是一款低于1GHz高性能射频收发器,设计旨在用于极低功耗RF应用。其主要针对工业、科研和医疗(ISM)以及短距离无线通信设备(SRD)[12]。本系统的CC1101是通过单片机的P3.0及P3.1口控制接收和发射的。无线电路连接图如图4-9所示:

图4-9无线电路

5 系统软件程序设计

5.1 系统总流程图

本设计通过用Keil进行编程调试,先对参数进行初始化,用红外对射管计数器检测是否有人进入房间,当检测到有人时单片机开始工作。先对温度进行采集,通过DS18B20采集当前周围环境温度与参考值对比,用光敏电阻采集当前周围环境光强与参考值对比,照明灯和风扇都会自行的调整同时也可以按键来控制。

9

开始 初始化 开始 初始化 温度采集 开始 初始化 N 红外探测是否有人? Y 单片机开始工作

接收数据 光强采集 风扇控制 按键控制 照明控制 无线发送 (a)红外探测流程图 (b)主控模块流程图 (c)下位机流程图

图5-1 系统总流程图

5.2 DS18B20温度控制程序设计

DS18B20中有3个端口,其中一个接地一个接电源,数据端接个电阻即可完成其测温,首先为程序需要的参数初始化设定参考值,DS18B20感应周围环境的温度,当温度高于参考值时开启风扇,风扇会根据当前温度进行自动调整[13]。若是风扇的转速不满意时可以用手动按键来加大或减小风扇速度,当温度低于参考值则不需要开启任何装置,结束程序。工作流程图如5-2所示:

10

N 温度是否高于参考值 初始化 开始

Y 关闭风扇

开启风扇

按键控制 结束 图5-2 温度控制设计

5.3 光敏电阻控制程序设计

光敏电阻有两个端口只要将一端接地,另外一个端接上一个10k的电阻分压作用再接到电源上。光敏电阻检测房间内的光照强度是否低于参考值,若是则要开启照明装置,照明灯会根据周围光线自动调整,当光强高于参考值则不需要开启任何装置结束程序。还可以通过按键对光强进行加强或减弱。工作流程图如图5-3所示:

11

初始化 开始 N 光强是否低于参考值

Y 开启照明灯 按键控制 结束 图5-3 光强控制设计

关闭照明灯 5.4 1602显示子程序设计

1602驱动程序设计主要是读写程序的设计。由时序图可知,LCD的工作时序与51单片机的读写时序不同。只能用软件模拟的方式产生工作时序。驱动程序可分为四种情况:LCD写命令、LCD读状态、LCD读数据、LCD写数据。流程图如图5-4所示。

12

LCD写命令LCD写数据LCD读状态LCD读数据RS=0,E=0,RW=0RS=1,E=0,RW=0RS=0,E=0,RW=1RS=1,E=0,RW=1输出数据输出数据输出数据输出数据E产生正脉冲E产生正脉冲E产生正脉冲E产生正脉冲返回返回返回返回 (a) 写命令 (b) 写数据 (c) 读状态 (d) 读数据

图5-4 LCD1602工作原理

在1602的基本读写程序基础上,还要再设计光标控制、打印字符串、显示开关、清屏等子程序。由于一些子程序只要一条命令即可完成,这里以印字符串为例说明。其它子程序均可不再编写。在1602LCD上显示字符串程序流程图如图5-5所示。

图5-5 显示流程图

5.5 无线模块程序设计

本设计的无线模块是采用CC1101,CC1101是高效的SPI接口,接受灵敏度高,视 距可靠传输距离可达350m[14]。该模块是用单片机的P3.0和P3.1口进行控制。只要将

13

CC1101其中的发射端和接收端分别接单片机的接收端和发射端,剩余的两端接电源的正负两极。需要设置的参数:波特率为9600bps通信频道为001。具体流程图如图5-6所示:

图5-6 无线模块流程图

结束 接收端接收数据 发送端发送数据 初始化 开始 设置参数 5.6 红外检测模块程序设计

本系统是采用红外对射管计数器检测, 通过单片机对采集的数据进行判断、控制, 实现有效智能调节[15]。为了能够充分体现节能,本系统的设计构想是:当红外对射管计数器没检测到人时, 此时照明灯及风扇都不启动继续检测是否有人进入;当红外对射管计数器感应到有人在房间时,单片机就会开始工作。本设计是通过用红外对射管计数器进行探测,系统总体流程图如图5-7所示:

开始 初始化 N 红外探测是否有人? Y

单片机开始工作 14

图5-7 红外检测流程图

6 系统制作及调试

6.1 硬件制作与调试

硬件制作主要是运用PCB制版技术,调试是先对制作好的硬件进行线路调试,再结合软件一起调试。经过初步的分析设计后,可以先将小模块硬件电路做好,调试看其是否能正常工作,再结合软件穿插调试是否能实现设计要求。因此硬件调试和软件调试是分不开的,很多故障也是结合两种调试后才发现的。但通常是先排除系统中明显的硬件故障后才和软件结合起来调试,如此有利于问题的分析和解决,不会造成问题的积累,从而可以节约大量的调试时间。

6.1.1 系统PCB板的设计

PCB即印刷电路板,是电子电路的承载体。PCB也是制作过程中必不可少的,当设计者设计好原理图后希望能够真正地实现设计功能就需要制作PCB板,只有PCB板才具有说服力,PCB板的设计是电路设计的最后一个环节。因此PCB板的设计是理论设计到实际应用一个十分重要的内容。印制电路板是集合元件及电路原理图为一体的电路板,只要将所需的元件焊接在电路板中,调试无误后就能实现设计者所要设计的功能。印刷电路板的设计主要指版图设计,将各元件依照原理图布局好,设置好内部参数如线宽、线距、焊盘大小等。本次设计采用protel 99SE来实现从原理图到PCB板的整体过程。

6.1.2 系统硬件调试

静态检查。静态检查就是在未上电前检查电路中元件型号是否根据电路原理图选择,有极性的元件是否反接,芯片是否反插等。再用万用表测电路中线路是否有短路现象,用逻辑笔测电路中电平和脉冲信号,确保无基本故障,特别注意电源短路和极性接反,同时也要检查数据总线、地址线和控制总线是否存在短路的故障。

通电检查。通电检查时,在电路中用模拟信号作为输入到电路输入端,查看电路板中各元件能否正常工作,整个系统的功能是否符合要求。

在调试过程中先给还未上电的电路板进行检测,用万用表测试电路中靠的近的电路之间的电阻是否无穷大避免发生短路,元件是否有反向等,这样对电路起到了一个保护作用,不然一开电电路中就会有元件烧坏,从而造成不必要的损害。要重点检查扩展系

15

统总线是否存在相互间的短路,若是有的话需及时处理。对于样机电源的选用应符合系统电压的设置,在上电之前要先对电源进行单独调试,确保电压稳定再加到系统各个模块中。在没有插入单片机的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,还特别注意单片机插座上的各点电位是否正常。

6.2 软件调试

软件编程中,首先是完成单元功能模块的调试,然后进行系统调试,整体上采用硬件调试的调试方法,软件调试与所选用的软件结构和程序设计技术有关[16]。本系统采用从分到总的模式来调试,逐个模块调好以后,再进行系统程序总调试,采用实时多任务操作系统,首先逐个任务进行调试,每个任务中又涵盖了许多的子程序都需检测到,再检测下一个任务,最后结合硬件一起调试。在调试第一个任务时,同时也调试相关的子程序、中断服务程序和操作系统的程序。等逐个任务调试好以后,再使各个任务同时运行,看是否存在错误。等各个任务都调试好后,仔细观察系统能否完成设计者的初衷,当程序需要适当的修改时系统能否稳定工作。这样才能达到软件测试的效果,最后软件结合硬件一起工作。

7 结论

本设计通过用单片机STC12C5A60S2作为控制核心,结合CC1101无线模块进行接收和发送,实现了用红外对射管计数器检测房间内人数,当检测到人时系统会根据房间内光的亮度来调整照明灯的强弱,根据房间内的温度的高低来调整风扇的大小,LCD1602能够显示当前房间内的温度和亮度变化情况,同时还可以通过按键手动控制风扇转速和光照强度。基本上能实现预设计的功能。

通过对该课题的分析和研究,我对该电路有了更深刻的认知和理解,但该电路还存在一些不够完善的地方包括监测的家居设备量不足,控制界面还不够完善,显示的温度值和风扇值精度还不够高,显示内容偏少,但是基本上还是能实现智能功能。

谢 辞

经过这段时间的不断学习,我的毕业设计终于完成了,期间遇到了很多让人头疼的问题,被各种纠结的问题烦躁着,但是在这个大家庭有老师和同学们的帮助,让我更有一种不断坚持的学习的热情,遇到不懂的时候他们都能积极的帮我解决。09级电子信息

16

工程专业这个大集体是一个有着积极奋进,充分活力、友爱互助的集体。在这里,我感受到了浓厚的学习气氛,接触到了丰富的专业知识,逐渐培养了学习研究能力。借此机会,我要衷心的感谢我的导师邵海龙老师对我的教诲、关心和帮助。在刚着手论文时,总是很迷茫不知从何开始下手,老师总是细心的给我分析每个模块,每个细节的地方。老师也给我很多参考资料教我如何向他人学习怎么写好论文,老师严谨的态度,平易近人的性格给了我很深的印象。在写论文期间邵老师给了我很明确的方向再加上老师不断的指点使我对论文有了更进一步的研究。在研究过程中,这次的毕业设计开阔了我的视野,为以后的学习、工作打下了坚实的基础。我要感谢我的那些同学和大学四年来所有的老师,他们帮助共同攻克难关的经历将成为我美好的回忆。在此向曾经帮助过我的同学表示感谢。最后,衷心的感谢电子工程系的各位老师的谆谆教导,使我顺利完成学业。

17

参 考 文 献

[1] 刘松,赵忠,孙学磊.远程家庭智能监控系统设计[M].北京:高等教育出版

社,2009:98-106.

[2] 周洪,文山,张立明,卢亦焱.智能家居控制系统[M].北京:中国电力出版

社,2006:179-190.

[3] 顾牧君.智能家居设计与施工[M].上海:同济大学出版社,2004:49.

[4] 戴其进,余萌,李子超.一种基于P2P网络的用户可编程的家庭智能平台[D].哈尔滨

工业大学,2010.

[5] 向忠宏.2012-2020年中国智能家居市场发展趋势及投资机会分析报告[R]. 广州智家科技有限公司,2012.

[6] 吴宗育.智能家居市场分析及发展趋势[Z].大连:大连工业大学出版社.2010.

http://www.docin.com/p-586213653.html

[7] 王曙霞.单片机实验与实训指导[M].西安:西安电子科技大学出版

社,2007:109-120.

[8] 姜连祥,江小燕. 基于光强传感器TSL256x的感测系统设计[M].武汉:华中科技大学

出版社,2006:43-45.

[9] 何立民.单片机应用系统设计[M].北京:航天航空大学出版社,2001:29-40. [10] 刘洋洋,郭听宇,马强.模拟路灯控制系统的设计[D].西安:西京学院,2012. [11] 许东升.光敏电阻传感器检测系统的设计[D].哈尔滨:黑龙江工程学院,2012. [12] 易定宏.基于CC1101的分布式节能测控网络的设计[D].西安:西安电子科技大

学,2011.6.http://www.elecfans.com/baike/wuxian/20110927218460.html. [13] 赵负图.传感器集成电路手册[M].北京:人民邮电出版社,2009:214-220. [14] 金发庆.传感器技术与应用[M].北京:机械工业出版社,2004:190-194.

[15] 张锴,王伟,许程,刘天山.基于单片机的节能照明控制系统设计[D].石家庄:河北

科技大学理学院.2011.

[16] 马开见.京密引水渠数字水闸远程监控系统设计[D].北京:中国农业大学,2006.

18

附录A

发送端程序:

/*----------------------------------------------- 名称:DS18b20 温度检测液晶显示 论坛:www.doflye.net 编写:shifang 日期:2009.5 修改:无 内容:

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include #include \"18b20.h\" #include \"1602.h\" #include \"delay.h\"

sfr ADC_CONTR = 0xBC; //A/D 转换控制寄存器 ADC_POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0000,0000

sfr ADC_RES = 0xBD; //A/D 转换结果高8位 ADCV.9 ADCV.8 ADCV.7 ADCV.6 ADCV.5 ADCV.4 ADCV.3 ADCV.2

0000,0000

sfr ADC_RESL = 0xBE; //A/D 转换结果低2位 sfr P1ASF = 0x9D; //P1 analog special function sfr BRT = 0x9c;

sfr AUXR = 0x8E; //Auxiliary Register T0x12 T1x12 UART_M0x6 BRTR S2SMOD BRTx12 EXTRAM S1BRS 0000,0000 //-----------------------------------

sfr AUXR1 = 0xA2; //Auxiliary Register 1 - PCA_P4 SPI_P4 S2_P4 GF2 ADRJ - DPS 0000,0000 sbit key1=P1^2; sbit key2=P1^3; sbit key3=P1^4;

19

sbit key4=P1^5;

/*Define ADC operation const for ADC_CONTR*/ #define ADC_POWER 0x80 //ADC power control bit #define ADC_FLAG 0x10 //ADC complete flag #define ADC_START 0x08 //ADC start control bit #define ADC_SPEEDLL 0x00 //0 clocks #define ADC_SPEEDL 0x20 //360 clocks #define ADC_SPEEDH 0x40 //180 clocks #define ADC_SPEEDHH 0x60 //90 clocks unsigned int ADC_result; unsigned char cmd=0,keynum=0; bit ReadTempFlag;//定义读时间标志

unsigned int get_AD_result_10F(unsigned char channel) {

unsigned char AD_finished=0; //存储 A/D 转换标志

unsigned int out=0; unsigned char N=20; unsigned int sum=0; unsigned char m;

//10位AD带均值滤波

ADC_RES = 0; ADC_RESL = 0;

ADC_CONTR = ADC_POWER | ADC_SPEEDLL | channel | ADC_START; _nop_();

for(m=0;m//均值滤波

ADC_CONTR |= 0x08; //0000,1000 令 ADCS = 1, 启动A/D转换, AD_finished = 0;

while (AD_finished ==0 ) //等待A/D转换结束 {

AD_finished = (ADC_CONTR & 0x10); //0001,0000 测试A/D转换结束否 }

ADC_CONTR &= 0xE7; //1110,0111 清 ADC_FLAG 位, 关闭A/D

20

转换,

out= ADC_RES;

out=(out<<2)+(ADC_RESL&0x03); sum=sum+out; }

//带均值滤波

return (sum/N); //返回 A/D 高 8 位转换结果 }

void Init_ADC() {

P1ASF = 0x03; //0000,0011, 将 P1.0 置成模拟口 //ADRJ = AUXR1^2:

// 0: 10 位A/D 转换结果的高8 位放在ADC_RES 寄存器, 低2 位放在ADC_RESL 寄存器

// 1: 10 位A/D 转换结果的最高2 位放在ADC_RES 寄存器的低2 位, 低8 位放在ADC_RESL 寄存器

AUXR1 &= ~0x04; //0000,0100, 令 ADRJ=0 // AUXR1 |= 0x04; //0000,0100, 令 ADRJ=1 ADC_CONTR = ADC_SPEEDHH; _nop_();

ADC_CONTR |= 0x80; //1000,0000 打开 A/D 转换电源 }

void Init_Timer0(void);//定时器初始化 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { int temp; float temperature;

char displaytemp[16];//定义显示区域临时存储数组

P0=0x00;

21

Init_ADC();

LCD_Init(); //初始化液晶 DelayMs(20); //延时有助于稳定 LCD_Clear(); //清屏 Init_Timer0(); UART_INIT();

Lcd_User_Chr(); //写入自定义字符 LCD_Write_Char(13,1,0x01);//写入温度右上角点 LCD_Write_Char(14,1,'C'); //写入字符C

while (1) //主循环 {

if(ReadTempFlag==1) { TR0=0;

ReadTempFlag=0; temp=ReadTemperature();

ADC_result=get_AD_result_10F(0); sprintf(displaytemp,\"%4d\ LCD_Write_String(0,0,displaytemp); temperature=(float)temp*0.0625;

if(!key1) cmd=1; else if(!key2) cmd=2;

else if(!key3)

cmd=3; else if(!key4) cmd=4;

else

cmd=0;

22

USART_TX(0xff); USART_TX(ADC_result/4);

USART_TX((unsigned char)temperature); USART_TX(cmd); USART_TX(0xfe);

sprintf(displaytemp,\"Temp % 7.3f\打印温度值 LCD_Write_String(0,1,displaytemp);//显示第二行 TR0=1; } } }

接收端程序:

#include sbit fengshan1=P1^1; sbit fengshan2=P1^2; sbit LED1=P1^5; sbit LED2=P1^6; bit flag_tx=0,flag=0; int pwmfenshan,pwmled;

unsigned char light=20,temperature=25,tx_num,cmd; void PWM_INIT(void) {

CCON = 0; //Initial PCA control register

//PWM初始化

//PCA timer stop running //Clear CF flag

//Clear all module interrupt flag CL = 0; //Reset PCA base timer CH = 0;

23

CMOD = 0x02; //Set PCA timer clock source as Fosc/2

CCAPM0 = 0x42; //PCA module-0 work in 8-bit PWM mode CCAPM1 = 0x42; //PCA module-1 work in 8-bit PWM mode

CR = 1; //PCA timer start run }

void UART_INIT()

{ SCON = 0x50; //串口方式1, 8-n-1, 允许接收. //

AUXR|=0x04; //波特率发生器工作在1T模式

AUXR|=0x01; //选择波特率发生器作为串口1的波特率 BRT=0xf3;

//设置波特率发生器的溢出率

PCON=0x00; //波特率不加倍

AUXR|=0x10; //波特率发生器开始工作

ES=1;

EA = 1; }

void USART_TX(unsigned char txdata) { }

void DelayMs(unsigned char t) { }

unsigned int i; while(t--)

{

SBUF =txdata; //发送. while(TI==0); TI=0; //串口发送

i=625; while(i--); }

24

void main() {

PWM_INIT(); UART_INIT(); fengshan1=1; fengshan2=0; LED1=1; LED2=0;

pwmfenshan=0x20; pwmled=0x20;

CCAP0H = CCAP0L = pwmfenshan; //P1.3输出 CCAP1H = CCAP1L = pwmled; //P1.4输出 while(1) { }

if(temperature>28)

CCAP0H = CCAP0L = pwmfenshan; //P1.3输出

// }

else

CCAP0H = CCAP0L = 0xff; //P1.3输出

if(light>70)

CCAP1H = CCAP1L = pwmled;

else

CCAP1H = CCAP1L = 0xff;

DelayMs(500);

void uart() interrupt 4 {

unsigned char temp; if(RI==1) {

RI=0;

25

temp=SBUF;

if(flag)

switch(tx_num) {

case 1:light=temp;tx_num=2;break; case 2:temperature=temp;tx_num=3;break; case 3:cmd=temp;flag=0;flag_tx=0;

switch(cmd) {

case 0:break;

case 1:pwmfenshan+=16;if(pwmfenshan>255)

pwmfenshan=255;break;

case 2:pwmfenshan-=16;if(pwmfenshan<0)

pwmfenshan=0;break;

case 3:pwmled+=16;if(pwmled>255)

pwmled=255;break; }

}

}

} break;

case 4:pwmled-=16;if(pwmled<0) pwmled=0;break;

if(flag_tx==0)

if(temp==0xff) { }

flag=1; tx_num=1;

26

附录B

整体电路原理图

27

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务