|
#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]
|
|