LED实现流水灯控制,循环三次停止
为何循环三次不停止?求解!#include<reg52.h>unsignedchara,b;voiddelayms(unsignedintms){unsignedchar...
为何循环三次不停止?求解!
#include<reg52.h>
unsigned char a,b;
void delayms(unsigned int ms)
{
unsigned char i;
while(ms--)
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()
{
while(1)
{
for(a=0;a<3;a++)
{
left();
}
}
} 展开
#include<reg52.h>
unsigned char a,b;
void delayms(unsigned int ms)
{
unsigned char i;
while(ms--)
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()
{
while(1)
{
for(a=0;a<3;a++)
{
left();
}
}
} 展开
4个回答
2014-03-28
展开全部
试试这个
#include<reg52.h>
unsigned int a,b;
void delayms(unsigned int ms)
{
unsigned int i,j;
for(j=0;j<ms;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<reg52.h>
unsigned int a,b;
void delayms(unsigned int ms)
{
unsigned int i,j;
for(j=0;j<ms;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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while循环不能退出,怎么能停止呢?
追问
把while(1)去掉也不可
追答
那就奇怪了。
if(temp==0x00)
temp=0x01;
P1=~temp;
是不是应该改成下面的?
if(temp==0x00)
{ temp=0x01;
P1=~temp;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询