/*

多按键判断程序

*/




#include <STC12C5A60S2.H> 

sbit LED=P1^7;
sbit KEY1=P1^0;
sbit KEY2=P1^1;
sbit KEY3=P1^2;

void DELAY_MS (unsigned int a)
{
    unsigned int i;
    while ( --a != 0 )
    {
        for (i=0;i<=600;i++);
    }
}

void main(void){
	LED=1;
	KEY1=1;


while (1){	
if(KEY1==0 ||KEY2==0 ||KEY3==0){ // 判断多个按键
DELAY_MS (50); // 延时去抖动
	
	
if(KEY1==0){   //  再次读取按键
	LED=~LED;  //LED状态取反
	        }
if(KEY2==0){   //  再次读取按键
	LED=~LED;  //LED状态取反
	        }
if(KEY3==0){   //  再次读取按键
	LED=~LED;  //LED状态取反
	        }

while(KEY1==0 ||KEY2==0 ||KEY3==0); // 一直等待按键被释放
      }
    }
 }




/*
高电平触发按键 LED
*/

#include <STC12C5A60S2.H> 

sbit LED=P1^7;
sbit KEY=P1^0;

void DELAY_MS (unsigned int a)
{
    unsigned int i;
    while ( --a != 0 )
    {
        for (i=0;i<=600;i++);
    }
}

void main(void){
	LED=1;
	KEY=0;


while (1){	
if(KEY==1){
DELAY_MS (50); // 延时去抖动
if(KEY==1){   //  再次读取按键
	LED=~LED;
        }
	while(KEY==1); // 等待按键被释放
      }
    }
 }