基于单片机的家居智能防盗控制系统设计_课程设计论文

上传人:aa****6 文档编号:29218501 上传时间:2018-01-22 格式:DOC 页数:22 大小:200.50KB
返回 下载 相关 举报
基于单片机的家居智能防盗控制系统设计_课程设计论文_第1页
第1页 / 共22页
基于单片机的家居智能防盗控制系统设计_课程设计论文_第2页
第2页 / 共22页
基于单片机的家居智能防盗控制系统设计_课程设计论文_第3页
第3页 / 共22页
基于单片机的家居智能防盗控制系统设计_课程设计论文_第4页
第4页 / 共22页
基于单片机的家居智能防盗控制系统设计_课程设计论文_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于单片机的家居智能防盗控制系统设计_课程设计论文》由会员分享,可在线阅读,更多相关《基于单片机的家居智能防盗控制系统设计_课程设计论文(22页珍藏版)》请在金锄头文库上搜索。

1、1单片机原理及应用课程设计说明书题目:基于单片机的家居智能防盗控制系统设计(二) 2目 录1 选题背景 .22 原理与设计 .221 流程图 .222 系统总体设计 .323 系统模块设计 .43 代码 .54 结果分析 .195 总结 .19参考文献31 选题背景随着科技的发展和人们生活水平的提高,家居智能防盗成了越来越热门的话题。本课题贴近日常生活,又能很好地运用所学的单片机知识,主要是针对家庭的安全问题,既可以安装在门外,作为一个报警系统,防止钥匙丢失或被复制时被不法分子利用,造成不必要的损失。也可以外加传感器,连接至报警系统上,将窗户等需要监测的地方与大门构成整体的监控报警系统,对房屋

2、进行整体监控。保证住户的人身财产安全。2 原理与设计2.1 流程图NYNYYN图2-1开始结束系统初始化检测中断信号1语音提示,并触发中断0LED显示中断0时间,P1.0置位,语音报警持续30秒,P1.1置位,电话报警。报警结束,等待下次中断信号。42.2 系统总体设计本系统的设计中,采用51单片机为主控制器,用不同颜色的LED灯为装态指示灯,水银开关为开门的触发中断开关,按钮开关作为识别主人和陌生人的装置,DS1302作为时钟芯片提供准确的时间,在LCD1602上显示时间,当有陌生人闯入,触发报警系统包报警。LCD记录报警时间,并通过继电器控制给主人拨打电话。系统工作原理介绍:本系统控制有三

3、种状态:正常状态,仅绿灯亮,LCD时间正常显示,此状态可以调整时间,调整时间是通过时间修改按键来调整的,按键分为调整启动按键(即时间显示停止,KEY_STOP),按键按下,时间停止更新,同时出现调整位置的光标,按动KEY_R(右移)或KEY_L(左移),移动光标,选择需要调整的时间单位,再按键KEY_ADD(加)或KEY_DEC(减),来调整时间,调整好后,按键KEY_START,开启动时间更新显示。警告状态,这个状态在门开后触发水银开关使得,黄灯亮,蜂鸣响,LCD时间更新,处于警告状态,并且识别是否是陌生人。此时,如果按下识别按钮,5s后进入正常状态,如果不按下识别按钮或者时间超过5s,则触

4、发报警状态。报警状态,时间停止更新,红色灯亮,黄色灯不灭,继电器触100ms拨打电话给主人,同时警报启动,1分钟后除了LCD时间显示停止外其他模块恢复正常工作状态。整体硬件点路设计图见图2-2。图2-2 2.3 系统模块设计本系统的模块设计分为显示部分,时钟部分和实时控制显示部分主要是LED灯和LCD等为状态指示灯和系统时间显示等显示电路部分,绿色LEDP10,黄色LED5P11,红色LEDP12,蜂鸣器在仿真时用蓝色LED代替,接P13,LCD1602数据口接P0,RSP20,RWP21,ENP22。见图2-3。图2-3时钟部分,该部分主要是由时钟芯片DS1302和时钟调整按键组成,DS13

