acabo de comenzar en esto de los pic, y bueno, tomé un ejemplo del libro de desarrollo de proyectos para simularlo en proteus pero no sucede nada, alguien me puede ayudar a ver que estoy haciendo mal...
este es el programa
si porta = numero se encienden todos los leds
si porta > se encieden los led pares de salida
si porta < se encienden los leds del nibble alto y se apagan los del bajo
; zona de datos******
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;configuracion para el grabador
LIST P=16F84A ; procesador utilizado
INCLUDE <P16F84A.INC> ; Fichero donde se definen las etiquetas del PIC
Numero EQU d'13' ; valor de CONST
;zona de codigos*****
ORG 0 ; el programa inicia en la dirección 0
Inicio
bsf STATUS,RP0 ; Acceso al banco 1
clrf TRISB ; configuracion de puerto B como salida
movlw b'00011111'
movwf TRISA ; configuracion de puerto A como entrada
bcf STATUS,RP0 ; acceso al banco 0
Principal
movlw Numero ; carga el número a comparar
subwf PORTA,W ; (PORTA)-CONST -> (W)
movlw b'11110000' ; supone (PORTA) es menor
btfss STATUS,C ; ¿C=1?.¿(W)Positivo?,¿(PORTA)>=CONST?
goto ActivaSalida ; No. C=0,por tanto (PORTA)<Numero
movlw b'11111111' ; Supone que son iguales
btfsc STATUS,Z ; ¿Z=0?,¿son distintos?
goto ActivaSalida ; no son iguales ya que Z=1
movlw b'01010101' ; sí, por tanto (PORTA)> CONST
ActivaSalida
movwf PORTB ; Resusltado se visualiza por el puerto de salida
goto Principal ; crea un bucle cerrado e infinito
END ; Termina programa.
y este es mi diagrama en proteus:
(el del archivo)
este es el programa
si porta = numero se encienden todos los leds
si porta > se encieden los led pares de salida
si porta < se encienden los leds del nibble alto y se apagan los del bajo
; zona de datos******
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ;configuracion para el grabador
LIST P=16F84A ; procesador utilizado
INCLUDE <P16F84A.INC> ; Fichero donde se definen las etiquetas del PIC
Numero EQU d'13' ; valor de CONST
;zona de codigos*****
ORG 0 ; el programa inicia en la dirección 0
Inicio
bsf STATUS,RP0 ; Acceso al banco 1
clrf TRISB ; configuracion de puerto B como salida
movlw b'00011111'
movwf TRISA ; configuracion de puerto A como entrada
bcf STATUS,RP0 ; acceso al banco 0
Principal
movlw Numero ; carga el número a comparar
subwf PORTA,W ; (PORTA)-CONST -> (W)
movlw b'11110000' ; supone (PORTA) es menor
btfss STATUS,C ; ¿C=1?.¿(W)Positivo?,¿(PORTA)>=CONST?
goto ActivaSalida ; No. C=0,por tanto (PORTA)<Numero
movlw b'11111111' ; Supone que son iguales
btfsc STATUS,Z ; ¿Z=0?,¿son distintos?
goto ActivaSalida ; no son iguales ya que Z=1
movlw b'01010101' ; sí, por tanto (PORTA)> CONST
ActivaSalida
movwf PORTB ; Resusltado se visualiza por el puerto de salida
goto Principal ; crea un bucle cerrado e infinito
END ; Termina programa.
y este es mi diagrama en proteus:
(el del archivo)