标题: 请教for循环 [打印本页]

作者: asusyt    时间: 2017-11-23 14:23
标题: 请教for循环
#include <reg51.h>
sbit led=P1^0;
void delay(unsigned int i)
{
unsigned int j;
unsigned char k;
for(j=i;j>0;j--)
  for(k=125;k>0;k--);
}
void main()
{
unsigned char m;
for(m=20;m>0;m--)//m=几决定了闪烁次数
{
  led=~led; //每隔一段时间即对输出取反。
  delay(3000); //闪烁间隔。
}
while(1); //闪烁十次后,到此不再闪烁。
}
请问 for(j=i;j>0;j--)中的i不用赋值的吗?数值是多少呢?

作者: hiram-peng    时间: 2017-11-23 14:50
delay(3000)相当于把3000赋值给i
作者: ljn123123    时间: 2017-11-23 15:02
你这个是delay函数,delay(1000),代表调用delay函数,同时将1000赋值给i
作者: ahshmj    时间: 2017-11-23 15:15
一共循环了20次,每次循环都取反一次,隔一次亮一次,20次有10次亮,10次灭。如果m=30,亮和灭各15次。

其实这样告诉你对你也没太大的帮助,因为你还是需要掌握一些基础知识才行。
作者: lujunda2    时间: 2017-11-23 18:03
i是形参,是要你给实参的,例如delay(3000)相当于里面的i赋值为3000
作者: asusyt    时间: 2017-11-23 20:07
ahshmj 发表于 2017-11-23 15:15
一共循环了20次,每次循环都取反一次,隔一次亮一次,20次有10次亮,10次灭。如果m=30,亮和灭各15次。

...

刚学单片机并且基础不好,好多东西不理解。谢谢
作者: le51    时间: 2017-11-23 21:28
建议着重看一下函数调用,数值是怎么传递的等等




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1