基于单片机的智能家居系统论文_第1页
基于单片机的智能家居系统论文_第2页
基于单片机的智能家居系统论文_第3页
基于单片机的智能家居系统论文_第4页
基于单片机的智能家居系统论文_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本科生毕业论文(设计)题 目: 基于单片机的小型智能家居系统的 设计与实现 姓 名: 常盼盼 学 院: 理学院 专 业: 网络工程 班 级:2009级(2)班 学 号:1887090202 指导教师: 艳红 职称: 讲师 2013 年 5 月 10 日科技学院教务处制目录31 / 33摘要1关键词11 引言11.1 课题研究背景11.2 系统的主要功能12 整体设计22.1 总体介绍22.2 系统设计方案23 硬件系统设计33.1 硬件系统概述33.2 硬件系统的功能模块33.2.1 电源模块33.2.2 串口模块43.2.3 核心板模块83.2.4 LED模块93.2.5 蜂鸣器模块103

2、.2.6 步进电机模块113.2.7 LCD模块123.2.8 热敏&光敏传感器模块144 软件系统设计154.1 keil uVision2简介154.2 keil uVision2新建项目、编辑、编译以与调试运行154.3程序烧写205 系统平台搭建225.1 系统组成225.2 系统硬件连接225.2.1 PC机与单片机的连接225.2.2单片机开发板上的硬件连接226 系统功能介绍226.1 整体功能介绍226.2 详细功能介绍246.2.1 音乐播放246.2.2 花样灯256.2.3 窗帘266.2.4 火灾报警276.2.5 串口通信模块277 系统测试287.1 系统基

3、本性能验证287.2 整体验证288 总结与展望298.1 总结298.2 展望29致29参考文献29基于单片机的小型智能家居系统的设计与实现网络工程 常盼盼指导教师 艳红摘要:智能家居是以住宅为平台,利用综合布线、网络通信、音视频等技术将家居生活有关的设施集成,构建高效的家庭日程事务管理系统,提升家居安全性、便利性、舒适性,实现环保节能的居住环境。基于单片机的小型智能家居系统是以STC12C5A60S2芯片为控制核心,用单片机上不同的器件与PC机与单片机之间的通讯,将智能家居中的相应模块模拟展示出来。系统主要由硬件系统和软件系统两部分组成,其中硬件系统是以STC12C5A60S2芯片为核心的

4、单片机开发板以与单片机外围发光二极管、数码管、蜂鸣器等功能模块。以Keil uVision2为软件开发平台,通过串口实现PC机与单片机之间的通讯,从而达到PC机控制单片机的目的。论文详细阐述了系统的开发与实现过程。关键词:智能家居;Keil uVision2;单片机;STC12C5A60S2;串口通信1 引言1.1 课题研究背景进入21世纪,科学技术与生产力水平进入加速发展阶段,随之而来的是人类物质文化生活的极大提高。随着人们生活水平的不断提高,人们不断的对居住环境提出更高的要求,越来越注重家庭生活中每个成员的舒适、安全与便利。智能家居是利用先进的计算机技术、网络通讯技术、综合布线技术,依照人

5、体工程学原理,融合个性需求,将与家居生活有关的各个子系统,如安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动、地板采暖等有机地结合在一起,通过网络化综合智能控制和管理,实现“以人为本”的全新家居生活体验1。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间,还将原来被动静止的结构转变为具有能动智慧的工具2,提供全方位的信息交换功能,帮助家庭与外部保持信息交换畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金3。智能家居的目标是用各种方法或设备使家居生活实现自动化、智能化,使家居变得更加舒适、安全和有效,

6、从而提高人们的生活质量4。1.2 系统的主要功能本系统以STC12C5A60S2芯片为核心,利用单片机的外围设备与串口通信开发、实现了以下几个功能模块:(1)花样灯的控制,利用单片机上的二极管模拟电灯,根据不同的指令,按照预先设计好的程序,变换出不同的花样。(2)音乐播放,利用单片机上的蜂鸣器模拟音箱,根据指令,按照预先设计好的程序,播放音乐。(3)电机模拟窗帘,利用单片机上的步进电机模拟窗帘的开关,根据指令,按照预先设计好的程序,步进电机模拟完成窗帘的拉开、关闭。(4)火灾报警,利用单片机上的热敏、光敏传感器,实时采集周围的温度以与光的强度,按照预先设计好的程序,若周围的温度升高且同时光强下

