单片机交流
直播中

的撒的

9年用户 715经验值
擅长:可编程逻辑
私信 关注
[问答]

如何利用51单片机完成布置的LED灯的花式闪烁?

  • 如何利用51单片机完成布置的LED灯的花式闪烁?

回帖(1)

张琴

2021-9-29 11:40:19
完成了布置的LED灯的花式闪烁。代码还是十分简单的,一看就懂!
#include
void DelayUs2x(unsigned char); //延迟函数的头文件
void DelayMs(unsigned char);//延迟函数的头文件
void main()
{
unsigned char i,w;
while(1)
{
for(i=0,w=0x80;i<8;i++)
{
P1 = ~w;
w = w >> 1;
DelayMs(200);
}//从右至左依次变亮;
for(i=0,w=0x01;i<8;i++)
{
P1 = ~w;
w = w << 1;
DelayMs(200);
}//从左至右依次变亮;
for(i=0,w=0x7f;i<8;i++)
{
P1 = w;
w = w >> 1;
DelayMs(200);
}//从右至左逐渐变亮;
for(i=0,w = 0x7f;i<8;i++)
{
P1 = ~w;
w = w >> 1;
DelayMs(200);
}//从右至左逐渐熄灭;
for(i=0,w=0xfe;i<8;i++)
{
P1 = w;
w = w << 1;
DelayMs(200);
}//从左至右逐渐变亮;
for(i=0,w=0xfe;i<8;i++)
{
P1 = ~w;
w = w << 1;
DelayMs(200);
}//从左至右逐渐熄灭;
P1 = 0x7e;
DelayMs(200);
P1 = 0x3c;
DelayMs(200);
P1 = 0x18;
DelayMs(200);
P1 = 0x00;
DelayMs(200);
P1 = 0xe7;
DelayMs(200);
P1 = 0xc3;
DelayMs(200);
P1 = 0x81;
DelayMs(200);
P1 = 0x00;
DelayMs(200);
for(i=0;i<8;i++)
{
P1 = 0xaa;
DelayMs(200);
P1 = 0x55;
DelayMs(200);
} //单亮双灭,双亮单灭8次;
}
}
void DelayUs2x(unsigned char n)//t = 2*n+5 us
{
while(–n);
}
void DelayMs(unsigned char n)//t = n ms
{
while(n–)
{
DelayUs2x(245);
DelayUs2x(245);
}
}
这是基于89c51芯片的led开发
举报

更多回帖

发帖
×
20
完善资料,
赚取积分