<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Keil C51程序調(diào)試過(guò)程

          Keil C51程序調(diào)試過(guò)程

          作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
          用MCS-51單片機(jī)軟件Keil C51編寫(xiě)程序時(shí),經(jīng)常需要調(diào)試,如果不是經(jīng)常用這個(gè)軟件的話,很容易忘記這些調(diào)試步驟,現(xiàn)在舉一個(gè)例子“驗(yàn)證延遲函數(shù)delay()使其延遲的時(shí)間為500ms”供以后復(fù)習(xí)查考。

          源程序?qū)懲旰?,就可以調(diào)試了,按照?qǐng)D1所示,先進(jìn)行第一步和第二步操作,使界面切換到圖2的狀態(tài),可以看到在文本編輯窗口中,有一個(gè)黃色箭頭指向13行的位置,說(shuō)明程序從這個(gè)位置開(kāi)始執(zhí)行。左上角有一些跟調(diào)試相關(guān)的按鈕,如“全速執(zhí)行”、“單步進(jìn)入”~~~對(duì)于我這個(gè)例子,目的是驗(yàn)證delay()函數(shù)的延遲時(shí)間,使其大約為500ms。按照下列方法可以達(dá)到我的目的:

          本文引用地址:http://www.ex-cimer.com/article/201611/315472.htm

          圖1 編譯界面

          圖2 調(diào)試界面

          點(diǎn)擊“單步跳出”按鈕(或功能鍵F10),黃色箭頭從第13行往下移一行(14),再單擊“單步跳出”,則箭頭移到15行那邊,表示程序從第13行執(zhí)行到第15行,(注:這種方式是一步一步執(zhí)行程序,如果要同時(shí)執(zhí)行幾行,如從第13行一下子到15行,可以這樣來(lái)做,用鼠標(biāo)在第15行的位置處點(diǎn)擊兩下會(huì)出現(xiàn)一個(gè)圖2所示的紅色圖標(biāo),此時(shí)點(diǎn)擊“全速執(zhí)行”按鈕,則黃色的箭頭則會(huì)從第13行快速移到15行,這兩行同時(shí)執(zhí)行)此時(shí)左邊寄存器窗口中的sec有一個(gè)數(shù)值,表示程序執(zhí)行的時(shí)間(即delay()延遲時(shí)間),可能不是為500ms。此時(shí),改變delay()函數(shù)中x,y的數(shù)值,然后點(diǎn)擊圖1的第二步所對(duì)應(yīng)的按鈕切換到圖1所示的編譯界面上來(lái),點(diǎn)擊“重新構(gòu)造所有對(duì)象文件”編譯一下程序,然后再切換到圖2的界面上來(lái)進(jìn)行調(diào)試。重復(fù)上面的步驟,直到左邊寄存器窗口中的sec(單位秒)數(shù)值大約為0.50s,即可說(shuō)明delay()延遲時(shí)間為500ms。(注:這種方法比較麻煩,而且延遲時(shí)間不會(huì)很精確,如果要精確延遲的話可采用定時(shí)器的方式)



          關(guān)鍵詞: KeilC51程序調(diào)

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();