<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

例:INSTALL 0 7F 0

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

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

INSTALL.A51中修改項主要有兩項:

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

INT_ADR_OFF EQU 8000H。

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

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

MON_BANK.A51是為代碼區分組的應用程序安排的,此處不作討論。

3 中的幾個(gè)問(wèn)題

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

ERROR 22:NO CODE MEMORY AT 0x80xx,這是因為板用于存放用戶(hù)程序的外部數據存儲空間與目標系統地址存在沖突。應檢查硬件電路予以解決。

ERROR L107:ADDRESS SPACE OVERFLOW,這是因為用戶(hù)程序大于μVision2中設定的允許長(cháng)度??蓪⒂脩?hù)程序允許長(cháng)度設到仿真板許可的最大值;若還不能解決,可將程序分段進(jìn)行調試。

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

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>