- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的家用防盗装置设计
热释电红外传感器简单介绍
热释电红外线(PIR)传感器是80年代发展起来的一种新型高灵敏度探测元件。是一种能检测人体发射的红外线而输出电信号的传感器,它能组成防入侵报警器或各种自动化节能装置。它能以非接触形式检测出人体辐射的红外线能量的变化,并将其转换成电压信号输出。将这个电压信号加以放大,便可驱动各种控制电路如图1示为热释电红外传感器的内部电路框图。
图1 热释电红外传感器的内部电路框图
2.2 PIR的原理特性
热释电红外线传感器主要是由一种高热电系数制成的探测元件,在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。人体辐射的红外线中心波长为9--10um,而探测元件的波长灵敏度在0.2--20um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7--10um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同不能抵消,经信号处理而输出电压信号。
BISS0001的热释电红外开关应用电路图
上图中,运算放大器OP1将热释电红外传感器的输出信号作第一级放大,然后由C3耦合给运算放大器OP2进行第二级放大,再经由电压比较器COP1和COP2构成的双向鉴幅器处理后,检出有效触发信号Vs去启动延迟时间定时器,输出信号Vo经晶体管T1放大驱动继电器去接通负载。
上图中,R3为光敏电阻,用来检测环境照度。当作为照明控制时,若环境较明亮,R3的电阻值会降低,使9脚的输入保持为低电平,从而封锁触发信号Vs。SW1是工作方式选择开关,当SW1与1端连通时,芯片处于可重复触发工作方式;当SW1与2端连通时,芯片则处于不可重复触发工作方式。图中R6可以调节放大器增益的大小,原厂图纸选10K,实际使用时可以用3K,可以提高电路增益改善电路性能。输出延迟时间Tx由外部的R9和C7的大小调整,触发封锁时间Ti由外
部的R10和C6的大小调整,R9/R10可以用470欧姆,C6/C7可以选0.1U。电阻R2=47KΩ
程序部分:
#includereg51.h
sbit beep=P3^1;
sbit led=P3^0;
sbit sensor=P1^0;
sbit led1=P1^2;
sbit reset=P3^2;
unsigned int flag;
void init0()
{
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;//设置初值
TL0=(65536-50000)%256;//
EA=1;//打开总中断开关
ET0=1;//打开定时器中断
//TR0=1;//启动定时器
}
void init1()
{
EA=1;//打开总中断开关
EX0=1;//开外部中断0
IT0=1;//设置外部中断的触发方式
}
/*void delay(unsigned int k)
{
unsigned int j;
for(;k0;k--)
for(j=200;j0;j--);
} */
void delayms(unsigned char ms) // 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i 120; i++);
}
}
void main()
{
// beep=0;
P1=0xfe;
P3=0xfd;
P2=0xff;
init0();
init1();
while(1)
{
if(sensor==1)
{
delayms(20);
if(sensor==1)
{
led1=0;
led=0;
beep=1;
TR0=1;
flag=0;
}
}
}
}
void int0() interrupt 0
{
EX0=0;
if(reset==0)
{
delayms(20);
if(reset==0)
{
led1=1;
led=1;
beep=0;
TR0=0;
//init0();
}
}
EX0=1;
}
void int1() interrupt 1
{
TH0=(65536-50000)/25
文档评论(0)