怎样写for循环程序
本人刚学C51单片机,呵呵完全是自学,没有人指导,刚刚开始学,刚写了个程序就是一个LED等循环200次然后让常亮。程序应该怎么写,谢谢了!我写了程序不知道怎么循环,然后跳...
本人刚学C51单片机,呵呵完全是自学,没有人指导,刚刚开始学,刚写了个程序就是一个LED等循环200次然后让常亮。程序应该怎么写,谢谢了!我写了程序不知道怎么循环,然后跳出循环!
#include <reg52.h>//定义头文件
#include <intrins.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar a,num,i;
sbit led1=P1^0;//定义输出口
void delay(uint z);//延时函数定义
void main()//主函数
{
while(1)
for(num=0;num<200;num++)
{
led1=1;
delay(50);
led1=0;
delay(50);
break;
}
led1=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
还是不能跳出循环,LED一直在闪烁! 展开
#include <reg52.h>//定义头文件
#include <intrins.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar a,num,i;
sbit led1=P1^0;//定义输出口
void delay(uint z);//延时函数定义
void main()//主函数
{
while(1)
for(num=0;num<200;num++)
{
led1=1;
delay(50);
led1=0;
delay(50);
break;
}
led1=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
还是不能跳出循环,LED一直在闪烁! 展开
3个回答
展开全部
#include <reg52.h>//定义头文件
#include <intrins.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar a,num,i;
sbit led1=P1^0;//定义输出口
void delay(uint z);//延时函数定义
void main(void)//主函数
{
//这里应该定义P1^0是输出 还是输入吧??
//方向向量的设置
while(1)
{ //注意这个大括号
for(num=0;num<200;num++)
{
led1=1;
delay(50);
led1=0;
delay(50);
break;
}
};//注意这里的大括号 分号
led1=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
/*这是单片机。懂不???
//因为有
while(1)
{
//.......
};
这是一个死循环。不是没有跳出for 循环,而是没跳出while(1);这个循环。
这是必须的。这就像是你电脑的操作系统不能跳出循环,除非你关机。如果你跳出循环了,你还能用它所提供的服务么?你的操作系统都不运行了。你还想在电脑上玩游戏???这是在做梦。
如果你想它闪一段时间后就停止,你可以在 里面加两句:
while(1)
{
//.....
delay(x);//你自己定义x
break;
}
#include <intrins.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar a,num,i;
sbit led1=P1^0;//定义输出口
void delay(uint z);//延时函数定义
void main(void)//主函数
{
//这里应该定义P1^0是输出 还是输入吧??
//方向向量的设置
while(1)
{ //注意这个大括号
for(num=0;num<200;num++)
{
led1=1;
delay(50);
led1=0;
delay(50);
break;
}
};//注意这里的大括号 分号
led1=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
/*这是单片机。懂不???
//因为有
while(1)
{
//.......
};
这是一个死循环。不是没有跳出for 循环,而是没跳出while(1);这个循环。
这是必须的。这就像是你电脑的操作系统不能跳出循环,除非你关机。如果你跳出循环了,你还能用它所提供的服务么?你的操作系统都不运行了。你还想在电脑上玩游戏???这是在做梦。
如果你想它闪一段时间后就停止,你可以在 里面加两句:
while(1)
{
//.....
delay(x);//你自己定义x
break;
}
展开全部
我改了一下,这要是你没改清楚while(1)是一直执行这个程序,可以用break,和goto跳出,你看一下,有问题还可以再交流。
#include <reg52.h>//定义头文件
#include <intrins.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar a,num,i;
sbit led1=P1^0;//定义输出口
void delay(uint z);//延时函数定义
void main()//主函数
{
while(1) //这里少了大括号
{
for(num=0;num<200;num++)
{
led1=1;
delay(50);
led1=0;
delay(50);
//break;//这里错了,没有循环200次,就一次就出来了,去掉break。
}
led1=0;
break;//这里跳出while,也可以在这里写死循环,让程序等在这里。
}
while(1);//wait here
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
#include <reg52.h>//定义头文件
#include <intrins.h>
#define uint unsigned int//宏定义
#define uchar unsigned char
uchar a,num,i;
sbit led1=P1^0;//定义输出口
void delay(uint z);//延时函数定义
void main()//主函数
{
while(1) //这里少了大括号
{
for(num=0;num<200;num++)
{
led1=1;
delay(50);
led1=0;
delay(50);
//break;//这里错了,没有循环200次,就一次就出来了,去掉break。
}
led1=0;
break;//这里跳出while,也可以在这里写死循环,让程序等在这里。
}
while(1);//wait here
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你想它闪一段时间后就停止,你可以在 里面加两句:
while(1)
{
//.....
delay(x);//你自己定义x
break;
}
while(1)
{
//.....
delay(x);//你自己定义x
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询