在微控制器學習中,經常會用到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的編譯器...