与项目4-1相似,只是把抬起与按下结合到一起。
不在做具体说明
程序与仿真如下:
#include<reg51.h>
sbit led = P0^0;
void delay(unsigned int x)
{
while(x--);
}
void main(void)
{
while(1)
{
P2 = 0xef;
if(P2 == 0xee)
{
delay(500);
if(P2 == 0xee)led = !led;
while(P2 == 0xee);
}
if(P2 == 0xed)
{
delay(500);
if(P2 == 0xed)led = !led;
while(P2 == 0xed);
}
if(P2 == 0xeb)
{
delay(500);
while(P2 == 0xeb);
led = !led;
}
if(P2 == 0xe7)
{
delay(500);
while(P2 == 0xe7);
led = !led;
}
}
}