7、降,则认为发生火灾,发出警报。2 整体设计2.1 总体介绍本系统以STC12C5A60S2芯片为控制核心,温度,湿度等传感器为环境信息采集源,以串口通信控制为辅助,模拟了一个小型的智能家居系统。在原有的机械式按键开关的基础上,采用串口通信,来控制各功能模块,实现了远距离实时控制。此外在本次系统设计中,采用了多种传感器相结合,根据各传感器采集的数值进行火灾报警自动化控制。2.2系统设计方案根据设计要求,系统提供了包括了核心控制模块,串口通信模块,花样灯模块等等。系统的整体框图如图1所示。环境信息用户输入信息设备状态信息控制界面返回用户输入信息用户控制信息串口窗帘(步进电机)核心控制设备(以STC

8、12C5A60S2为核心)音乐播放(蜂鸣器)花样灯(LED显示)温度,湿度信息LCD显示火灾报警(温度,湿度)图1 系统整体框图3硬件系统设计3.1 硬件系统概述小型智能家居系统的核心是单片机的主芯片,因此首先要确定单片机与所用主芯片的类型。单片机具有高集成度、体积小、高可靠性、控制功能强、低功耗、易扩展、优异的性价比等特点,在机电一体化、实时过程控制、办公自动化设备、计算机网络和通信、航空航天系统和国防军事、尖端武器等领域得到了广泛的应用5。小型智能家居系统要求能够实时控制并通过串口传输数据,根据上述的要求,系统选用STC公司的以STC12C5A60S2芯片为主芯片的51核心板单片机,该核心

9、板支持DIP40封装的STC系列单片机、AT89S5X系列单片机,带USB转串口模块,能为STC系列单片机编程,能与PC进行串口通信。本系统硬件原理图如图2所示:LED51核心板(以STC12C5A60S2为核心)蜂鸣器USB转串口PC机步进电机LCD火灾报警热敏传感器光敏传感器图2 硬件系统图3.2硬件系统的功能模块3.2.1 电源模块电源部分是整个系统的基础,这部分的稳定工作对整个单片机硬件系统的稳定工作起着至关重要的作用,单片机带有先进的系统控制与电源管理模块6。单片机开发板支持以下两种供电方式: (1) 通过PC机的USB口提供的+5V电源,如图3所示,即为通过USB为系统供电。 (2

10、) 外部7-12V(最好使用9V)直流稳压电源适配器供电,通过电源接口JP1输入电源。 通过手动控制开发板上的K1开关来打开和断开系统供电,当K1开关拨至“ON”位置,发光二极管点亮指示系统上电。图3 主板供电系统原理图3.2.2 串口模块u 串行通讯基本概念计算机与外界的信息交换称为通信7。常用通信方式有两种:并行通信与串行通信,简称并行传送和串行传送。并行传送具有传送速度快,效率高等优点,但传送多少数据位就需要多少根数据线,传送成本高;串行传送是按位顺序进行数据传送,最少仅需要一根传输线即可完成,传送距离远,但传送速度慢8。串行通信又分同步和异步两种方式。这两种通信方式的区别在于发送设备时

11、钟与接收设备时钟是否严格一致。同步通信中,在数据传送开始时先用同步字符来指示(常约定1-2个),并由同时传送的时钟信号来实现发送端和接收端同步,即检测到规定的同步字符后,接着就连续按顺序传送数据。这种传送方式对硬件结构要求较高。异步通信中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其容如下:一个起始位,仅接着是若干个数据位,图4中传输45H的数据格式。图4 串口通信传输45H的数据格式另外一个字符应包括以下信息: (1) 起始位:对应逻辑0(space)状态。发送器通过发送起始位开始一帧字符的传送。 (2) 数据位:起始位之后传送数据位。数据位中低位在前,

