红外报警器毕业设计 - 图文 联系客服

发布时间 : 星期四 文章红外报警器毕业设计 - 图文更新完毕开始阅读f541710f2f60ddccda38a039

}

}

key_value = 0; key_new = 1;

//按键松开后进入等待按键状态

else { }

25

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() {

26

EA = 1; //开总中断

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

uchar flag_alarm ; //报警标志位 uchar flag_bufang ; //布防标志位 uchar flag_bufang_en ; //布防标志位使能 uint flag_value; //用做定时器的变量

/******************红外报警处理**********************/ void hongwai_dis() {

if(flag_alarm == 1) //报警 {

27

//开定时器0中断 //允许定时器0定时

red = ~red; //红灯报警

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

}

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

green = ~green; //绿灯闪

}

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

28

green = 0; //如果延时布防成功 绿灯长亮 if(hw == 1) //红外有输出 { }

flag_alarm = 1;