自制51芯片仿真器完全手冊(cè)

2016-07-05 15:37

?

很多朋友來索要PCB圖紙,在這我把它出來,有需要的朋友可以下載查看。

?

04033101_1_s51.rar

初學(xué)51單片機(jī)或是業(yè)余玩玩單片機(jī)開發(fā),每次總要不斷的調(diào)試程序,如沒有仿真器又不喜歡用軟件仿真,那只有每次把編譯好的程序燒錄到芯片上,然后在應(yīng)用電路或?qū)嶒?yàn)板上觀察程序運(yùn)行的結(jié)果,對(duì)于一些小程序這樣的做好也可以很快找到程序上的錯(cuò)誤,但是程序大了,變量也會(huì)變的很多,而直接燒片就很難看到這些變量的值了,在修改程序時(shí)還要不斷的燒片實(shí)驗(yàn),確實(shí)很麻煩,這時(shí)如果有一臺(tái)仿真器就會(huì)變得很好方便了。但一臺(tái)好的仿真器對(duì)于業(yè)余愛好者來說確實(shí)有一些貴,在這里介紹這種易于自制的51芯片仿真器雖然有一些地方不夠完善,但還是非常適于初學(xué)51單片機(jī)的朋友和經(jīng)濟(jì)能力不是很好的業(yè)余愛好者。

?

  這個(gè)仿真器的仿真CPU是使用SST公司的SST89C58或SST89C54(其它相容的芯片也可,這里主要講述SST89C58),對(duì)于沒有可以燒寫SST89C58芯片的朋友應(yīng)該選用CA版本的SST89C58芯片,這個(gè)CA型號(hào)的芯片出廠時(shí)已內(nèi)置了BSL1.1E的固件程序。那什么是BSL呢?BSL就是英文BOOT-Strap Loader,意思就是可引導(dǎo)裝載,形象來說就像電腦用DOS起動(dòng)盤起動(dòng)后可以裝載應(yīng)用程序并運(yùn)行。只不過SST89C58是用串口來輸入程序資料的。為了能把編譯好的單片機(jī)程序HEX或BIN文件下載到SST89C58芯片上,SST公司還提供了一種叫EasyIAP的軟件,IAP為In-Application Programming,有了這個(gè)軟件就可以把SST89C54變?yōu)樵诰€下載的實(shí)驗(yàn)器。在這里不詳述EasyIAP的使用,只講述如何利用它去把SST89C58升級(jí)為帶SoftICE固件程序的51仿真器。

?

?

自制51芯片仿真器完全手冊(cè)

?

?

一、制作帶串口的的最小化應(yīng)用板

  無論是EasyIAP還是仿真器,都需要用串行口使SST89C58芯片和PC上位機(jī)進(jìn)行通訊傳輸數(shù)據(jù),因此我們先要制作一個(gè)帶RS232/TTL轉(zhuǎn)換的應(yīng)用板,如果你的51實(shí)驗(yàn)電路板或目標(biāo)電路板已帶有這樣的電路那么你就可以跳過這一段了。圖二是筆者所設(shè)計(jì)的可以用于制作SST89C58/54仿真器、S51系列下載器或51系列實(shí)驗(yàn)應(yīng)用的小型應(yīng)用板。(做個(gè)廣告,這板子將在本站進(jìn)行發(fā)售)它的電路是很簡(jiǎn)單的,用兩個(gè)NPN的小功率三極管和一些電阻二極管做RS232/TTL轉(zhuǎn)換

?

自制51芯片仿真器完全手冊(cè)

其它元件則做復(fù)位和時(shí)鐘振蕩電路。圖三是我以前做的51應(yīng)用板,剛好可以用就拿來用了,省卻了用萬用板做圖四那樣的東西,但這塊應(yīng)用板不能像圖4那個(gè)可以當(dāng)芯片插到目標(biāo)板上。在晶振方面最好使用11.0592M或12M。

?

?

?

自制51芯片仿真器完全手冊(cè)

?

?

二、有編程器的做法   做好以上所說的電路后,那么就可以把仿真CPU的HEX文件燒到SST89C58里面,再把它插到上面的電路中就可以了。因?yàn)镾ST89C58有兩個(gè)程序存儲(chǔ)區(qū),在這里要注意的是在燒寫時(shí)就把仿真監(jiān)控程序燒到SST89C58的第二個(gè)存儲(chǔ)區(qū)也就是的RB1。燒寫時(shí)要求用支持SST89C58的編程器,站長(zhǎng)所用的是TOP2000。燒寫設(shè)置畫面如圖五,在這里要注意的是如果你要燒寫B(tài)SL固件程序做IAP在線下載器是不要對(duì)加密位SB1-3進(jìn)行加密,并設(shè)存儲(chǔ)位為RB1,否則無法用IAP功能。各編程器的設(shè)置不一樣具體參看編程口的說明書。

?

自制51芯片仿真器完全手冊(cè)

?

?

圖五 TOP2000B燒寫SST89C58做仿真器時(shí)的設(shè)置

文件下載 文件名稱 說明 SoftIce58.hex SST89C58仿真監(jiān)控程序 softICE54.hex SST89C54仿真監(jiān)控程序 SSTEasyIAP11F.exe EasyIAP11F在線下載控制程序 SoftICE_58.zip 壓縮包內(nèi)包含

