51 Keil語句延遲時間的精確計(jì)算
我們首先要找到單片機(jī)的晶振為多大(一般在配套的使用說明書中有標(biāo)識或者直接在實(shí)驗(yàn)板上面看,實(shí)驗(yàn)板上面標(biāo)識的不是很明顯),如圖所示標(biāo)識。
本文引用地址:http://www.biyoush.com/article/201611/318606.htmKeil編譯器在編譯程序時,計(jì)算代碼執(zhí)行時間跟此數(shù)值有關(guān),我們要模擬時間就要使軟件模擬運(yùn)行速度與實(shí)際硬件一一對應(yīng)。STC89C52RC的晶振頻率由圖1.知其頻率為11.0592MHz。故我們需要在keil的project中的Option for target 選項(xiàng)中修改晶振頻率值:
點(diǎn)擊OK按鈕,設(shè)置完畢。
二、計(jì)算語句執(zhí)行的時間
1)點(diǎn)擊
按鈕后可以看到兩個現(xiàn)象
l 在main函數(shù)內(nèi)的第一條帶操作性語句前有一個箭頭
這表示程序要運(yùn)行的下一條語句。
l 程序運(yùn)行箭頭所指向語句之前語句的時間為422.09us
2)點(diǎn)擊 使運(yùn)行箭頭所指向的一條語句
點(diǎn)擊 按鈕過后,黃色箭頭的指向會朝向下一條,這個時候程序運(yùn)行的時間就會發(fā)生變化:
相應(yīng)的箭頭指向的語句也會發(fā)生變化
且
其中21-22行為注釋語句。
所以我們就可以計(jì)算出執(zhí)行led1 = 0這條語句的時間為:(423.18-422.09)us。
三、總結(jié)
知道每條(段)程序運(yùn)行的時間過后我們就可以設(shè)置一段我們想要的時間段去控制軟件間歇的運(yùn)行某些程序段。如使流水燈閃爍。
評論