天天看點

51單片機學習筆記(10)——Keil延時軟體仿真

C語言程式設計常用的有4種延時方法:

51單片機學習筆記(10)——Keil延時軟體仿真

在某些時候,我們想要知道程式裡面的延時函數到底延時多長時間,這時候就可以用Keil軟體仿真來實作。

①在keil中編寫一個簡單的延時應用程式:

#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

void delay(u16 time)
{
	while(time--);
}

void main()
{
	delay(1);
	delay(1);
	delay(1);
}
           
51單片機學習筆記(10)——Keil延時軟體仿真

②點選程式編譯按鍵,編譯程式,保證程式能夠正常運作,沒有報錯。

51單片機學習筆記(10)——Keil延時軟體仿真

③進入【Options for Target…】,設定【Target】選項中的【Xtal】,根據實際使用的開發闆的晶振頻率修改該數值,若單片機晶振為11.0592M,則将數字修改為11.0592。我使用的是12M,是以将數值設為12。

51單片機學習筆記(10)——Keil延時軟體仿真

④選中【Debug】選項中的【Use Simulator】,即用軟體仿真,點選【OK】,完成軟體仿真設定。

51單片機學習筆記(10)——Keil延時軟體仿真

⑤選擇菜單項【 Debug–>Start/Stop Debug Session】,或者點選下圖中标注的按鈕,就會進入軟體仿真視窗。

51單片機學習筆記(10)——Keil延時軟體仿真
51單片機學習筆記(10)——Keil延時軟體仿真

仿真界面中黃色箭頭表示程式目前的位置

⑥我們想要觀察C語言代碼延時函數的運作時間,在最左側的那個Registers 的框内有一個【sec】選項,這個就是程式運作的時間。我們單擊【RST】複位按鍵,程式複位,黃色箭頭指向程式第一行,sec參數值變為0。

51單片機學習筆記(10)——Keil延時軟體仿真

⑦為了觀察程式運作的時間,我們對程式中的延時函數設定斷點(當程式運作到斷點的時候就會停下來),通過觀察sec的值來計算得到延時函數的運作時間。(設定斷點的方式:移動滑鼠在程式左邊灰色部分單擊)

51單片機學習筆記(10)——Keil延時軟體仿真

⑧點選全速運作按鍵,程式執行到13行,sec參數值變為0.00038900,再點選全速運作按鍵,程式運作到14行,sec參數值變為0.00041400,再點選全速運作按鍵,程式運作到15行,sec參數值變為0.000439。(sec機關為秒s)。

51單片機學習筆記(10)——Keil延時軟體仿真
51單片機學習筆記(10)——Keil延時軟體仿真
51單片機學習筆記(10)——Keil延時軟體仿真

分析:程式從13行運作到14行花費的時間是25us,從14行運作到15行花費的時間也是25us,是以,通過軟體仿真我們可以知道,延時函數delay(1)運作的時間大緻為25us。

繼續閱讀