利用独立按键控制LED移位
实验目的: 利用独立按键控制LED移位
实验接法:8个LED灯接51单片机P1_0—P1_7口,独立按键接单片机P3_0口,利用独立按键控制LED灯移位
实验现象:每按一下控制一个灭掉的灯移位
实验代码:
#include<regx52.h> //51单片机头文件
int Delay(unsigned int xms); //延时函数声明
unsigned char LEDNum; //定义变量LEDNum
int main()
{P1=0XFE; //设置初始状态(P1_0口灭其他亮)
while(1)
{
if(P3_0==0) //按键检测
{
Delay(20); //延时消抖
while(P3_0==0); //持续按键检测
Delay(20); //延时消抖
LEDNum++; //按键每按一次,变量LEDNum+1
if(LEDNum>=8) //0—7共8个口,如果等于8则置0重新开始
{
LEDNum=0;
}
P1=(0x01<<LEDNum); //每按一次按键,0x01向左移1位(移动LEDNum位)
}
需要注意的是,上述代码配对的是共阴极LED(0灭1亮),如果为共阳极,则要移位后取反并把初值取反
实验截图: