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