前言介绍
按键控制LED亮灭
#include <REGX52.H>
void main()
{
while(1)
{
if(P3_4==0)
{
P1_1=0;
}
else{
P1_1=1;
}
}
}
按键控制led状态
#include <REGX52.H>
void Delay(unsigned int xms) //@11.0592MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
while(1)
{
if(P3_4==0)
{
Delay(20);
while(P3_4==0);
Delay(20);
P1_1=~P1_1;
}
}
}
//一开始P2_0的状态为1(不亮),当检测到P3_1=0时,便会执行取反命令,P2_0就会对当前状态进行一次取反变为0,灯泡就会点亮,再次当P3_1为0时P2_1从0又变为1(灯熄灭)
独立按键控制LED显示二进制
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
unsigned char LEDNum=0;//unsigned char LEDNum可以取0~255,每个数字都对应了8位二进制的一种变换,简单点就是8个LED灯有256种变换方式
while(1)
{
if(P3_4==0)
{
Delay(20);
while(P3_4==0);
Delay(20);
LEDNum++;
P1=~LEDNum;
}
}
}
独立按键控制led移位
#include <REGX52.H>
unsigned char LEDNum;
void Delay(unsigned int xms) //@11.0592MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
P1=~0x01;
while(1)
{
if(P3_4==0)
{
Delay(20);
while(P3_4==0);
Delay(20);
LEDNum++;
if(LEDNum>=8)
LEDNum=0;
P1=~(0x01<<LEDNum);
}
if(P3_4==0)
{
Delay(20);
while(P3_4==0);
Delay(20);
if(LEDNum==0)
LEDNum==7;
else
LEDNum--;
}
}
}