你了解MCS 51 應用系統(tǒng)的調(diào)試過程嗎
在完成應用系統(tǒng)的硬件組裝和軟件設計以后,便進入系統(tǒng)調(diào)試階段。這個階段的任務是排除樣機中的硬件故 障和糾正軟件中的設計錯誤,并解 決硬件和軟件之間的不協(xié)調(diào)問題 。下面介紹幾種調(diào)試方法。
一、硬件調(diào)試方法
單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能完全分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結合起來調(diào)試。硬件調(diào)試方法有兩種:靜態(tài)調(diào)試和仿真調(diào)試。
1.靜態(tài)調(diào)試
在樣機加電之前,先用萬用表等工具,根據(jù)硬件邏輯設計詳細檢查樣機線路的正確性,核對元器件的型號、規(guī)格和安裝是否符合要求。應特別注意電源系統(tǒng)的檢查,以防止電源短路和極性錯誤。并重點檢查系統(tǒng)總線是否存在相互之間短路或與其它信號線的短路。
第一步是加電后檢查各插件上引腳的電位,一般先檢查 VCC 與 GND 之間電位,若在 5V 左右屬正常。若出現(xiàn)高壓,聯(lián)機仿真調(diào)試時,會損壞仿真器等,有時會使應用系統(tǒng)的集成塊發(fā)熱損壞。
第二步是在斷電情況下,除 CPU 之外,插上所有元器件,仿真插頭插入樣機 CPU 插座,并和仿真機相連,用萬用表檢查連接的正確性后,準備聯(lián)機仿真調(diào)試。連接圖見圖 8.2 。
圖 8.2 應用系統(tǒng)連接仿真器開發(fā)系統(tǒng)簡圖
2.聯(lián)機仿真調(diào)試
電路檢查無誤后,分別打開樣機和仿真器的工作電源,啟動 MBUG 進入監(jiān)控狀態(tài),就 可進行聯(lián)機仿真調(diào)試了。
調(diào)試的方案是:把整個應用系統(tǒng)按其功能分成若干模塊,如系統(tǒng)擴展模塊:輸入模塊、 輸出模塊、A/D 模塊、D/A 模塊等。針對不同的功能模塊,編寫一小段測試程序,并借助 于萬用表、示波器、邏輯筆等儀器來檢查硬件電路的正確性。
二、軟件調(diào)試方法
軟件調(diào)試可以一個模塊一個模塊地進行,下面給出一些常見的故障情況。
1.程序跳轉錯
這種錯誤的現(xiàn)象是程序運行不到指定的地方,或發(fā)生死循環(huán),通常是由于錯用了指令 或設錯了標號,如:
這段程序的目的是為了延遲一段時間,由于 INC A 指令執(zhí)行后的結果不影響任何標志,所以 JNCLP1 這條指令執(zhí)行后總是轉跳到 LP1 ,結果發(fā)生了死循環(huán)。可將 JNCLP1 改 為:CJNE A ,#00H ,LP1 。
2.程序錯誤
對于計算程序,經(jīng)過反復測試后,才能驗證它的正確性 。例如調(diào)試一個雙字節(jié)十進制加法程序,該子程序的功能是將 31H 、30H 和 33H 、32H 單元 內(nèi) 的 BCD 碼相加 ,結果送 34H 、33H 、32H 單元。
調(diào)試這個程序時,先將加數(shù)寫入 8031 的 30H ~ 33H 單元內(nèi),然后設置斷點至 LOOP2,以 STRT 開始進行這個程序至斷點,觀察 34H~32H 的內(nèi)容是否正確。若存在錯誤,再用單步方式從 STRT 開始逐條運行指令,并不斷觀察 8031 的狀態(tài)變化,進一步查出錯誤原因。
3.動態(tài)錯誤
用單步、斷點仿真運行命令,一般只能測試目標系統(tǒng)的靜態(tài)功能。目標系統(tǒng)的動態(tài)性能要用全速仿真命令來測試,這時應選中目標機中晶振電路工作。
系統(tǒng)的動態(tài)性能范圍很廣,如控制系統(tǒng)的實時響應速度、顯示器的亮度、定時器的精度等等。若動態(tài)性能沒有達到系統(tǒng)設計的指標,有的是 由于元器件速度不夠造成的;更多的是由于多個任務之間的關系處理不恰當引起的。
4.加電復位電路的錯誤
排除硬件和軟件故障后,將 EPROM 和 CPU 插上目標系統(tǒng),若能正常運行,應用系統(tǒng)的開發(fā)研制便完成。若目標機工作不正常,則主要是加電復位電路出現(xiàn)故障造成的。如 8031 沒有被初始復位,則 PC 不是從 0000H 開始運行,故系統(tǒng)不會正常運行,必須及時檢查加電復位電路。