求一个1ms的单片机C语言延时程序

如题所述

void
delay(char
x)
{
unsigned
char
a,b,c;
for(c=x;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
学过标准C就知道了,char

int
是可以相互转换的,char的取值范围是-128~+127
unsigned
char
的是0~255
可以用unsigned
int啊,我一般都是用char的,用unsigned
int的话占的字节比较多,运行速度也没char那么快,计算机会麻烦点,建议使用char
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-22
普通的51用11.0592mhz达不到这个要求的,
如果你用12mhz的晶振可以达到,
一个_nop_();就是1us,
*******************************
头文件要加如下:
#include
*******************************
这个问题就不要想着用中断了,还没响应0.001ms就已经过去了,谈何精确??
普通的51,12mhz晶振,一个周期就已经是0.001ms了,
你自己想想看吧。。。
相似回答