基于单片机的智能家居控制系统.docx
《基于单片机的智能家居控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能家居控制系统.docx(26页珍藏版)》请在冰豆网上搜索。
基于单片机的智能家居控制系统
单片机原理与应用技术
课程设计报告
题目基于单片机的智能家居控制系统的设计
专业班级:
__
姓 名:
______
时间:
_
指导教师:
单片机课程设计项目系列:
基于单片机的智能家居控制系统的设计
一.设计要求
(一)基本功能
(1)家居内无人时,切断所有家电的220V电源,既消除了各种电器的待机能耗,又避免了因供电异常、屋内漏水等不可预知事件损坏电器的危险。
(2)通过预设时间和时长控制娱乐性家电,避免了孩子在家因过度娱乐而延误学习。
(3)所有电器的电源都直接通过系统控制进行供电/断电,在使用电器时无需插拔电源插头,避免了因经常插拔电源插头而造成接触不良及触电的危险。
(4)根据预设室内温度和湿度对空调和加湿器自动进行启/停控制,以达到最佳舒适度。
(5)各电器的工作状态在主控面板上以LED直观显示,并通过键盘集中控制电器,例如在观看电视时可随手打开/关闭厨房电灶。
(6)远程控制家电的启动操作。
(7)设定/显示日期、时间、星期及定时叫醒服务。
(8)为避免煤气中毒设置了一氧化碳及燃气报警。
(9)烟感和水感可及时发现家居内的水、火灾并报警。
(10)通过门磁和窗户红外线完成防盗报警。
(二)扩展功能
加入住宅配房安全防盗报警功能和住宅门禁系统功能。
二.计划完成时间三周
1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。
2.第二周完成软件的具体设计和硬件的制作。
3.第三周完成软件和硬件的联合调试。
基于单片机的智能家居控制系统的设计
摘要:
介绍了以单片机为核心,并加以热释电传感器、烟感传感器、振动传感器、门磁和红外报警系统,共同构成了智能家居控制系统。
制作简单、方便、价格低廉,适宜广大用户消费。
关键词:
智能家居报警传感器矩阵键盘
1引言
随着中国信息化发展水平的逐步提高,智能化系统越来越受人们的重视。
智能家居系统将现代高科技控制手段运用于家居设计,通过一套专用控制系统将室内家居,家居环境,家用电器,室外场所(车库、花园等),防盗报警(门磁探测器、玻璃探测器、红外探测器)、安检系统(烟感探测器、煤气泄露探测器)和智能设备有机的融为一个整体,统一控制起来,并通过电话网络对所有家电进行异地或远程开启、关闭控制。
2总体设计方案
2.1设计思路
根据设计要求可以分为以下几个模块:
传感器模块、矩阵键盘、单片机最小系统、显示模块和输出部分。
2.1.1方案确立
传感器模块主要有烟感传感器、门磁探测器、红外探测器和热释电传感器。
用于室内的安检系统(烟感探测器、振动探测器)、防盗报警(门磁探测器、红外探测器)、省电模式(热释电传感器)。
矩阵键盘和单片机最小系统是实现该设计的基本部分。
矩阵键盘选用单片机的P1口,晶振选用6MHz。
显示模块和输出部分用于显示时间、启动(停止)家用电器、安检报警,并以指示。
2.2总体设计框图
单片机
键盘输入
数码显示
传感器
电器工作
报警输出
复位、振荡
图1总体设计框图
3设计原理分析
3.1传感器模块的设计
当传感器检测到信号(烟雾、人体发射的红外线)时,会输出一组高低变化的电平,送往单片机的I/O口。
3.1.1烟感传感器
烟感传感器是检测室内的烟雾量,当室内的烟雾量超过一定值时,传感器发出信号,即有高电平输出,使报警电路报警。
3.1.2门磁、红外探测器
门磁、红外探测器也用于防盗报警系统。
门在关闭状态下,门磁处于断开状态,此时无输出;当门被打开时,门磁吸合,此时有高电平输出。
3.1.3热释电传感器
热释电传感器用于检测室内是否有人。
在无人时,让系统处于省电模式;有人时,跳出省电模式。
3.2矩阵键盘模块
该系统采用矩阵式键盘,外观美观,便于扩展。
主要用于时间的调整和家用电器的启停操作。
每一水平线(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通。
在这种行列矩阵式非编码键盘的单片机系统中,键盘处理程序首先执行有无键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下。
对键的识别常用逐行扫描查询法。
如图2所示。
图2矩阵键盘电路图
3.3单片机最小系统
该系统采用AT89S51单片机,采用串口显示电路以节省端口,采用4*4矩阵试键盘,用来控制以及调试电路,采用固态继电器实现对家用电器的强电控制和隔离强电干扰。
AT89C51的主电路如图。
图3单片机最小系统电路图
3.4显示模块
显示电路采用动态数码显示技术,由于一次只能让一个数码管显示,然而要显示6位的数据,必须由数码管一个一个轮流显示才可以实现,人的视觉暂留的时间为0.1秒,所以每位显示的间隔不必超过20ms,为了保证正确显示,必须每隔2ms,就要刷新一个数码管。
本电路使得每个数码管显示的时间大约在2ms,而这刷新时间我们采用软件延时程序.每隔12ms对数码管刷新一次。
电路如图4所示。
图4显示电路
3.5输出部分
输出部分是智能家居控制的一个重要环节,是控制系统的终端。
选用单片机的P2口。
其中P2.7用于控制室内的电源使用情况,即普通模式和省电模式的转换。
用一个三极管来驱动继电器控制220V的电源;P2.6是烟感传感器的输出指示;P2.5是控制娱乐性家电的使用情况,用一个计时器来控制娱乐性家电的工作时长,到一定时间后自动断开电源。
P2.4—P2.1是控制室内的其他家电的通断及扩展。
P2.0是用于安检系统的报警。
具体电路如图5所示。
图5输出部分电路图
4总结与体会
通过这次课程设计提高了对简单的单片机应用电路的设计能力。
设计时应该先完全领会要求再去动手,不能急躁。
知道了有科学的态度才能完成科学的试验。
该系统软硬件实现技术具有接口电路简单、可靠性高、成本低、灵活性强优点。
由于设计经验不是很丰富,该次设计没有完全实现。
总之,通过这次实习,我真正学到了很多东西,真正体会到了理论联系实际的重要性。
我想如果在平时多搞几次这样的实习,多提供一些好的条件,那我们的知识会掌握的更多,更牢固。
参考文献
[1]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社,2005.9
[2]钟睿.MCS-51单片机原理及应用开发技术[M].北京:
中国铁道出版社,2006.4
[3]沙占友,孟志永,王彦朋,等.单片机外围电路设计[M].北京:
电子工业出版社,2006.6
[4]陈杰,黄鸿.传感器与检测技术[M].北京:
高等教育出版社,2002.8
附录一程序流程图
系统初始化
时钟显示
判断键盘是否按下-
键盘扫描
判断判断是何键按下-
调时电路
家居控制
报警显示
图6程序流程图
附录二程序列表
;*******************
LED1EQU20H;存秒单元
LED2EQU21H;存分单元
LED3EQU22H;存时单元
COMEQU23H;调时间转换标志单元
COM1EQU24H;定时转换标志单元
;*******************
ORG0000H
AJMPSTART
ORG01BH
LJMPT1ZHONG
ORG000BH;T0的中断入口地址
AJMPSERVE;转向中断服务程序
ORG0030H
START:
MOVR0,#20H;秒单元存入首地址
MOVR1,#30H;秒单元发送首地址
MOVR2,#6;各单元清零循环次数
MOVR3,#5
MOVDPTR,#TAB;字型码首地址
MOV25H,#0AH;装入中断次数
MOVTMOD,#11H;设T0工作于模式1
MOVIE,#82H;允许CPU,T0中断
MOVTH0,#3CH
MOVTL0,#0B0H;赋计数初值
BK:
MOV@R0,#00H
INCR0
DJNZR3,BK
MOVLED3,#12
MOV40H,#00H
MOV41H,#00H
MOV42H,#06H;定时单元初始化6:
00:
00
ACALLDIS;赋初值12:
00:
00
SETB30H;标志位置1
SETBTR0;启动定时器T0,开始计时
MOVTH1,#3CH
MOVTL1,#0B0H
SETBET1
SETBEA
MOVR3,#50
MOVA,#0F0H
MOVP2,#0FFH
MAIN:
JNBP0.0,K16
JNBP0.1,K12;判断传感器是否动作
JNBP0.2,K16
JNBP0.3,K13
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,DELAY
AJMPKEY
DELAY:
ACALLDL10MS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,KEYJ
AJMPKEY
RET
KEYJ:
MOVP1,#0FEH
MOVA,P1
L1:
CJNEA,#07EH,L2
MOVR5,#20
A10:
ACALLDL10MS
DJNZR5,A10
CLRTR0;关闭定时器T0
INCCOM;标志单元加1
MOVA,COM
SETB30H;调时间标志位
CJNEA,#4,KEY;K1,如果K1键未按四下进入调时间闪烁状态
SETBTR0;启动定时器
MOVCOM,#00H;如果K1键按四下,标志单元清零
;************************************
KEY:
MOVA,COM
CJNEA,#1,PD1
ACALLDIS
ACALLDELAY600
MOV36H,#10
MOV37H,#10
MOV38H,32H
MOV39H,33H
MOV3AH,34H
MOV3BH,35H
ACALLCCC
ACALLDELAY600;秒闪烁/准备进入调秒状态PD1:
CJNEA,#2,PD2
ACALLDIS
ACALLDELAY600
MOV36H,30H
MOV37H,31H
MOV38H,#10
MOV39H,#10
MOV3AH,34H
MOV3BH,35H
ACALLCCC
ACALLDELAY600;分闪烁/准备进入调分状态
PD2:
CJNEA,#3,KEY2
MOV36H,30H
MOV37H,31H
MOV38H,32H
MOV39H,33H
MOV3AH,#10
MOV3BH,#10
ACALLCCC
ACALLDELAY600
ACALLDIS
ACALLDELAY600;时闪烁/准备进入调时状态
KEY2:
AJMPMAIN
L2:
CJNEA,#0BEH,L3
MOVR5,#20
A20:
ACALLDL10MS
DJNZR5,A20
MOVA,COM;调时间标志
JB30H,N0;为1调时间/为0定时
MOVA,COM1;定时标志
N0:
CJNEA,#1,N1
ACALLTS;转向调秒/加
N1:
CJNEA,#2,N2
ACALLTM;转向调分/加
N2:
CJNEA,#3,KEY3
ACALLHOUR;转向调时/加
KEY3:
AJMPKEY
L3:
CJNEA,#0DEH,L4
MOVR5,#20
A30:
ACALLDL10MS
DJNZR5,A30
MOVA,COM
JB30H,M0;为1调时间/为0定时
MOVA,COM1;定时标志
M0:
CJNEA,#1,M1
ACALLTS;转向调秒/减
M1:
CJNEA,#2,M2
ACALLTM1;转向调分/减
M2:
CJNEA,#3,CHS
ACALLHOUR1;转向调时/减
CHS:
JB30H,KEY4
MOV41H,LED2;分定时存入41H单元
MOV42H,LED3;时定时存入42H单元
KEY4:
AJMPKEY
L4:
CJNEA,#0EEH,M10
MOVR5,#20
A40:
ACALLDL10MS
DJNZR5,A40
SETBTR0;启动定时器
SETBP1.4
CLR30H;定时标志位
INCCOM1
MOVA,COM1
CJNEA,#4,YYY
MOVCOM1,#00H
SETB30H
MOVLED2,3EH;还原分
MOVLED3,3FH;还原时
AAA:
JNB30H,NNN
MOVA,LED3
CJNEA,42H,NNN;时比较
MOVA,LED2
CJNEA,41H,NNN1;分比较
ACALLMM
MOV43H,41H
INC43H
NNN1:
CJNEA,43H,NNN
ACALLMM
NNN:
MOVA,COM
JB30H,XXX
MOVA,COM1
XXX:
AJMPZZZ
YYY:
CJNEA,#1,ZZZ
MOV3EH,LED2;暂存分
MOV3FH,LED3;暂存时
ZZZ:
AJMPKEY
M10:
MOVP1,#0FDH
MOVA,P1
L5:
CJNEA,#07DH,L6
CPLP2.2
MOVR5,#20
B10:
ACALLDL10MS
DJNZR5,B10
AJMPMAIN
L6:
CJNEA,#0BDH,L7
CPLP2.2
MOVR5,#20
B20:
ACALLDL10MS
DJNZR5,B20
AJMPMAIN
L7:
CJNEA,#0DDH,L8
CPLP2.2
MOVR5,#20
B30:
ACALLDL10MS
DJNZR5,B30
AJMPMAIN
L8:
CJNEA,#0EDH,M20
CPLP2.2
MOVR5,#20
B40:
ACALLDL10MS
DJNZR5,B40
AJMPMAIN
M20:
MOVP1,#0FBH
MOVA,P1
L9:
CJNEA,#07BH,L10
CPLP2.2
MOVR5,#20
C10:
ACALLDL10MS
DJNZR5,C10
AJMPMAIN
L10:
CJNEA,#0BBH,L11
CPLP2.2
MOVR5,#20
C20:
ACALLDL10MS
DJNZR5,C20
AJMPMAIN
L11:
CJNEA,#0DBH,L12
CPLP2.2
MOVR5,#20
C30:
ACALLDL10MS
DJNZR5,C30
AJMPMAIN
L12:
CJNEA,#0EBH,M30
MOVR5,#20
C40:
ACALLDL10MS
DJNZR5,C40
AJMPK12
M30:
MOVP1,#0F7H
MOVA,P1
L13:
CJNEA,#077H,L14
MOVR5,#20
D10:
ACALLDL10MS
DJNZR5,D10
AJMPK13
L14:
CJNEA,#0B7H,L15
MOVR5,#20
D20:
ACALLDL10MS
DJNZR5,D20
AJMPK14
L15:
CJNEA,#0D7H,L16
MOVR5,#20
D30:
ACALLDL10MS
DJNZR5,D30
AJMPK15
L16:
CJNEA,#0E7H,CHS0
MOVR5,#20
D40:
ACALLDL10MS
DJNZR5,D40
AJMPK16
CHS0:
AJMPCHS
K16:
CPLP2.6
MOVR5,#20
E10:
ACALLDL10MS
DJNZR5,E10
AJMPMAIN
K12:
CPLP2.0
MOVR5,#20
E20:
ACALLDL10MS
DJNZR5,E20
AJMPMAIN
K13:
CPLP2.7
MOVR5,#20
E30:
ACALLDL10MS
DJNZR5,E30
AJMPMAIN
K14:
CLRP2.5
SETBTR1
AJMPMAIN
K15:
CPLP2.4
MOVR5,#20
E4:
ACALLDL10MS
DJNZR5,E4
AJMPMAIN
MOV41H,LED2;分定时存入41H单元
MOV42H,LED3;时定时存入42H单元
RET
;*****加秒子程序*********
TS:
MOVR3,#60
A1:
ACALLDELAY100
INCLED1
MOVA,LED1
CJNEA,#60,A2
MOVLED1,#0
A2:
ACALLDIS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,A33
AJMPA3
A33:
DJNZR3,A1
SJMPTS
A3:
RET
;******减秒子程序**********
TS1:
MOVR3,#60
B1:
ACALLDELAY100
MOVA,LED1
CJNEA,#0FFH,B2
MOVLED1,#59
B2:
ACALLDIS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,B33
AJMPB3
B33:
DECLED1
DJNZR3,B1
SJMPTS1
B3:
SETBP1.5
RET
;*******加分子程序************
TM:
MOVR3,#60
C1:
ACALLDELAY100
INCLED2
MOVA,LED2
CJNEA,#60,C2
MOVLED2,#0
C2:
ACALLDIS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,C33
AJMPC3
C33:
DJNZR3,C1
SJMPTM
C3:
SETBP1.6
RET
;**********减分子程序*************
TM1:
MOVR3,#60
D1:
ACALLDELAY100
MOVA,LED2
CJNEA,#0FFH,D2
MOVLED2,#59
D2:
ACALLDIS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,D33
AJMPD3
D33:
DECLED2
DJNZR3,D1
SJMPTM1
D3:
SETBP1.5
RET
;********加时子程序*************
HOUR:
MOVR3,#13
E1:
ACALLDELAY100
INCLED3
MOVA,LED3
CJNEA,#13,E2
MOVLED3,#1
E2:
ACALLDIS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,E33
AJMPE3
E33:
DJNZR3,E1
SJMPHOUR
E3:
SETBP1.6
RET
;*********减时子程序***********
HOUR1:
MOVR3,#12
F1:
ACALLDELAY100
MOVA,LED3
CJNEA,#0,F2
MOVLED3,#12
F2:
ACALLDIS
MOVP1,#0F0H
MOVA,P1
ANLA,#0F0H
CJNEA,#0F0H,F33
AJMPF3
F33:
DECLED3
DJNZR3,F1
SJMPHOUR1
F3:
SETBP1.5
RET
;**********中断子程序************
SERVE:
PUSHPSW
PUSHACC
MOVTH0,#3CH
MOVTL0,#0B0H;重新赋计数初值
DJNZ25H,MT1;1S未到,返回
MOV25H,#0AH;重置中断次数
MOVA,#01H
ADDA,LED1;秒位加1
MOVLED1,A
CJNEA,#60,RETURN;未计满60秒,返回
MOVLED1,#00H;计满60秒,秒位清0
MOVA,#01H
ADDA,LED2;分位加1
MOVLED2,A
CJNEA,#60,RETURN;未计满60分,返回
MOVLED2,#00H;计满60分,分位清0
MOVA,#01H
ADDA,LED3;时位加1
MOVLED3,A
CJNEA,#13,RETURN;未计满13时,返回
MOVLED3,#01H;计满13时,时位清1
RETURN:
ACALLDIS
MT1:
POPACC
POPPSW
RETI
DL1MS:
MOVR5,#14H
DL1:
MOVR4,#19H
DL2:
DJNZR4,DL2
DJNZR5,DL1
RET
DL10MS:
MOVR7,#14H
LOOP1:
MOVR6,#0F9H
LOOP2:
DJNZR6,LOOP2
DJNZR7,LOOP1
RET
T1ZHONG:
MOVTH1,#3CH
MOVTL1,#0B0H
DJNZR3,LOOP
CLRTR1
SETBP2.5
MOVR3,#50
LOOP:
RETI
;*********显示子程序**********DIS:
MOVA,LED1
MOVB,#10
DIVAB
MOV30H,B
MOV31H,A
MOVA,LED2
MOVB,#10
DIVAB
MOV32H,B
MOV33H,A
MOVA,LED3
MOVB,#10
DIVAB
MOV34H,B
MOV35H,A
MOVR2,#6
MOVR1,#30H
BBB: