2013-02-28 91 views
0

我在彙編中爲intel 8051做了一個程序。該程序編譯得很好,在模擬器中執行得很好,但不會在端口上顯示任何輸出。輸出端口只是空的。端口沒有顯示輸出

下面是代碼:

ORG 00H 

MOV P1, #00H 
MOV P2, #00H 
MOV P3, #00H 
mov R4, #00h 

TakeInput: 

MOV R3,#0H 


JB P3.4, TakeOperation 
DJNZ R3,TakeInput 

MOV R0, P1 

MOV R1, P2 

MOV P2, #00H 

TakeOperation:

mov p2,#00h 

jb p3.5,CheckFunction 

sjmp TakeOperation 

CheckFunction: 

mov P3,#00h 
Mov R5,P2 
CJNE R5,#02H,ADDT 

ajmp end 

ADDT: 

MOV A,R0 

ADD A, R1 

MOV P3, A  
SJMP CheckFunction 

我在做什麼錯,輸出沒有在端口顯示? 問候

+0

什麼是你的端口P2和P3輸入?另外,使用'MOV R3,#0' /'DJNZ R3,TakeInput'而不是使用'SJMP TakeInput'來實現無限循環的複雜方法是​​什麼? – Michael 2013-02-28 13:15:08

回答

0

若要比較兩個Rx寄存器:

MOV A,R0 
CJNE A,01h,r0_r1_not_equal ; Assumes that you're using register bank 0 
; take action based on R0==R1 
; ... 
SJMP done 
r0_r1_not_equal: 
; take action based on R0!=R1 
; ... 
done: 
+0

以及爲什麼輸出不顯示在端口上 – 2013-02-28 14:00:18