|
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit key1=P3^1;
sbit key2=P3^0;
sbit key3=P3^2;
sbit key4=P3^3;
sbit LED_1=P2^0;
#define key1_1 1;
#define key2_2 2;
#define key3_3 3;
#define key4_4 4;
#define key_wu_chi_li 0;
void shi_jian(u16 time)
{
while(time--);
}
time=100;
u8 key_scan(u8 mode)
{
static u8 key=1;
if(mode)key=1;
if(key==1&&(key1==0||key2==0||key3==0||key4==0))//任意按鍵按下
{
shi_jian(time);//消抖
key=0;
if(key1==0)
return key1_1;
else if(key2==0)
return key2_2;
else if(key3==0)
return key3_3;
else if(key4==0)
return key4_4;
}
else if(key1==1&&key2==1&&key3==1&&key4==1)
{
key=1;
}
return key_wu_chi_li;
}
void main()
{
u8 key=0;
while(1)
{
key=key_scan(0);
if(key==key1_1)//檢測按鍵 K1 是否按下
LED_1=!LED_1;//LED1 狀態(tài)翻轉(zhuǎn)
}
}
|
|