今天別人問了一個關于天祥延時程序的問題。 void delay(unsigned int z)
本文引用地址:http://www.104case.com/article/201611/321144.htm {
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
對于此延時函數中,系統時鐘為11.0592MHz,當z取1時,延時時間大約為1ms,即當z去m,其延時時間就m ms.但是,當把x和y的類型都修改為char型時,z同樣取1,其延時卻變為0.2ms,為原來的1/5。剛開始一直沒想明白,原以為兩種定義類型都應該是一樣的,但實際卻不是如此。經過多方打探,覺得下面的解釋還比較好。由于在51單片機中,int型數據占2個字節(16位),而char型只占1個字節(8位),因此,在運行的過程中自然時間要短很多。
評論