- 註冊時間
- 2004-10-19
- 最後登錄
- 2023-5-14
- 主題
- 查看
- 積分
- 205
- 閱讀權限
- 50
- 文章
- 56
- 相冊
- 0
- 日誌
- 0
 
狀態︰
離線
|
組譯後有兩個指令錯誤如下
2500 A.D. 8051 Macro Assembler - Version 5.00c
------------------------------------------------
Input Filename : adc0804.asm
Output Filename : adc0804.obj
26 0051 90 00 00 MOV DPTR,
***** adc0804.asm : Line 26 *****
***** ILLEGAL ADDRESSING MODE *****
29 0058 55 41 ANL A,
***** adc0804.asm : Line 29 *****
***** SYNTAX ERROR *****
Lines Assembled : 61 Assembly Errors : 2
26 DPTR在START:程式段中 MOV DPTR,#TABLE設定過初始值,它指向TABLE
整個程式並不需要更改DPTR。
所以可以將這個指令刪除
29 在MAIN的程式中,你檢查P1.6=0輸入P2 port,將P2的高4bit值轉換成
ASCII碼置於20H,低4bit值轉換成ASCII碼置於21H。
修改成ANL A,#00001111B即可
修改後的程式如下,試試看
ORG 0000H
JMP START
ORG 0023H
JMP INTERR
START:
MOV SP,#70H
MOV DPTR,#TABLE
MOV 20H,#00H
MOV 21H,#00H
MOV IE,#10010000B
MOV SCON,#01110000B
MOV TMOD,#00100000B
MOV TH1,#0FDH
SETB TR1
MAIN:
CLR P1.7
ACALL DELAY
SETB P1.7
WAIT:
JB P1.6,WAIT
MOV A,P2
MOV B,A
SWAP A
ANL A,#00001111B
MOVC A,@A+DPTR
; MOV DPTR,
MOV 20H,A
MOV A,B
ANL A,#00001111B
MOVC A,@A+DPTR
MOV 21H,A
SETB TI
AJMP MAIN
INTERR:
PUSH A
JBC TI,TIINT
POP A
RETI
TIINT:
MOV A,20H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,21H
MOV SBUF,A
JNB TI,$
CLR TI
POP A
RETI
DELAY:
MOV R6,#20
DL1: MOV R7,#200
DJNZ R7,$
DJNZ R6,DL1
RET
TABLE: ; ASCII code: 0..9,A..F
DB 30H,31H,32H,33H,34H
DB 35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H
DB 46H
END
|
-
總評分: 威望 + 2
查看全部評分
|