12、高位在后。数据位可以是5、6、7、8位。 (3) 奇偶校验位:奇偶校验位实际上是传送的附加位,若该位用于奇偶校验,可校检串行传送的正确性。奇偶校验位的设置与否与校验方式(奇校验还是偶校验)由用户需要确定。 (4) 停止位:用逻辑1(mark)表示。停止位标志一个字符传送的结束。停止位可以是1、1.5或2位。u MCS-51单片机的串行接口MCS-51单片机串行口寄存器结构如5图所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送

13、数据,而从接收缓冲器读出数据即可接收数据。图5 MCS-51单片机串行口寄存器结构图u 串行通信标准RS232和RS485是两种典型的串行通信标准,两种标准的主要区别有: (1)传输距离。RS485传输距离要比RS232大很多。 (2)接口电平。RS485的接口电平比RS232电平降低了。 (3)传输速率。RS485最高传输速率可达到10Mbps。图6 RS485原理与实物图对于软件编程方面, RS485和RS232完全一致,但是由于485数据传输为差分方式,需要同样具有485接口的硬件,才能实现数据收发,所以在本系统中选用操作起来相对简单的RS232。u RS232硬件电路51单片机有一个以

14、上全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,两者之间必须有一个电平转换电路,本系统采用了专用芯片MAX3232进行转换。MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。主要特点有:(1)符合所有的RS-232C技术标准(2)只需要单一 +5V电源供电 (3)片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- (4)功耗低,典型供电电流5mA (5)部集成2个RS-232C驱动器 (6)部集成2个RS-232C接收器9图7 MAX3232的原理图本系统采用

15、了三线制连接串口,也就是说计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD,这是最简单的连接方法,但是对本系统来说已经足够了。电路如图8所示。图8 串口原理图图9 串口模块实物图3.2.3 核心板模块图10 核心板结构图u 功能描述:(1)51核心板支持DIP40封装的STC系列单片机、AT89S5X系列单片机。 (2)带USB转串口模块,能为STC系列单片机编程,能与PC机进行串口通信。 (3)通过P0口的“5V”管脚供电(作为主板的核心板使用时),无需重复在核心板上对USB供电。 (4)提供ISP 下载接口,为AT89S5X系列单片机编程。图11 核心板电

16、路原理图3.2.4 LED模块LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子,但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-

17、N结的材料决定的。LED的特点非常明显,寿命长、光效高、无辐射与低功耗。 LED耗电非常低,一般来说LED的工作电压是2-3.6V。工作电流是2mA-30mA。对于贴片LED,参考压降如下:红色的压降为1.82-1.88V,绿色的压降为1.75-1.82V,橙色的压降为1.7-1.8V,蓝色的压降为3.1-3.3V,而压降是通过电阻获得的,电阻大小由图12中的公式来决定。本系统所用的NBC61-V2.0开发板上的电阻为470欧。图12 LED电阻计算公式图13 LED模块电路原理图根据原理图分析可知,当由IO 口控制的J13被置低(即连接到LED负极)时,发光二极管导通,被点亮。3.2.5 蜂

18、鸣器模块蜂鸣器是一种一体化结构的电子讯响器,广泛应用于计算机、打印机、复印机、报警器、机等电子产品中,作发声器件。蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜震动发声的,因此需要一定的电流才能驱动它。单片机IO 引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,图14为蜂鸣器驱动电路,使用的是ULN2003芯片来放大电流,驱动蜂鸣器。图14 蜂鸣器驱动电路图15 ULN2003部结构图16 ULN2003等效电路如图14所示,蜂鸣器的正极接到VCC电源上面,蜂鸣器的负极接到图16等效电路的OUTPUT端,单片机IO 通过控制图1

19、6电路的INPUT 端,当IO 输出低电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当IO 输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制INPUT的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机的输出波形的频率,就可以调整控制蜂鸣器音调。另外,改变IO 口输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。3.2.6 步进电机模块步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定,因此非常适合于单片机控制。单片机上设计的步进电机是减速比

