自锁

在主函数中利用累计定时中断的次数来实现独立按键的检测----在上一例的基础上,将uiKeyTimeCnt1放入中断中,不在利用主循环,从而节省主循环的空间

心不动则不痛 提交于 2019-12-05 23:35:05
#include "REG52.H" #define const_voice_short 40 //蜂鸣器短叫的持续时间 #define const_voice_long 200 //蜂鸣器长叫的持续时间 #define const_key_time1 30 //按键去抖动的延时时间 #define const_key_time2 30 //按键去抖动的延时时间 void initial_myself(); void initial_peripheral(); void T0_time(); void key_service(); void key_scan(); void delay_long(unsigned int uiDelayLong); sbit key_sr1=P0^0; sbit key_sr2=P0^1; sbit key_gnd_dr=P0^4; sbit beep_dr=P1^5; unsigned char ucKeySec=0; //被触发的按键编号 unsigned char ucKeyStartFlag1=0; //启动定时中断计数的开关 unsigned int uiKeyTimeCnt1=0; //按键去抖动延时计数器 unsigned char ucKeyLock1=0; //按键触发后自锁的变量标志 unsigned char