原理图(此次用到的部分)




P2中的某个口为1(高电平)时,无电流流过,对应的二极管不会被点亮
代码
#include <reg52.h>
void delay(unsigned int k)
{
int i,j;
while(k--)
{
for(i = 1000;i>0;--i)
for(j = 110;j>0;--j);
}
}
void main()
{
unsigned char i = 0;
P2 = ~0x01;
while(1)
{
if(i==7)
i=0;
else
i+=1;
P2 = ~(0x01<<i);
delay(1);
}
}
#include <reg52.h>
sbit beep = P1^5;
void delay(unsigned int k)
{
while(k--);
}
void main()
{
unsigned char i = 0;
P2 = ~0x01;
while(1)
{
if(i==7)
i=0;
else
i+=1;
P2 = ~(0x01<<i);
beep = ~beep;
delay(100);
}
}
遇到的问题
没什么大问题,就是delay()里k–写成了–k这种脑瘫问题

本文介绍了一段使用51单片机实现LED流水灯效果的程序代码,并详细解析了其中的延时函数及主循环逻辑。通过控制P2口的状态变化来实现LED灯的依次点亮和熄灭效果。
3217

被折叠的 条评论
为什么被折叠?



