51軟體延時函式編寫

2022-03-14 21:28:33 字數 493 閱讀 3608

51軟體延時函式編寫

void delay(uint z)

z賦值多少,此函式迴圈時間就為多少ms;

進入for迴圈時時刻為0.00043294s

然後讓他執行完for迴圈

執行完for迴圈後的時刻為0.00143338s

將數值相減後得到0.00100044s約等於1s

以上延時函式僅適用於晶振頻率為11.0592mhz情況下的1ms延時程式。

自適應晶振頻率ms延時函式:

#define main_fose    11059200ul

#define int16u unsigned int

void delay_ms(int16u ms)      

此延時函式僅適用於12t微控制器中,適用不同晶振頻率時,即在最前面「#define main_fose    11059200ul」巨集定義此系統的晶振頻率即可。

注:12t微控制器指的是  12個時鐘週期=1個機器週期的51微控制器。

51彙編(五) 延時函式

在微控制器執行過程中,有時我們需要在一條指令執行後停頓一段時間,再繼續執行下一條指令,例如led燈閃爍 我們可以通過nop指令讓微控制器停頓乙個機械週期,顯然我們需要很多個nop指令才能實ms級延時,這時我們就需要通過迴圈執行nop,控制迴圈次數實現延時,幷包裝成函式,便於隨時呼叫。執行2 20 1...

51微控制器延時函式

c程式中可使用不同型別的變數來進行延時設計。經實驗測試,使用unsigned char型別具有比unsigned int更優化的 在使用時應該使用unsigned char作為延時變數。以某晶振為12mhz的微控制器為例,晶振為12mhz即乙個機器週期為1us。一.500ms延時子程式 程式 voi...

51微控制器延時函式

c程式中可使用不同型別的變數來進行延時設計。經實驗測試,使用unsigned char型別具有比unsigned int更優化的 在使用時應該使用unsigned char作為延時變數。以某晶振為12mhz的微控制器為例,晶振為12mhz即乙個機器週期為1us。一.500ms延時子程式 程式 voi...