No encuentros ejemplos buenos para hacer un temporizador de dos o tres minutos. Por ejemplo, pulso un botón con el PIC-16F84A, y cuenta con el TIMER0 dos minutos en cuenta atrás, al finalizar desactiva un relé. Usando Cristal de 4 MHz.
El botón es en el RA4 como entrada digital mientras, cualquier puerto B que escojas, controla un relé.
Pueden presentar códigos en ASM o en C si lo saben. En ASM no todo por ahí lo tienen claro para lograr un determinado tiempo, en C nunca lo he visto, dicen que es muchísimo más fácil.
Pensé hacerlo mediante retardos como este.
Código:
; Delay = 2 seconds
; Clock frequency = 4 MHz
; Actual delay = 2 seconds = 2000000 cycles
; Error = 0 %
cblock
d1
d2
d3
endc
Delay
;1999996 cycles
movlw 0x11
movwf d1
movlw 0x5D
movwf d2
movlw 0x05
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0
;4 cycles (including call)
return
http://www.golovchenko.org/cgi-bin/delay
Pero me di cuenta que queda como esclavo, ya que para pararlo debo usar el reset en vez de otro pulsador.
¿El TIMER1 de 16 bits para el PIC16F88?
Saludo.