INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
Recordando como es la transmisin de datos.
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
Recordando que el microcontrolador PIC dispone de una arquitectura Harvard.
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
La arquitectura Harvard le permite al microcontrolador con segmentacin pipeline.
Q1
Q2
Q3
Q4
Ciclo de reloj
Ciclo de mquina
1 Ciclo de mquina = 4 Ciclos de reloj
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
La segmentado pipeline permite procesar las instruccuines del PIC de la siguiente manera:
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
Tiempo realizado por cada instruccin (Tosc):
Tosc = (1/f). Donde:
Tosc = Tiempo de oscilacin, es decir, es el tiempo del oscilador T(inst) = 4 x Tosc 4 Se refiere a los cuatro ciclos mquina descritos anteriormente. F = frecuencia del oscilador. Ejemplo: Si se considera un oscilador XT de 4 Mhz. Tenemos: T(inst) = 4 (1/4 Mhz) = 1 microsegundo. Es por eso que cada instruccin del mc pic16f84a tarda un microsegundo en procesarse, excepto las instrucciones de salto que tardan 2 microsegundos tal y como se vio en la segmentacin
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
El Temporizador / Contador TMR0 Funciones:
1. Temporizador.- Determina intervalos de tiempo
2. Contador.- Cuenta los impulsos que se producen en el exterior del sistema.
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
Como Temporizador TMR0 Para usar el temporizador TMR0 del PIC16F84A, primeramente tenemos que configurar su respectivo registro (OPTION).
REGISTRO DE CONFIGURACIN OPTION 01
RBPU# INTEDG T0CS T0SE PSA PS2 PS1 PS0
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
REGISTRO DE CONFIGURACIN OPTION 01
RBPU# INTEDG TOCS TOSE PSA PS2 PS1 PS0
PS2 0 0 0 0 1 1 1 1
PS1 0 0 1 1 0 0 1 1
PS0 0 1 0 1 0 1 0 1
DIVISIN DEL TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256
DIVISIN DEL WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
REGISTRO DE CONFIGURACIN OPTION 01
RBPU# INTEDG TOCS T0SE PSA PS2 PS1 PS0
Asignacin del divisor de frecuencia
PSA
1 = El divisor de frecuencia se le asigna al WDT 0 = El divisor de frecuencia se le asigna al TMR0
Tipo de flanco en T0CKI
T0SE
1 = Incremento del TMR0 cada flanco descendente 0 = Incremento del TMR0 cada flanco ascendente Tipo de reloj para el TMR0
T0CS
1 = Pulsos introducidos a travs del T0CKI (Contador) 0 = Pulsos de reloj interno Fosc/4 (Temporizador)
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
REGISTRO DE CONFIGURACIN OPTION 01
RBPU# INTEDG TOCS TOSE PSA PS2 PS1 PS0
INTEDG
Flanco activo interrupcin externa 1 = Flanco ascendente 0 = Flanco descendente
RBPU#
Resistencias Pull up Puerto B 1 = Desactivadas 0 = Activadas
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
TIEMPOS CON EL TEMPORIZADOR TMR0
Cuando el TMR0 se desborda, pasa del valor FF a 00 y el sealizador T0IF (bit 2) se pone en automtico en 1. Esta bandera T0IF se localiza en el registro INTCON de la direccin 0B de la memoria de datos. El tiempo calculado usando el TMR0 Cuando se carga inicialmente el TMR0 con el valor N10 , cuenta 256 N impulsos, siendo el tiempo que tarda en hacerlo lo que indica la siguiente formula:
Temporizacin = 4 x Tosc x (256 - N10 ) x Rango del divisor de frecuencia.
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA UNIDAD AZCAPOTZALCO
TIEMPOS CON EL TEMPORIZADOR TMR0
Ejemplo: Cada cuanto tiempo producir TMR0 una interrupcin si se le carga continuamente con el valor de 4010 ; el Divisor de frecuencia est programado en el rango de 1:8 y el microcontrolador dispone de un cristal de 1 Mhz. SOLUCIN: Temporizacin = 4 x Tosc x (256 - N10 ) x Rango del divisor de frecuencia. Tosc = 1/1Mhz = 1microseg.
Temporizacin = 4 x Tosc x (256 - N10 ) x Rango del divisor de frecuencia.
Temporizacin = 4 x 1s x (256 - N10 ) x Rango del divisor de frecuencia. Temporizacin = 4 x 1 x (256 - 40 ) x 8 Temporizacin = 6.912 ms