77范文网 - 专业文章范例文档资料分享平台

单片机设计报告 红外热释电家庭防盗报警器(2)

来源:网络收集 时间:2018-12-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

1 电路图

GNDVCCOUTP12K1POWER1VCC人体感应模块VCC3131K3K2313531S1424242642531R364210kVCC1234567891011121314151617181920U1P1.0VCCP1.1(AD0)P0.0P1.2(AD1)P0.1P1.3(AD2)P0.2P1.4(AD3)P0.3P1.5(AD4)P0.4P1.6(AD5)P0.5P1.7(AD6)P0.6RST(AD7)P0.7P3.0(RXD)EA/VPPP3.1(TXD)ALE/PROGP3.2(INT0)PSENP3.3(INT1)(A15)P2.7P3.4(T0)(A14)P2.6P3.5(T1)(A13)P2.5P3.6(WR)(A12)P2.4P3.7(RD)(A11)P2.3XTAL2(A10)P2.2XTAL1(A9)P2.1GND(A8)P2.089C51/C52403938373635343332313029282726252423222124KSR42.2kR5220R62.2kD1LEDr+C110uFD2LEDgRESET13D3LEDyR210KC230R12.2K12MHzVCCQ19012C330 2 实物图

3 源程序

5

#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; //按键松开后进入等待松开按键状态 } }

6

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) //红外有输出

7

{ 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(); //按键设置函数 }

8

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; } } } 9

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机设计报告 红外热释电家庭防盗报警器(2)在线全文阅读。

单片机设计报告 红外热释电家庭防盗报警器(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/333595.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: