/* 多按键判断程序 */ #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); // 等待按键被释放 } } }
本文出自 “生命不息,折腾不止。” 博客,谢绝转载!
原文:http://990487026.blog.51cto.com/10133282/1698571