单片机中C语言延时函数

单片机C语言延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有它不足之处:它的延时很不好控制,我们常常很难知道一段延时程序它的精确延时到底是多少,这和汇编延时程序没法比。但有时后写程序又不得不要用到比较精确的延时,虽然说可以用混合编程的方式解决,但这种方式不是每个人都能掌握,且写起来也麻烦。所以,通过测试我给大家提供一个延时子程序模块,并以此给一个出我们经常用到的延时的数据表格。(注意:表格中的数据只适合我的延时模块,对其他的延时程序不适用,切忌!!!!!!!!别到时候延时不对来骂我)

延时模块:其中问号代表要填的数,要延时多少,到表格中去找数据,然后填上就OK!切忌3条FOR语句不能颠倒顺序

void Delay()
{
unsigned char a,b,c;
for(a=0;a<?;a++)
for(b=0;b<?;b++)
for(c=0;c<?;c++);

数据表如下
/**********************************************************************************************************************/
延时时间           a的值                 b的值               c的值       延时误差(us)
10us                       1                       1                       1                         -0.5      
20us                       1                       1                       8                         0 
30us                       1                       1                       15                       +0.5
40us                       2                       1                       9                         0 
50us                       1                       1                       28                           0 
60us                       1                       1                       35                       +0.5
70us                       1                       1                       42                       +1
80us                       1                       1                       48                           0
90us                       1                       1                       55                       +0.5 
100us                   1                       1                       61                       -0.5 
200us                   1                       1                       128                       0 
300us                   3                       1                       63                       +1.5 
400us                   2                       1                       129                       0 
500us                   5                       1                       63                       +0.5 
600us                   6                       1                       63                         0 
700us                   7                       1                       63                           -0.5 
800us                   1                       3                       175                       +0.5 
900us                   9                       1                       63                         -1.5 
1ms                       1                       3                       219                       -1.5
2ms                       2                       3                       220                       +3
3ms                       3                       3                       220                       +3
Xms                       X                       3                       220                       +3         

X的范围为2到255)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pswpj.html