3
1 Practica#5 Reloj-Contador-Cronometro Libio Calle Franco. [email protected] Marcelo Merchan Serrano. [email protected] Universidad Politecnica Salesiana. Sistemas Microprocesados 1. Resumen—Para la practica a realizar se va a armar un circuito contador el cual va a funcionar con un Switch en condición 1 sera de forma ascendente y en condición, 0 sea de forma descendente. Continuando con un circuito reloj el cual para igualar las horas y minutos se utilizara un Switch y mediante la utilización de 2 pulsantes para subir o bajar horas y minutos. Para el ultimo esquema un circuito cronometro el cual mediante un pulso 1 inicia, reinicia y visualiza, mediante un pulso dos borra el cronometro. Index Terms—Timer,MicroC OBJETIVO GENERALES: Diseñar, Programar un reloj real, cronometro y contador a través del lenguaje MicroC y posteriormente grabado en el PIC16F877A. OBJETIVOS ESPECÍFICOS: Analizar como es el funcionamiento del Timer1, Timer1, Timer2. Programar en MicroC para poder controlar un contador. Ascendente y descendente, un cronometro y un reloj. Diseñar el hardware de la practica. Calcular tiempos de retardo. I. I NTRODUCCIÓN. II. MARCO TEÓRICO. II-A. Características del PIC16F877A. Figura 1. Tabla característica del pic16f877a II-B. Timer Cero. Es un modulo temporizador/contador de 8 bits que cons- ta con preescalador programable también de 8 bits. Puede funcionar como temporizador o como contador. En modo temporizador el valor del registro TMR0 se incrementa con cada ciclo de instrucción (o cada X ciclos dependiendo del preescalador). En modo contador el valor del registro TMR0 se incrementa en cada flanco (ascendente o descendente) del pin RA4/T0CKI. En ambos casos al desbordarse (pasar de 0xFF a 0×0) el registro TMR0 la bandera de interrupción del timer 0 (bit T0IF del registro INTCON) se pone a 1. El modo temporizador se selecciona poniendo a cero el bit T0CS del registro OPTION. [3]. Figura 2. Diagrama de bloques del timer cero prescaler. II-C. Timer Uno. Similar al temporizador Timer0, estos registros se pueden leer o se puede escribir en ellos en cualquier momento. En caso de que ocurra un desbordamiento, se genera una interrupción si está habilitada. El módulo del temporizador Timer1 puede funcionar en uno o dos modos básicos, eso es como un temporizador o como un contador. A diferencia del temporizador Timer0, cada uno de estos dos modos tiene funciones adicionales. Desbordamiento-T imer1= 4 f osc *P reescaler*(65536-TMR1)

Practrica Reloj Contador Cronometro

Embed Size (px)

DESCRIPTION

descripcion de la programacion de la materia de microcontrolador.

Citation preview

Page 1: Practrica Reloj Contador Cronometro

1

Practica#5 Reloj-Contador-CronometroLibio Calle Franco.

[email protected] Merchan [email protected]

Universidad Politecnica Salesiana.Sistemas Microprocesados 1.

Resumen—Para la practica a realizar se va a armar un circuitocontador el cual va a funcionar con un Switch en condición1 sera de forma ascendente y en condición, 0 sea de formadescendente. Continuando con un circuito reloj el cual paraigualar las horas y minutos se utilizara un Switch y mediante lautilización de 2 pulsantes para subir o bajar horas y minutos.Para el ultimo esquema un circuito cronometro el cual medianteun pulso 1 inicia, reinicia y visualiza, mediante un pulso dosborra el cronometro.

Index Terms—Timer,MicroC

OBJETIVO GENERALES:

Diseñar, Programar un reloj real, cronometro y contador através del lenguaje MicroC y posteriormente grabado en elPIC16F877A.

OBJETIVOS ESPECÍFICOS:

Analizar como es el funcionamiento del Timer1, Timer1,Timer2.Programar en MicroC para poder controlar un contador.Ascendente y descendente, un cronometro y un reloj.Diseñar el hardware de la practica.Calcular tiempos de retardo.

I. INTRODUCCIÓN.

II. MARCO TEÓRICO.

II-A. Características del PIC16F877A.

Figura 1. Tabla característica del pic16f877a

II-B. Timer Cero.

Es un modulo temporizador/contador de 8 bits que cons-ta con preescalador programable también de 8 bits. Puedefuncionar como temporizador o como contador. En modotemporizador el valor del registro TMR0 se incrementa concada ciclo de instrucción (o cada X ciclos dependiendo delpreescalador). En modo contador el valor del registro TMR0se incrementa en cada flanco (ascendente o descendente) delpin RA4/T0CKI. En ambos casos al desbordarse (pasar de0xFF a 0×0) el registro TMR0 la bandera de interrupción deltimer 0 (bit T0IF del registro INTCON) se pone a 1. El modotemporizador se selecciona poniendo a cero el bit T0CS delregistro OPTION. [3].

Figura 2. Diagrama de bloques del timer cero prescaler.

II-C. Timer Uno.

Similar al temporizador Timer0, estos registros se puedenleer o se puede escribir en ellos en cualquier momento.En caso de que ocurra un desbordamiento, se genera unainterrupción si está habilitada. El módulo del temporizadorTimer1 puede funcionar en uno o dos modos básicos, esoes como un temporizador o como un contador. A diferenciadel temporizador Timer0, cada uno de estos dos modos tienefunciones adicionales.

Desbordamiento−Timer1 =4

fosc∗Preescaler∗(65536−TMR1)

