Порт не показывает вывод

Сделал программу для 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

Что я делаю не так, что вывод не отображается на порту? С уважением


person James Aflred    schedule 28.02.2013    source источник
comment
Что вы вводите на портах P2 и P3? Кроме того, что за запутанный способ реализации бесконечного цикла с MOV R3,#0 / DJNZ R3,TakeInput вместо использования SJMP TakeInput ?   -  person Michael    schedule 28.02.2013


Ответы (1)


Чтобы сравнить два регистра 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:
person Michael    schedule 28.02.2013
comment
и почему вывод не отображается на порту - person James Aflred; 28.02.2013