#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<<LED_NUMBER);
}
if(P3_1==0)
{
delay(20);
while(P3_1==0);
delay(20);
LED_NUMBER--;
if(LED_NUMBER<0)
{
LED_NUMBER=7;
}
LED_DISPLAY=~(0x01<<LED_NUMBER);
}
}
}
其实程序没啥好说的,就正常的基本算法。有一点需要注意:
P3_1按下实现右移的符号还是左移符号<<,不是按理说左移<<,右移应该>>。我也试了好几次才发现这个问题,不知道有没人也有这个问题,还是我的开发板有问题。
还发现一个可能是开发板硬件的问题,按键按的也正常,但led等却不是一位一位的一次亮,有时候会突然跳过去。这个开发板问题有点多。