本例的一个典型应用就是软件延时。在程序的设计中,经常用到时间延迟,可用循环结构来实现,即循环执行指令,消磨一段已知的时间。AT89S51单片机指令的执行时间是靠一定数量的时钟周期来计时的,如果使用12MHz晶振,则12个时钟周期花费的时间为1µs。
【例】 编写一个延时1ms程序。
void delayms( unsigned char int j)
{ unsigned char i;
while(j--)
{ for(i=0;i《125;i++)
{;}
}
}
如果把上述程序段编译成汇编语言代码进行分析,用for进行的内部循环大约延时8 ms,但不是特别精确。不同的编译器会产生不同的延时,因此i的上限值125应根据实际情况进行补偿调整。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !