基于单片机的智能家居系统本科毕业论文设计.docx
《基于单片机的智能家居系统本科毕业论文设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能家居系统本科毕业论文设计.docx(46页珍藏版)》请在冰点文库上搜索。
![基于单片机的智能家居系统本科毕业论文设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/18/433f314c-4de9-4dfc-baad-ef6f4f835f7f/433f314c-4de9-4dfc-baad-ef6f4f835f7f1.gif)
基于单片机的智能家居系统本科毕业论文设计
本科生毕业论文(设计)
题目:
基于单片机的小型智能家居系统的
设计与实现
姓名:
常盼盼
学院:
理学院
专业:
网络工程
班级:
2009级
(2)班
学号:
指导教师:
赵艳红职称:
讲师
2013年5月10日
安徽科技学院教务处制
摘要1
关键词1
1引言1
1.1课题研究背景1
1.2系统的主要功能1
2整体设计2
2.1总体介绍2
2.2系统设计方案2
3硬件系统设计3
3.1硬件系统概述3
3.2硬件系统的功能模块3
3.2.1电源模块3
3.2.2串口模块4
3.2.3核心板模块8
3.2.4LED模块9
3.2.5蜂鸣器模块10
3.2.6步进电机模块11
3.2.7LCD模块12
3.2.8热敏&光敏传感器模块14
4软件系统设计15
4.1keiluVision2简介15
4.2keiluVision2新建项目、编辑、编译以及调试运行15
4.3程序烧写20
5系统平台搭建22
5.1系统组成22
5.2系统硬件连接22
5.2.1PC机与单片机的连接22
5.2.2单片机开发板上的硬件连接22
6系统功能介绍22
6.1整体功能介绍22
6.2详细功能介绍24
6.2.1音乐播放24
6.2.2花样灯25
6.2.3窗帘26
6.2.4火灾报警27
6.2.5串口通信模块27
7系统测试28
7.1系统基本性能验证28
7.2整体验证28
8总结与展望29
8.1总结29
8.2展望29
致谢29
参考文献29
基于单片机的小型智能家居系统的设计与实现
网络工程常盼盼
指导教师赵艳红
摘要:
智能家居是以住宅为平台,利用综合布线、网络通信、音视频等技术将家居生活有关的设施集成,构建高效的家庭日程事务管理系统,提升家居安全性、便利性、舒适性,实现环保节能的居住环境。
基于单片机的小型智能家居系统是以STC12C5A60S2芯片为控制核心,用单片机上不同的器件及PC机与单片机之间的通讯,将智能家居中的相应模块模拟展示出来。
系统主要由硬件系统和软件系统两部分组成,其中硬件系统是以STC12C5A60S2芯片为核心的单片机开发板以及单片机外围发光二极管、数码管、蜂鸣器等功能模块。
以KeiluVision2为软件开发平台,通过串口实现PC机与单片机之间的通讯,从而达到PC机控制单片机的目的。
论文详细阐述了系统的开发及实现过程。
关键词:
智能家居;KeiluVision2;单片机;STC12C5A60S2;串口通信
1引言
1.1课题研究背景
进入21世纪,科学技术与生产力水平进入加速发展阶段,随之而来的是人类物质文化生活的极大提高。
随着人们生活水平的不断提高,人们不断的对居住环境提出更高的要求,越来越注重家庭生活中每个成员的舒适、安全与便利。
智能家居是利用先进的计算机技术、网络通讯技术、综合布线技术,依照人体工程学原理,融合个性需求,将与家居生活有关的各个子系统,如安防、灯光控制、窗帘控制、煤气阀控制、信息家电、场景联动、地板采暖等有机地结合在一起,通过网络化综合智能控制和管理,实现“以人为本”的全新家居生活体验[1]。
与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间,还将原来被动静止的结构转变为具有能动智慧的工具[2],提供全方位的信息交换功能,帮助家庭与外部保持信息交换畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金[3]。
智能家居的目标是用各种方法或设备使家居生活实现自动化、智能化,使家居变得更加舒适、安全和有效,从而提高人们的生活质量[4]。
1.2系统的主要功能
本系统以STC12C5A60S2芯片为核心,利用单片机的外围设备及串口通信开发、实现了以下几个功能模块:
(1)花样灯的控制,利用单片机上的二极管模拟电灯,根据不同的指令,按照预先设计好的程序,变换出不同的花样。
(2)音乐播放,利用单片机上的蜂鸣器模拟音箱,根据指令,按照预先设计好的程序,播放音乐。
(3)电机模拟窗帘,利用单片机上的步进电机模拟窗帘的开关,根据指令,按照预先设计好的程序,步进电机模拟完成窗帘的拉开、关闭。
(4)火灾报警,利用单片机上的热敏、光敏传感器,实时采集周围的温度以及光的强度,按照预先设计好的程序,若周围的温度升高且同时光强下降,则认为发生火灾,发出警报。
2整体设计
2.1总体介绍
本系统以STC12C5A60S2芯片为控制核心,温度,湿度等传感器为环境信息采集源,以串口通信控制为辅助,模拟了一个小型的智能家居系统。
在原有的机械式按键开关的基础上,采用串口通信,来控制各功能模块,实现了远距离实时控制。
此外在本次系统设计中,采用了多种传感器相结合,根据各传感器采集的数值进行火灾报警自动化控制。
2.2系统设计方案
根据设计要求,系统提供了包括了核心控制模块,串口通信模块,花样灯模块等等。
系统的整体框图如图1所示。
图1系统整体框图
3硬件系统设计
3.1硬件系统概述
小型智能家居系统的核心是单片机的主芯片,因此首先要确定单片机及所用主芯片的类型。
单片机具有高集成度、体积小、高可靠性、控制功能强、低功耗、易扩展、优异的性价比等特点,在机电一体化、实时过程控制、办公自动化设备、计算机网络和通信、航空航天系统和国防军事、尖端武器等领域得到了广泛的应用[5]。
小型智能家居系统要求能够实时控制并通过串口传输数据,根据上述的要求,系统选用STC公司的以STC12C5A60S2芯片为主芯片的51核心板单片机,该核心板支持DIP40封装的STC系列单片机、AT89S5X系列单片机,带USB转串口模块,能为STC系列单片机编程,能与PC进行串口通信。
本系统硬件原理图如图2所示:
图2硬件系统图
3.2硬件系统的功能模块
3.2.1电源模块
电源部分是整个系统的基础,这部分的稳定工作对整个单片机硬件系统的稳定工作起着至关重要的作用,单片机带有先进的系统控制及电源管理模块[6]。
单片机开发板支持以下两种供电方式:
(1)通过PC机的USB口提供的+5V电源,如图3所示,即为通过USB为系统供电。
(2)外部7-12V(最好使用9V)直流稳压电源适配器供电,通过电源接口JP1输入电源。
通过手动控制开发板上的K1开关来打开和断开系统供电,当K1开关拨至“ON”位置,发
光二极管点亮指示系统上电。
图3主板供电系统原理图
3.2.2串口模块
◆串行通讯基本概念
计算机与外界的信息交换称为通信[7]。
常用通信方式有两种:
并行通信与串行通信,简称并行传送和串行传送。
并行传送具有传送速度快,效率高等优点,但传送多少数据位就需要多少根数据线,传送成本高;串行传送是按位顺序进行数据传送,最少仅需要一根传输线即可完成,传送距离远,但传送速度慢[8]。
串行通信又分同步和异步两种方式。
这两种通信方式的区别在于发送设备时钟与接收设备时钟是否严格一致。
同步通信中,在数据传送开始时先用同步字符来指示(常约定1-2个),并由同时传送的时钟信号来实现发送端和接收端同步,即检测到规定的同步字符后,接着就连续按顺序传送数据。
这种传送方式对硬件结构要求较高。
异步通信中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:
一个起始位,仅接着是若干个数据位,图4中传输45H的数据格式。
图4串口通信传输45H的数据格式
另外一个字符应包括以下信息:
(1)起始位:
对应逻辑0(space)状态。
发送器通过发送起始位开始一帧字符的传送。
(2)数据位:
起始位之后传送数据位。
数据位中低位在前,高位在后。
数据位可以是5、6、7、8位。
(3)奇偶校验位:
奇偶校验位实际上是传送的附加位,若该位用于奇偶校验,可校检串行传送的正确性。
奇偶校验位的设置与否及校验方式(奇校验还是偶校验)由用户需要确定。
(4)停止位:
用逻辑1(mark)表示。
停止位标志一个字符传送的结束。
停止位可以是1、1.5或2位。
◆MCS-51单片机的串行接口
MCS-51单片机串行口寄存器结构如5图所示。
SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。
但这两个寄存器具有同一地址(99H)。
MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据,而从接收缓冲器读出数据即可接收数据。
图5MCS-51单片机串行口寄存器结构图
◆串行通信标准
RS232和RS485是两种典型的串行通信标准,两种标准的主要区别有:
(1)传输距离。
RS485传输距离要比RS232大很多。
(2)接口电平。
RS485的接口电平比RS232电平降低了。
(3)传输速率。
RS485最高传输速率可达到10Mbps。
图6RS485原理及实物图
对于软件编程方面,RS485和RS232完全一致,但是由于485数据传输为差分方式,需要同样具有485接口的硬件,才能实现数据收发,所以在本系统中选用操作起来相对简单的RS232。
◆RS232硬件电路
51单片机有一个以上全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,两者之间必须有一个电平转换电路,本系统采用了专用芯片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]
图7MAX3232的原理图
本系统采用了三线制连接串口,也就是说计算机的9针串口只连接其中的3根线:
第5脚的GND、第2脚的RXD、第3脚的TXD,这是最简单的连接方法,但是对本系统来说已经足够了。
电路如图8所示。
图8串口原理图
图9串口模块实物图
3.2.3核心板模块
图10核心板结构图
◆功能描述:
(1)51核心板支持DIP40封装的STC系列单片机、AT89S5X系列单片机。
(2)带USB转串口模块,能为STC系列单片机编程,能与PC机进行串口通信。
(3)通过P0口的“5V”管脚供电(作为主板的核心板使用时),无需重复在核心板上对USB供电。
(4)提供ISP下载接口,为AT89S5X系列单片机编程。
图11核心板电路原理图
3.2.4LED模块
LED(LightEmittingDiode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。
LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。
半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子,但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。
当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。
而光的波长也就是光的颜色,是由形成P-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欧。
图12LED电阻计算公式
图13LED模块电路原理图
根据原理图分析可知,当由IO口控制的J13被置低(即连接到LED负极)时,发光二极管导通,被点亮。
3.2.5蜂鸣器模块
蜂鸣器是一种一体化结构的电子讯响器,广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中,作发声器件。
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜震动发声的,因此需要一定的电流才能驱动它。
单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,图14为蜂鸣器驱动电路,使用的是ULN2003芯片来放大电流,驱动蜂鸣器。
图14蜂鸣器驱动电路
图15ULN2003内部结构
图16ULN2003等效电路
如图14所示,蜂鸣器的正极接到VCC电源上面,蜂鸣器的负极接到图16等效电路的OUTPUT端,单片机IO通过控制图16电路的INPUT端,当IO输出低电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当IO输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,我们可以通过程序控制INPUT的电平来使蜂鸣器发出声音和关闭。
程序中改变单片机的输出波形的频率,就可以调整控制蜂鸣器音调。
另外,改变IO口输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
3.2.6步进电机模块
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定,因此非常适合于单片机控制。
单片机上设计的步进电机是减速比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四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机驱动方式可以采用双四拍(AB→BC→CD→DA→AB)方式,也可以采用单四拍(A→B→C→D→A)方式,或单、双八拍(A→AB→B→BC→C→CD→D→DA→A)方式。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图18中a、b、c所示:
图18步进电机工作时序波形图
图19步进电机电路原理图
3.2.7LCD模块
LED数码管显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管称为一个字段,因而它的控制原理和发光二极管的控制原理是相同的。
根据各管的接线形式,它可分为两种,一是共阳极(发光二极管的阳极都接在一个公共点上),如图20,另一是共阴极(发光二极管的阴极都接在一个公共点上),如图21。
给LED数码管的七个条形发光二极管加不同的电平,二极管显示不同亮灭的组合就可以形成不同的字形,这种组合称之为字形码。
下面以1为高电平,0为低电平,给出字形码表,见图22。
图20共阳极电路图
图21共阴极电路图
图22字形码表
图23LCD电路原理图
原理图23中用到两片74HC573,一片用于位选,选择8位共阴数码管中的某位或某几位,另一片74HC573用于段选,输入以上表格中的编码来控制要显示的内容。
举个例子,如果我们要使数码管的最低位显示“A”,那么,首先通过控制DS1,选中位选控制的74HC573,控制DSD7为“0”(共阴,如果是共阳的数码管就置“1”),然后通过控制DS2,选中段选选控制的74HC573,在DSD0~DSD7输入0x77,即可实现“A”在第3位显示。
图24LCD实物图
3.2.8热敏&光敏传感器模块
◆热敏传感器
热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)[10]。
热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。
正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。
NTC热敏电阻与普通电阻不同,它具有负的电阻温度特性,当温度升高时,电阻值减少,其特性曲线如图25所示。
图25热敏电阻特性曲线图
热敏电阻的阻值——温度特性曲线是一条指数曲线,线性度差,因此,在使用时要进行线性化处理。
线性化处理虽然能改善热敏电阻的特性曲线,但比较复杂。
因此,在要求不高的应用系统中,在一定的温度范围内,常常把温度与阻值看成是线性的关系,以简计算和系统设计。
使用热敏电阻是为了感知温度,给热敏电阻通以恒定的电流,电阻两端就可以测到一个电压,通过下面的公式就可以计算出温度值:
T=T0-KXVT
其中
T--被测温度
T0--与热敏电阻特性有关的温度参数
KX--与热敏电阻特性有关的系数
VT--热敏电阻两端的电压
根据这一公式,如果测得热敏电阻两端的电压,再知道参数T0和系数KX,则可计算出热敏电阻的环境温度,也就是被测的温度。
这样就把电阻随温度的变化关系转化为电压随温度变化的关系了。
数字式电阻温度计设计工作的主要内容就是把热敏电阻两端的电压值经A/D(模拟量转化为数字量)转换为数字量,然后通过软件方法计算得到温度值,再进行显示等处理。
图26热敏&光敏传感器电路原理图
如图26所示为开发板上的原理图,R39为热敏电阻,AD转换器采集RT处的电压值,再通过软件处理得到温度值。
◆光敏敏传感器
光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料[8]。
这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。
这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。
光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器,入射光强,电阻减小,入射光弱,电阻增大。
光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。
常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。
光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1~10M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。
光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4μm~0.76μm)的响应很接近,只要是人眼可感受的光,都会引起它的阻值变化。
由此可以看出,通过光敏电阻测量光强的原理基本和热敏电阻测量温度一致。
上面图26中的R38即为光敏电阻,AD转换器采集DT处的电压值,再通过软件处理得到光强度。
4软件系统设计
4.1keiluVision2简介
keiluVision2是德国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发。
与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期。
它还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,使用户可以更加贴近CPU本身,及其它的衍生产品。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器、汇编器、实时操作系统、项目管理器和调试器,uVision2IDE可为它们提供单一而灵活的开发环境。
4.2keiluVision2新建项目、编辑、编译以及调试运行
(1)安装好Keil软件以后,打开它。
打开以后界面如下:
图27Keil软件打开界面
(2)先新建一个工程文件。
点击“Project->NewProject…”菜单,如下图:
图28新建工程页面
(3)选择工程文件要存放的路径,输入工程文件名,如LED,最后单击保存:
图29保存工程页面
(4)在弹出的对话框中选择CPU厂商及型号:
图30CPU型号选择页面
(5)选择好选择CPU厂商及型号,如Atmel公司的89c51,之后,单击确定:
图31选定CPU型号
(6)接着弹除一个对话框,问“将标准的8051启动代码复制到项目文件夹并将文件添加到项目中?
”,选择“是”:
图32询问页面
(7)新建一个C51文件。
点击file菜单下的NEW,或单击左上角的NewFile快捷键,如下图:
图33新建C51文件页面
(8)保存新建的文件。
单击SAVE,如下图:
图34点击保存C51文件
(9)在出现的对话框中输入保存文件名(注意:
后缀名必须为.C),如MAIN.C,再单击“保存”,如下图:
图35保存C51文件页面
(10)保存好此文件后,将其加入到工程中方法如下:
在SourceGroup1上鼠标右击,然后再单击AddFilestoGroup‘SourceGroup1'如下图:
图36将C51文件添加到工程
(11)选择要加入的文件。
找到后缀名.C的文件后,单击Add,然后单击Close:
图37添加到工程中的事.c文件
(12)在编辑框里输入所需代码,至此完成了工程项目的建立以及文件加入工程,现在开始编译工程。
单击快捷键或单击Project->Rebuildallthefiles,如果在错误与警告栏看到“0Error(s)”表示编译通过:
图38添加代码后编译
(13)生成.hex烧写文件。
先单击OptionsforTarget,在弹出的窗口中单击Output,选中CreateHEXFi,再单击“确定”,然后再次编译才能产生HEX文件:
图39项目选项
图40设置文件输出格式为HEX
编译完成后,打开工程存放目录,可以看到增加了“led.hex”文件:
图41编译完成后的文件
4.3程序烧写
使用烧写软件STC_ISP_V483进行程序烧写。
打开烧写软件,界面如下:
图42烧写软件界面
烧写、下载程序过程分为以下几个步骤:
步骤
(1)选择单片机的型号。
本系统所用的单片机型号是STC12C5A60S2。
步骤
(2)打开后缀为.HEX的文件,即为程序文件。
在相应工程下找到需要下载的.HEX文件,点击打开。
步骤(3)选择串口号、设置最高波特率。
打开PC机的设备管理器,确定生成的串