20、1/64的5线4相电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图17是该四相反应式步进电机工作原理示意图。图17 四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。 当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四

21、相绕组轮流供电,则转子会沿着A、B、C、D方向转动。 四相步进电机驱动方式可以采用双四拍(ABBCCDDAAB)方式,也可以采用单四拍(ABCDA)方式,或单、双八拍(AABBBCCCDDDAA)方式。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图18中a、b、c所示:图18 步进电机工作时序波形图图19 步进电机电路原理图3.2.7 LCD模块LED 数码管显示器部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管称为一个字段,因而它的控制原理和发光二极管的控制原理是一样的。根据各管的接线形式,它可分为两种,一是共阳极(发光二极管的阳极都接在一个公共点上),如图20,另

22、一是共阴极(发光二极管的阴极都接在一个公共点上),如图21。给LED 数码管的七个条形发光二极管加不同的电平,二极管显示不同亮灭的组合就可以形成不同的字形,这种组合称之为字形码。下面以1为高电平,0 为低电平,给出字形码表,见图22。图20 共阳极电路图图21 共阴极电路图图22 字形码表图23 LCD电路原理图原理图23中用到两片74HC573,一片用于位选,选择8位共阴数码管中的某位或某几位,另一片74HC573用于段选,输入以上表格中的编码来控制要显示的容。举个例子,如果我们要使数码管的最低位显示“A”,那么,首先通过控制DS1,选中位选控制的74HC573,控制DSD7为“0”(共阴,

23、如果是共阳的数码管就置“1”),然后通过控制 DS2,选中段选选控制的74HC573,在DSD0DSD7输入0x77,即可实现“A”在第3位显示。图24 LCD实物图3.2.8 热敏&光敏传感器模块u 热敏传感器热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)10。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。NTC热敏电阻与普通电阻不同,它具有负的电阻温度特性,当温度升高时,

24、电阻值减少,其特性曲线如图25所示。图25 热敏电阻特性曲线图热敏电阻的阻值温度特性曲线是一条指数曲线,线性度差,因此,在使用时要进行线性化处理。线性化处理虽然能改善热敏电阻的特性曲线,但比较复杂。因此,在要求不高的应用系统中,在一定的温度围,常常把温度与阻值看成是线性的关系,以简计算和系统设计。使用热敏电阻是为了感知温度,给热敏电阻通以恒定的电流,电阻两端就可以测到一个电压,通过下面的公式就可以计算出温度值: T=T0-KXVT其中T-被测温度T0-与热敏电阻特性有关的温度参数KX-与热敏电阻特性有关的系数VT-热敏电阻两端的电压根据这一公式,如果测得热敏电阻两端的电压,再知道参数T0和系数

25、KX,则可计算出热敏电阻的环境温度,也就是被测的温度。这样就把电阻随温度的变化关系转化为电压随温度变化的关系了。数字式电阻温度计设计工作的主要容就是把热敏电阻两端的电压值经A/D(模拟量转化为数字量)转换为数字量,然后通过软件方法计算得到温度值,再进行显示等处理。图26 热敏&光敏传感器电路原理图如图26所示为开发板上的原理图,R39为热敏电阻,AD转换器采集RT处的电压值,再通过软件处理得到温度值。u 光敏敏传感器光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料8。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子

26、都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器,入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达110M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4m 0.76m

27、)的响应很接近,只要是人眼可感受的光,都会引起它的阻值变化。由此可以看出,通过光敏电阻测量光强的原理基本和热敏电阻测量温度一致。上面图26中的R38即为光敏电阻,AD转换器采集DT处的电压值,再通过软件处理得到光强度。4软件系统设计4.1 keil uVision2简介keil uVision2是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期。它还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效

28、率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使用户可以更加贴近CPU本身,与其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器、汇编器、实时操作系统、项目管理器和调试器,uVision2 IDE可为它们提供单一而灵活的开发环境。4.2 keil uVision2新建项目、编辑、编译以与调试运行(1)安装好Keil软件以后,打开它。打开以后界面如下:图27Keil软件打开界面(2)先新建一个工程文件。点击“Project->New Project

