|  | 
 
| 
 
 #include
 
 #define uchar unsigned char
 
 void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255
 
 sbit P14 = P1^4;         // 位变量P14为P1.4
 sbit P00 = P0^0;         // 位变量P00为P0.0
 
 void main()
 {
 P1 = 0xff;           // P1口为准双向口,作输入时先写入1,使之为高电平
 P2 = 0xff;           // 关P0口LED
 
 while(1)             // 循环扫描按键
 {
 if(P14 == 1)     // P1.4为高即键未按下则结束此次循环重新查询
 continue;
 delay_ms(10);    // 有键按下则延时10ms消抖
 if(P14 == 1)     // 再次查P1.4若为高则为抖动,结束此次循环返回重新查询
 continue;
 P00 = !P00;      // 确定有键按下后取反P0.0口
 while(P14 != 1); // 等待键松开(直到P1.4变为高电平)
 }
 }
 void delay_ms(uchar ms)  // 延时毫秒@12M,ms最大值255
 {
 uchar i;
 while(ms--)
 for(i = 0; i }
 
 
 
 ![]() 
 
 [/td]
 [/tr]
 
 | 
 |