LED实现流水灯控制,循环三次停止
答案:4 悬赏:60
解决时间 2021-01-06 06:06
- 提问者网友:皆是孤独
- 2021-01-06 01:57
LED实现流水灯控制,循环三次停止
最佳答案
- 二级知识专家网友:北城痞子
- 2021-01-06 03:08
你可以把你的delayms()函数里边的while(ms--)去掉,可以尝试换成外部for循环..
for(int j=0;j for()...
其实你做个流水灯的话,具体的延时时间你实验多几次就可以把握了。至于你出现的问题是一直不停止,那是肯定的 你都把那个left()函数放到while(1)死循环中去了。
for(int j=0;j
其实你做个流水灯的话,具体的延时时间你实验多几次就可以把握了。至于你出现的问题是一直不停止,那是肯定的 你都把那个left()函数放到while(1)死循环中去了。
全部回答
- 1楼网友:一把行者刀
- 2021-01-06 05:59
试试这个
#include
unsigned int a,b;
void delayms(unsigned int ms)
{
unsigned int i,j;
for(j=0;j for(i=0;i<120;i++);
}
void left()
{
unsigned char temp;
temp=0x01;
P1=~temp;
for(b=0;b<8;b++)
{
delayms(8000);
temp=temp<<1;
if(temp==0x00)
temp=0x01;
P1=~temp;
}
}
void main()
{
for(a=0;a<3;a++)
{
left();
}
P1=0x00;
}
#include
unsigned int a,b;
void delayms(unsigned int ms)
{
unsigned int i,j;
for(j=0;j
}
void left()
{
unsigned char temp;
temp=0x01;
P1=~temp;
for(b=0;b<8;b++)
{
delayms(8000);
temp=temp<<1;
if(temp==0x00)
temp=0x01;
P1=~temp;
}
}
void main()
{
for(a=0;a<3;a++)
{
left();
}
P1=0x00;
}
- 2楼网友:逐風
- 2021-01-06 05:47
完全看不懂,感觉好厉害。
- 3楼网友:独行浪子会拥风
- 2021-01-06 04:12
while循环不能退出,怎么能停止呢?追问把while(1)去掉也不可追答那就奇怪了。
if(temp==0x00)
temp=0x01;
P1=~temp;
是不是应该改成下面的?
if(temp==0x00)
{ temp=0x01;
P1=~temp;
}
if(temp==0x00)
temp=0x01;
P1=~temp;
是不是应该改成下面的?
if(temp==0x00)
{ temp=0x01;
P1=~temp;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