很多朋友來(lái)索要pcb圖紙,在這我把它出來(lái),有需要的朋友可以下載查看。04033101_1_s51.rar初學(xué)51單片機(jī)或是業(yè)余玩玩單片機(jī)開發(fā),每次總要不斷的調(diào)試程序,如沒(méi)有仿真器又不喜歡用軟件仿真,那只有每次把編譯好的程序燒錄到芯片上,然后在應(yīng)用電路或?qū)嶒?yàn)板上觀察程序運(yùn)行的結(jié)果,對(duì)于一些小程序這樣的做好也可以很快找到程序上的錯(cuò)誤,但是程序大了,變量也會(huì)變的很多,而直接燒片就很難看到這些變量的值了,在修改程序時(shí)還要不斷的燒片實(shí)驗(yàn),確實(shí)很麻煩,這時(shí)如果有一臺(tái)仿真器就會(huì)變得很好方便了。但一臺(tái)好的仿真器對(duì)于業(yè)余愛(ài)好者來(lái)說(shuō)確實(shí)有一些貴,在這里介紹這種易于自制的51芯片仿真器雖然有一些地方不夠完善,但還是非常適于初學(xué)51單片機(jī)的朋友和經(jīng)濟(jì)能力不是很好的業(yè)余愛(ài)好者。
這個(gè)仿真器的仿真cpu是使用sst公司的sst89c58或sst89c54(其它相容的芯片也可,這里主要講述sst89c58),對(duì)于沒(méi)有可以燒寫sst89c58芯片的朋友應(yīng)該選用ca版本的sst89c58芯片,這個(gè)ca型號(hào)的芯片出廠時(shí)已內(nèi)置了bsl1.1e的固件程序。那什么是bsl呢?bsl就是英文boot-strap loader,意思就是可引導(dǎo)裝載,形象來(lái)說(shuō)就像電腦用dos起動(dòng)盤起動(dòng)后可以裝載應(yīng)用程序并運(yùn)行。只不過(guò)sst89c58是用串口來(lái)輸入程序資料的。為了能把編譯好的單片機(jī)程序hex或bin文件下載到sst89c58芯片上,sst公司還提供了一種叫easyiap的軟件,iap為in-application programming,有了這個(gè)軟件就可以把sst89c54變?yōu)樵诰€下載的實(shí)驗(yàn)器。在這里不詳述easyiap的使用,只講述如何利用它去把sst89c58升級(jí)為帶softice固件程序的51仿真器。一、制作帶串口的的最小化應(yīng)用板
無(wú)論是easyiap還是仿真器,都需要用串行口使sst89c58芯片和pc上位機(jī)進(jìn)行通訊傳輸數(shù)據(jù),因此我們先要制作一個(gè)帶rs232/ttl轉(zhuǎn)換的應(yīng)用板,如果你的51實(shí)驗(yàn)電路板或目標(biāo)電路板已帶有這樣的電路那么你就可以跳過(guò)這一段了。圖二是筆者所設(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)換其它元件則做復(fù)位和時(shí)鐘振蕩電路。圖三是我以前做的51應(yīng)用板,剛好可以用就拿來(lái)用了,省卻了用萬(wàn)用板做圖四那樣的東西,但這塊應(yīng)用板不能像圖4那個(gè)可以當(dāng)芯片插到目標(biāo)板上。在晶振方面最好使用11.0592m或12m。
二、有編程器的做法
做好以上所說(shuō)的電路后,那么就可以把仿真cpu的hex文件燒到sst89c58里面,再把它插到上面的電路中就可以了。因?yàn)閟st89c58有兩個(gè)程序存儲(chǔ)區(qū),在這里要注意的是在燒寫時(shí)就把仿真監(jiān)控程序燒到sst89c58的第二個(gè)存儲(chǔ)區(qū)也就是的rb1。燒寫時(shí)要求用支持sst89c58的編程器,站長(zhǎng)所用的是top2000。燒寫設(shè)置畫面如圖五,在這里要注意的是如果你要燒寫bsl固件程序做iap在線下載器是不要對(duì)加密位sb1-3進(jìn)行加密,并設(shè)存儲(chǔ)位為rb1,否則無(wú)法用iap功能。各編程器的設(shè)置不一樣具體參看編程口的說(shuō)明書。圖五 top2000b燒寫sst89c58做仿真器時(shí)的設(shè)置文件下載文件名稱說(shuō)明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使用手冊(cè)softice-ug.pdfsoftice-ug.pdf使用手冊(cè)三、沒(méi)有編程器的做法
如果你手頭上沒(méi)有支持sst89c58的編程器,那么你就要購(gòu)賣ca版的sst89c58芯片,當(dāng)然不是ca版的也是可以做的,只是相對(duì)來(lái)說(shuō)比較麻煩這里就不做討論了,可以對(duì)參看紅日網(wǎng)友發(fā)起的貼子(http://bbs.cdle./dispbbs.asp?boardid=18&id=940&page=1)。
1.首先把ca版的sst89c58芯片插到上面介紹的電路板中,因ca版上已裝入了bsl3,你可以先下載easyiap11e,測(cè)試一下你的電路板是否是正常工作的。(用easyiap11f也可以)如果你能保證你的電路是正常工作的可以跳過(guò)這一步。把你的電路接到電腦串口上,打開easyiap11e軟件。圖六 easyiap11e
按菜單上的rs232彈出串口設(shè)置畫面,設(shè)好你要用的串口和波特率,選用波特率選用默認(rèn)的38400就可。確定后按菜單的“auto detectchip”圖七中1所示。圖七 電路正常程序的畫面
當(dāng)你的電路正常時(shí)就會(huì)圖七的畫面,并在2所示位置顯示芯片的型號(hào),bsl版本等信息。如果你無(wú)法到這一步就請(qǐng)檢查你的電路是否有正常的復(fù)位和起振,串口電路是否正常或芯片是否損壞等等問(wèn)題。
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í)過(guò)程中出現(xiàn)圖十二的出錯(cuò)提示,如真是加密了只有用編程器擦除后直接燒入仿真監(jiān)控程序或bsl11f程序了。出現(xiàn)這樣的提示也可能是串口線接觸不好,或電路有問(wè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 連接不成功提示