<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機Keil軟件仿真與調試技巧

單片機Keil軟件仿真與調試技巧

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò ) 收藏

5.程序

源程序編譯通過(guò),表明語(yǔ)法正確,卻并不能保證該程序能夠正確運行。還需要對其邏輯功能進(jìn)行。具有很強的功能。

鼠標左擊主菜單Debug一>Sta№top DebugSession子菜單或/編輯模式切換按鈕。進(jìn)入調試程序工作模式,窗口如圖5所示。重復點(diǎn)擊該按鈕可以實(shí)現在編輯模式和調試模式之間進(jìn)行切換。

圖5程序調試運行
圖5程序調試運行。

調試程序時(shí)的程序運行控制按鈕從左到右依次為復位、連續運行,暫停、單步、過(guò)程單步、執行完當前子程序、運行到光標當前行。復位按鈕模擬芯片的復位,它將使程序回到最開(kāi)頭處執行。當程序處于停止狀態(tài)時(shí)復位才有效,程序處于運行狀態(tài)時(shí)停止按鈕才有效。

①為了方便觀(guān)察程序調試過(guò)程中各變量和RAM單元的中間結果。點(diǎn)擊主菜單View一>WatchCall Stack Window和View一>Memory Window打開(kāi)觀(guān)察變量窗13和存儲器窗1:3進(jìn)行顯示。由于本例還要觀(guān)察P1 13的輸出變化,可以點(diǎn)擊主菜單Peripherals一>I/O-Ports一>Port 1打開(kāi)I/O 13 P1的觀(guān)察窗13.

②程序調試。

程序可以單步執行或連續執行。連續執行是指一條指令執行完后接著(zhù)連續立即執行下一條,中間不停止。這樣程序執行的速度很快??梢钥吹匠绦驁绦械目傮w效果。即最終結果是正確或錯誤。但如果程序有錯,則難以確認具體出錯地方。例如本例中點(diǎn)擊連續運行按鈕后。P1口輸出01H后便始終保持不變。這顯然與花樣彩燈程序的循環(huán)顯示要求不符。程序運行出錯,如圖6所示。

圖6程序調試時(shí)的連續運行
圖6程序調試時(shí)的連續運行。

單步執行指每執行完一條指令后即停止。等待命令執行下一行程序,此時(shí)可以觀(guān)察該條指令執行后得到的實(shí)際結果。對比分析是否與預期結果一致。

借此可以找到程序中的錯誤原因所在。這種方式的缺點(diǎn)是需要時(shí)間長(cháng),排查錯誤效率很低。尤其當程序很大時(shí)。

因此,對于用戶(hù)確認沒(méi)有錯誤的程序段可以采用連續運行。對懷疑出錯或容易出錯的地方則單步執行。對比排查錯誤。這樣調試的效率將會(huì )高一些。

本例通過(guò)單步執行。發(fā)現程序運行過(guò)程中循環(huán)變量R3的值總在250和249之間變化,而且R1、R2、R7均始終無(wú)變化,如圖7所示。對比程序分析,發(fā)現出現了死循環(huán)。原因在于第1條DJNZR3,DEL2的轉移目的地址為DEL2,應該改為DEL3.

圖7程序調試時(shí)的連續運行
圖7程序調試時(shí)的連續運行。

回到編輯狀態(tài),修改為DJNZ R3,DEL3,編譯后再次進(jìn)入調試工作模式時(shí),發(fā)現故障已經(jīng)排除。



關(guān)鍵詞: 調試 技巧 仿真 軟件 Keil 單片機

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>