__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0x0C
contador2
ENDC
;##########################################################################################################
Contador equ 0x020 ;Variable para la temporización
org 0x00 ;Vector de RESET
goto Inicio
org 0x04 ;Vector de interrupción
goto Interrupcion
org 0x05
Interrupcion
bcf INTCON,T0IF ;Repone flag del TMR0
decfsz Contador,F ;Decrementa el contador. Ha habido 50 interrupciones ??
goto Seguir ;No, no han pasado los 500 mS
Con_si_0 call LCD_Borra
incf contador2,f
movf contador2,w
call BIN_a_BCD ; Se debe visualizar en decimal.
call LCD_Byte ;
movlw .100
movwf Contador ;Repone el contador nuevamente para contar 50 interrupciones
Seguir
movlw ~.39
movwf TMR0 ;Repone el TMR0 con 39
retfie ;Retorno de interrupción
Inicio
clrf contador2
clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0 ;Selecciona banco 1
clrf TRISB ;Puerta B se configura como salida
bsf PORTA,3
bsf PORTA,4
movlw b'00000111'
movwf OPTION_REG ;Preescaler de 256 para el TMR0
bcf STATUS,RP0 ;Selecciona banco 0
call LCD_Inicializa
movlw ~.39
movwf TMR0 ;Carga el TMR0 con 39
movlw .50
movwf Contador ;Nº de veces a repetir la interrupción
movlw b'10100000'
movwf INTCON ;Activa la interrupción del TMR0
Loop
btfsc PORTA,3 ;Testea el estado de RA3
goto Loop
bsf INTCON,T0IE
btfsc PORTA,4 ;Testea el estado de RA4
goto Loop
bcf INTCON,T0IE
goto Loop
INCLUDE <LCD_4BIT2.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <BIN_BCD.INC>
end ;Fin del programa fuente
En su programa esta usando el TMR0 con la señal de reloj interna, si lo quiere pausar cambia la señal de reloj a externa y asegurese que el PIN RA4 este en un estado fijo o pongalo como salida.Muchas gracias SanderCódigo: ASM
bsf OPTION_REG, T0CS ;usamos señal de reloj externa.
Saludos
ten en cuenta el concepto y el por qué funciona.Gracias JHOZATE
El TMR0 como timer no lo puedes parar pero si re-setear, el solito se incrementa dependiendo del prescaler, la solucion que usaste es cambiarlo a modo contador de pulsos por la entrada en RA4