软件延时的基本方法是调用延时子程序。
延时子程序所耗费的时间,很多人都是粗略的计算,这对于延时时间要求不高的情况下,还是适用的。
但是有时候,延时的时间要求比较精确,这就需要进行仔细的计算。
计算耗费时间,不仅要计算子程序本身的,还要包括上主程序的调用指令。
延时时间的单位,我们常用的是:us、ms、s;
而单片机所用的时间单位,则是:机器周期 T。
T 的时间,取决于单片机系统的晶振频率。
下图给出了一个计算耗费时间的例子。
上述程序,共有三重循环。
在红线框内,共循环了 215 遍,每一遍只有一条 2T 的指令,所以耗用时间为 430T。
在兰线框内,共循环了 128 遍,每一遍的时间为:1 + 1 + 430 + 2,共用了 55552T。
黑线框内,耗用时间的算法,和上面的计算方法相同,共用了 499995T。
最后加上循环外边的指令,以及调用指令的时间,共用 500 000T。
在晶振频率为 12MHz 时,延时时间为 500 000us,即 500ms。
如果采用 6MHz 的晶振频率,延时时间则为 250ms。
本文完