单片机里有两种方法可以延时!
第一种是用for语句:如,
void delay(ms)
for(i=0, i>ms,i++)
{
for(j=0,j>110,j++)
}
这是一个有参数的延时程序,其中ms是参量,在调用时可以随意赋值~ 如你想延时一秒,则在调用时可以写:delay(1000);
其原因是:内层for 是延时1ms的函数,内层for是一个公认的样式! 而参量ms=1000,即外层for循环1000次!
延时时间=1000x1=1s
第二种是用定时/计数器,如是12Mhz 晶振,则每计一个数表示1us
这个没例子我不好讲,你刚学单片机吧!以后要学的,挺好学的!
看看书就知道了
void Delay1000us() { unsigned char i, j; //延时等等1毫秒
i = 2; j = 239; //下面需要做双重循环,其中外循环2次,内循环239次
do{
while(--j); //每次内循环做一次减法和一次判断
} while(--i); //每次外循环做一次减法和一次判断
}
正如函数名写明的大体上可以认为,在当前的时钟频率下,经过测试,做上述这么多次的运算(执行语句次数)会耗时1毫秒。
以上就是关于单片机的延时程序全部的内容,包括:单片机的延时程序、请各位大神帮帮忙注释一下下面的(51单片机)代码,这是一个数码管显示程序里的延时函数、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)