如果非得精確的話只能使用定時器了,或者匯編的也行
不過時間要求精度不是很高的話使用下面的代碼就行了
當時使用示波器把時間完全調準的,65536ms範圍內還是比較準的,已經可以滿足通常的要求了:
#include "reg51.h" //頭文件包含
//宏定義
#define uint unsigned int
#define uchar unsigned char
void delay(uint ms) // 毫秒級延時(AT89C52 @ 11.0592MHz)
{
uint ti;
while(ms--)
{
for(ti=0;ti<112;ti++){}//112
}
}
調用方式如下:
delay(400); //開機延時400ms
夠詳細了吧?!