标题:
谁能帮我解释一下这个单片机程序,函数声明部分看不懂
[打印本页]
作者:
woshidage1
时间:
2019-1-26 11:18
标题:
谁能帮我解释一下这个单片机程序,函数声明部分看不懂
#include<reg52.h>
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//显示数字1-9
void Delay(unsigned int t);//函数声明(就是这里不知道什么)
void main (void)
{
unsigned char i;//定义一个无符号型局部变量i取值范围0-255
while(1)
{
for(i=0;i<10;i++)
{
P2=table[i]; //循环调用表中的数值
Delay(50000);
}
}
}
void Delay(unsigned int t)
{
while(--t);//这个也不知道是什么东东
}
复制代码
作者:
a401309754
时间:
2019-1-26 16:22
函数声明部分就是定义了函数的名字Delay,还有一个无符号整型变量t。假设t=10,while(--t)当t=0时就会不成立,那么--t的这个过程是需要执行时间的,也就实现了延时的功能。
作者:
wulin
时间:
2019-1-26 17:04
编译器是从main函数开始编译,main函数里调用了Delay函数,如果不作声明,编译器不知道到哪里找Delay函数。如果把Delay函数放在main函数前面就相当于声明,就不必另外作声明。
作者:
HC6800-ES-V2.0
时间:
2019-1-26 20:53
把函数写在main()主函数的前面,就可以不用申明了。
另外:while(--t);的意思,就是一个循环,浪费时间用的,这是个延时函数
作者:
woshidage1
时间:
2019-1-27 11:25
谢谢你们啦
作者:
璀璨星芒
时间:
2019-1-27 14:26
定义了一个延时函数
作者:
累不死的狗
时间:
2019-1-27 18:58
我想不明白的是你有啥看不懂的呢,不就是让变量一直自减么,当while里面的判断条件为假时一跳出不就跳出循环了么
作者:
放眼天下
时间:
2019-1-28 10:00
这个函数delay就是一个延时的功能,通过while(i--)的运算来使CPU消耗一段时间达到延时的功能,你想啊,while语句里面非0即真的,所以i只有自减到0的时候才会跳出循环,这就需要时间啊。还有一点,楼主注释的有一点错误了,这个不是显示1-9了,这是10个数,应该是0-9.
作者:
周超然
时间:
2019-1-28 11:05
延时,程序减到0,往下执行
作者:
rensilver
时间:
2019-1-28 14:19
while(--t);这个就是用来延时的。
作者:
onisac
时间:
2019-1-28 21:26
就是一个延时程序,数数50000下,显示下一个数字;
0 - wait 50000 - 1 - wait 50000 - 2 -wait 50000 - ....
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1