?
很多朋友來索要PCB圖紙,,在這我把它出來,有需要的朋友可以下載查看,。
?
04033101_1_s51.rar
初學(xué)51單片機或是業(yè)余玩玩單片機開發(fā),,每次總要不斷的調(diào)試程序,如沒有仿真器又不喜歡用軟件仿真,,那只有每次把編譯好的程序燒錄到芯片上,,然后在應(yīng)用電路或?qū)嶒灠迳嫌^察程序運行的結(jié)果,對于一些小程序這樣的做好也可以很快找到程序上的錯誤,,但是程序大了,,變量也會變的很多,而直接燒片就很難看到這些變量的值了,,在修改程序時還要不斷的燒片實驗,,確實很麻煩,這時如果有一臺仿真器就會變得很好方便了,。但一臺好的仿真器對于業(yè)余愛好者來說確實有一些貴,,在這里介紹這種易于自制的51芯片仿真器雖然有一些地方不夠完善,但還是非常適于初學(xué)51單片機的朋友和經(jīng)濟能力不是很好的業(yè)余愛好者,。
?
這個仿真器的仿真CPU是使用SST公司的SST89C58或SST89C54(其它相容的芯片也可,這里主要講述SST89C58),,對于沒有可以燒寫SST89C58芯片的朋友應(yīng)該選用CA版本的SST89C58芯片,,這個CA型號的芯片出廠時已內(nèi)置了BSL1.1E的固件程序。那什么是BSL呢,?BSL就是英文BOOT-Strap Loader,,意思就是可引導(dǎo)裝載,形象來說就像電腦用DOS起動盤起動后可以裝載應(yīng)用程序并運行,。只不過SST89C58是用串口來輸入程序資料的,。為了能把編譯好的單片機程序HEX或BIN文件下載到SST89C58芯片上,SST公司還提供了一種叫EasyIAP的軟件,IAP為In-Application Programming,,有了這個軟件就可以把SST89C54變?yōu)樵诰€下載的實驗器,。在這里不詳述EasyIAP的使用,,只講述如何利用它去把SST89C58升級為帶SoftICE固件程序的51仿真器。
?
?
?
?
一,、制作帶串口的的最小化應(yīng)用板
無論是EasyIAP還是仿真器,,都需要用串行口使SST89C58芯片和PC上位機進行通訊傳輸數(shù)據(jù),因此我們先要制作一個帶RS232/TTL轉(zhuǎn)換的應(yīng)用板,,如果你的51實驗電路板或目標(biāo)電路板已帶有這樣的電路那么你就可以跳過這一段了,。圖二是筆者所設(shè)計的可以用于制作SST89C58/54仿真器、S51系列下載器或51系列實驗應(yīng)用的小型應(yīng)用板,。(做個廣告,,這板子將在本站進行發(fā)售)它的電路是很簡單的,用兩個NPN的小功率三極管和一些電阻二極管做RS232/TTL轉(zhuǎn)換
?
其它元件則做復(fù)位和時鐘振蕩電路,。圖三是我以前做的51應(yīng)用板,,剛好可以用就拿來用了,省卻了用萬用板做圖四那樣的東西,,但這塊應(yīng)用板不能像圖4那個可以當(dāng)芯片插到目標(biāo)板上,。在晶振方面最好使用11.0592M或12M。
?
?
?
?
?
二,、有編程器的做法 做好以上所說的電路后,,那么就可以把仿真CPU的HEX文件燒到SST89C58里面,再把它插到上面的電路中就可以了,。因為SST89C58有兩個程序存儲區(qū),,在這里要注意的是在燒寫時就把仿真監(jiān)控程序燒到SST89C58的第二個存儲區(qū)也就是的RB1。燒寫時要求用支持SST89C58的編程器,,站長所用的是TOP2000,。燒寫設(shè)置畫面如圖五,在這里要注意的是如果你要燒寫B(tài)SL固件程序做IAP在線下載器是不要對加密位SB1-3進行加密,,并設(shè)存儲位為RB1,,否則無法用IAP功能。各編程器的設(shè)置不一樣具體參看編程口的說明書,。
?
?
?
圖五 TOP2000B燒寫SST89C58做仿真器時的設(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使用手冊 SoftICE-UG.pdf SoftICE-UG.pdf使用手冊
三,、沒有編程器的做法 如果你手頭上沒有支持SST89C58的編程器,那么你就要購賣CA版的SST89C58芯片,,當(dāng)然不是CA版的也是可以做的,,只是相對來說比較麻煩這里就不做討論了,,可以對參看紅日網(wǎng)友發(fā)起的貼子(http://bbs.cdle.net/dispbbs.asp?boardID=18&ID=940&page=1)。
1.首先把CA版的SST89C58芯片插到上面介紹的電路板中,,因CA版上已裝入了BSL3,,你可以先下載EasyIAP11E,測試一下你的電路板是否是正常工作的。(用EasyIAP11F也可以)如果你能保證你的電路是正常工作的可以跳過這一步,。把你的電路接到電腦串口上,,打開EasyIAP11E軟件。
?
圖六 EasyIAP11E
按菜單上的RS232彈出串口設(shè)置畫面,,設(shè)好你要用的串口和波特率,,選用波特率選用默認(rèn)的38400就可。確定后按菜單的“Auto DetectChip”圖七中1所示,。
圖七 電路正常程序的畫面
當(dāng)你的電路正常時就會圖七的畫面,,并在2所示位置顯示芯片的型號,BSL版本等信息,。如果你無法到這一步就請檢查你的電路是否有正常的復(fù)位和起振,,串口電路是否正常或芯片是否損壞等等問題,。
2.升級BSL11E到BSL11F,。下載EaspIAP11F并運行。下面是操作截圖和注意事項,。
圖八
圖八中選中的菜單項是把11E升級到11F的命令,,下面一個則可以用檢測固件版本連接固件,如固件是11E也會提示是否升級到11F,,最上一個則用于11F連接EaspIAP用,。
?
?
圖九
圖十
?
圖十一 提示
一路按確定,到了這一步會提示是否升級11E到11F,按“是”繼續(xù)升級.
?
圖十二 出錯提示
如果你用于升級的SST89C58芯片做了加密操作的話就會在升級過程中出現(xiàn)圖十二的出錯提示,,如真是加密了只有用編程器擦除后直接燒入仿真監(jiān)控程序或BSL11F程序了,。出現(xiàn)這樣的提示也可能是串口線接觸不好,或電路有問題,。
?
圖十三 提示升級成功
圖十四 版本提示
一切正常的話就會出現(xiàn)圖十三的成功升級11F提示,。升級成功后,會在圖十四位置中顯示V1.1F的固件版本號,。到了這一步11E升級就成功升級到11F,。
?
3.下載仿真監(jiān)控固件程序,。從11E升級到11F后就可以進行下面的操作了,。下面的操作和上一步基本相同,這里就不詳述了,。
?
圖十五
?
圖十六
?
圖十七 選擇對應(yīng)你的電路板的晶振頻率
?
圖十八 下載SoftICE
?
圖十九 密碼一般不用輸入
?
圖二十
?
圖二十一 升級成功提示 升級成功后就可以把仿真器連接KEIL uv2或KEIL uv3進行仿真操作了,。
?
?
?
圖22 項目設(shè)置菜單
?
?
圖23 項目設(shè)置
?
在項目設(shè)置Debug頁中選擇對應(yīng)本仿真器的KeilMon51驅(qū)動,,如圖23中1所示。圖23的3中是選擇在仿真時能使用的工具窗口,,如內(nèi)存顯示,,斷點等等。按2進行圖24中的仿真器設(shè)置,。設(shè)置好串口號,,波特率,晶振為11.0592M時選38400,。Cache Options為仿真緩選取后會加快仿真的運行的速度,。
?
圖24 仿真器設(shè)置
?
?
圖25 仿真器連接成功
?
設(shè)好后編譯運行程序就可以連接仿真器了,連接成功會出現(xiàn)如圖25的畫面,。如連接不成功就出現(xiàn)圖26的圖,,這時可以先復(fù)位電路再按'Try Again',還不成功連接的話則應(yīng)檢查軟件設(shè)置和硬件電路,。圖25中1是指示仿真器的固件版本為F-MON51V3.4版,。點擊3中小紅點位置時為設(shè)置和取消斷點,點擊2則運行到下一個斷點,。圖27則是變量和存儲器的查看,。仿真器在軟件大概的使用方法和軟件仿真相差不多。
?
?
圖27 連接不成功提示
?
?
?