1 概 述
SST89C54/58(簡稱89C54/58)是美國SST公司推出的多用途51系列單片機,,片內集成了20 kB/36 kB的SuperFlashE'PROM程序存儲器,,分為BLOCK0(16kB/32kB)和BLOCKl(4kB)兩塊,。其中,BLOCKl可以映射(Mapping)到64kB存儲空間的最高端或最低端,,而且,,對于程序計數(shù)器來說可以是不可見的。由于其存儲結構上獨特的優(yōu)點,,使得89C54/58非常適合于用做單片機仿真器,。
2 SST89C54/58的程序存儲結構
2.1 存儲器結構
89C54/58片內的存儲塊BLOCK0占據(jù)從0000H到3FFFH/7FFFH的存儲空間,BLOCKl占據(jù)從F000H到FFFFH的存儲空間,。89C54/58存儲結構如圖1所示,。
當EA#=1時,對于程序計數(shù)器來說,,BLOCK0始終是可見的,,用于代碼的存取
;BLOCKl代碼的存取是通過特殊功能寄存器SFCM,,SFCF,,SFAL,SFAH,,SFDT和SFST來實現(xiàn)的,。當SFCF[7]=1時,BLOCKl是可見的,。
2.2 存儲器再映射(Re-mapping)
89C54/58的存儲器再映射功能使得對BLOCK0進行編程時,,其系統(tǒng)中斷向量區(qū)依然可用(普通8051系列單片機無此特點)。89C54/58提供4種存儲器再映射方式,,存儲器再映射數(shù)量的大小由MAP_ENCl:0)控制,,當MAP-
3 基于SST89C58的單片機仿真器的設計
3.1 設計原理簡介
仿真器電路設計如圖2所示。圖中U2為串行通信接口芯片MAX232,,U1為89C54/58,。89C54/58的監(jiān)控程序通過PC機串行口與KEILC51進行通信,實現(xiàn)實時仿真功能,。
3.2 仿真器監(jiān)控程序的加栽
SST公司提供的89C54/58仿真器監(jiān)控程序SoftlCE(Softwareln-CircuitEmulator)可通過SST公司提供的BSL(Boot-StrapLoader)加載或通過支持SST89C54/58的第三方編程器寫入,。
![]() |
3.3 仿真器性能簡介
基于89C54/58的單片機仿真器除不支持串行口仿真外,具有通用仿真器的所有功能,。與KEIL軟件相結合,,可完成大部分單片機應用系統(tǒng)的仿真設計。
其具體性能如下:
(1)可下載IntelHEX格式文件,。
(2)支持匯編及C51源代碼調試。
(3)支持在線匯編,。
(4)支持單步(Step)功能,。
(5)支持步越(StepOver)功能,。
(6)最大可設置10個固定斷點和一個臨時斷點。
(7)支持讀寫數(shù)據(jù)存儲器,。
(8)支持讀寫程序存儲器,。
(9)支持讀寫特殊功能寄存器。
(10)支持讀寫端口,。
(11)具有IAP(1n-ApplicationProgramming)功能,。
3.4 KEIL軟件及設置
KEIL C51是德國KEIL公司推出的Windows版的8051系列單片機開發(fā)套件,可用于編譯C源程序,、匯編源程序,,鏈接和定位目標文件和庫,創(chuàng)建HEX文件以及調試目標程序,,并內嵌有RTX51實時操作系統(tǒng),,可 簡化復雜的多任務實時應用系統(tǒng)的設計。與89C54/58仿真器配合時,,在KEIL開發(fā)環(huán)境中設置如下:
(1)創(chuàng)建項目,,并選擇SST單片機SST89C54/58。
(2)從菜單選擇"Options for,,Target 1/,。
(3)在"OptionsforTarget,Targetl"窗口中,,選擇使用KEILMonitor-51Driver,,如圖3所示。
(4)雙擊圖3中Settings鍵,,設置目標參數(shù)如圖4所示,,即可編譯調試目標程序。
4 結 語
綜上所述,,由于SST89C54/58獨特的存儲器結構,,使得89C54/58除用做通用的51單片機外,只需配以少量的外圍電路,,即可做成51系列單片機仿真器,。與功能強大的KEIL軟件相結合,為單片機工程師提供實時仿真開發(fā)環(huán)境,,可完成大部分單片機應用系統(tǒng)的設計.