STC12for語句延時測量將形參賦值100情況下(delay(100)),改變for嵌套里面j的值測試結果:
j=120 方波頻率為32.84hz 推算dealy(1)=152us
j=110 方波頻率為35.84hz 推算dealy(1)=139us
j=100 方波頻率為39.30hz 推算dealy(1)=127.226us
j=90 方波頻率為43.57hz 推算dealy(1)=102us
總結:根據(jù)經(jīng)驗分析誤差,若想讓STC12單片機執(zhí)行一次delay(1)耗時100us左右,j最好取值為100。
//**************************************************************************************************
//延時函數(shù)
//**************************************************************************************************
void delay(uint time) //int型數(shù)據(jù)為16位,所以最大值為65535
{
uint i,j; //定義變量i,j,用于循環(huán)語句
for(i=0;i<time;i++)
for(j=0;j<100;j++); //delay(1)執(zhí)行一次約為100us
}