精品论文红外热释电家庭防盗报警器的设计.docx
- 文档编号:15718203
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:13
- 大小:26.65KB
精品论文红外热释电家庭防盗报警器的设计.docx
《精品论文红外热释电家庭防盗报警器的设计.docx》由会员分享,可在线阅读,更多相关《精品论文红外热释电家庭防盗报警器的设计.docx(13页珍藏版)》请在冰点文库上搜索。
精品论文红外热释电家庭防盗报警器的设计
按下取消报警键:
蜂鸣器和指示灯进入初始状态。
图3-8所示。
图3-8按键部分
3.4.4指示灯和报警电路
报警电路是有红色led灯和蜂鸣器模块组成。
报警指示灯是有单片机输出低电平驱动。
蜂鸣器是用pnp型的功率驱动管S8550驱动,当单片机P2^3口为低电平时,三极管S8550饱和导通,蜂鸣器发出报警声,当单片机P2^3口为高电平时,三极管S8550截止,蜂鸣器停止报警。
电路图如图3-9所示:
图3-9指示灯和报警电路
3.5软件的程序实现
3.5.1主程序工作流程图
按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图所示:
图3-10主程序工作流程图
3.5.2报警判断程序
单片机对红外热释电传感器的入侵信号进行检测,并通过单片机的程序处理,分别驱动报警指示灯和蜂鸣器。
反语句的使用使报警灯和蜂鸣器同时发出报警信号。
如果没有人取消报警,程序将继续报警。
/******************红外报警处理**********************/
voidhongwai_dis()
{
if(flag_alarm==1)//报警
{
red=~red;//红灯报警
beep=~beep;//蜂鸣器报警
}
if(flag_bufang_en==1)//准备开始布防
{
green=~green;//绿灯闪
}
if(flag_bufang==1)//确认布防
{
green=0;//如果延时布防成功绿灯长亮
if(hw==1)//红外有输出
{
flag_alarm=1;
}
}
}
3.6程序编写与调试
3.6.1Keil编译器软件简介
KeilC51是由Keil软件公司出品的51系列兼容的单片机C语言软件开发系统。
与汇编语言相比,C语言在功能、结构、可读性和可维护性等方面都有明显的优势,便于学习和使用。
使用汇编语言后,使用C语言开发,体验更深刻。
keil C51软件提供丰富的库函数和强大的集成开发调试工具,所有windows接口。
还有一点很重要,只要我们看一下编译好的编译代码,就能看到Keil C51生成的目标代码是非常有效的。
大多数句子生成的汇编代码都很简洁易懂。
在开发大型软件的过程中,先进语言的优势更加体现出来。
详细介绍了KeilC51开发系统的功能和使用方法。
图15C51工具包整体结构图
在KeilC51软件开发工具包的整体结构C51系统的整体结构,如图3.1所示,其中uVision和程序是C51Windows和DOS的集成开发环境(IDE),可以编辑,编译,整个开发过程仿真。
目标文件进行编译生成C51和A51编译器分别obj)。
目标文件可以由LIB51创建,也可以位于通过L51连接库文件生成目标文件(绝对。
ABS)。
ABS文件转换从51到一个标准的HEX文件,这是用于调试dscope51或tscope51使用源代码调试。
它也可以直接由模拟器调试,直接写入程序存储器,如EPROM。
3.6.2使用Keil软件建立一个工程
Keil是目前进行51单片机开发最常用的编译软件。
关于Keil的使用,有很多的资料介绍,这里只介绍其整个编译过程,在最短时间内开始使用Easy51DP-2开发板。
对于Keil更详细的介绍,可以参考一些专门书籍资料。
在Keil里,每一个完整的程序,都是以一个工程的形式建立的。
一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。
一般的做法是将包含main()函数的C文件加入到工程中,其他文件以#include头文件的形式加到这个C文件里。
这样,在编译的时候,其他的文件会被自动的导入到工程里来。
打开Keil软件后,出现(图16)所示界面。
当然,如果Keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。
图16Keil软件主界面
首先点击Project->NewProject…(Project->OpenProject…为打开一个已经存在的工程),如图17所示。
图17Keil软件打开新工程界面
点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图18所示)界面。
在此界面上选择电路板上所用的单片机型号:
AtmelSTC89C52(或者是AT89S52,视开发板上具体型号而定),单击“确定”。
图18选择电路板上所用的单片机型号
设置完成后,软件会提示“是否将8051上电初始化程序添加入工程?
”如图19所示,这个一般选择“否”。
(关于STARTUP.A51的相关内容可查阅相应资料)
图19是否将8051上电初始化程序添加入工程
这样,就建立了一个空的51工程。
接下来的事,就是在这个工程里面加入自己的程序代码。
点击
,或者File->New,便建立了一个空的文本框。
现在,就可以开始在里面输入你的代码了。
保存时注意:
如果是用C语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm。
到目前为步,我们已经建立了一个工程,也写了一个程序代码。
但现在还不能开始编译。
因为还没有将程序代码添加到工程里面去。
下一步就是将写完的程序添加到工程里面,如图20所示,在左边ProjectWorkspace里的SourceGroup1上右击,选择AddFilestoGroup’SourceGroup1’。
在打开的对话框中,选择刚存的文件路径和对应的扩展名。
这样,程序就添加进了这个工程。
图20添加文件到工程中
下一步,就开始编译刚输入进去的代码。
点击工具栏中的
按钮。
接着,Keil会打出下面的提示:
Buildtarget'Target1'
assemblingled.asm...
linking...
ProgramSize:
data=8.0xdata=0code=100
"first"-0Error(s),0Warning(s).
其中“"first"-0Error(s),0Warning(s).”说明现在的工程编译通过,0个错误和0个警告。
建立工程的时候,默认是不生成HEX文件的,得在编译做如下设置:
单击
,或者在ProjectWorkspace里Target1上右击,选择“OptionsforTarget‘Target1’”。
出现如图21所示对话框,选择“Output”按图示,将箭头所指的多选框勾上,点“确定”。
现在再点击
重新编译,系统提示:
“creatinghexfilefrom"first"...”。
便会在工程所在文件夹里生成HEX文件。
图21生成HEX文件
3.6.3使用Debug进行调试
Keil有很强大的调试功能,可以显示C程序的反汇编代码、可以计算代码运行的时间、可以显示程序中某一变量的值……
能用好这个调试工具对编写单片机程序会有很大的帮助。
同样的,在这里,只对Debug进行简单应用介绍,更详细的使用方法可以参看相关书籍资料。
图22调试前设置窗口
首先,单击
,弹出如图22所示对话框,在Target页面上设置对应的晶振频率。
其他不用作修改。
设置完成后,单击
,进入调试界面(如图23所示)。
图23Keil调试界面
点击
中对应的工具按钮则可以开始调试。
另外,“View”下的三个工具在调试中会经常用到如.图24所示,“DisassemblyWindow”显示C文件的反汇编程序;“Watch&CallStackWindow”可以显示程序中某一变量的值;“MemoryWindow”可以显示内存中某一地址的值。
图24三个常用的调试工具
3.7硬件安装及调试中遇到的问题
3.7.1安装步骤
根据电路图购买元器件后,首先检查回购元器件的好坏,根据每个元器件的检测方法,一定要小心仔细。
并仔细检查原理的一致性,检查后不能对零件、焊接部位进行预防,以防发生错误的焊接零件后不方便纠正。
2.放置、焊接各元件
元件放置在示意图的位置,应该放在第一,低焊接部件,以及更高和更高的要求的组件。
特别是,最容易损坏的部件应焊接,并连续焊接时间不应超过10秒时焊接集成芯片,以及芯片的安装方向应注意。
3.7.2电路的调试
首先,显示程序被烧毁,以显示显示不正常。
在调试程序时,发现有些指令没有正确使用,导致电路功能不完整。
此外,软件程序的延迟太长或太短。
许多类似的现象并没有一一列举出来。
4、总结评价
本研究是基于单片机的红外家庭防盗报警器的设计。
该系统主要由单片机最小系统、电源电路、红外热释电传感器部分、蜂鸣器报警模块、LED状态指示器和按钮模块组成。
本设计中使用的热释电红外传感器的设计是dyp-me003。
稳定传感器约需1分钟,有效水平高,通常较低。
外部拉阻不能与外界相连,否则会影响红外热释光传感器的正常工作。
本设计有三个LED信号灯,分别是红、绿、黄。
红灯代表表示,绿灯代表布放信号指令的警告信号,和黄灯代表的dyp-me003红外热释传感器信号指示灯。
关键部分还有四个按钮,它们代表复位键(微控制器系统的最小部分)。
左边的第一个灯是手动报警键。
按下这个按钮,蜂鸣器就会发出警报,红色LED信号指示器也会闪光。
第二个按键为保护按钮,按下此按钮时,绿灯闪烁代表LED展开,直到绿灯亮起LED,代表结束部署(部署时间30秒)。
此时如果身体通过传感器监测区域(监测距离5~7m,监控角度小于100度),热释电红外输出高电平,单片机的P1 ^ 3端口检测水平高,淡黄色的LED灯,通过监测地区的代表人,同时蜂鸣器报警。
小偷入侵。
在左边的第三个按钮上取消报警和解除按钮,按下时,无论是处于部署状态还是处于报警状态都将被取消。
该报警器最大的特点是操作方便,容易理解,灵活,安装方便,智能化程度高,误报率低。
随着现代人安全意识的增强和科学技术的飞速发展,人们相信报警器将在更广泛的领域得到应用。
到目前为止,我的毕业设计即将结束,在这次毕业设计中,他也学到了很多知识,从未经历过的,让我更清楚的理论知识和实践能力之间的差异,了解自己的弱点,培养了我独立思考的能力,进一步提高自己在实际的设计过程研究问题、发现问题、解决问题的能力,同时,也发现了自己的不足,以及存在的一些问题,并进一步研究和发展,让自己在以后的工作和学习中更快的适应和提高自己。
致谢
在写这个设计的过程中,我非常感谢我的导师。
从选题到完成设计,老师一直向我解释各种严格的设计遇到的问题很仔细,帮我循循善诱,开拓设计思路,不断的鼓励我,让我感到自信,让我非常积极地参与设计,不断完善设计中的一部分。
在这里,我再次感谢老师给了我不断的设计帮助,让我在大学的最后学习过程中感受到我的兴趣和热情,这样我就可以愉快地完成我的毕业设计了。
我想起了那所大学的四年,就好像是昨天一样。
最后,我要感谢在我四年的学习中给予我很大照顾和支持的家庭、老师、同学和朋友。
这是你在生活和学习中不断的支持、帮助和无微不至的关怀。
是你不断的自信,使我在生活中坚强起来
附件一:
总体原理图设计
附件二:
实物图
附件三:
程序源代码
#include
#defineucharunsignedchar//无符号字符型宏定义变量范围0~255
#defineuintunsignedint//无符号整型宏定义变量范围0~65535
#definekey_ioP1
ucharkey_can;
//红外热释电平时为0有输出为1
sbitbeep=P2^3;//蜂鸣器定义
sbitred=P2^2;//红色发光二极管定义
sbitgreen=P2^1;//绿色发光二极管定义
sbityellow=P2^0;//黄色发光二极管定义
sbithw=P1^3;//红外热释传感器定义
bitflag_300ms=0;
/****************独立按键处理函数************************/
voidkey()
{
staticucharkey_new=0,key_old=0,key_value=0;
if(key_new==0)//按键松开
{
if((key_io&0x07)==0x07)
key_value++;
else
key_value=0;
if(key_value>=5)//按键松开松手检测
{
key_value=0;
key_new=1;//按键松开后进入等待按键状态
}
}
else
{
if((key_io&0x07)!
=0x07)//按键按下
key_value++;
else
key_value=0;
if(key_value>=5)//按键按下消抖
{
key_value=0;
key_new=0;//按键松开后进入等待松开按键状态
}
}
key_can=20;
if((key_new==0)&&(key_old==1))
{
switch(key_io&0x07)
{
case0x06:
key_can=1;break;//得到按键值
case0x05:
key_can=2;break;//得到按键值
case0x03:
key_can=3;break;//得到按键值
}
}
key_old=key_new;
}
/*************定时器0初始化程序***************/
voidtime_init()
{
EA=1;//开总中断
TMOD=0X01;//定时器0工作方式1
ET0=1;//开定时器0中断
TR0=1;//允许定时器0定时
}
ucharflag_alarm;//报警标志位
ucharflag_bufang;//布防标志位
ucharflag_bufang_en;//布防标志位使能
uintflag_value;//用做定时器的变量
/******************红外报警处理**********************/
voidhongwai_dis()
{
if(flag_alarm==1)//报警
{
red=~red;//红灯报警
beep=~beep;//蜂鸣器报警
}
if(flag_bufang_en==1)//准备开始布防
{
green=~green;//绿灯闪
}
if(flag_bufang==1)//确认布防
{
green=0;//如果延时布防成功绿灯长亮
if(hw==1)//红外有输出
{
flag_alarm=1;
}
}
}
/******************对应不同按键处理**********************/
voidkey_with()
{
if(key_can==1)//按键紧急报警
{
flag_alarm=1;//报警标志位;
}
if(key_can==2)//布防按键
{
flag_bufang_en=1;
}
if(key_can==3)//取消报警把变量清零
{
flag_alarm=0;
flag_bufang=0;
flag_bufang_en=0;
flag_value=0;
P2=0xff;
}
}
/******************主程序**********************/
voidmain()
{
time_init();
while
(1)
{
key();
yellow=~hw;//红外热释电指示灯有输出就亮黄灯
if(key_can<10)
{
key_with();//按键设置函数
}
if(flag_300ms==1)
{
flag_300ms=0;
hongwai_dis();//红外报警函数
}
}
}
/*************定时器0中断服务程序***************/
voidtime0_int()interrupt1
{
staticuintvalue;
TH0=0x3c;
TL0=0xb0;//50ms
value++;
if(value%6==0)
{
flag_300ms=1;
}
if(flag_bufang_en==1)
{
flag_value++;
if(flag_value>=600)//30秒
{
flag_bufang=1;
flag_bufang_en=0;
flag_value=0;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 论文 红外 热释电 家庭 防盗 报警器 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)