#include <REGX52.H>
void main()
{
P2_0=0;//只有0和1
while(1)
{
if(P3_1==0&P3_0==0 )//同时按下KEY1和KEY2灯才会亮
{
P2_0=0;
}
else
{
P2_0=1;
}
}
}
独立按键控制LED状态
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while(--j);
}while(--i);
xms--;
}
}
void main()
{
while(1)
{
if(P3_1==0)
{
Delay(20);//按下按键消去抖动
while(P3_1==0);
Delay(20);//消去松手时的按键抖动
P2_0=~P2_0;
}
}
}
独立按键控制LED显示二进制
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while(--j);
}while(--i);
xms--;
}
}
void main()
{
unsigned char LEDNum=0;//当作寄存器
while(1)
{
if(P3_1==0)
{
Delay(20);
while(P3_1==0);
Delay(20);
LEDNum++;
P2=~LEDNum;
}
}
}
独立按键控制LED 移位
#include <REGX52.H>
unsigned char LEDNum=0;
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while(--j);
}while(--i);
xms--;
}
}
void main()
{
P2=~0x01;
while(1)
{
if(P3_1==0)
{
Delay(20);
while(P3_1==0);
Delay(20);
LEDNum++;
if(LEDNum>=8)
LEDNum=0;
else
LEDNum=1;
P2=~(0x01<<LEDNum);//向左移LEDNum位
}
if(P3_0==0)
{
Delay(20);
while(P3_0==0);
Delay(20);
if(LEDNum==0)
LEDNum=7;
else
LEDNum--;
P2=~(0x01<<LEDNum);//向左移LEDNum位
}
}
}