你这段程序,如果按下按键,则程序会进入 while(1) 里面一直运行,不会跳出,所以除非断电,无论按什么按键都不会影响灯闪程序。
如果要求K1=0时灯闪烁,K1=1时灯灭掉,可以在DELAY_MS程序之后改为以下内容:
#define light 1
#define black 2
void main (void)
{ //主程序
unsigned char key=0;
while(1)
{
if(K1==0)//假设按键低电平有效
{
DELAY_MS(5);
if(K1==0) key=lignt;
}
else key=black;
if(key==light)
{
LED1=1;
LED3=1;
DELAY_MS(10);
LED1=0;
LED3=0;
DELAY_MS(20);
LED1=1;
LED3=1;
DELAY_MS(10);
LED1=0;
LED3=0;
DELAY_MS(20);
LED1=1;
LED3=1;
DELAY_MS(10);
LED1=0;
LED3=0;
DELAY_MS(20);
LED1=1;
LED3=1;
DELAY_MS(10);
LED1=0;
LED3=0;
DELAY_MS(100);
}
else
{
/* 不知你灯是怎么接的,此处假设LED1=0时灯灭 */
LED1=0;
LED3=0;
}
}
}
AD采集程序 可以找HX711的资料 上面有C51参考程序的
你好!LED数码管是几位的,怎么驱动的?可以尝试完成