2013-02-28 83 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