#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit K1=P3^1;
sbit LED=P2^0;
#define K1_press 1
#define KEY_UNPRESS 0
void delay(u16 m)
{
while(m--);
}
u8 key_scan(u8 mode)
{
static u8 key=1;
if(mode) key=1;
if(key==1&&K1==0)
{
delay(1000);
key=0;
return K1_press;
}
else key=1;
return KEY_UNPRESS;
}
void main()
{
u8 key=0;
while(1)
{
key=key_scan(0);
if(key==K1_press)
LED=!LED;
}
}
对于这个代码,我的理解是按一下独立按键,LED1就会亮起,再按一下LED就会熄灭。但是实验现象是LED这个亮灭不按套路出牌,找不到规律,所以想问问这是怎么回事