51 Keil語(yǔ)句延遲時(shí)間的精確計(jì)算
我們首先要找到單片機(jī)的晶振為多大(一般在配套的使用說(shuō)明書(shū)中有標(biāo)識(shí)或者直接在實(shí)驗(yàn)板上面看,實(shí)驗(yàn)板上面標(biāo)識(shí)的不是很明顯),如圖所示標(biāo)識(shí)。
本文引用地址:http://2s4d.com/article/201611/318606.htmKeil編譯器在編譯程序時(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)論