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