新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51 Keil語(yǔ)句延遲時(shí)間的精確計(jì)算

51 Keil語(yǔ)句延遲時(shí)間的精確計(jì)算

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
一、軟件模擬運(yùn)行速度與硬件對(duì)應(yīng)

我們首先要找到單片機(jī)的晶振為多大(一般在配套的使用說(shuō)明書(shū)中有標(biāo)識(shí)或者直接在實(shí)驗(yàn)板上面看,實(shí)驗(yàn)板上面標(biāo)識(shí)的不是很明顯),如圖所示標(biāo)識(shí)。

本文引用地址:http://2s4d.com/article/201611/318606.htm


Keil編譯器在編譯程序時(shí),計(jì)算代碼執(zhí)行時(shí)間跟此數(shù)值有關(guān),我們要模擬時(shí)間就要使軟件模擬運(yùn)行速度與實(shí)際硬件一一對(duì)應(yīng)。STC89C52RC的晶振頻率由圖1.知其頻率為11.0592MHz。故我們需要在keil的project中的Option for target 選項(xiàng)中修改晶振頻率值:

點(diǎn)擊OK按鈕,設(shè)置完畢。

二、計(jì)算語(yǔ)句執(zhí)行的時(shí)間

1)點(diǎn)擊
按鈕后可以看到兩個(gè)現(xiàn)象

l 在main函數(shù)內(nèi)的第一條帶操作性語(yǔ)句前有一個(gè)箭頭

這表示程序要運(yùn)行的下一條語(yǔ)句。

l 程序運(yùn)行箭頭所指向語(yǔ)句之前語(yǔ)句的時(shí)間為422.09us

2)點(diǎn)擊 使運(yùn)行箭頭所指向的一條語(yǔ)句

點(diǎn)擊 按鈕過(guò)后,黃色箭頭的指向會(huì)朝向下一條,這個(gè)時(shí)候程序運(yùn)行的時(shí)間就會(huì)發(fā)生變化:

相應(yīng)的箭頭指向的語(yǔ)句也會(huì)發(fā)生變化

其中21-22行為注釋語(yǔ)句。

所以我們就可以計(jì)算出執(zhí)行led1 = 0這條語(yǔ)句的時(shí)間為:(423.18-422.09)us。

三、總結(jié)

知道每條(段)程序運(yùn)行的時(shí)間過(guò)后我們就可以設(shè)置一段我們想要的時(shí)間段去控制軟件間歇的運(yùn)行某些程序段。如使流水燈閃爍。



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