热释电人体感应红外报警器设计制作源代码
更新时间:2023-05-01 20:08:01 阅读量: 实用文档 文档下载
#include
#define uchar unsigned char //无符号字符型宏定义变量范围0~255 #define uint unsigned int //无符号整型宏定义变量范围0~65535
#define key_io P1
uchar key_can;
// 红外热释电平时为0 有输出为1
sbit beep = P2^3; //蜂鸣器定义
sbit red = P2^2; //红色发光二极管定义
sbit green = P2^1; //绿色发光二极管定义
sbit yellow = P2^0; //黄色发光二极管定义
sbit hw = P1^3; //红外热释传感器定义
bit flag_300ms = 0;
/****************独立按键处理函数************************/ void key()
{
static uchar key_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)
{
case 0x06: key_can = 1; break; //得到按键值
case 0x05: key_can = 2; break; //得到按键值
case 0x03: key_can = 3; break; //得到按键值}
}
key_old = key_new;
}
/*************定时器0初始化程序***************/
void time_init()
{
EA = 1; //开总中断
TMOD = 0X01; //定时器0工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
}
uchar flag_alarm ; //报警标志位
uchar flag_bufang ; //布防标志位
uchar flag_bufang_en ; //布防标志位使能
uint flag_value; //用做定时器的变量
/******************红外报警处理**********************/ void hongwai_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;
}
}
}
/******************对应不同按键处理**********************/ 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;
P2 = 0xff;
}
}
/******************主程序**********************/
void main()
{
time_init();
while(1)
{
key();
yellow = ~hw; //红外热释电指示灯有输出就亮黄灯
if(key_can < 10)
{
key_with(); //按键设置函数
}
if(flag_300ms == 1)
{
flag_300ms = 0;
hongwai_dis(); //红外报警函数
}
}
}
/*************定时器0中断服务程序***************/ void time0_int() interrupt 1
{
static uint value;
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;
}
}
}
正在阅读:
热释电人体感应红外报警器设计制作源代码05-01
垂体病变MRI诊断思路(详细版)08-07
社区治理:构建自治法治德治融合体系12-02
2000-2015国考行测历年真题之资料分析(附带答案) - 图文03-06
小学科学(教科版)实验项目 - 图文09-27
跟中秋节有关的故事11-20
最新袜子营销营销策划书精选03-02
GB14881试题10-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 报警器
- 源代码
- 设计制作
- 红外
- 感应
- 人体
- (改)都江堰市第六次全国人口普查技术业务总结
- 金融学资料金融学资料黄达版知识点总结
- 顺达汽车租赁公司管理系统设计与实现
- 2018年广东财经大学地理与旅游学院806管理学原理之管理学考研冲刺狂背五套题
- 房地产成本管理资料汇编2015年
- 经济思想史知识点总汇
- 从政治发展理论到民主巩固理论:西方民主化研究的演进逻辑
- 数据备份及灾难恢复复习题==非标准答案
- 2019年上海交通大学887工业设计工程专业基础之艺术设计概论考研冲刺狂背五套题
- (完整版)项目资金申请报告编制要点
- 冀教版七下历史第三单元 统一多民族国家的巩固和社会危机第16课《明朝的中外交往与冲突》教案
- 第二章 水土流失及荒漠化的环境背景
- 小升初数学盈亏问题应用题及解析
- 爱国诗歌朗诵范文10篇
- 化验室副值班长岗位工作职责实用版
- 最新城市规划师考试法规试题汇总
- 初中物理八年级上册重点笔记
- 土地 建厂 投资可行性分析调查 考察表(全-中文)
- 2017年中国人民大学新闻学院334新闻与传播专业综合能力之中国新闻传播史考研仿真模拟题
- 体育强国梦论文800字