单片机延时程序

在单片机点灯延时程序中,有一段子代码void delayms(unit xms)﹛unit i,j;for(i=xms;i>0;i--)for(i=110;j>0;j--﹜中,xms为什么要存在。而且它的值为啥。

函数的入口参数,当你调用延时函数时,... delayms(10);... 目的要延时10ms,这是这个uint的无符号整形变量xms就被赋值为10,在进入delayms();函数后,i=xms即i=10,然后做for循环,根据系统的时钟周期做出相应时间的延时。如果没有xms,你的延时函数只能写成固定延时的,即在delayms内部确定好i的值,很不方便。有了入口参数,就能像上面说的那样随意延时了(数值范围要在uint定义内,即小于65536)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-06
举个例个,比如你想要延时5毫秒,那么只需要调用delayms(5);就行,如果你想要延时1000毫秒,那么调用delayms(1000);就行,xms的值由你设置,代表你想延时的时间
第2个回答  2019-06-01
定时器用T1,定时方式用方式一,从TH1、TL1的数值知道,溢出一次定时50ms,那么循环100次,就是5S啦,所以以上程序确实是定时5秒!
第3个回答  2014-04-06
xms是x毫秒的字头缩写,这是带参数延时模块.
在原来设计的单片机系统中,应该是带入模块延时毫秒的数值.但用在不同系统上[主要是系统时钟]其中的i=110需要实际计算或测算后更改,否则不准.
第4个回答  2014-04-06
从你的问题中可以看出,你要了解什么是形参,什么是实参。这是C语言在定义函数时的基本要求,xms是形参,可以任意赋值,但是其类型必须是你定义 的uint型。
相似回答