TEMPORIZADORES PIC

4
Programa 1 TMR0: LIST P=16F877A INCLUDE <P16F877A.INC> ORG 0X00 GOTO INICIO ORG 0X05 INICIO bsf STATUS,RP0 ;Entrando al banco 01 clrf TRISB ;PortC : Salida movlw b'00000111' ;PSA=0: Se selecciona el bit del Preescalador ;PS2=PS1=PS0=1 : Proporcion de TMR0 movwf OPTION_REG ;OPTION_REG <- w : Aca se Ubican los bits mencionados en la instruccion anterior bcf STATUS,RP0 ;Entrando al banco 00 clrf PORTB ;Limpia PORTB bcf INTCON,T0IF ;Se apaga la bandera de desborde de TMR0 PRECARGA movlw .60 ;Se mueve el numero 60 al registro TMR0 (Precarga) movwf TMR0 ESPERA btfss INTCON,T0IF ;T0IF = 1? : Se desbordo el TMR0? goto ESPERA ;Espera bcf INTCON,T0IF ;T0IF = 0 : Se apaga la bandera de interrupción de desborde del TMR0 comf PORTB,f ;Complementa el registro PORTB y lo guarda en el PORT goto PRECARGA ;Regresa a la rutina de PRECARGA en donde se volvera a hacer la cuenta de aprox. 50ms ;debido a la formula END Simulacion:

description

Ejemplos de temporizadores del pic 16f877A. Programa y circuito en Proteus

Transcript of TEMPORIZADORES PIC

Page 1: TEMPORIZADORES PIC

Programa 1 TMR0:LIST P=16F877A

INCLUDE<P16F877A.INC>ORG 0X00GOTO INICIOORG 0X05

INICIO bsf STATUS,RP0 ;Entrando al banco 01clrf TRISB ;PortC : Salidamovlw b'00000111' ;PSA=0: Se selecciona el bit del Preescalador ;PS2=PS1=PS0=1 : Proporcion de TMR0movwf OPTION_REG ;OPTION_REG <- w : Aca se Ubican los bits mencionados en la instruccion anteriorbcf STATUS,RP0 ;Entrando al banco 00clrf PORTB ;Limpia PORTBbcf INTCON,T0IF ;Se apaga la bandera de desborde de TMR0

PRECARGA movlw .60 ;Se mueve el numero 60 al registro TMR0 (Precarga)movwf TMR0

ESPERA btfss INTCON,T0IF ;T0IF = 1? : Se desbordo el TMR0? goto ESPERA ;Esperabcf INTCON,T0IF ;T0IF = 0 : Se apaga la bandera de interrupción de desborde del TMR0 comf PORTB,f ;Complementa el registro PORTB y lo guarda en el PORTgoto PRECARGA;Regresa a la rutina de PRECARGA en donde se volvera a hacer la cuenta de aprox. 50ms

;debido a la formulaEND

Simulacion:

Programa

Page 2: TEMPORIZADORES PIC

2 TMR1:LIST P=16F877AINCLUDE <P16F877A.INC>ORG 0X00 ;Vector RESETGOTO INICIO ;Ir linea de INICIOORG 0X05 ;Salto al programa

INICIO bsf STATUS,RP0 ;Banco -> 01clrf TRISB ;PORTB: Salidabcf STATUS,RP0 ;Banco -> 00movlw b'00110000' ;Preescala de 1:8movwf T1CON clrf PORTB ;Limpia PuertoBbcf PIR1,TMR1IF ;Limpia bandera de desborde de TMR1

PRECARGA bcf T1CON,TMR1ON ;Detiene TMR1movlw 0xE7 ;Se carga E7 (hexadecimal) en el registro mas significativo del TMR1movwf TMR1H ;(Recordar que el TMR1 esta compuesto de dos registros de 8 bits

aaaaaaaaaaaaaaaaaaaaaaaaaaaaTMR1H(ALTO) y TMR1L)movlw 0x96 ;Se carga 96 (hexadecimal) al registro "TMR1L"movwf TMR1L ;bsf T1CON,TMR1ON ;TMR1ON = 1 : Se activa el TMR1

ESPERA btfss PIR1,TMR1IF ;TMR1IF = 1? : Se desbordo el TMR1?goto ESPERA ;NO, entonces vuelve a preguntar, ya que se esperara el desborder del TMR1bcf PIR1,TMR1IF ;SI, entonces lo primero sera apagar la bandera de desborde del TMR1

Aaaaaaaaaaaaaaaaaaaaaaaaaaa ubicado en el registro PIR1comf PORTB,f ;La accion final sera interporar los bits del PORTB (bit a bit) y guardarlos

AAAAAAAAAAAAAAAAAAAAAAAen el mismo registro PORTBgoto PRECARGA ;Se repite el ciclo (el cual sera cada 50 ms aprox debido a la

AAAAAAAAAAAAAAAAAAAAAAAconfiguracion previa del programa)END

Simulacion:

Page 3: TEMPORIZADORES PIC

Programa 3 TMR1:

LIST P=16F877AINCLUDE<P16F877A.INC>ORG 0X00GOTO INICIOORG 0X05

INICIO bsf STATUS,RP0 ;Banco -> 01clrf TRISB ;PORTB : Salidabcf STATUS,RP0 ;Banco -> 00movlw b'01111010' ;1:16 Postscalemovwf T2CON clrf PORTB ;Limpia PORTBbcf PIR1,TMR2IF ;TMR2IF = 0, se apaga la bandera de desborde del tmr2

PRECARGA bcf T2CON,TMR2ON ;Se deshabilita el tmr2bsf STATUS,RP0 ;Banco -> 01movlw .194 ;Se llena el modulo del TMR2 con .194movwf PR2 bcf STATUS,RP0 ;Banco -> 00bsf T2CON,TMR2ON ;se habilita el TMR2

ESPERA btfss PIR1,TMR2IF ;Testea la bandera de desborde del TMR2goto ESPERA ;Vuelve si aun no se desbordabcf PIR1,TMR2IF ;apaga la bander de desborde del TMR2comf PORTB,f ;complementa al PORTB y lo guarda en el mismo PORTBgoto PRECARGA ;Se repite el cicloEND

Simulacion:

Page 4: TEMPORIZADORES PIC