PIC单片机课程设计红外对管报警器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PIC课程设计报告书
2011级电子信息工程与通信工程系
电子信息工程专业班学号姓名
实验项目:红外对射报警器
实验时间: 2013 年 12月 30 日
指导老师:
2013--2014学年第一学期
1、设计目的:设计一个红外监控报警系统,能在紧急情况通知当事人,并自动
呼叫报警。同时为我们之后走向社会,接触本工作,拓宽知识面,增强感性认识,培养、锻炼我们综合运用所学的基础理论、基本技能和专业知识,独立分析和解决实际问题的能力,能够将所学的专业理论知识运用于实践,在实践中结合理论加深对其认识和总结,再次学习,将专业知识与实际接轨,逐步认识体会,从而更好地将所学的知识运用到实践中去,为以后走上工作岗位打下一定的基础。
2、(1)设计任务:设计一个装置,即报警器,用于家用、商店、办室、仓库、实验室有敌情时报警。利用红外对管传感器和单片机可以实现报警器的功能。
(2)设计要求:(1)该设计包括硬件和软件设计两个部分。模块划分为数据采集、键盘控制、报警等模块子函数。
(2)本红外线防盗报警系统由热释电红外传感器、报警器、单片机控制电路、LED控制电路及相关的控制管理软件组成。用户终端完成信息采集、处理、数据传送、功能设定、本地报警等功能。终端由中央处理器、输入模块、输出模块、通信模块、功能设定模块等部分组成。
(3)系统可实现功能。当人员外出时,可把报警系统设置在外出布防状态,探测器工作起来,当有人闯入时,热释电红外传感器将探测到动作,设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,经放大电路、比较电路送至门限开关,打开门限阀门送出TTL 电平至单片机,经单片机处理运算后驱动执行报警电路使警号发声。
(4)红外线具有隐蔽性,在露天防护的地方设计一束红外线可以方便地检测到是否有人出入。此类装置设计的要点:其一是能有效判断是否有人员进入;其二是尽可能大地增加防护范围。当然,系统工作的稳定性和可靠性也是追求的重要指标。至于报警可采用声光信号。
3、方案选择
方案一:利用模拟电子电路构成被动红外线报警器。系统主要有红外线传感器,信号放大电路,电压比较器,开机延时,音响报警延时和5V电源组成。
被动红外线感应报警器的红外感应源采用热释电原件,这种元件在接收到人体红外线辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。
方案二:利用模拟构成主动红外线入侵报警器。主要由发射机和接收机组成,发射机是由电源,发光源和化学系统组成。接收机是由光学系统,光感传感器,放大器,信号处理器等组成。
主动红外线报警器是当有人侵入该警戒时,红外线束被遮挡,接收机收到的红外线信号发生变化,提取这一变化,经放大和适当处理,控制器发出的报警信号。目前此类报警器有二光束,三光束还有多光束的红外栅栏等。一般应用在周界防范居多,最大的优点就是防范距离远。
(1)选定方案:选择方案二。
4、系统组成
(1)本设计包括硬件和软件设计两个部分。模块划分为数据采集、键盘控制、报警等子模块。电路结构可划分为:热释电红外传感器、报警器、单片机控
制电路、LED 控制电路及相关的控制管理软件组成。用户终端完成信息采集、处理、数据传送、功能设定、本地报警等功能。
硬件主要包括单片机系统,热释电红外传感器探头,控制显示电路,鸣叫报警电路等部分。软件部分主要包括热释电红外传感器输出信号的采样信息识别模块。
就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。
从设计的要求来分析该设计须包含如下结构:热释电红外传感探头电路、报警电路、单片机、电路及相关的控制管理软件组成;
(2)
红外探头
单片机
语音报警器
(3) 主程序功能:起监视作用,用来判断是否有人闯入,红外线的接受是否中
断
主程序流程图
(4) 电源:通过交流电经变压器的变压、桥式二极管的整流、电容的滤波、稳
压器的稳压得到5V 的直流电压
(5)复位电路
(6)4M晶振
(7)红外对管
(8)声光报警系统
(9)PIC单片机引脚连接
5、结果分析
当有人闯入遮掩住红外线时,报警器会自动发出叮叮叮的报警声。
6、实验程序
#include
#define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31);
void init();
void delay(uint x);
void scan();
void didi();
void main()
{
init();
while(1)
{
scan();
didi();
}
}
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void init()
{ADCON1=0x07;
TRISA=0xff;//11111111
PORTA=0x00;
//TRISB=0x0f;
//PORTB=0x00;
TRISC=0xf0;
PORTC=0x00;
TRISD=0x00;
PORTD=0x00;
TRISE=0x00;
PORTE=0x00;
}
void didi()
{
if(RA0)
{
PORTE=0x01;