proteus與Keil4的聯調操作

2021-10-02 06:07:40 字數 3276 閱讀 5174

在微控制器學習中,經常會用到proteus軟體和keil4軟體進行聯調,那具體的操作是怎樣的呢,話不多說,直接上專案。

(1)首先在proteus中繪製乙個電路圖,這裡我做的是乙個lcd滾動顯示漢字的電路圖。

(2)然後下邊是我在keil4中寫的程式

#include#includetypedef unsigned char uchar;

typedef unsigned int uint;

#define llcd_cmd_wr pbyte[0x10]

#define llcd_cmd_rd pbyte[0x11]

#define llcd_data_wr pbyte[0x12]

#define llcd_data_rd pbyte[0x13]

#define rlcd_cmd_wr pbyte[0x20]

#define rlcd_cmd_rd pbyte[0x21]

#define rlcd_data_wr pbyte[0x22]

#define rlcd_data_rd pbyte[0x23]

sbit busy=p0^1;

uchar code hz0=

;uchar code hz1=

;uchar code hz2=

;uchar code hz3=

;void lcd_cmd_wr(uchar cmdcode,uchar f);

void lcd_data_wr(uchar ldata,uchar f);

void chech_busy(uchar f);

void lcd_hz_wr(uchar posx,uchar posy,uchar *hz);

void lcd_str_wr(uchar row,uchar col,uchar n,uchar *str);

void lcd_rol();

void lcd_init();

void delay(uint n);

void main()

}void lcd_init()

lcd_cmd_wr(0xb8+4,0);

lcd_cmd_wr(0xb8+4,1);

for(i=0;i<256;i++) }

void lcd_cmd_wr(uchar cmdcode,uchar f)

void chech_busy(uchar f)

void lcd_str_wr(uchar row,uchar col,uchar n,uchar *str)

上邊的程式執行後生成字尾為.hex的檔案,準備後續的使用。 

(3)下邊進行聯調前的準備工作。準備好vdm51.dll檔案,在 keil anzhuang\c51\bin(keil的安裝路徑下的bin檔案內)放置乙份。然後再往proteus安裝\proteus 8 professional\models(proteus安裝路徑下的models內)放置乙份。最後在keil anzhuang下的tools.ini中新增一行,具體如下所示。

[uv2]

organization="microsoft"

name="microsoft", "軟體安裝管家"

email="[email protected]"

tool_variant=mdk_lite

[c51]

path="g:\g盤擴充套件\c盤\keil anzhuang\c51\"

version=v9.57

book0=hlp\release_notes.htm("release notes",gen)

book1=hlp\c51tools.chm("complete user's guide selection",c)

tdrv0=bin\mon51.dll ("keil monitor-51 driver")

tdrv1=bin\isd51.dll ("keil isd51 in-system debugger")

tdrv2=bin\mon390.dll ("mon390: dallas contiguous mode")

tdrv3=bin\lpc2emp.dll ("lpc900 epm emulator/programmer")

tdrv4=bin\ul2upsd.dll ("st-upsd ulink driver")

tdrv5=bin\ul2xc800.dll ("infineon xc800 ulink driver")

tdrv6=bin\monadi.dll ("adi monitor driver")

tdrv7=bin\das2xc800.dll ("infineon das client for xc800")

tdrv8=bin\ul2lpc9.dll ("nxp lpc95x ulink driver")

tdrv9=bin\jlinkefm8.dll ("j-link / j-trace efm8 driver")

tdrv10=bin\vdm51.dll ("proteus vsm monitor-51 driver")//這裡為新增的部分

rtos0=dummy.dll("dummy")

rtos1=rtxtiny.dll ("rtx-51 tiny")

rtos2=rtx51.dll ("rtx-51 full")

lic0=ubdwf-6k127-dbie4-fi9vs-xmr3w-wk92r

(4)右鍵keil檔案中的target1

然後選擇第一行「為目標target1設定選項」,在彈出的視窗選擇debug,然後選擇use下邊的下拉列表,選擇proteus vsm monitor-51 driver,然後點setting。

出現如下內容點確定即可。

然後雙擊開啟,選擇前邊生成的2.hex檔案 

(6)debug-執行程式,然後會有如第乙個圖所示的漢字滾動效果。

Keil4和Proteus8的聯調方法小敘

筆者的keil4是半年前裝的,昨天才決定裝proteus,並進行聯調。其中也遇到一些問題,裝完之後再回頭看就是啼笑皆非。鑑於看到有很多夥伴對於這兩個軟體的聯調也感到困惑,所以筆者希望能清晰簡潔地說明這個cute knowledge。接下來進入正題,tdrv?bin vdm51.dll proteus...

Keil 4 與 J Link 8 連線配置

keil 與 j link 連線配置 1 開啟keil,點選圖中紅色箭頭所指 2 進入如下介面,點選device,然後選擇stm32f103ze 3 再點選圖中的debug,選擇圖中紅色方框中的cotex m r j link j trace 4 點選utilities,選擇圖中的cotex m r...

解決keil4版本的程式亂跳的原因

前段時間除錯乙個很簡單的iic匯流排程式,程式編譯通過了,但是在軟體 除錯的時候發現,不按照自己設定的程式跳轉,找了很多天現在總結如下 1.是你的程式優化級別太高,調低點就可以了,現在的rom都很大。2.是你有中斷程式沒有用,或者用錯了 3.你定義的指標有錯或者非法 一 優化 keilc51的編譯器...