标题:
怎样检测两个按键同时按下1秒
[打印本页]
作者:
tzh_123
时间:
2022-8-15 10:56
标题:
怎样检测两个按键同时按下1秒
当前的“速热饮水机”,普遍采用了既检测按键按下,又检测按键按下时间;甚至同时检测两个按键按下,又同时检测两个按键的按下时间。这让人有点懵。有知道,这种检测方法的大神,请指点一下迷茫。
作者:
npn
时间:
2022-8-15 19:41
#include "reg51.h"
#define T1ms 0xFC18
sbit keyA = P3 ^ 2;
sbit KeyB = P3 ^ 3;
sbit led = P3 ^ 4;
unsigned int keyA_ms;
unsigned int keyB_ms;
void InitTimer0() {
TMOD = 0x01;
TH0 = T1ms >> 8;
TL0 = T1ms;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main(){
InitTimer0();
while(1){
if(keyA_ms >= 1000 && keyB_ms >= 1000){
led = !led;
while(keyA_ms >= 1000 && keyB_ms >= 1000);
}
}
}
void Timer0Interrupt() interrupt 1 {
TH0 = T1ms >> 8;
TL0 = T1ms;
if(keyA){
keyA_ms = 0;
} else {
if(keyA_ms != 0xFFFF){
keyA_ms++;
}
}
if(KeyB){
keyB_ms = 0;
} else {
if(keyB_ms != 0xFFFF){
keyB_ms++;
}
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1