21ic问答首页 - 新手51单片机流水灯程序问题请教
新手51单片机流水灯程序问题请教
王栋春2020-10-26
#include<reg51.h>
#include<intrins.h>
void delay(void)
{
unsigned int i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main()
{
int temp;
temp=0x01;
while(1)
{
P1=~temp;
delay();
P1=0xff;
temp=temp<<1;
if (temp==0x00)
temp=0x01;
}
}
想要用单片机左位移指令实现流水灯,程序正确,调试也显示正确,在单片机上运行了一遍也是可以实现,问题在于,当第八个LED熄灭后,要等很长时间后第一个LED才会重新亮起,
#include<intrins.h>
void delay(void)
{
unsigned int i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main()
{
int temp;
temp=0x01;
while(1)
{
P1=~temp;
delay();
P1=0xff;
temp=temp<<1;
if (temp==0x00)
temp=0x01;
}
}
想要用单片机左位移指令实现流水灯,程序正确,调试也显示正确,在单片机上运行了一遍也是可以实现,问题在于,当第八个LED熄灭后,要等很长时间后第一个LED才会重新亮起,
赞0
评论
2020-10-31
赞0
好的
评论
2020-10-27
赞0
收到 改正
评论
2020-10-27
赞0
评论
2020-10-27
赞1
评论
2020-10-27
赞1
如果对效率要求不高,建议用计数方式,通用性好;
while(1)
{
temp = 1;
for(i=0;i<8;i++)
....
或
temp = (1<<i);
评论
2020-10-27
赞1
评论
2020-10-27
赞1
评论
2020-10-27
您需要登录后才可以回复 登录 | 注册