LED闪烁教程里delay语句

2019-07-15 12:03发布

#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit led=P0^0;

void delay(u16 i)
{
   while(i--);
}

void main()
{
  while(1)
   {
           led=1;
         delay(50000);
         led=0;
         delay(50000);
   }
}

这里的
void delay(u16 i)
{
   while(i--);
}
是代表什么意思,他放在主函数前是否有特别含义,i在这条语句里没有赋值,那他代表什么,教程里一带而过,初学者根本不知道所以然。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
1030402679
1楼-- · 2019-07-15 12:45
c51里0是假  非0是真   i的值是你传递过来的是
while循环就是在不断执行i--判断i值是否为0 是0则退出while循环
1030402679
2楼-- · 2019-07-15 15:53
 精彩回答 2  元偷偷看……
houjue
3楼-- · 2019-07-15 16:35
这个简单啊,明日我来答复你!
舞动火力
4楼-- · 2019-07-15 18:20
delay是延时函数
Jun_Lwei
5楼-- · 2019-07-15 23:38
本帖最后由 Jun_Lwei 于 2017-1-30 11:05 编辑
1030402679 发表于 2017-1-29 21:11
c51里0是假  非0是真   i的值是你传递过来的是
while循环就是在不断执行i--判断i值是否为0 是0则退出while循环

就是说主函数里面delay(50000)里的50000就是i的值,50000执行完(i - -)后跳到下一条语句这样吗。
或者说在主函数前的
void delay(u16 i)
{
   while(i--);
}
是定义delay语句的用法,到主函数里有出现delay语句时就执行这个用法(即i--这个循环),是这个意思吗?
wjz01002
6楼-- · 2019-07-16 03:32
程序中delay()括号中的数就是I 在定义时 unsigned int U16是他的函数名称,所以在程序中做减法50000一直自减到0,跳出循环,这个延时就结束了,

一周热门 更多>