微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机的C语言延时的一些总结

51单片机的C语言延时的一些总结

时间:11-25 来源:互联网 点击:
延时方法(12M晶振)
1:1~4us
_nop()_实现
计算方法:1~4us分别用1~4个_nop()_
2:5~500us
void delay(unsigned char i)
{
while(--i) ;
}
计算方法:ix2+5 可完成5~515us的延时

3:10us~2ms
void delay(unsigned char i)
{
for( ;i>0 ;i--) ;
}
计算方法:ix8+10 可完成10us~2.050ms的延时
4:2ms~130ms
void delay(unsigned char i,unsigned char j)
{
for( ;j>0 ;j--)
for( ;i>0 ;i--) ;
}
计算方法:(ix2+3)xj+5 us
个人建议:i在里面赋值248 这样延时为0.5ms的倍数
5:130ms~30s(好象这个数字不过这)
void delay(unsigned char i,unsigned char j,unsigned char k)
{
for( ;k>0 ;k--)
for( ;j>0 ;j--)
for( ;i>0 ;i--) ;
}
计算方法:((ix2+3)xj+3)xk+5 us
同样可以先把i和j赋值
再长的延时就没意义了
为了编程习惯着想,最好不要用伟纳例程里用的while(i--)
尽量用while(--i)
================================================================================

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top