5、02的VCC1和VCC2同时接+5V,RST接上拉电阻,由51的P23控制,SCLKP24,IOP25,2脚和3脚接晶振,并通过2个22uF的电容接地。时钟调整按键分别是KEY_STOP图2-46P16,KEY_STARTP17,KEY_RP30,KEY_LP31,KEY_ADDP34,KEY_DECP35。见图2-4。实时控制部分,该部分主要是由扬声器,蜂鸣器,继电器等器件模块组成,蜂鸣器P13,扬声器P14,继电器P15,其中蜂鸣器,扬声器和继电器前端接各一个三极管为功率放大。见图2-5。图2-53 代码以下为LCD1602的头文件。#include/包含头文件,一般情况不需要改动,头文件

6、包含特殊功能寄存器的定义#ifndef LCD1602_H#define LCD1602_H#define uint unsigned int /预定义#define uchar unsigned charsbit rs=P20; /1602的数据/指令选择控制线sbit rw=P21; /1602的读写控制线sbit en=P22; /1602的使能控制线/*P0口接1602 的D0D7,注意不要接错了顺序*/void lcddelay(uint n) /延时函数7uint x,y;for(x=n;x0;x-)for(y=110;y0;y-); void lcd_wcom(uchar com

7、) /1602写命令函数rs=0; /选择指令寄存器 rw=0; /选择写P0=com; /把命令字送入P2 lcddelay(5); /延时一小会儿,让1602准备接收数据 en=1; /使能线电平变化,命令送入1602的8位数据口 en=0; void lcd_wdat(uchar dat) /1602写数据函数rs=1; /选择数据寄存器 rw=0; /选择写 P0=dat; /把要显示的数据送入P2 lcddelay(5); /延时一小会儿,让1602准备接收数据 en=1; /使能线电平变化,数据送入1602的数据口 en=0; void lcd_init() /1602初始化函数

8、lcd_wcom(0x38); /8位数据,双列,5*7字形 lcd_wcom(0x0c); /开启显示屏,关光标,光标不闪烁 lcd_wcom(0x06);/显示地址递增,即写一个数据后,显示位置右移一位 lcd_wcom(0x01); /清屏 #endif以下为DS1302的头文件8/=/- 星期一 monday 星期二 tuesday 星期三 wednesday/- 星期四 thursday 星期五 friday 星期六 saturday/- 星期日 sunday/=#ifndef _DS1302_h_ #define _DS1302_h_ /-#define uchar unsigne

9、d char#define uint unsigned int/-/- 定义端口 -sbit rst=P23;sbit sclk=P24;sbit io=P25;/-uint tab_13027=0,20,16,27,12,4,12; /初始化时时间日期设置/秒 分 时 日月 星期 年uint tab1_13027=0,20,16,27,12,4,12; /-/- 函数声明 -/-void ds1302(); /获取DS1302时间void writeds_byte(uchar); /向DS1302写一字节uchar readds_byte(); /从DS1302读一字节void ds1302

10、_init(); /DS1302初始化void writeds_add(uchar,uchar); /指定地址向1302写一数据uchar readds_add(uchar); /指定地址从1302读一数据/=/- 函数 -/=/-/- 向DS1302 写一字节 (上升沿有效) -/- 数据输入从低位到高位 -9/-void writeds_byte(uchar dat) uchar i,dat_w;dat_w=dat; /数据送给变量dat_wfor(i=0;i1; /右移一位sclk=0; /先拉低时钟信号sclk=1; /拉高时钟信号 sclk=0; /写一字节完毕,拉低时钟信号/-/-

11、 从DS1302 读一字节 (下降沿有效) -/- 读出数据时从低位0位到高位 7 -/-uchar readds_byte()uchar i,k; k=0;for(i=0;i1; /k右移一位,确保先读来的数据在低位if(io)k=k|0x80; /读取的值先送K 最高位clk=1; /先拉低时钟信号sclk=0;10sclk=0;return (k);/-/- 指定地址写一数据 -/-void writeds_add(uchar add,uchar dat) /dat为十进制数rst=0;sclk=0;rst=1; /拉高RSTwriteds_byte(add); / 写地址writeds_byte(dat/10#include ds1302.h#include lcd1602.h/-#define uchar unsigned char#define uint unsigned intsbit key_stop =P16; /光标停止sbi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号