LED闪烁教程里delay语句
时间:10-02
整理:3721RD
点击:
#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在这条语句里没有赋值,那他代表什么,教程里一带而过,初学者根本不知道所以然。
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在这条语句里没有赋值,那他代表什么,教程里一带而过,初学者根本不知道所以然。
c51里0是假 非0是真 i的值是你传递过来的是
while循环就是在不断执行i--判断i值是否为0 是0则退出while循环
c语言先声明再使用 放前面相当于声明过了
这个简单啊,明日我来答复你!
delay是延时函数
就是说主函数里面delay(50000)里的50000就是i的值,50000执行完(i - -)后跳到下一条语句这样吗。
或者说在主函数前的
void delay(u16 i)
{
while(i--);
}
是定义delay语句的用法,到主函数里有出现delay语句时就执行这个用法(即i--这个循环),是这个意思吗?
程序中delay()括号中的数就是I 在定义时 unsigned int U16是他的函数名称,所以在程序中做减法50000一直自减到0,跳出循环,这个延时就结束了,