51單片機(jī)C51毫秒級(ms)精確延時(shí)
如下程序能實(shí)現(xiàn)ms毫秒級的比較精確的延時(shí)
void Delayms(unsigned int n)
{
unsigned int i,j;
for(j=n;j>0;j--)
for(i=112;i>0;i--);
}
用keil可以看出這個(gè)延時(shí)的時(shí)間,我們先延時(shí)1ms(Delayms(1))。
進(jìn)入Delayms前,sec=0.00042209s
延時(shí)后,sec=0.00142253s
可以知道Delayms(1)實(shí)際延時(shí)0.00142253s—0.00042209s=0.00100044s≈1ms
同樣如果想延時(shí)15ms的話,用Delayms(15),實(shí)際延時(shí)0.01480903s≈15ms,延時(shí)還是挺精確的。