如何实现C8051单片机的精确延时

控制/MCU

1878人已加入

描述

在C里写的代码:

delay=0x64;

while(--delay);

编译出来的汇编源代码是这样的:

;SOURCELINE#62

00107F64MOVR7,#064H;2B,2CLK

0012?C0006:

;SOURCELINE#63

0012DFFEDJNZR7,?C0006;2B,2/3CLK

如果我们采用24MHZ的晶振,每个时钟周期是41.6ns那么上面的延时语句的延时精度可以是41.6×8/3=111ns,已经足够精确了。

如果我们要产生xns的延时,只要代入计算公式:(x-83.2)/27.7得到delay的初始值就可以了!!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分