历史上的今天
返回首页

历史上的今天

今天是:2024年12月06日(星期五)

正在发生

2020年12月06日 | 基于51单片机的热释电红外检测报警器程序

2020-12-06 来源:51hei

两种模式:一种紧急报警模式,另一种布防报警模式。



三个LED指示灯:红色为报警指示灯(检测到有人报警时闪亮)、绿色为布防指示灯(等待布防时1s一闪、进入布防状态时常亮)、黄色为传感器信号指示灯(有信号就亮,否则灭)。



按下布防键,系统计时20秒进入布防状态(此时绿色的led灯闪烁),20秒后系统进入布防状态(此时绿色的led亮长亮),此时当有人靠近时,黄色信号灯亮,红外热释电传感器将信号输送给单片机,单片机接收到信号蜂鸣器响,红色led灯亮,实现声光报警。



当遇到特殊情况时,按下按键1(紧急报警键),系统马上报警。


红外热释电传感器感应人体,当感应到人输出高电平,没感应到人输出低电平。



四个按键:按键1紧急报警按键、按键2布防按键、按键3撤防按键、单独的是复位按键


单片机源程序如下:

#include                  //调用单片机头文件

#define uchar unsigned char  //无符号字符型 宏定义        变量范围0~255

#define uint  unsigned int         //无符号整型 宏定义        变量范围0~65535


//   红外热释电传感器 平时为0  有输出为1


sbit beep  = P2^5;           //蜂鸣器定义

sbit red   = P0^1;           //红色发光二极管定义

sbit green = P0^4;           //绿色发光二极管定义

sbit yellow = P0^7;           //黄色发光二极管定义

sbit hw    = P0^0;           //红外热释传感器定义

bit flag_500ms = 0;

uchar flag_alarm ;     //报警标志位

uchar flag_bufang ;    //布防标志位

uchar flag_bufang_en ; //布防标志位使能

uint  flag_value;      //用做定时器的变量


/***********************1ms延时函数*****************************/

void delay_1ms(uint q)

{

        uint i,j;

        for(i=0;i                for(j=0;j<120;j++);

}


/********************独立按键程序*****************/

uchar key_can;         //按键值


void key()         //独立按键程序

{

        static uchar key_new;

        key_can = 20;                   //按键值还原

        P1 |= 0xff;

        if((P1 & 0xff) != 0xff)                //按键按下

        {

                delay_1ms(1);                     //按键消抖动

                if(((P1 & 0xff) != 0xff) && (key_new == 1))

                {                                                //确认是按键按下

                        key_new = 0;

                        switch(P1 & 0xff)

                        {

                                case 0xfb: key_can = 1; break;          //得到按键值

                                case 0xf7: key_can = 2; break;          //得到按键值

                                case 0x7f: key_can = 3; break;          //得到按键值

                        }

                }                        

        }

        else   //按键松开

                key_new = 1;        

}


/******************对应不同按键处理**********************/           

void key_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;        

                beep = 1;

                red = 1;  //关闭红灯

                green = 1; //关闭绿灯

                yellow = 1; //关闭黄灯      

   

        }                        

}


/*************定时器0初始化程序***************/

void time_init()         

{

        EA   = 1;                   //开总中断

        TMOD = 0X01;          //定时器0工作方式1

        ET0  = 1;                  //开定时器0中断

        TR0  = 1;                  //允许定时器0定时

}


/******************红外报警处理**********************/           

void hongwai_dis()

{

        if(flag_bufang_en == 1) //准备开始布防

        {

                green = ~green;           //绿灯闪                        

        }  

        if(flag_bufang == 1)   //确认布防

        {

                green = 0;         //如果延时布防成功 绿灯长亮

                if(hw == 1)               //红外有输出

                {

                        flag_alarm = 1;        

                }

        }

        if(flag_alarm == 1)           //报警

        {

                red = ~red;                   //红灯报警

                beep = ~beep;           //蜂鸣器报警

        }        

}


推荐阅读

史海拾趣

AINFO Inc公司的发展小趣事

AINFO Inc公司在初创期便明确了其在电子行业中的技术发展方向和市场定位。公司注重技术积累,投入大量资源进行研发,逐步在某一领域取得了技术突破。同时,公司对市场进行了深入调研,确定了目标客户群体和市场需求,为后续的产品开发和市场推广打下了坚实基础。

CONTTEK Group GmbH公司的发展小趣事

CONTTEK Group GmbH公司的创立,标志着电子行业内一颗璀璨的新星开始崭露头角。公司在创立初期,便凭借对市场的敏锐洞察力和对技术的深刻理解,确立了在电子连接器领域的专业地位。通过引进先进的生产设备和技术人才,公司成功开发出了一系列高质量、高性能的连接器产品,并逐渐在市场中获得了认可。

