请说下这段程序是什么意思,详细点

voidDelayMS(uintx){uchari;while(x--){for(i=0;i<120;i++);}}... void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
展开
 我来答
felixliu2008
2013-08-05 · TA获得超过295个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:191万
展开全部
这就是延时程序。输入参数是延时的长度。
延时程序的主体是通过 for 循环来延时,对输入值 x 不断减一,只要不为零就执行 for 循环。
此法用于低精度延时。具体时间取决于时钟频率。
追问
假如用的是12MHZ的晶振 延时的时间怎么算的
追答
通过 c 程序应该计算不出延时时间。
两种方法。要么是测试运行,实验出延时的时间。
要么是看该延时程序的汇编代码,来计算延时时间。
旅春冬TJ
2013-08-05 · TA获得超过1082个赞
知道大有可为答主
回答量:1271
采纳率:66%
帮助的人:491万
展开全部
首先这很明显是C51,一楼的仁兄说的很详细,我想说的是这是一个单片机的延时函数。详细一点就是:
C51的代码一般看函数名称就能了解代码的功能,这个函数的名字是DelayMS,那么翻一下就是——delay是延时的意思,ms是时间毫秒的单位,那么函数的形参就是延时多少毫秒,一般C51系列的单片机是单线程的,也就是说程序的执行只有一条线路,有时候为了保持程序的执行一般代码最外边就是一个永真的while循环,但是有的时候需要程序暂停,那么就是通过调用延时函数实现,最常见的就是单片机上的跑马灯实验。
另外就是时间的确定,是的这和晶振频率有关,那么如何测定的?我记得我那时候用C51的时候用的编译软件是keil软件,他有调试功能,你需要在延时的前后设置断点,然后观测执行前后的时间直接相减可得。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgz373885669
2013-08-05 · TA获得超过437个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:147万
展开全部
就是个延时程序啊,当x=0 时退出while(x--)循环,二每次循环中i要加到120,运行120次,一共运行120*x次程序,祈祷延时作用,但是这种 延时时间不精确,在精度要求不高时使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lufei6621
2013-08-05
知道答主
回答量:17
采纳率:0%
帮助的人:7.8万
展开全部
延时程序,延时时间={for(i=0;i<120;i++);}所用的时间X次方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坦率还清正丶奇异果5188
2013-08-05 · 贡献了超过255个回答
知道答主
回答量:255
采纳率:0%
帮助的人:84.2万
展开全部
太冷门hlnt基本问不到os想明白就自己找外文资料查查吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式