很多朋友來索要pcb圖紙,在這我把它出來,有需要的朋友可以下載查看。04033101_1_s51.rar初學(xué)51單片機或是業(yè)余玩玩單片機開發(fā),每次總要不斷的調(diào)試程序,如沒有仿真器又不喜歡用軟件仿真,那只有每次把編譯好的程序燒錄到芯片上,然后在應(yīng)用電路或?qū)嶒灠迳嫌^察程序運行的結(jié)果,對于一些小程序這樣的做好也可以很快找到程序上的錯誤,但是程序大了,變量也會變的很多,而直接燒片就很難看到這些變量的值了,在修改程序時還要不斷的燒片實驗,確實很麻煩,這時如果有一臺仿真器就會變得很好方便了。但一臺好的仿真器對于業(yè)余愛好者來說確實有一些貴,在這里介紹這種易于自制的51芯片仿真器雖然有一些地方不夠完善,但還是非常適于初學(xué)51單片機的朋友和經(jīng)濟(jì)能力不是很好的業(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上位機進(jìn)行通訊傳輸數(shù)據(jù),因此我們先要制作一個帶rs232/ttl轉(zhuǎn)換的應(yīng)用板,如果你的51實驗電路板或目標(biāo)電路板已帶有這樣的電路那么你就可以跳過這一段了。圖二是筆者所設(shè)計的可以用于制作sst89c58/54仿真器、s51系列下載器或51系列實驗應(yīng)用的小型應(yīng)用板。(做個廣告,這板子將在本站進(jìn)行發(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è)置畫面如圖五,在這里要注意的是如果你要燒寫bsl固件程序做iap在線下載器是不要對加密位sb1-3進(jìn)行加密,并設(shè)存儲位為rb1,否則無法用iap功能。各編程器的設(shè)置不一樣具體參看編程口的說明書。圖五 top2000b燒寫sst89c58做仿真器時的設(shè)置文件下載文件名稱說明softice58.hexsst89c58仿真監(jiān)控程序softice54.hexsst89c54仿真監(jiān)控程序ssteasyiap11f.exeeasyiap11f在線下載控制程序softice_58.zip壓縮包內(nèi)包含softice58.hex,ssteasyiap11f.exeeasyiap_58_11.zip包含11.0592m的bsl3,easyiap11eeasyiap_58_12.zip包含12m的bsl3,easyiap11eeasyiap54_12.zip包含11.0592m的58,bsl3,easyiap11eeasyiap_54_11.zip包含12m的bsl3,easyiap11ebsl1.1f_user's_guide.pdfbsl5 easyiap11f使用手冊softice-ug.pdfsoftice-ug.pdf使用手冊三、沒有編程器的做法
如果你手頭上沒有支持sst89c58的編程器,那么你就要購賣ca版的sst89c58芯片,當(dāng)然不是ca版的也是可以做的,只是相對來說比較麻煩這里就不做討論了,可以對參看紅日網(wǎng)友發(fā)起的貼子(http://bbs.cdle./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ù)位和起振,串口電路是否正?;蛐酒欠駬p壞等等問題。
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后就可以進(jìn)行下面的操作了。下面的操作和上一步基本相同,這里就不詳述了。圖十五圖十六圖十七 選擇對應(yīng)你的電路板的晶振頻率圖十八 下載softice圖十九 密碼一般不用輸入圖二十圖二十一 升級成功提示
升級成功后就可以把仿真器連接keil uv2或keil uv3進(jìn)行仿真操作了。 圖22 項目設(shè)置菜單圖23 項目設(shè)置在項目設(shè)置debug頁中選擇對應(yīng)本仿真器的keilmon51驅(qū)動,如圖23中1所示。圖23的3中是選擇在仿真時能使用的工具窗口,如內(nèi)存顯示,斷點等等。按2進(jìn)行圖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 連接不成功提示