1. 程式人生 > 其它 >c51簡單delay函式,不同型別同值字元的延時時間不同

c51簡單delay函式,不同型別同值字元的延時時間不同

技術標籤:c51微控制器

c51簡單delay函式,不同型別同值字元的延時時間

一、 簡單delay函式(晶振頻率 11.0592 MHZ)

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

void Delay(uchar i)
{
	while(i--);
}

在學習c51單片的過程中,應用簡單的delay函式,我發現給i定義成不同型別字元但賦相同值時,延時的時間相差較大

二、除錯計算時長

1· uchar
void Delay(uchar i)
{
	while
(i--); }

1

計算可得 uchar i=200 實際延時時間是 0.00131402 s

2· uint
void Delay(uint i)
{
	while(i--);
}

1
2
計算可得 uint i=200 實際延時時間是 0.00197048 s

3· ulong
void Delay(ulong i)
{
	while(i--);
}

1
2
計算可得 uint i=200 實際延時時間是 0.00874132 s

三、比較總結

  1. 同值情況下,long型別延時最長,大概是int型別的5倍,char型別的6倍。
  2. 在應用簡單的delay函式時,一定要根據需要delay的時長選擇合適的字元型別。
  3. i的值跟延時的時間呈線性關係[點此跳轉證明],因此可以輕易計算出不同型別下,i與延時時長的關係。