29、”菜单,如下图:图28 新建工程页面(3)选择工程文件要存放的路径,输入工程文件名,如LED, 最后单击保存:图29 保存工程页面(4)在弹出的对话框中选择CPU 厂商与型号:图30 CPU型号选择页面(5)选择好选择CPU 厂商与型号,如Atmel公司的89c51,之后,单击确定:图31 选定CPU型号(6)接着弹除一个对话框,问“将标准的8051启动代码复制到项目文件夹并将文件添加到项目中?”,选择“是”:图32 询问页面(7)新建一个C51文件。点击file菜单下的NEW,或单击左上角的New File快捷键,如下图:图33 新建C51文件页面(8)保存新建的文件。单击SAVE,如下图:

30、图34 点击保存C51文件(9)在出现的对话框中输入保存文件名(注意:后缀名必须为.C),如MAIN.C,再单击“保存”,如下图:图35保存C51文件页面(10)保存好此文件后,将其加入到工程中方法如下:在Source Group1上鼠标右击,然后再单击Add Files to Group Source Group 1'如下图:图36 将C51文件添加到工程(11)选择要加入的文件。找到后缀名.C的文件后,单击Add,然后单击Close:图37 添加到工程中的事.c文件(12)在编辑框里输入所需代码,至此完成了工程项目的建立以与文件加入工程,现在开始编译工程。单击快捷键或单击Proje

31、ct->Rebuild all the files,如果在错误与警告栏看到 “0 Error(s)” 表示编译通过:图38 添加代码后编译(13)生成 .hex 烧写文件。先单击Options for Target,在弹出的窗口中单击 Output, 选中 Create HEX Fi,再单击“确定”,然后再次编译才能产生HEX文件:图39 项目选项图40 设置文件输出格式为HEX编译完成后,打开工程存放目录,可以看到增加了“led.hex”文件:图41 编译完成后的文件4.3程序烧写使用烧写软件STC_ISP_V483进行程序烧写。打开烧写软件,界面如下:图42 烧写软件界面烧写、下载程

32、序过程分为以下几个步骤: 步骤(1)选择单片机的型号。 本系统所用的单片机型号是STC12C5A60S2。 步骤(2)打开后缀为.HEX 的文件,即为程序文件。 在相应工程下找到需要下载的.HEX文件,点击打开。 步骤(3)选择串口号、设置最高波特率。 打开PC机的设备管理器,确定生成的串口号(若为COM2,则在上图COM下拉中选择COM2)。步骤(4)用USB线将PC机和主板连接起来,检查核心板上的J1 口是否用跳帽短接(TXD与P30短接,RXD与P31短接),将开发板上的电源都关闭,点击“Download/下载”,打开核心板上的电源开关(注意不是主板上的电源开关),等待下载完成。图43

33、烧写控制接口5系统平台搭建5.1 系统组成本系统是由一台PC机,一块51单片机开发板与一条USB转串口线组成。其中,PC机负责系统程序的编写以与显示通信界面,51单片机通过其自带的外围设备将系统所要求的各个模块模拟表现出来,而USB转串口线则负责将PC机与单片机连接起来,实现PC机与单片机之间的串口通信。5.2 系统硬件连接5.2.1 PC机与单片机的连接通过USB转串口线将PC机的USB接口与单片机板上的串口1连接起来即可。5.2.2单片机开发板上的硬件连接(1)串口模块的硬件连接用2位杜邦线分别将J9_0与J5_R1与J9_1与J5_D1连接(下载完程序后),用串口线将PC和开发板上的串口

