軟體:
keil720_newest編寫程式軟體
數位管顯示1-8asm
HL-340 (usb轉串口)
串口通訊
pdf
word
SST89E516RD和Keil軟體配合模擬51單片機
單片機實驗和開發中最重要的一個環節就是程式的調試,在業餘條件下大部分人都採用燒寫晶片直接到目標板上實驗的方法,但是這樣做在程式出現問題時比較麻煩,有時候也很難找到程式的問題出在那裡。另外也可以採用軟體模擬的方式偵錯工具,但是這種方式也有局限性,軟體模擬有時候並不能完全代替實際使用環境。因此單片機模擬器成了程式調試中一個重要的裝置。但是在業餘條件下很少有人使用價格比較高的模擬器。為解決這一問題,本文介紹一種用SST公司的單片機SST89E516RD做的基於MCS-51架構的簡易51單片機模擬器,它支援與MCS-51架構相容的晶片。
一、單片機SST89E516RD簡介
SST89E516RD是8位整合儲存空間的51系列相容單片機,和51系列單片機軟體相容、開發工具相容、管腳也相容。
SST89E516RD片內有兩塊SuperFlash EEPROM,分為64K主塊(Block0)和8K次塊(Block1)。Block0的位址範圍是0000h~ffffh;Block1的位址範圍是10000h~11fffh。做模擬器時Block1儲存區燒寫SoftICE模擬監控程式。
SST89E516RD具有在應用可程式化(IAP)和在系統可程式化(ISP)的功能,其中IAP是通過串口實現的。
模擬器就是利用了SST89E516RD的IAP功能。由於SST89E516RD具有兩塊獨立的SuperFlash程式儲存區,當監控程式在Block1儲存區中運行時可以改寫Block0程式儲存區中的程式,這就是模擬器的基本特性。
SST89E516RD的引腳圖見圖1。
二、模擬器電路和工作原理
單片機SST89E516RD和晶振電路、複位電路一起組成單片機最小系統。SST89E516RD的引腳分別接在40腳的插針上,應用時40腳的插針插在目標板的單片機插座上。模擬器可能通過跳線的方式選擇模擬器上的晶振或目標板上的晶振。模擬器使用目標板上的電源。 模擬器的工作過程就是在調試過程中隨時對程式進行修改,來達到單步運行、跨步運行、斷點運行和全速啟動並執行目的。在通過KeilμVision2整合式開發環境進行模擬時,需要調試的單片機程式目標代碼通過串口被傳送給監控晶片,並由監控程式燒寫到監控晶片的Block0程式儲存空間中。在模擬調試過程中,監控程式可以隨時改寫被調試的程式來設定單步運行、跨步運行、斷點運行。程式暫停執行後,在整合式開發環境中可以觀察單片機RAM、寄存器和單片機內部的各種狀態。 模擬器的監控晶片SST89E516RD中要預先燒寫監控程式才能使用。
四、使用Keil μVision2進行模擬調試
模擬器做好以後就可以配合Keil μVision2進行模擬調試,如果自己建項目進行設定,則相關設定過程如下:
1、在菜單Project中選擇Optionsfor Target'Targetl',在"Optionsfor Trarget 'Targetl'"對話方塊的Debug 頁面裡,選擇"Use:KeilMonitor-51 Driver"。相關設定見。直接點擊Options for Target表徵圖或者在滑鼠右鍵菜單開啟設定菜單
選擇Debug欄 選中 Keil Monitor-51 Driver把下面的兩個勾都打上
點擊OK , 儲存設定。
然後單擊"Settings"選擇要使用的電腦序列埠。Keil μ Vision2預設設定為COM1/9600。模擬器在一定範圍內對串列通訊傳輸速率是自適應的,晶振頻率為11.0592MHz時傳輸速率可在4800~38400 之間選擇。一般取最大值,以提高串口通訊速度。相關設定見圖6。最後單擊"確定"按鈕儲存設定。模擬器或目標板也可以選擇其他頻率的晶振,比如晶振頻率為6MHz時傳輸速率可在2400~19200之間選擇。如果使用目標板上的晶振,傳輸速率要根據目標板上的晶振頻率確定。
開啟項目test.Uv2,完成上述設定後就可以進行模擬調試了。先單擊工具列上的Build target按鈕 編譯項目,編譯成功後將產生目標代碼。將模擬器按正確的方向插在目標板上,串口和電腦串連好後接通目標板的電源,按一下模擬器的複位鍵SB,再單擊Start/Stop Debug session按鈕 ,啟動模擬調試環境,這時目標代碼將被自動下載到模擬器的Block0使用者程式空間。串連成功會後出現7所示的畫面,串連過程中我們會發現發光二極體VD2在閃爍。串連不成功時請檢查軟體佈建和硬體電路。
模擬時使用的主要調試按鈕的功能如下:
上述各按鈕的使用方法和軟體模擬時相同。
進入模擬調試環境後,按一下全速運行按鈕 ,目標板上的8個發光二極體就會輪流點亮,表示運行成功。如果我們在delay(100)前插入一個斷點,按一下全速運行按鈕 你會發現程式運行到斷點後停止向下執行,只有第一個發光二極體點亮;再按一下全速運行按鈕 ,剛輪流到第二個發光二極體點亮,以此類推。退出模擬時,請先按模擬器的複位鍵,然後再點一下按鈕 ,就回到編輯模式,修改程式後重新編譯,可以再次進入模擬調試環境。注意每次進入模擬調試環境前都要先按一下模擬器的複位按鈕SB。
使用模擬器時請注意下面兩點:
1.模擬器佔用了模擬單片機的串列通訊介面和用作傳輸速率發生器的定時器2的資源,只有在全速運行時才釋放這些資源,因此當目標板使用這些資源時就不能進行單步、跨步、斷點等運行。這也是這個模擬器的一個不足之處。 2.模擬器監控晶片的SuperFlashEEPROM擦寫壽命一般為每個儲存單元1萬次,而每一個逐步執行都將擦寫一次儲存單元,因此應盡量少使用逐步執行,多使用斷點、跨步、斷點和執行到游標行等節省擦寫次數的功能,以延長模擬器的使用壽命。
點擊settings 設定如下
【3】調試
點擊調試表徵圖
假如出現錯誤提示資訊,請確保設定無誤和電源已經開啟。【本人的經驗是關掉電源再開,點擊Try Again就可以了】
正確設定與串連後,則可使用Keil菜單的工具列按鍵進行模擬調試,按鍵功能與軟體模擬一致
第二個設定:
請在硬體模擬設定選項中,選擇 serial interrupt,在前面打勾。
如果以上設定你沒有做,在裝載過程中,模擬器會發出“嘀-” 的一聲長聲警示,這時的模擬結果將可
能不正確。
其餘設定:
請選擇 use keil Monitor-51 Driver ,這樣才會使用硬體模擬
請選擇 load Application at start ,在啟動時直接裝載程式
請選擇 Go till main ,裝載後直接運行到main 函數
請在硬體模擬設定選項中,選擇115200bps 傳輸速率,所有cache 都可以不選,或者只選cache code。同
時請選擇正確的串口號