Buenas tardes!
El siguiente codigo no me compila. Porque el TMR0 En el principal parece estar mal y posteriormente en el goto finswitch en el caso25 (ahi especifico). Soy nuevo programando. Si alguien me podria echar una mano. Super agradecido.
LIST P = 16F84A r=dec
#INCLUDE <P16F84A.INC>
__CONFIG_CP_OFF & _PWRTE_OFF & _WDT_ON & _XT_OSC
ORG 0
GOTO PRINCIPAL
ORG 4
GOTO IRQ
;DEFINICION DE CONSTANTES
CUENTA EQU 16 ;VALOR DE CUENTA DEL TMR0 (256-240)
RP2 EQU 7 ;BITS DE LOS SEMAFOROS DE PEATONES
RP1 EQU 6
VP2 EQU 1
VP1 EQU 0
;-------------------------------------------------------------------------------
CONTADOR EQU 0X10
RETARDO EQU 0X11
;-------------------------------------------------------------------------------
PRINCIPAL:
MOVLW B'10000111'
BSF STATUS,RP0
MOVWF OPTION_REG
BCF STATUS,RP0
;-------------------------------------------------------------------------------
BSF STATUS,RP0
CLRF TRISB
CLRF TRISA
BCF STATUS,RP0
;-------------------------------------------------------------------------------
CLRF CONTADOR
MOVLW B'10011110'
MOVWF PORTB
BCF PORTA,VP2
BSF PORTA,VP1
;-------------------------------------------------------------------------------
MOVLW CUENTA
MOVWF TMR0 ;AQUI ME LANZA EL PRIMER ERROR
;-------------------------------------------------------------------------------
MOVLW B'10100000'
MOVWF INTCON
ESPERA:
CLRWDT
GOTO ESPERA
IRQ:
MOVLW CUENTA
MOVWF TMR0
INCF RETARDO
MOVLW 5
SUBWF RETARDO,W
BTFSS STATUS,Z
GOTO FINSWITCH
CLRF RETARDO
INCF CONTADOR,F
CASO20:
MOVLW 40
SUBWF CONTADOR,W
BTFSC STATUS,C
GOTO FINCASO20
;-------------------------------------------------------------------------------
MOVLW B'10011110'
MOVWF PORTB
BCF PORTA,VP2
BSF PORTA,VP1
GOTO FINSWITCH
FINCASO20:
CASO25:
MOVLW 50
SUBWF CONTADOR,W
BTFSC STATUS,C
GOTO FINCASO25
;-------------------------------------------------------------------------------
MOVLW B'10011110'
MOVWF PORTB
BTFSC CONTADOR,0
GOTO FINSWITCH
MOVLW B'10'
XORWF PORTA,F
GOTO FINSWITCH
FINCASO25:
CASO30:
MOVLW 60
SUBWF CONTADOR,W
BTFSC STATUS,C
GOTO FINCASO30
;-------------------------------------------------------------------------------
MOVLW B'00000010'
XORWF PORTB,F
BSF PORTB,0
BTFSC CONTADOR,0
GOTO FINSWITCH ;AQUI ES EL OTRO ERROR QUE ME LANZA
MOVLW B'10'
XORWF PORTA,F
GOTO FINSWITCH
FINCASO30:
CASO50:
MOVLW 100
SUBWF CONTADOR,W
BTFSC STATUS,C
GOTO FINCASO50
MOVLW B'01110011'
MOVWF PORTB
BSF PORTA,VP2
BCF PORTA,VP1
GOTO FINSWITCH
FINCASO50:
CASO55:
MOVLW 110
SUBWF CONTADOR,W
BTFSC STATUS,C
GOTO FINCASO55
MOVLW B'01110011'
MOVWF PORTB
BTFSS CONTADOR,0
GOTO FINSWITCH
MOVLW B'01'
XORWF PORTA,F
GOTO FINSWITCH
FINCASO55:
CASO60:
MOVLW 120
SUBWF CONTADOR,W
BTFSC STATUS,C
GOTO FINCASO60
MOVLW B'00010000'
BTFSS CONTADOR,0
BSF W, VP1
XORWF PORTB,F
BSF PORTB,3
BTFSC CONTADOR,0
GOTO FINSWITCH
MOVLW B'01'
XORWF PORTA,F
GOTO FINSWITCH
FINCASO60:
OTHERWISE:
MOVLW B'10011110'
MOVWF PORTB
BCF PORTA,VP2
BSF PORTA,VP1
CLRF CONTADOR
FINSWITCH:
MOVLW B'10100000'
MOVWF INTCON
RETFIE
END