P1口接8个LED的负极,然后LED的正极经过电阻直接接Vcc
1:手工实现
1 流水灯单个闪过代码
#include <reg52.h>
void delayms(int X)
{
int i, j;
for(i = X; i ; --i)
for(j = 110;j ; --j);
return;
}
int main()
{
int i;
for(i = 0; i < 8; ++i)
{
P1 = 0xff - (1 << i);
delayms(500);
}
return 0;
}
PS:给新同学解释下,单个引脚赋值0的时候点亮
(P1只能采用十六进制数来赋值)
0xff的二进制 : 1 1 1 1 1 1 1 1
如果要点亮第一个: 1 1 1 1 1 1 1 0
同理要点亮第二个: 1 1 1 1 1 1 0 1
即要点亮第二个,需要把 二进制的 11111101转换成十六进制数,然后赋值给P1口。
11111101的由来:
1 1 1 1 1 1 1 1 => 0xff
&nb

这篇博客介绍了如何使用51单片机进行LED流水灯的制作,通过手工和库函数两种方式实现。在手工实现部分,详细解释了如何通过位操作点亮单个LED,并提供了代码示例。库函数实现则简化了这一过程。
&spm=1001.2101.3001.5002&articleId=8196727&d=1&t=3&u=7621e1e60b1349babfe773874cf90696)
2543





