我这个是笨方法,就是根据需要LED位置,将二进制转化为16进制去控制其亮。
比如让LED灯按照从右往左数1,3,5,7,8,6,4,2的顺序依次亮,就根据二进制转16进制的表
表示出来即可,代码如下:
#include"reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define led P2
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
P2=0xFE;//1111 1110
delay(50000);
P2=0xFB;//1111 1011
delay(50000);
P2=0xEF;//1110 1111
delay(50000);
P2=0xBF;//1011 1111
delay(50000);
P2=0x7F;//0111 1111
delay(50000);
P2=0xDF;//1101 1111
delay(50000);
P2=0xF7;//1111 0111
delay(50000);
P2=0xFD;//1111 1101
delay(50000);
}
}