Encendido de un led por dos botones Ayuda (microcode)

Hola soy nuevo en micros estoy haciendo un programa que me encienda un led cuando las dos entradas son 1 y se apage cuando las dos entradas son 0 y que se mantenga en lo que esta cuando las entradas sean (1 y 0 o, 0 y 1)
Código:
define osc 4
      trisa.1=1
      trisa.0=1
      trisa.2=0
      porta.0=0
      Porta.1=0
      porta.2=0
           
    prog:
IF porta.1=0 xor porta.0=0 THEN llenar ;pregunta si portb.3=0 para ir a encen
if porta.1=1 xor porta.0=1 then vaciar
GOTO llenar ;ir a pro
llenar:
HIGH porta.2 ;encender el led
PAUSE 3000 ;esperar 1 segundo
GOTO prog
end
vaciar:
Low porta.2 ;encender el led
PAUSE 3000 ;esperar 1 segundo
GOTO prog
end


pues con este codigo no se me cumple lo que quiero que cuando sean (1 y 0 o, 0 y 1) no me altere la posicion anterior

el pic16f628A estoy usando
la imagen del circuito
 
hola, ami me sale de esta forma pruevala y analiza el circuito:

trisa.0=1
trisa.1=1
trisa.2=0
pul var porta.0
led var porta.2
pul2 var porta.1


led=0

;---------------------------------------------------------------------
; led
;---------------------------------------------------------------------
encendido:
if pul+pul2=1 then encendido ; la suma de los pulsadores=1 se queda en espera
if pul and pul2 then rebote ; si los pul se comportan como puerta and entonces sigue el programa

apagado:
if pul and pul2 then apagado
if pul+pul2=1 then apagado
if pul+pul2=0 then rebote2
rebote:
if pul+pul2=1 then encendido
pause 200
led=1
goto apagado
rebote2:
if pul and pul2 then apagado
if pul+pul2=1 then apagado
pause 200
led=0
goto encendido
end
 
hola, ami me sale de esta forma pruevala y analiza el circuito:

trisa.0=1
trisa.1=1
trisa.2=0
pul var porta.0
led var porta.2
pul2 var porta.1


led=0

;---------------------------------------------------------------------
; led
;---------------------------------------------------------------------
encendido:
if pul+pul2=1 then encendido ; la suma de los pulsadores=1 se queda en espera
if pul and pul2 then rebote ; si los pul se comportan como puerta and entonces sigue el programa

apagado:
if pul and pul2 then apagado
if pul+pul2=1 then apagado
if pul+pul2=0 then rebote2
rebote:
if pul+pul2=1 then encendido
pause 200
led=1
goto apagado
rebote2:
if pul and pul2 then apagado
if pul+pul2=1 then apagado
pause 200
led=0
goto encendido
end



Muchas gracias funciona bien
 
Atrás
Arriba