![]() |
發布時間: 2020-5-17 22:21
正文摘要:;;;;;通過查表程序控制P0口的發光二極管周期性變換花樣閃爍發光 MAIN:CLR A ;初始化 MOV DPTR,#SHEET ;取表首地址 &n ... |
1zjxx 發表于 2020-5-19 22:37 (所用的軟件為proteus7.8以及keil4) 所需要的資料:(VDM51.DLL+keil+proteus) keil與proteus聯調方法如下: (1)假若Keil C51與Proteus均已正確安裝在D:\Program Files的目錄里,把D:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS\VDM51.dll復制到D:\Program Files\keilC\C51\BIN目錄中,如果沒有“VDM51.dll”文件,那么去下載一個把proteus安裝目錄下 (2)修改keil安裝目錄下 Tools.ini文件,在C51字段加入TDRV8=BIN\VDM51.DLL (“Proteus VSM Monitor-51 Driver”),并保存。注意:不一定要用TDRV8,根據原來字段選用一個不重復的數值,如“TDRV9”也可以。 (3)打開proteus,畫出相應電路原理圖。在proteus的Debug菜單中選中“use remote debug monitor”。 (4)在proteus中選擇Debug,“Start/Restart Debugging”,如果在KEIL的Output Window的窗口中出現“VDM51 target initialized.”說明Proteus連接成功了;在keil中進行debug,如進行單步、斷點等;同時在proteus中查看調試的結果。 |
madell 發表于 2020-5-20 10:10 非常感謝! |
你這個是P0端口沒有定義,要么是工程沒有設定好,要么是工程沒有導入ASM文件,你的代碼在我的KEIL4上是可以運行的,并沒有報錯
![]() |
madell 發表于 2020-5-19 17:19 好的!那么您知道,keil4和keil5怎么弄,才可以和proteus聯合擬真嗎 ![]() ![]() |
xuyaqi 發表于 2020-5-19 20:48 感謝大佬! 我把P0換成80h ,報錯變成了 NOT AN OBJECT FILE 我把P0換成#80h ,報錯變成了 EXPRESSION TYPE DOES NOT MATCH INSTRUCTION 報錯內容變了,說明問題就出在這個P0這里了! |
datianmo 發表于 2020-5-19 16:30 試了一下,還是報錯了,而且報錯的內容不變,,, 總之還是感謝您的回復了 ![]() |
P0直接用寄存器地址 80h 替換 |
程序沒有問題,編譯器問題,重新安裝KEIL,我用KEIL4編譯沒有問題。 |
最前面一行加上ORG 0 |
不知會少包含標準的.h文件 |
高手都用匯編。 |
Y_G_G 發表于 2020-5-19 09:03 我選的是AT89C51 |
重新選擇一下單片機型號,如果還是不行的話,可能是你安裝的不是C51版本的KEIL
![]() ![]() |
ByanouQ 發表于 2020-5-18 08:54 我不是高手,只是個學單片機的學生罷了 ![]() |
madell 發表于 2020-5-18 12:46 試了一下還是一樣的報錯,,, A51(11): error A45: UNDEFINED SYMBOL 不管怎么說還是很感謝您的回答了 ![]() |
madell 發表于 2020-5-18 12:46 好的!感謝大佬! |
ByanouQ 發表于 2020-5-18 08:54 感謝回復! |
取表定義錯誤。MOV DPTR,#SHEET 改為 MOV DPTR,#SHOW |
高手都用匯編語言。出錯英文意思沒有定義符號,好像匯編沒有P0的定義吧。匯編丟很久,如果不對,望見諒!! |