用51单片机实现流水灯
首先也是要知道LED的电路图
由图可以知道LED灯是连接在51的P1的IO口上,且该LED是共阳极LED灯,也就是IO输出低电平,LED灯亮。
要实现流水灯,首先要知道流水灯的原理:流水灯的原理就是控制LED灯的亮和灭,实现流水的效果。通过控制P1的IO口轮流输出低电平使LED灯轮流亮,利用二进制转换成十六进制,先是第一个LED灯亮,然后延时100ms,再控制第二个LED灯亮,以此类推
#include<reg52.h>
void Delay100ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P1 = 0xfe; //1111 1110
Delay100ms();
P1 = 0xfd; //1111 1101
Delay100ms();
P1 = 0xfb; //1111 1011
Delay100ms();
P1 = 0xf7; //1111 0111
Delay100ms();
P1 = 0xef; //1110 1111
Delay100ms();
P1 = 0xdf; //1101 1111
Delay100ms();
P1 = 0xbf; //1011 1111
Delay100ms();
P1 = 0x7f; //0111 1111
Delay100ms();
}
}
要注意延时函数的使用。以及二进制和十六进制的转换