34、1连接。(接收PC机发来的数据,并向PC机返回接收到的数据)。(2)花样灯模块的硬件连接用8位杜邦线将J9与J6连接,用8位排线将J8与J13连接。(3)音乐播放模块的硬件连接用1位杜邦线将J10_0与J18_bz连接。(4)窗帘模块的硬件连接用4位杜邦线将J11_0,J11_1,J11_2,J11_3和J18_A,J18_B,J18_C,J18_D连接,将步进电机连接到JP8。(5)火灾报警模块的硬件连接用8位杜邦线将J8与J12连接,2位杜邦线分别将J11_0与J15_DS1、J11_1与J15_DS2连接,1位杜邦线将J19_AIN0与J15_RT连接,2位杜邦线分别将J11_7与J17

35、_SDA、J11_6与J17_SCL连接。6系统功能介绍6.1 整体功能介绍将整个单片机开发板按照系统要求连接起来,如图44所示,再将单片机通过USB转串口线与PC机相连,这样,硬件连接完成。打开串口通信控制界面,如图45所示,通过串口通信控制界面,向单片机发送指令。当发送数字1-3时,花样灯据不同数字,运行出不同效果,同时将数字1-3返回在界面上显示出来。当发送数字4时,蜂鸣器运行,播放音乐,同时将数字4返回在界面上显示出来。当发送数字5-9时,步进电机运行,据不同的数字,改变转动的方向与转速,同时将数字5-9返回在界面上显示出来。而火灾报警模块,通过热敏&光敏传感器,实时采集周围的

36、温度、光强,一旦超过预先设计好的限制,则触发蜂鸣器报警!图44 硬件系统实物图图45 串口通信控制界面6.2 详细功能介绍6.2.1音乐播放图46 单片机上的电路实物图 如图所示,蜂鸣器的正极接到VCC电源上面,蜂鸣器的负极接到上面图16ULN2003等效电路的OUTPUT端,单片机IO 通过控制图16电路的INPUT 端,当IO 输出低电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当IO 输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制INPUT的电平来使蜂鸣器发出声音和关闭。程序中改变单片机的输出波形的频率,就可以调整控制蜂鸣器音调。另外,改变

37、IO 口输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。 表1 蜂鸣器模拟歌曲原理音调改变IO输出频率来实现节拍(音长)单片机延时实现音量输出波形占空比通过控制蜂鸣器震动频率的大小、震动时间的长短,模拟出不同的音调。将一首歌相对应的震动频率的大小、震动时间的长短数字化,再分别存放在两个数组中,当控制芯片接收到播放音乐的指令后,已经设计好的程序,便会将两数组中的值按照一定的规律赋给蜂鸣器的输出端口,这样,我们便会听到美妙的歌曲了。本系统中,采用上述方法,用蜂鸣器模拟音箱,通过控制蜂鸣器震动频率的大小、震动时间的长短,模拟出不同的音调。将一首歌相对应的震动频率的大小、震动时间的长短数字化,以

38、这种方式等价成两个数组,再将数组赋给相应的歌曲处理函数,当主板接收到相应指令后,调用歌曲处理函数,将歌曲演奏出来,主要代码容下:void Play_music() uint Tone,Long; /定义音调变量 uint i,j,k; /定义变量 for(i=0;i<25;i+) /"生日快乐"的25种音调 Tone=SOUNDTONEi; /读取音调 Long=30*SOUNDLONGi; /读取节拍 for(j=0;j<Long;j+) /输出不同节拍 BZ=0; /关闭蜂鸣器 for(k=0;k<Tone;k+); /利用Tone的不同来区分7种音调

39、 BZ=1; /打开蜂鸣器 for(k=0;k<Tone;k+); /利用Tone的不同来区分7种音调void Music() /音乐播放函数 Play_music(); /播放音乐 BZ=0; /关闭蜂鸣器 delay(10000); /延时只要将不同歌曲的曲谱,以SOUNDTONEi、SOUNDLONGi数组表示出来,再赋值给Tone、Long,这样当调用Music函数时,便会播放不同的歌曲。由于将曲谱转换成数组比较麻烦,故在此只给出了一首歌曲作为例。6.2.2花样灯图47 单片机上的LED实物图通过控制LED灯亮灭的时间,与多个LED灯规律性的移动、跳跃,来达到一定视觉观赏关性。还

