天天看點

51單片機(四)—— 51單片機仿真晶片的使用

        在前面的文章中,我們都是直接用序列槽将程式燒寫到單片機中運作,在這種開發方式下,如果程式有問題,很難找到問題所在,用過一些高端單片機的人可能知道,一般單片機是可以用調試器調試的,可以單步調試、設定斷點等,對于查找程式的問題比較友善。51單片機比較低端,本身不支援線上調試,但是可以使用仿真晶片進行調試。本文我們就來介紹如何使用仿真晶片SST89E516RD。

        SST89E516RD晶片是51單片機的仿真晶片。仿真晶片可以實作計算機與開發闆闆之間的真正線上調試,可以在軟體調試模式下進行單步的執行指令、可設定斷點等。每執行一條指令都可看見實驗闆的運作狀态,并且可随時檢視各個變量的值,對初學者非常有幫助。如果不使用仿真晶片而直接使用闆上單片機調試程式隻能全速執行指令,通過實驗闆現象來重新修改程式,再次下載下傳。

       在使用仿真晶片時,首先要把開發闆上的單片機取下。将SST89E516RD仿真晶片取代原來單片機的位置。并用USB線将開發闆與計算機連接配接起來。

       連接配接好硬體之後還要對Keil軟體進行一定設定。設定步驟如下:

1、打開一個已有的工程。如下圖所示。

51單片機(四)—— 51單片機仿真晶片的使用

2、點選上圖中橙色框中的按鈕

51單片機(四)—— 51單片機仿真晶片的使用

,打開如下視窗。或者點選“Project\Options for Target ‘Target 1’”,同樣可以打開這個視窗。

51單片機(四)—— 51單片機仿真晶片的使用

3、将上圖視窗中切換到“Debug”選項,并按照下圖中橙色框的内容進行設定。

51單片機(四)—— 51單片機仿真晶片的使用

4、設定好上圖中的内容之後點選“Settings”按鈕,出現如下圖所示的視窗。

51單片機(四)—— 51單片機仿真晶片的使用

5、在上圖總設定序列槽号和波特率,序列槽号是開發闆上的USB轉序列槽晶片虛拟出來的序列槽。當開發闆連接配接到電腦上之後,在裝置管理器中可以看到該序列槽的序列槽号,使用者需要根據自己的情況進行設定。波特率設定為38400,其它按照橙色框中的内容進行設定。設定好之後如下圖所示。

51單片機(四)—— 51單片機仿真晶片的使用

6、設定完成後點選“OK”,并在最初出現的視窗上點選“确定”,完成設定。設定好之後就可以進行仿真了。這時,将開發闆的電源開關打開,點選如下圖所示的仿真按鈕。可以看到狀态欄有藍色進度條。

51單片機(四)—— 51單片機仿真晶片的使用

如果點選

51單片機(四)—— 51單片機仿真晶片的使用

之後出現如下圖所示的視窗,說明通信存在異常。這時可以按一下開發闆上的複位鍵,或者重新開機一下開發闆的電源,然後點選下圖中的“Try Again”按鈕。如果多次嘗試仍然不能成功,請檢查USB線是否連接配接好,并檢查序列槽号和波特率是否設定正确。

51單片機(四)—— 51單片機仿真晶片的使用

下載下傳成功後,Keil界面如下圖所示。圖中橙色框中顯示的是CPU寄存器的值,和仿真器的版本。

51單片機(四)—— 51單片機仿真晶片的使用

7、這時就可以進行仿真了,仿真常用的幾個按鈕如下圖所示。

51單片機(四)—— 51單片機仿真晶片的使用

這幾個按鈕的作用分别為:

51單片機(四)—— 51單片機仿真晶片的使用

—複位,将程式複位到主函數最開始處,準備重新運作程式。

51單片機(四)—— 51單片機仿真晶片的使用

—全速運作,運作程式時不停止。

51單片機(四)—— 51單片機仿真晶片的使用

—停止全速運作,當程式處在全速運作狀态時,點選該按鈕,用來停止正在全速運作的程式。

51單片機(四)—— 51單片機仿真晶片的使用

—進入子函數的内部。

51單片機(四)—— 51單片機仿真晶片的使用

—單步執行代碼,它不會進入子函數内部,可以直接跳過函數。

51單片機(四)—— 51單片機仿真晶片的使用

—跳出目前進入的函數,隻有進入了子函數内部,該按鈕才被激活。

51單片機(四)—— 51單片機仿真晶片的使用

—程式直接運作到目前光标所在行。

    如果在點選

51單片機(四)—— 51單片機仿真晶片的使用

時,程式不能停止,說明下圖中的橙色框中的複選框沒有勾選。建議不要勾選這個複選框,因為有可能會影響仿真的準确性。使用者可以通過按開發闆上的複位按鍵來終止仿真,然後重新進入其它仿真過程。

51單片機(四)—— 51單片機仿真晶片的使用