资源描述
单片机原理与应用技术
课程设计报告
题目 基于单片机智能家居控制系统设计
专业班级:_ _
姓 名:__ ____
时 间:_
指引教师:
单片机课程设计项目系列:
基于单片机智能家居控制系统设计
一.设计规定
(一)基本功能
(1)家居内无人时,切断所有家电220V 电源,既消除了各种电器待机能耗,又避免了因供电异常、屋内漏水等不可预知事件损坏电器危险。
(2)通过预设时间和时长控制娱乐性家电,避免了孩子在家因过度娱乐而延误学习。
(3)所有电器电源都直接通过系统控制进行供电/断电,在使用电器时无需插拔电源插头,避免了因经常插拔电源插头而导致接触不良及触电危险。
(4)依照预设室内温度和湿度对空调和加湿器自动进行启/停控制,以达到最佳舒服度。
(5)各电器工作状态在主控面板上以LED直观显示,并通过键盘集中控制电器,例如在观看电视时可随手打开/关闭厨房电灶。
(6)远程控制家电启动操作。
(7)设定/显示日期、时间、星期及定期叫醒服务。
(8)为避免煤气中毒设立了一氧化碳及燃气报警。
(9)烟感和水感可及时发现家居内水、火灾并报警。
(10)通过门磁和窗户红外线完毕防盗报警。
(二)扩展功能
加入住宅配房安全防盗报警功能和住宅门禁系统功能。
二.筹划完毕时间 三周
1.第一周完毕软件和硬件整体设计,同步按规定上交设计报告一份。
2.第二周完毕软件详细设计和硬件制作。
3.第三周完毕软件和硬件联合调试。
目录
1 引言 1
2 总体设计方案 1
2.1设计思路 1
2.1.1方案确立 1
2.2 总体设计框图 1
3 设计原理分析 2
3.1传感器模块设计 2
3.1.1烟感传感器 2
3.1.2门磁、红外探测器 2
3.1.3热释电传感器 2
3.2矩阵键盘模块 2
3.3单片机最小系统 3
3.4显示模块 3
3.5 输出某些 4
4 总结与体会 4
参照文献 4
附录一 程序流程图 5
附录二 程序列表 6
基于单片机智能家居控制系统设计
摘要:简介了以单片机为核心,并加以热释电传感器、烟感传感器、振动传感器、门磁和红外报警系统,共同构成了智能家居控制系统。制作简朴、以便、价格低廉,适当广大顾客消费。
核心词:智能家居 报警 传感器 矩阵键盘
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].北京:北京航空航天大学出版社,.9
[2] 钟 睿.MCS-51单片机原理及应用开发技术[M].北京:中华人民共和国铁道出版社,.4
[3] 沙占友,孟志永,王彦朋,等.单片机外围电路设计[M].北京:电子工业出版社,.6
[4] 陈 杰,黄 鸿.传感器与检测技术[M].北京:高等教诲出版社,.8
附录一 程序流程图
系统初始化
时钟显示
判断键盘与否按下-
键盘扫描
判断判断是何键按下-
调时电路
家居控制
报警显示
图6程序流程图
附录二 程序列表
;*******************
LED1 EQU 20H ;存秒单元
LED2 EQU 21H ;存分单元
LED3 EQU 22H ;存时单元
COM EQU 23H ;调时间转换标志单元
COM1 EQU 24H ;定期转换标志单元
;*******************
ORG 0000H
AJMP START
ORG 01BH
LJMP T1ZHONG
ORG 000BH ;T0中断入口地址
AJMP SERVE ;转向中断服务程序
ORG 0030H
START: MOV R0,#20H ;秒单元存入首地址
MOV R1,#30H ;秒单元发送首地址
MOV R2,#6 ;各单元清零循环次数
MOV R3,#5
MOV DPTR,#TAB ;字型码首地址
MOV 25H,#0AH ;装入中断次数
MOV TMOD,#11H ;设T0工作于模式1
MOV IE,#82H ;容许CPU,T0中断
MOV TH0,#3CH
MOV TL0,#0B0H ;赋计数初值
BK: MOV @R0,#00H
INC R0
DJNZ R3,BK
MOV LED3,#12
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,#06H ;定期单元初始化6:00:00
ACALL DIS ;赋初值12:00:00
SETB 30H ;标志位置1
SETB TR0 ;启动定期器T0,开始计时
MOV TH1,#3CH
MOV TL1,#0B0H
SETB ET1
SETB EA
MOV R3,#50
MOV A,#0F0H
MOV P2,#0FFH
MAIN:JNB P0.0,K16
JNB P0.1,K12 ;判断传感器与否动作
JNB P0.2,K16
JNB P0.3,K13
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,DELAY
AJMP KEY
DELAY: ACALL DL10MS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,KEYJ
AJMP KEY
RET
KEYJ: MOV P1,#0FEH
MOV A,P1
L1: CJNE A,#07EH,L2
MOV R5,#20
A10: ACALL DL10MS
DJNZ R5,A10
CLR TR0 ;关闭定期器T0
INC COM ;标志单元加 1
MOV A,COM
SETB 30H ;调时间标志位
CJNE A,#4,KEY;K1,如果K1键未按四下进入调时间闪烁状态
SETB TR0 ;启动定期器
MOV COM,#00H ;如果K1键按四下,标志单元清零
;************************************
KEY: MOV A,COM
CJNE A,#1,PD1
ACALL DIS
ACALL DELAY600
MOV 36H,#10
MOV 37H,#10
MOV 38H,32H
MOV 39H,33H
MOV 3AH,34H
MOV 3BH,35H
ACALL CCC
ACALL DELAY600 ;秒闪烁/准备进入调秒状态PD1:CJNE A,#2,PD2
ACALL DIS
ACALL DELAY600
MOV 36H,30H
MOV 37H,31H
MOV 38H,#10
MOV 39H,#10
MOV 3AH,34H
MOV 3BH,35H
ACALL CCC
ACALL DELAY600 ;分闪烁/准备进入调分状态
PD2: CJNE A,#3,KEY2
MOV 36H,30H
MOV 37H,31H
MOV 38H,32H
MOV 39H,33H
MOV 3AH,#10
MOV 3BH,#10
ACALL CCC
ACALL DELAY600
ACALL DIS
ACALL DELAY600 ;时闪烁/准备进入调时状态
KEY2: AJMP MAIN
L2: CJNE A,#0BEH,L3
MOV R5,#20
A20: ACALL DL10MS
DJNZ R5,A20
MOV A,COM ;调时间标志
JB 30H,N0 ;为1调时间/为0定期
MOV A,COM1 ;定期标志
N0: CJNE A,#1,N1
ACALL TS ;转向调秒 / 加
N1: CJNE A,#2,N2
ACALL TM ;转向调分 / 加
N2: CJNE A,#3,KEY3
ACALL HOUR ;转向调时 / 加
KEY3: AJMP KEY
L3: CJNE A,#0DEH,L4
MOV R5,#20
A30: ACALL DL10MS
DJNZ R5,A30
MOV A,COM
JB 30H,M0 ;为1调时间/为0定期
MOV A,COM1 ;定期标志
M0:CJNE A,#1,M1
ACALL TS ;转向调秒 / 减
M1:CJNE A,#2,M2
ACALL TM1 ;转向调分 / 减
M2:CJNE A,#3,CHS
ACALL HOUR1 ;转向调时 / 减
CHS:JB 30H,KEY4
MOV 41H,LED2 ;分定期存入41H单元
MOV 42H,LED3 ;时定期存入42H单元
KEY4:AJMP KEY
L4:CJNE A,#0EEH,M10
MOV R5,#20
A40:ACALL DL10MS
DJNZ R5,A40
SETB TR0 ;启动定期器
SETB P1.4
CLR 30H ;定期标志位
INC COM1
MOV A,COM1
CJNE A,#4,YYY
MOV COM1,#00H
SETB 30H
MOV LED2,3EH ;还原分
MOV LED3,3FH ;还原时
AAA:JNB 30H,NNN
MOV A,LED3
CJNE A,42H,NNN ;时比较
MOV A,LED2
CJNE A,41H,NNN1 ;分比较
ACALL MM
MOV 43H,41H
INC 43H
NNN1:CJNE A,43H,NNN
ACALL MM
NNN:MOV A,COM
JB 30H,XXX
MOV A,COM1
XXX:AJMP ZZZ
YYY:CJNE A,#1,ZZZ
MOV 3EH,LED2 ;暂存分
MOV 3FH,LED3 ;暂存时
ZZZ:AJMP KEY
M10:MOV P1,#0FDH
MOV A,P1
L5:CJNE A,#07DH,L6
CPL P2.2
MOV R5,#20
B10:ACALL DL10MS
DJNZ R5,B10
AJMP MAIN
L6:CJNE A,#0BDH,L7
CPL P2.2
MOV R5,#20
B20:ACALL DL10MS
DJNZ R5,B20
AJMP MAIN
L7:CJNE A,#0DDH,L8
CPL P2.2
MOV R5,#20
B30:ACALL DL10MS
DJNZ R5,B30
AJMP MAIN
L8:CJNE A,#0EDH,M20
CPL P2.2
MOV R5,#20
B40:ACALL DL10MS
DJNZ R5,B40
AJMP MAIN
M20:MOV P1,#0FBH
MOV A,P1
L9:CJNE A,#07BH,L10
CPL P2.2
MOV R5,#20
C10:ACALL DL10MS
DJNZ R5,C10
AJMP MAIN
L10:CJNE A,#0BBH,L11
CPL P2.2
MOV R5,#20
C20:ACALL DL10MS
DJNZ R5,C20
AJMP MAIN
L11:CJNE A,#0DBH,L12
CPL P2.2
MOV R5,#20
C30:ACALL DL10MS
DJNZ R5,C30
AJMP MAIN
L12:CJNE A,#0EBH,M30
MOV R5,#20
C40:ACALL DL10MS
DJNZ R5,C40
AJMP K12
M30:MOV P1,#0F7H
MOV A,P1
L13:CJNE A,#077H,L14
MOV R5,#20
D10:ACALL DL10MS
DJNZ R5,D10
AJMP K13
L14:CJNE A,#0B7H,L15
MOV R5,#20
D20:ACALL DL10MS
DJNZ R5,D20
AJMP K14
L15:CJNE A,#0D7H,L16
MOV R5,#20
D30:ACALL DL10MS
DJNZ R5,D30
AJMP K15
L16:CJNE A,#0E7H,CHS0
MOV R5,#20
D40:ACALL DL10MS
DJNZ R5,D40
AJMP K16
CHS0:AJMP CHS
K16:CPL P2.6
MOV R5,#20
E10:ACALL DL10MS
DJNZ R5,E10
AJMP MAIN
K12:CPL P2.0
MOV R5,#20
E20:ACALL DL10MS
DJNZ R5,E20
AJMP MAIN
K13:CPL P2.7
MOV R5,#20
E30:ACALL DL10MS
DJNZ R5,E30
AJMP MAIN
K14:CLR P2.5
SETB TR1
AJMP MAIN
K15:CPL P2.4
MOV R5,#20
E4:ACALL DL10MS
DJNZ R5,E4
AJMP MAIN
MOV 41H,LED2 ;分定期存入41H单元
MOV 42H,LED3 ;时定期存入42H单元
RET
;***** 加 秒 子 程 序 *********
TS:MOV R3,#60
A1:ACALL DELAY100
INC LED1
MOV A,LED1
CJNE A,#60,A2
MOV LED1,#0
A2:ACALL DIS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,A33
AJMP A3
A33: DJNZ R3,A1
SJMP TS
A3: RET
;******减秒子程序 **********
TS1: MOV R3,#60
B1: ACALL DELAY100
MOV A,LED1
CJNE A,#0FFH,B2
MOV LED1,#59
B2: ACALL DIS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,B33
AJMP B3
B33:DEC LED1
DJNZ R3,B1
SJMP TS1
B3: SETB P1.5
RET
;*******加分子程序 ************
TM:MOV R3,#60
C1:ACALL DELAY100
INC LED2
MOV A,LED2
CJNE A,#60,C2
MOV LED2,#0
C2:ACALL DIS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,C33
AJMP C3
C33:DJNZ R3,C1
SJMP TM
C3:SETB P1.6
RET
;**********减分子程序 *************
TM1:MOV R3,#60
D1:ACALL DELAY100
MOV A,LED2
CJNE A,#0FFH,D2
MOV LED2,#59
D2:ACALL DIS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,D33
AJMP D3
D33:DEC LED2
DJNZ R3,D1
SJMP TM1
D3:SETB P1.5
RET
;********加时子程序 *************
HOUR:MOV R3,#13
E1:ACALL DELAY100
INC LED3
MOV A,LED3
CJNE A,#13,E2
MOV LED3,#1
E2:ACALL DIS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,E33
AJMP E3
E33:DJNZ R3,E1
SJMP HOUR
E3:SETB P1.6
RET
;*********减时子程序 ***********
HOUR1:MOV R3,#12
F1:ACALL DELAY100
MOV A,LED3
CJNE A,#0,F2
MOV LED3,#12
F2:ACALL DIS
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
CJNE A,#0F0H,F33
AJMP F3
F33:DEC LED3
DJNZ R3,F1
SJMP HOUR1
F3:SETB P1.5
RET
;**********中断子程序 ************
SERVE:PUSH PSW
PUSH ACC
MOV TH0,#3CH
MOV TL0,#0B0H ;重新赋计数初值
DJNZ 25H,MT1 ;1S未到,返回
MOV 25H,#0AH ;重置中断次数
MOV A,#01H
ADD A,LED1 ;秒位加1
MOV LED1,A
CJNE A,#60,RETURN ;未计满60秒,返回
MOV LED1,#00H ;计满60秒,秒位清0
MOV A,#01H
ADD A,LED2 ;分位加1
MOV LED2,A
CJNE A,#60,RETURN ;未计满60分,返回
MOV LED2,#00H ;计满60分,分位清0
MOV A,#01H
ADD A,LED3 ;时位加1
MOV LED3,A
CJNE A,#13,RETURN ;未计满13时,返回
MOV LED3,#01H ;计满13时,时位清1
RETURN:ACALL DIS
MT1:POP ACC
POP PSW
RETI
DL1MS:MOV R5,#14H
DL1:MOV R4,#19H
DL2:DJNZ R4,DL2
DJNZ R5,DL1
RET
DL10MS:MOV R7,#14H
LOOP1:MOV R6,#0F9H
LOOP2:DJNZ R6,LOOP2
DJNZ R7,LOOP1
RET
T1ZHONG:MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R3,LOOP
CLR TR1
SETB P2.5
MOV R3,#50
LOOP: RETI
;*********显示子程序 ********** DIS:MOV A,LED1
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
MOV A,LED2
MOV B,#10
DIV AB
MOV 32H,B
MOV 33H,A
MOV A,LED3
MOV B,#10
DIV AB
MOV 34H,B
MOV 35H,A
MOV R2,#6
MOV R1,#30H
BBB:MOV A,@R1
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
INC R1
DJNZ R2,BBB
RET
;**烁显示子程序***
CCC:MOV R2,#6
MOV R1,#36H
DDD:MOV A,@R1
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
INC R1
DJNZ R2,DDD
RET
;*****10毫秒延时子程序 ******
DELAY10:MOV R7,#0AH
X1: MOV R6,#0F9H
X2: DJNZ R6,X2
DJNZ R7,X1
RET
;*******<100 毫秒延时子程序 ********
DELAY100:MOV R7,#100
Y1: MOV R6,#0F9H
Y2: DJNZ R6,Y2
DJNZ R7,Y1
RET
;********<600 毫秒延时子程序 ********
DELAY600: MOV R7,#15
Z1: MOV R6,#10H
Z2: MOV R5,#0FFH
Z3: DJNZ R5,Z3
DJNZ R6,Z2
DJNZ R7,Z1
RET
;*****闹铃/闪烁子程序 **************
MM:PUSH PSW
PUSH ACC
MMM:CLR P1.7
CLR P1.6
CLR P1.5
CLR P1.4
ACALL DELAY10
SETB P1.7
SETB P1.6
SETB P1.5
SETB P1.4
ACALL DELAY10
POP ACC
POP PSW
RET
;******字型码 **********
TAB:DB 11H,0D7H,32H,92H,0D4H
DB 98H,18H,0D3H,10H,90H,0FFH
END
展开阅读全文