40、可以通过PWM控制LED灯逐渐变亮、变暗来模拟智能家居中,人为控制灯的亮度达到营造某种氛围的目的。本系统中,花样灯模块,即利用单片机上的二极管模拟电灯,根据不同的指令,按照预先设计好的程序,变换出不同的花样。主要代码容下:/发光二极管处理函数LED(uchar i) switch(i)case 1:LED1();break;case 2:LED2();break;case 3:LED3();break;default:break; 当PC机上发出的指令,通过串口到达单片机主板时,单片机便会根据该段代码,对不同的指令给出不同的实验结果。根据多个LED亮灭的不同,以与多个LED亮灭跳转的方法各有差

41、异,花样灯的种类也有很多,本系统中只是为了说明LED具有这一功能,简单的给出了几个花样灯的例子。6.2.3窗帘图48 步进电机实物图本系统中使用步进电机的转动方向来模拟窗帘的开、关。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定,因此非常适合于单片机控制。窗帘模块正是利用步进电机适合于单片机控制,且步进电机是数字控制电机,电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定,易于模拟实现窗帘的开、关这些特点来实现的,主要代码如下:stepmotorHandle(uchar

42、i) switch(i) case 5: /如果接收到5 zf=1; /正反标志置1,正向break; case 6: /如果接收到6 stp=stp; /启动/暂停 break; case 7: /如果接收到7 zf=0; /正反标志置0,反向 break;default:break;由于时间的原因,本系统中,只是单纯的用步进电机的转动方向与转动与否,模拟了窗帘的开关,并没有给出实物。6.2.4火灾报警图49 单片机上热敏、光敏传感器实物图本系统中的火灾报警模块,是通过采集周围的温度、光强来实现的。利用单片机上自带的热敏传感器、光敏传感器对周围的温度、光强,进行实时采集,之后将采集到的数据提

43、取出来,与设定好的数据返回,交给预先设计好的程序判断,当判断出周围的光强低于设定界限但温度高于设定界限时,则认为发生火灾,触发蜂鸣器发声,报警!主要代码如下:temp=Read_AD(0); /采集0通道模拟电压值gq=temp; /记录光的强度 show_Light(temp); /显示亮度值 temp=19*temp; /乘以电阻特性参数 for(i=0;(vt_tablei>temp)&&(i<60);i+);/查表得到温度对应参数if(i<10) /如果是负温度,符号标志置1,表示为负value=10-i;flag=1;else /如果为正,去掉10个

44、负数value=i-10;show_NTC(value); /显示温度值if(gq<118)&&(value>28) /光强减弱且高温->火灾,蜂鸣器报警BZ=1;else /正常时,强行关闭蜂鸣器BZ=0;该段程序不仅火灾报警,它还将从周围采集到的实时数据,通过发光二极管LCD显示出来,供人随时读取。而当火灾发生时,温度升高,大火产生的烟雾使得周围的光强下降时,该段程序才会触发蜂鸣器报警。6.2.5 串口通信模块本系统中,利用串口将单片机与PC机连接起来,进行通信。MCS-51单片机串口控制寄存器有三个:特殊功能寄存器SCON、PCON和中断允许寄存器IE。

45、SCON、PCON的地址分别为98H和87H,SCON用于控制和监视串口的工作状态,可以位寻址,PCON不具备位寻址功能11。串行通信控制寄存器SCON是与串行通信有关的主要控制寄存器。SCON是8051系列芯片的一个可以位寻址的专用寄存器,用于控制串行数据通信。SCON的单元地址98H,位地址9FH98H。电源控制寄存器PCON中SMOD位可以影响串口的波特率。SMOD是串口波特率的倍增位,当SMOD=1时,串行口波特率会加倍,系统复位默认SMOD=0。中断允许寄存器IE中的ES位可选择串行口中断的允许或禁止。ES0,禁止串行口中断;ES1,允许串行口中断。串口通信有四种工作方式,由于方式1