Page 2: Practrica Reloj Contador Cronometro

2

Figura 3. Diagrama de bloques timer1

II-D. Timer Dos.

Es de 8 bit, tiene un Prescaler y un Postscaler, puede serusado como base de tiempo del módulo PWM. El registrode conteo TMR2 es leíble y escribible, y es limpiado porcualquier Reset. El Timer 2 tiene un registro de Periodo PR2que a diferencia de los anteriores que terminaban en FFh oFFFFh utiliza este registro el cual le indica al Timer 2 cuandoreiniciarse utilizando un comparador interno. PR2 tiene un FFhal Reset.

Figura 4. Diagrama de bloques timer2

III. DESARROLLO DE LA PRACTICA.

III-A. Tabla de combinaciones del circuito.

El circuito consta de 4 pulsantes y un dip-swicht.Sw7 Sw6

0 0 Display apagados0 1 Contador1 0 Reloj1 1 Cronometro

CONTADOR(POR INTERRUPCIÓN EXTERNA)1Sw

1 Ascendente0 Descendente

RELOJ

Para Igualar1Swicht

1 Horas0 MinutosHoras, Minutos, Segundos.

PB1 1 Pulsante BajadaPB2 1 Pulsante Subida

CRONOMETRO

PB2Pulsante 1 inicia, reinicia, visualizaPulsante 2 Detiene la visualización

PB1Pulsante 1 detiene, cronometroPulsante 2 borra cronometro

IV. CÁLCULOS DE LA PRÁCTICA.

IV-A. Calculo de la resistencia del display.

Si tomamos cada segmento del display como un led laformula a aplicar seria la siguiente.

Figura 5. Circuito de un display

5v Salida del PIC.1.5V Voltaje de consumo de los LED’S

5v − 1,5v = 3,5v

R =3,5V

10mA= 350Ω = 330Ω

TMR0.

Es un temporizador contador de 8 bits configurando comocontador, al recibir pulsos de incremento por el pin RBO.

Retardo− To = 4 − TOSC − TMRO

Retardo−T0−PRE = 4∗TOSC∗TMRO∗PREESCALER

TMR1.

El cual está formado por dos timers de 8 btis cada uno con-figuramos el timer 1 (TMR1) habilitándolo, seleccionándolocomo temporizador y eligiendo un prescaler de 8 para estotenemos que cargar el registro T1CON con H”30”. Seguidode esto realizamos el cálculo correspondiente para podertemporizar al timer 1 con un valor de 0.1 segundo el cualserá nuestra base de tiempo.

0,1seg = 100000useg

TMR1 = 65536 − (t ∗ f

4 ∗ prescaler)

TMR1 = 65536 − (100000U ∗ 20m

4 ∗ 8) = 3036

El valor que debamos cargar en el timer 1 es de 3036=H’CF2C’

Page 3: Practrica Reloj Contador Cronometro

3

TMR2.

Es un temporizador de 8 bits cuenta con un postcaler 1hasta 16, para poder configurar el timer 2 debemos cargar elregistro T2CON con H0FF0con el cual habilitamos el timery además seleccionamos el valor del prescaler y del postcalerque son de 16. Para poder tener una base de 0.01 segundo esdecir una centésima de segundo, tiempo del cronometro.

0,01seg = 10000useg

TMR2 = 256 − (t ∗ f

4 ∗ prescaler ∗ postaler)

TMR2 = 256 − (10000u ∗ 4M

4 ∗ 16 ∗ 16) = 60.68 = 60

Debemos cargar el valor de 60= H’3C’ en el timer 2 TMR2.

IV-B. Formula de los Retardos.

Con Tey para un cuerzo de 20Mhz tenemos:

Tey = (4ciclos

f − oscilador) =

4

20Mhz= 0.2useg

Con Tey para un cuerzo de 32Mhz tenemos:

Tey = (4ciclos

f − oscilador) =

4

32Mhz= 0.125useg

Con Tey para un cuerzo de 4Mhz tenemos:

Tey = (4ciclos

f − oscilador) =

4

4Mhz= 1useg

RETARDO SIMPLE:

La formula para el calculo del retardo es la siguiente:

[(1Tcyreturn + 21Tcygoto)(x− 1) + 2Tcymov + 2Tcygoto

+2Tcycall + 2Tcyreturn = Td]

Entonces para el retardo simple si le damos un valor de 255tenemos.

(1 + 2)(255 − 1) + 2 + 2 + 2 + 2 =Tc

Tcy

770 ∗ Tcy = Td

770 ∗ 0.2useg = Td

Td = 0.15mseg

RETARDO DOBLE:

La formula para el calculo del reatardo es la siguiente.

((1Tcyreturn + 21Tcygoto)(x− 1) + 2Tcymov + 2Tcygoto)y

+(1Tcyreturn + 2Tcygoto)(y − 1) + 2Tcymov + 2Tcygoto

+2Tcycall + 2Tcyreturn = Td

Para el calculo del retardo doble tenemos que x=255; y=255;z=5 por consiguiente.

[((3 ∗ (255 − 1) + 4)) ∗ 255 + 3 ∗ (255 − 1) + 4] ∗ 5

+38(5 − 1) + 8 =Td

Tcy

Td

Tcy= 0.2seg

V. CONCLUSIONES.

Para la presente practica se analizo el funcionamiento delos Timer0-1-2, quien fueron utilizados como bases parael funcionamiento de un reloj a tiempo real, cronometroy contador de forma ascendente y descendente.Verificar que el hadware este bien armado caso contrariopuede producirse cto cto el cual puede afectar al microcontrolador.