GarrettCom公司的发展小趣事

布局:随着全球化进程的加速推进,GarrettCom(现为Belden的一部分)积极实施全球化战略。公司在全球范围内设立了多个分支机构和服务中心,以便更好地服务全球客户。同时,公司还加强了与国际知名企业的合作与交流,共同推动电子行业的发展和进步。

成果:通过全球化战略的实施和市场拓展的努力,GarrettCom(现为Belden的一部分)在全球市场上取得了显著的成绩。公司的产品和解决方案被广泛应用于全球各地的工业项目中,赢得了广泛的好评和认可。同时,公司还积极参与国际竞争与合作,不断提升自身的品牌影响力和市场竞争力。

安谱隆(Ampleon)公司的发展小趣事

在安谱隆的发展历程中,资本市场对其一直保持着高度的关注。然而,其“安家”之路却并不平坦。2017年,奥瑞德曾有意收购安谱隆,但由于资金问题,这桩收购最终未能成行。2018年,旋极信息也计划收购安谱隆,但同样未能成功。这些波折反映了资本市场对安谱隆价值的认可,但也暴露出安谱隆在寻找合适买家方面所面临的挑战。

FCT electronic公司的发展小趣事

在环保和可持续发展成为全球共识的背景下,FCT electronic公司积极响应这一趋势,致力于推动绿色环保和可持续发展。公司采用了环保材料和工艺,减少了对环境的污染;同时,FCT electronic公司还加强了废物回收和资源利用方面的工作,实现了资源的循环利用和节约。这些努力不仅使FCT electronic公司在环保方面取得了显著成绩,也为公司的可持续发展奠定了坚实基础。

Anderson Power公司的发展小趣事

在电子行业的初期,FCT electronic公司由一群富有远见和激情的工程师创立。他们看到了挠性电路板在未来电子产品中的巨大潜力,并致力于研发出更高效、更可靠的挠性电路板解决方案。经过数年的不懈努力,FCT electronic公司终于研发出了具有革命性意义的挠性电路板技术,这一技术为公司在行业中树立了良好的口碑,也为公司的后续发展奠定了坚实的基础。

问答坊 | AI 解惑

全球GSM用户数突破20亿

全球GSM用户数突破20亿 2006-7-7     据GSM协会发布的报告:“在6月17日~18日这个周末,全球GSM手机用户数已突破20亿。”     GSM协会主席CraigEhrlich说,这是移动通信行业所达到的又一个辉煌的里程碑。自从第一 ...…

查看全部问答>

ACS800 系列变频器使用维护及故障处理应注意的事项

变频器是电牵引采煤机上常用的、重要的调速设备。因此 ,为保证其稳定、可靠地工作 ,合理的使用、维护尤其重要。文章总结了 ACS800系列变频器使用、维护及故障处理过程中应注意的事项 ,这对于其它型式变频器的维护有一定的借鉴作用。…

查看全部问答>

虚拟打印机软件,将打印结果生成PDF文档

安装后,在电脑上多出一个虚拟打印机,用虚拟打印机打印的结果是生成一个PDF文档,如果需要将原理图生成PDF文档上传到网上,就可用虚拟打印机实现了!!!!:D [ 本帖最后由 lycdl 于 2008-7-10 12:20 编辑 ]…

查看全部问答>

我的声控

本帖最后由 paulhyde 于 2014-9-15 09:18 编辑 我的声控电路 大家看看 [ 本帖最后由 open82977352 于 2010-2-2 10:49 编辑 ]  …

查看全部问答>

数字电路动画教学

特此声明:本资料是斑竹jinainian的贡献出来的,特帮他上传上来,帮助大家学习数字电路,很好的资料! …

查看全部问答>

用 DSP 设计3G 基站

用 DSP 设计3G 基站…

查看全部问答>

电机为什么还要驱动电路?

电机通电后不是就能转吗?为什么还要加个驱动电路呢???…

查看全部问答>

WINCE6.0下使用对话框出错.

我在WINCE6.0下使用DialogBox()下出错,其消息函数中,在一条消息函数中,只执行了一条语句就转到其他消息去了,请问这是什么原因.谢谢!…

查看全部问答>

清空内存

请教各位高手,如何在biosloader中实现清空内存?我的目的是每次开机启动先清空内存。开发平台是x86的…

查看全部问答>

GPRS发送SMS

我现在想用GPRS模块向一手机发送SMS 我从一参考资料上看到应该是: AT+CMGF=1 OK //Return Value AT+CSCS=”GSM” OK //Return Value AT+CMGS=”13912223333” > Good, this is test // 输入Ctrl+Z +CMGS: 158 //Return Value 问题: AT ...…

查看全部问答>