46、发送与接收数据的方式更符合本系统的要求,故在此选择串口通信方式1。串口通信有2种实现方式,查询方式和中断方式。这2中实现方式的代码段如下:查询方式:IE = 0x00 ; /关闭所有中断,以防止中断影响 while(RI = 0); RI = 0; ch = SBUF; / 从缓冲区中把接收的字符放入c中 SBUF = ch; / 要发送的字符放入缓冲区 while(TI = 0); TI = 0;中断方式:if(read_flag) /如果取数标志已置位,就将读到的数从串口发出 read_flag= 0 ; /取数标志清0 send_char(ch); /将读到的数从串口发出2种通信方式实现

47、的过程分别是:查询方式:发送数据先发后查;接收数据先查后收。中断方式:发送数据发送、等待中断、中断中发送;接收数据等待中断、在中断中接收。系统不大时,有这2中方式的任何一种都不会有太大影响,但如果系统过大,查询方式就会慢很多,从而导致整个系统的运行过慢且易出错,故在此选用中断方式来实现串口通信。7系统测试7.1 系统基本性能验证将每个不同的模块写好的程序通过烧写软件烧到单片机开发板上后,先使用单片机上的键盘模块,机械的操控,观察基本模块能够实行,且运行较稳定。7.2 整体验证各功能模块的调试完成,确定无误后,再在原先的程序中加入串口通信代码,以实行PC机与单片机之间的通信。代码添加完成之后,重

48、新烧写代码。将PC机与单片机用USB转串口线连接起来,在PC机上,通过控制界面向单片机发送指令,观察系统能够稳定运行。8总结与展望8.1 总结本文是基于单片机的小型智能家居系统的设计与实现,构建了串口通信控制系统。本文主要完成了以下工作:(1) 实现了LED的实时控制;(2) 实现了蜂鸣器的实时控制;(3) 实现了步进电机的实时控制;(4) 实现了温度、光强的实时采集;(5) 实现火灾的实时报警;但是对系统的步进电机的控制还没能做到完全的控制和实现,还有许多地方需要的改进。单片机控制系统以其体积小、体积小、高可靠性、低功耗、优异的性能价格比等特点,成为机械监控系统的主流方向,在实时过程控制,计

49、算机网络和通信,航空航天系统和国防军事,尖端武器等领域得到了广泛的应用。8.2 展望单片机控制是一个新兴的控制领域,也是未来发展的重要趋势,通过单片机控制可以更加方便人们的生产生活。本题虽然基本完成了这个任务,但是其中还有很多功能期待完善。蜂鸣器:本文只是简单的利用了频率与时长,模拟音调,若进一步精确的模拟出音符,则可以使用键盘以与蜂鸣器,模拟钢琴等乐器发声,这一块有待提高。传感器:本文只是采用了热敏&光敏传感器,且只是提取其采集的信息,并没有对其有进一步的改造、使用。其他的传感器也没用涉与,以后要更加注意。串口通信:本文只是利用PC机与单片机之间的串口进行通信,受到传输速度、传输距离

50、等诸多方面的限制,应该寻求更加合理、优越的通信方式。致在指导教师的精心指导下,经过进一年的努力,本系统已设计完毕。在这里首先计算机系的全体领导和老师们,感他们在4年的大学学习生活中对我的教育、指导和关心,让我顺利的完成4年的大学学习。从选定课题到完成毕业设计,指导老师艳红给予了精心的指导和细心的帮助,尤其在课题设计的前期准备阶段和本人的功能设计阶段,老师都提出了许多宝贵的设计意见,无论在理论上还是在实践中都给了我很大的鼓励和指导,使得我得到了不少的提高,特此对老师表示真诚的感。最后,感答辩委员会的教师们在百忙之中抽出时间来阅读论文。参考文献:1 徐方荣.无线智能家居控制系统设计J.现代建设电器,2010,1(1):2427.2 建刚,王鸣.基于嵌入式系统的智能家居网络实现J.工程科技学院学报,2006 21(4):4045.3 王松涛.智能家居网络控制系统D.大学自动化学院,2005.4 Tom.wide area intergration BACNet Over the Web.Open System Technologyies for intergrated Building Control

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论