新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Keil Monitor-51仿真板的制作與使用

Keil Monitor-51仿真板的制作與使用

作者: 時(shí)間:2012-03-20 來源:網(wǎng)絡(luò) 收藏

例:INSTALL 0 7F 0

這條命令將設(shè)置波特率為9600bps,內(nèi)部定時(shí)器1為波特率發(fā)生器,要求CPU時(shí)鐘為 11.059MHz,內(nèi)部變量空間為:X: 0X7F00..X:0x7FFF,監(jiān)控程序代碼起始地十為:C:0x0000(C表示程序存儲(chǔ)單元)。該命令生成一個(gè) MON51.HEX,將其固化在EPROM中即可

應(yīng)該提醒的是,INSTALL批處理命令中主要用到兩個(gè)匯編文件:INSTALL.A51和MON_BANK.A51。根據(jù)硬件配置的具體情況,可能要作一些修改。

INSTALL.A51中修改項(xiàng)主要有兩項(xiàng):

(1)中斷偏移量設(shè)置:當(dāng)監(jiān)控程序在ROM中起始地址為0時(shí),采用von Neumann接法的外部數(shù)據(jù)存儲(chǔ)器起始地址為8000H,則中斷偏移量必須設(shè)成8000H,而用戶應(yīng)用應(yīng)用將存放在8000H之后。 INSTALL.A51中的INT_ADR_OFF定義如下:

INT_ADR_OFF EQU 8000H。

(2)波特率修改:Monitor-51的波特率一般設(shè)置成9600bps或自適應(yīng)。若要改成其它波特率,如4800bps,則修改“InitSerial:”節(jié)中的定時(shí)器初始化值。

INSTALL.A51中還有許多其它設(shè)置,一般不作修改。

MON_BANK.A51是為代碼區(qū)分組的應(yīng)用程序安排的,此處不作討論。

3 中的幾個(gè)問題

按前兩節(jié)提供的硬件電路圖和監(jiān)控程序,如果板與目標(biāo)系統(tǒng)連接無誤,就可調(diào)試。但板與目標(biāo)系統(tǒng)連接有問題或 C51軟件設(shè)置不當(dāng)會(huì)遇到一些麻煩,在程序調(diào)試中的主要錯(cuò)誤與警告有:

ERROR 22:NO CODE MEMORY AT 0x80xx,這是因?yàn)?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/仿真">仿真板用于存放用戶程序的外部數(shù)據(jù)存儲(chǔ)空間與目標(biāo)系統(tǒng)地址存在沖突。應(yīng)檢查硬件電路予以解決。

ERROR L107:ADDRESS SPACE OVERFLOW,這是因?yàn)橛脩舫绦虼笥?mu;Vision2中設(shè)定的允許長度??蓪⒂脩舫绦蛟试S長度設(shè)到仿真板許可的最大值;若還不能解決,可將程序分段進(jìn)行調(diào)試。

WARNNING L1:NURESOLVED EXTERNAL SYMBOL,多數(shù)程序員都遇到過此警告,這是由于在生成Monitor-51監(jiān)控程序時(shí)(執(zhí)行INSTALL批處理命令)沒有使用[BANK]選項(xiàng)。解決方法是將Startup.A51文件中第140、141行最前面加“;”號(hào)注釋掉。Startup.A51是加入到用戶工程文件中的匯編程序,使用 Monitor-51仿真板必須加入此文件。

由于Monitor-51仿真板比較簡單,占用了一些系統(tǒng)資源,有時(shí)給用戶帶來了不便。程序員實(shí)際編程中常要解決以下兩個(gè)問題:

(1)串行接口功能:串行通信是MCS51單片機(jī)經(jīng)常要用到的功能,而MCS-51系列單片機(jī)只有一個(gè)串行通信接口,在與PC機(jī)相連的仿真狀態(tài)時(shí),串口用于與 PC機(jī)通信。若在應(yīng)用程序中也用到串行口,就會(huì)發(fā)生沖突。解決方法是用戶程序裝載完畢后,運(yùn)行用戶程序,再斷開仿真板與PC機(jī)的串行通信線。這樣串口就可歸用戶程序使用了,當(dāng)然這時(shí)PC機(jī)就不能在線調(diào)試了。

(2)外部存儲(chǔ)空間:用戶程序越長,占用的外部數(shù)據(jù)存儲(chǔ)空間將越大。解決的方法是對(duì)較長的程序進(jìn)行分段調(diào)試,所有的程序完成后在軟件仿真狀態(tài)(不用 Monitor-51仿真板)生成一個(gè)完整的HEX文件。另外,如果系統(tǒng)中還有其它接口器件占用外部數(shù)據(jù)存儲(chǔ)空間,要合理安排。如有一EEPROM要存放歷史數(shù)據(jù),可以在調(diào)試過程中用#define預(yù)處理命令將存放歷史數(shù)據(jù)的存儲(chǔ)空間定義在較小的范圍內(nèi),程序編完后再修改范圍進(jìn)行編譯生成HEX文件。

筆者有多年的匯編語言編程經(jīng)歷,改用 C51后感覺很好,編程效率大為提高。經(jīng)過一段時(shí)間摸索,自制成了Monitor-51仿真板。使用Monitor-51仿真板,給調(diào)試程序帶來了極大的方便。雖然仿真板占用了一些系統(tǒng)資源,但經(jīng)合理安排,一般的應(yīng)用程序還是可以承受的。


上一頁 1 2 下一頁

關(guān)鍵詞: 使用 制作 仿真 Monitor-51 Keil

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