/*
多按键判断程序
*/
#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); // 等待按键被释放
}
}
}
转载于:https://blog.51cto.com/990487026/1698571