SoftIce58.hex,SSTEasyIAP11F.exe easyiap_58_11.zip 包含11.0592M的BSL3,EasyIAP11E easyiap_58_12.zip 包含12M的BSL3,EasyIAP11E easyiap54_12.zip 包含11.0592M的58,BSL3,EasyIAP11E easyiap_54_11.zip 包含12M的BSL3,EasyIAP11E BSL1.1F_User's_Guide.pdf BSL5 EasyIAP11F使用手冊(cè) SoftICE-UG.pdf SoftICE-UG.pdf使用手冊(cè)

三、沒有編程器的做法    如果你手頭上沒有支持SST89C58的編程器,那么你就要購(gòu)賣CA版的SST89C58芯片,當(dāng)然不是CA版的也是可以做的,只是相對(duì)來說比較麻煩這里就不做討論了,可以對(duì)參看紅日網(wǎng)友發(fā)起的貼子(http://bbs.cdle.net/dispbbs.asp?boardID=18&ID=940&page=1)。

  

  1.首先把CA版的SST89C58芯片插到上面介紹的電路板中,因CA版上已裝入了BSL3,你可以先下載EasyIAP11E,測(cè)試一下你的電路板是否是正常工作的。(用EasyIAP11F也可以)如果你能保證你的電路是正常工作的可以跳過這一步。把你的電路接到電腦串口上,打開EasyIAP11E軟件。

?

圖六 EasyIAP11E

   按菜單上的RS232彈出串口設(shè)置畫面,設(shè)好你要用的串口和波特率,選用波特率選用默認(rèn)的38400就可。確定后按菜單的“Auto DetectChip”圖七中1所示。

圖七 電路正常程序的畫面

  當(dāng)你的電路正常時(shí)就會(huì)圖七的畫面,并在2所示位置顯示芯片的型號(hào),BSL版本等信息。如果你無法到這一步就請(qǐng)檢查你的電路是否有正常的復(fù)位和起振,串口電路是否正?;蛐酒欠駬p壞等等問題。

  2.升級(jí)BSL11E到BSL11F。下載EaspIAP11F并運(yùn)行。下面是操作截圖和注意事項(xiàng)。

圖八

  圖八中選中的菜單項(xiàng)是把11E升級(jí)到11F的命令,下面一個(gè)則可以用檢測(cè)固件版本連接固件,如固件是11E也會(huì)提示是否升級(jí)到11F,最上一個(gè)則用于11F連接EaspIAP用。

?

?

圖九

圖十

?

圖十一 提示

  一路按確定,到了這一步會(huì)提示是否升級(jí)11E到11F,按“是”繼續(xù)升級(jí).

?

圖十二 出錯(cuò)提示

  如果你用于升級(jí)的SST89C58芯片做了加密操作的話就會(huì)在升級(jí)過程中出現(xiàn)圖十二的出錯(cuò)提示,如真是加密了只有用編程器擦除后直接燒入仿真監(jiān)控程序或BSL11F程序了。出現(xiàn)這樣的提示也可能是串口線接觸不好,或電路有問題。

?

圖十三 提示升級(jí)成功

圖十四 版本提示

  一切正常的話就會(huì)出現(xiàn)圖十三的成功升級(jí)11F提示。升級(jí)成功后,會(huì)在圖十四位置中顯示V1.1F的固件版本號(hào)。到了這一步11E升級(jí)就成功升級(jí)到11F。

?

  3.下載仿真監(jiān)控固件程序。從11E升級(jí)到11F后就可以進(jìn)行下面的操作了。下面的操作和上一步基本相同,這里就不詳述了。

?

圖十五

?

圖十六

?

圖十七 選擇對(duì)應(yīng)你的電路板的晶振頻率

?

圖十八 下載SoftICE

?

圖十九 密碼一般不用輸入

?

圖二十

?

圖二十一 升級(jí)成功提示   升級(jí)成功后就可以把仿真器連接KEIL uv2或KEIL uv3進(jìn)行仿真操作了。

?

?

?

圖22 項(xiàng)目設(shè)置菜單

?

?

圖23 項(xiàng)目設(shè)置

?

在項(xiàng)目設(shè)置Debug頁(yè)中選擇對(duì)應(yīng)本仿真器的KeilMon51驅(qū)動(dòng),如圖23中1所示。圖23的3中是選擇在仿真時(shí)能使用的工具窗口,如內(nèi)存顯示,斷點(diǎn)等等。按2進(jìn)行圖24中的仿真器設(shè)置。設(shè)置好串口號(hào),波特率,晶振為11.0592M時(shí)選38400。Cache Options為仿真緩選取后會(huì)加快仿真的運(yùn)行的速度。

?

圖24 仿真器設(shè)置

?

?

圖25 仿真器連接成功

?

設(shè)好后編譯運(yùn)行程序就可以連接仿真器了,連接成功會(huì)出現(xiàn)如圖25的畫面。如連接不成功就出現(xiàn)圖26的圖,這時(shí)可以先復(fù)位電路再按'Try Again',還不成功連接的話則應(yīng)檢查軟件設(shè)置和硬件電路。圖25中1是指示仿真器的固件版本為F-MON51V3.4版。點(diǎn)擊3中小紅點(diǎn)位置時(shí)為設(shè)置和取消斷點(diǎn),點(diǎn)擊2則運(yùn)行到下一個(gè)斷點(diǎn)。圖27則是變量和存儲(chǔ)器的查看。仿真器在軟件大概的使用方法和軟件仿真相差不多。

?

?

圖27 連接不成功提示

?

?

?