单片机-按键控制流水灯


#include "regx52.h"

#define LED_DISPLAY P2

void delay(int time)

{

while(time--);

}

int main()

{


int LED_NUMBER=0;


LED_DISPLAY=~0x01;

while(1)

{

if(P3_0==0)

{

delay(20);

while(P3_0==0);

delay(20);

LED_NUMBER++;

if(LED_NUMBER>7)

{

LED_NUMBER=0;

}

LED_DISPLAY=~(0x01<

}

if(P3_1==0)

{

delay(20);

while(P3_1==0);

delay(20);

LED_NUMBER--;

if(LED_NUMBER<0)

{

LED_NUMBER=7;

}

LED_DISPLAY=~(0x01<

}

}

}


其实程序没啥好说的,就正常的基本算法。有一点需要注意:



P3_1按下实现右移的符号还是左移符号<<,不是按理说左移<<,右移应该>>。我也试了好几次才发现这个问题,不知道有没人也有这个问题,还是我的开发板有问题。



还发现一个可能是开发板硬件的问题,按键按的也正常,但led等却不是一位一位的一次亮,有时候会突然跳过去。这个开发板问题有点多。

原文链接:,转发请注明来源!