- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2016-2017学年第二学期
单片机原理及应用期末考试
班级: 15网络1班 学号:2015220240125 姓名: 荣瑞乾
考试
题目
家居防盗报警器
一、系统设计(10分)
1、设计思路
本设计包括硬件和软件设计两个部分。模块划分为数据采集、键盘控制、报警等子模块。电路结构可划分为:热释电红外传感器、报警器、单片机控制电路、LED控制电路及相关的控制管理软件组成。用户终端完成信息采集、处理、数据传送、功能设定、本地报警等功能。
2、组成框图
AT89
C52
复位电路
信号检测电路
报警执行电路
LED发光显示
放大
驱动
驱动
二、硬件设计(20分)
1、设计方案
设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,经放大电路、比较电路送至门限开关,打开门限阀门送出TTL 电平至AT89C51单片机。在单片机内,经软件查询、识别判决等环节实时发出入侵报警状态控制信号。驱动电路将控制信号放大并推动声光报警设备完成相应动作。当报警延迟10s一段时间后自动解除,也可人工手动解除报警信号,当警情消除后复位电路使系统复位,或者是在声光报警10s钟后有定时器实现自动消除报警。
1、主机有三个控制按键,一个按键布防,一个按键是遇到紧急情况紧急报警(或是测试键),一个是撤防。另一个为单片机的上电复位按键。
2、按下布防按键后, 30秒后进入监控状态(此时有人靠近不报警),当有人靠近时,热释红外感应到信号,传回给单片机,单片机马上进行报警。按下撤防按键解除布防。
3、当遇到特殊紧急情况时,可按下紧急报警键(测试键),蜂鸣器进行报警。(是在布放状态下)
4、布防时数码管显示“b”,撤防时数码管显示“c”,测试时或报警时数码管显示“-”
完成功能:开机等待布防键按下,数码管熄灭;
等待状态:按下布防键后数码管显示字母 “b” 30秒,之后数码管显示熄灭,进入布防状态;
(从按下按键到30秒计时到,可以重复按下布防键延长计时时间,不累计,指示重新计时
30秒。也可按下撤防键取消布防);
布防状态:感应模块有信号时,数码管显示数字 “-” 蜂鸣器报警;
报警状态:按下撤防键,数码管显示字母 “c” ,蜂鸣器停止鸣响,系统进入等待布防状态;
紧急状态:当系统处于布防状态时,可以按下SOS键开启报警,此时蜂鸣器鸣响,数码管显示数字 “-”
2、硬件电路图
三、软件设计(20分)
1、软件设计思路(可画流程图)
系统初始化
系统初始化
声光报警结束
检测外部有
无信号输入
声光报警是否持续10秒
开始
启动声光报警电路开始报警
是否还有检测信号等待下次报警
结束
Y
N
N
Y
Y
N
2、源程序(代码)
#include reg52.h
#define uc unsigned char
#define ui unsigned int
sbit SOS = P1^0;//布防
sbit bufang = P1^1;//报警按键
sbit chefang= P1^2;//撤防
sbit baojing= P1^3;//蜂鸣器
bit bdata flag,flag1;//flag布防标志,flag1布防倒计时标志
uc t,t1; //定时器专用变量
void delay(ui x) //延时函数1ms
{
ui i,j;
for(i=0;ix;i++)
for(j=0;j110;j++);
}
void kongzhi() //控制函数
{
if((bufang==1)(flag==0)) //在报警等待时按下布防键
{
delay(10);
if((bufang==1)(flag==0))
{
t=0;
t1=0; //清零计时器
TR0=1; //打开计时器
P2=0x85; //显示字母b
}
}
if((flag==1)(SOS==1)) //报警按键按下
{
flag1=1; //蜂鸣器鸣响
P2=0xbf; //显示-
TR0=1; //开启定时器
}
if(chefang==1) //撤防键按下
{
delay(10);
if(chefang==1)
{
{
flag1=0;
baojing=1; //关闭蜂鸣器
flag=0; //停止计时器计时
TR0=0; //关闭计时器
P2=0xa7; //显示字母c
delay(1000);//延时1s
P2=0xff;
原创力文档


文档评论(0)