|
隨著電子技術(shù)的發(fā)展,涌現(xiàn)出多種高性能的單片機(jī),但51以其簡單實用仍然占有廣大的市場,非常適合初學(xué)者入門學(xué)習(xí),可是現(xiàn)在的仿真器都成百上千,這對我們學(xué)習(xí)單片機(jī)形成了很大的障礙。這里筆者根據(jù)自己的學(xué)習(xí)經(jīng)驗把51單片機(jī)的幾種開發(fā)方法寫出來與大家共享,希望能對即將要步入單片機(jī)大門的師弟師妹們有所幫助。 1、ISP下載方式開發(fā)單片機(jī) 用寫入器將code燒入,不過,芯片可以在目標(biāo)板上,不用取出來,在設(shè)計目標(biāo)板的時候就將接口設(shè)計在上面,所以叫"在系統(tǒng)編程",即不用脫離系統(tǒng);在這種情況下最簡單有效的方法就是燒片子,也就是寫完程序不經(jīng)過調(diào)試直接將生成的二進(jìn)制文件寫入到單片機(jī)內(nèi)運行。當(dāng)然這里單片機(jī)選型很重要,要選擇那種帶ISP或IAP的單片機(jī)如89S**、STC系列的單片機(jī)。這對于初學(xué)者也許有些難度,但是一旦掌握這種方法會使你的開發(fā)進(jìn)程變得高效。 2、MON51 MON51是用目標(biāo)單片機(jī)作為仿真器,單片機(jī)即仿真器也作目標(biāo)機(jī)的單片機(jī)用,其實質(zhì)是一種ROM監(jiān)控器。單片機(jī)內(nèi)駐留的是監(jiān)控程序,控制程序的執(zhí)行,而真正的用戶程序存放在外部RAM中,雖然這種方法會占用單片機(jī)的部分資源,但運行速度快,但結(jié)構(gòu)簡單,對于特定的開發(fā)者來說,實用性強(qiáng),性價比高,且易于自行制作。 其原理很簡單,單片機(jī)是通過RD產(chǎn)生低電平來讀取外部RAM的,而通過PSEN產(chǎn)生低電平來讀取外部ROM。如果在RD和PSEN間加與門由其輸出信號去控制外部RAM62256的OE端,這樣就可以騙過單片機(jī)使62256既可以充當(dāng)外部RAM又可以當(dāng)外部ROM。這樣做的巧妙之處在于在下載階段,62256做外部RAM,監(jiān)控程序可以通過串口將用戶程序?qū)懭氲酵獠?SPAN lang=EN-US>RAM中,而在程序的運行階段62256充當(dāng)ROM,監(jiān)控程序可以通過跳轉(zhuǎn)指令ljmp 8000h,執(zhí)行62256中的用戶程序。 3、ISD51 ISD51 (在線調(diào)試器)為8051編程用戶提供了新的監(jiān)控調(diào)試技術(shù)。將 ISD51 進(jìn)行配置后與您的用戶程序連接起來用戶就可以通過8051的一個串口直接在芯片上調(diào)試程序了。ISD51的軟件和硬件可以工作于最小模式。它可以運行于帶有外部或內(nèi)部程序空間的系統(tǒng)并且不要求增加像馮.諾伊曼架構(gòu)的數(shù)據(jù)存儲器等的特殊硬件部件。 ISD51 在你的8051系統(tǒng)里增加了一個串口中斷函數(shù) (ISD51 中斷)。當(dāng) ISD51 連接到 uVision2 調(diào)試器時, 8051 輸入 ISD51的中斷函數(shù)。只要到程序運行一被停止, 8051 就只運行 ISD51 中斷服務(wù)程序。當(dāng) uVision2 調(diào)試器發(fā)出一個“ Go”的指令, 8051就脫離 ISD51 中斷函數(shù)并且運行用戶程序。如果沒有設(shè)置任何斷點或者如果所有斷點設(shè)置為硬件斷點, 8051 就會全速運行用戶程序。如果設(shè)置了軟件斷點, 8051在相應(yīng)8051 CPU指令后面輸入 ISD51 中斷函數(shù) 。ISD51 中斷服務(wù)程序會檢查是否8051程序到了一個斷點地址,如果是,開始和 uVision2 調(diào)試器通訊。所以, 當(dāng)使用軟件斷點時,8051 的程序運行速度會變得相當(dāng)慢(相差100倍左右)。一旦“ISD51 系統(tǒng)在線調(diào)試器”被作為中斷函數(shù)實現(xiàn),其它和 ISD51 系統(tǒng)的中斷優(yōu)先級一樣,甚至比ISD51優(yōu)先級更高的中斷函數(shù)中就不能再設(shè)置斷點或者單步執(zhí)行了。默認(rèn)狀態(tài)下, ISD51 中斷函數(shù)使用的中斷優(yōu)先等級為0級。uVision2 調(diào)試器發(fā)送一個 0xA5 的字符到 ISD51 的中斷函數(shù)中,使用戶程序停止并且開始與調(diào)試器通訊, 當(dāng) uVision2 調(diào)試器收到請求信號后,8051 就會開始執(zhí)行程序。 由于STC89C51可以通過串口下載程序,所以STC89C51+ISD51是一種不錯的開發(fā)方法,雖然沒有復(fù)雜的硬件電路,卻具有仿真器的斷點、單步調(diào)試等功能可謂是“物美價廉“。 4、自制仿真器 SST89C54/58(簡稱89C54/58)是美國SST公司推出的多用途51系列單片機(jī),片內(nèi)集成了20 kB/36kB的SuperFlashE'PROM程序存儲器,分為BLOCK0(16kB/32kB)和BLOCKl(4kB)兩塊。其中,BLOCKl可以映射(Mapping)到64kB存儲空間的最高端或最低端,而且,對于程序計數(shù)器來說可以是不可見的。由于其存儲結(jié)構(gòu)上獨特的優(yōu)點,使得89C54/58非常適合于用做單片機(jī)仿真器。仿真器電路設(shè)計如圖2所示。圖中U2為串行通信接口芯片MAX232,U1為89C54/58。89C54/58的監(jiān)控程序通過PC機(jī)串行口與KEILC51進(jìn)行通信,實現(xiàn)實時仿真功能。 |