请说下这段程序是什么意思,详细点
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++);
}
} 展开
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
} 展开
5个回答
展开全部
首先这很明显是C51,一楼的仁兄说的很详细,我想说的是这是一个单片机的延时函数。详细一点就是:
C51的代码一般看函数名称就能了解代码的功能,这个函数的名字是DelayMS,那么翻一下就是——delay是延时的意思,ms是时间毫秒的单位,那么函数的形参就是延时多少毫秒,一般C51系列的单片机是单线程的,也就是说程序的执行只有一条线路,有时候为了保持程序的执行一般代码最外边就是一个永真的while循环,但是有的时候需要程序暂停,那么就是通过调用延时函数实现,最常见的就是单片机上的跑马灯实验。
另外就是时间的确定,是的这和晶振频率有关,那么如何测定的?我记得我那时候用C51的时候用的编译软件是keil软件,他有调试功能,你需要在延时的前后设置断点,然后观测执行前后的时间直接相减可得。
C51的代码一般看函数名称就能了解代码的功能,这个函数的名字是DelayMS,那么翻一下就是——delay是延时的意思,ms是时间毫秒的单位,那么函数的形参就是延时多少毫秒,一般C51系列的单片机是单线程的,也就是说程序的执行只有一条线路,有时候为了保持程序的执行一般代码最外边就是一个永真的while循环,但是有的时候需要程序暂停,那么就是通过调用延时函数实现,最常见的就是单片机上的跑马灯实验。
另外就是时间的确定,是的这和晶振频率有关,那么如何测定的?我记得我那时候用C51的时候用的编译软件是keil软件,他有调试功能,你需要在延时的前后设置断点,然后观测执行前后的时间直接相减可得。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是个延时程序啊,当x=0 时退出while(x--)循环,二每次循环中i要加到120,运行120次,一共运行120*x次程序,祈祷延时作用,但是这种 延时时间不精确,在精度要求不高时使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
延时程序,延时时间={for(i=0;i<120;i++);}所用的时间X次方
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太冷门hlnt基本问不到os想明白就自己找外文资料查查吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询