RELOJ-CONTADOR-CRONOMETRO.docx

Share Embed Donate


Short Description

Download RELOJ-CONTADOR-CRONOMETRO.docx...

Description

M AN UA L D E P RO CE DIM IE NTO CARRERA: INGENIERIA ELECTRICA

EQUIPO: Laboratorio de micro procesados I

sistemas CÁTEDRA O RELACIONADA

Responsable /Equipo. 

PRÁCTICA: 1 RELOJ, CRONOMETRO, CONTADOR  MATERIA REVISIÓN N°: 1

SISTEMA MICROPROCESADOS I

EDICIÓN: 1

CRISTIAN GRANDA

 Accesorios: Software Mplab. Software pick2. Display BCD7 segmentos. Modulo Fuente de alimentación PIC16F877A Pulsantes, resistencias, condensadores. Transitores PNP 2N3906 • • •





• •



DOCENTE: Ing. Italo Mogrovejo.

NÚMERO DE ESTUDIANTES Fecha: POR EQUIPO O PRÁCTICA: 9 de julio 2013 3 estudiantes por módulo

Tema: RELOJ, CRONOMETRO, CONTADOR  Objetivo General: Diseñar y Programar un reloj de tiempo real, cronometro y contador a través del lenguaje ensamblador y posteriormente grabado en el PIC16F877A.

Objetivos Específicos: • • • • •

 Analizar cómo funciona el Timer0, Timer1, Timer2. Programar en ensamblador para poder controlar un contador  ascendente y descendente, un cronometro y un reloj. Diseñar el hardware de la práctica. Calcular tiempos de retardo.

Sustento teórico Elementos Presentes en el Esquema •

MICROCONTROLADOR PIC16F877A

Es un micro controlador de Microchip Technology fabricado en tec- nología CMOS, su consumo de potencia es muy bajo y además es completamente estático, esto quiere decir que el reloj puede detenerse y los datos de

la memoria no se pierden. Es un micro controlador con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere borrarlo con luz ultravioleta como las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser borrado con anterioridad. El encapsulado más común para este micro controlador es el DIP (Dual In-line Pin) de 40 pines, propio para usarlo en experimentación. La referencia completa es PIC16F877-04 para el dispositivo que utiliza cristal oscilador de hasta 4 MHz, PIC16F877-20 para el dispositivo que utiliza cristal oscilador de hasta 20 MHz o PIC16F877A-I para el dispositivo tipo industrial que puede trabajar hasta a 20 MHz. Sin embargo, hay otros tipos de encapsulado que se pueden utilizar según el diseño y la aplicación que se quiere realizar. Por ejemplo, el encapsulado tipo surface mount (montaje superficial) tiene un reducido tamaño y bajo costo, que lo hace propio para producciones en serie o para utilizarlo en lugares de espacio muy reducido. Véase mas información en la referencia [1]

Figura [1] PIC16F877A 

Características delPIC16F877A

En siguiente tabla I se pueden observar las características del micro controlador PIC16F77A, para más información véase mas en [1]



Descripción de pines PIC16F877A

Tabla[1] Características del PIC16F877A

TIMER 0 El Timer 0 es un módulo temporizador /contador de 8 bits que cuenta con un 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]. •

TIMER 1 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. •

• • • • • • •

• • •

El temporizador Timer1 tiene las siguientes características: Temporizador/contador de 16 bits compuesto por un par de registros; Fuente de reloj interna o externa programable; Pre-escalador de 3 bits; Oscilador LP opcional; Funcionamiento síncrono o asíncrono; Compuerta para controlar el temporizador Timer1 (conteo habilitado) por medio del comparador o por el pin T1G; Interrupción por desbordamiento;  “Despierta” al microcontrolador (salida del modo de reposo) por desbordamiento (reloj externo); y Fuente de reloj para la función de Captura/Comparación. [2]

El Timer 2 Es de 8 bit, tiene un Prescaler y un Postscaler, puede ser usado como base de tiempo del módulo PWM. El registro de conteo TMR2 es leíble y escribible, y es limpiado por cualquier Reset. El Timer 2 tiene un registro de Periodo PR2 que a diferencia de los anteriores que terminaban en FFh o FFFFh utiliza este registro el cual le indica al Timer 2 cuando reiniciarse utilizando un comparador interno. PR2 tiene un FFh al Reset. •

Transitores Tipos: Transistor NPN: tiene un cristal P situado entre dos cristales N [3]. Transistor PNP: tiene un cristal N situado entre dos cristales P [3].



Display

Se llama visualizador, desplaye en inglés, a un dispositivo de ciertos aparatos electrónicos que permite mostrar información al usuario de manera visual. Un visualizador de una señal de video se lo llama más comúnmente pantalla; los dos ejemplos más comunes son el televisor y el Monitor de computadora. Un visualizador es un tipo de dispositivo de salida. Los primeros visualizadores, similares a los de los ascensores, se construían con lámparas que iluminaban las leyendas. Un ejemplo son los ascensores, que para cada piso existía una luz detrás de una silueta con forma de número. A partir de la aparición de calculadoras, cajas registradoras e instrumentos de medida electrónicos que muestran distintas informaciones, ya se puede hablar con propiedad de visualizadores.

Figure 4. Display 7 segmentos[4]

Procedimiento: Para el desarrollo de esta práctica se consideró los siguientes puntos. •

Diseño del esquema.

Para cumplir con el objetivo de la práctica se realizó el siguiente diseño de hardware obsérvese en la figura, en donde existe un dipswich para la selección del modo contador-reloj o cronometro.



TABLA DE COMBINACIONES PARA EL FUNCIONAMIENTO DEL CIRCUITO. SW7

SW6

FUNCIÓN

0

0

OFF ALL

0

1

RELOJ

1

0

CRONOMETRO

1 

1

CONTADOR

CALCULOS

Si tomamos cada segmento del display como un led la formula a aplicar sería la siguiente

TMR0 es un temporizador-contador de 8 bits configurado como contador, al recibir pulsos de incremento por  el pin RBO.

RETARDO -T0 = 4 _ TOSC _ TMR0 RETARDO - T0 - PRE = 4 *TOSC * TMR0 * PREESCALER TMR1 el cual está formado por dos timers de 8 btis cada uno configuramos el timer 1 (TMR1) habilitándolo, seleccionándolo como temporizador y eligiendo un prescaler de 8 para esto tenemos que cargar el registro T1CON con H”30”. Seguido de esto realizamos el cálculo correspondiente para poder temporizar al timer 1 con un valor de 0.1 segundo el cual será nuestra base de tiempo.

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

Los valores de x,y,z son valores propuesto de acuerdo al tiempo que se desea sabiendo que deben estar  dentro de los parámetros. 

DESARROLLO

De la realización de este proyecto se pretende modelar el funcionamiento de un reloj, contador, cronometro. Mediante el uso de los conocimientos de los micro controladores tales como su programación que es uno de los factores fundamentales que analizaremos. Primero armamos el circuito en el proto boart con las especificaciones que deberíamos tomar, luego pasamos al programa para realizar el debido manejo de los puerto y la debida utilización del tmr0 y tmr1 ,tmr2 ya desarrollado el programa pasamos a cargar en el pic para hacer funcionar el programa. Ya en la configuración de todos los periféricos debemos además de configurar los puertos, también habilitar los pullups, fallin en INT0. Además del prescaler. Luego en la configuración de los periféricos mismo habilitar también el TMR0,TMR1,TMR2 y INT0, siempre borrando la respectiva bandera y habilitando la interrupción enseguida. Para mayor seguridad al final siempre hacer una habilitación global de las interrupciones. Para la configuración del TMR0 como temporizador con un prescalar de 1:256, hacemos al TMR0=D’39’ esto para el TMR0. Cargamos TMR1H=H’80’, TMR1L= H’80’ y configuramos los registros cargando en T1CON=H’0B’, con esto ya podemos generar un tiempo base para nuestro reloj de 1 segundo, como en la habilitación del T1CON incluye también al T1OSEN, armamos la configuración externa del oscilador con un cuarzo de 32 kHz, esta será la configuración que nos Facilitará la generación del tiempo para el reloj. De la misma manera se realizara la configuración del TMR2 cargándolo con un valor de D’128’ y el T2CON=H’49’ que sería habilitar TOUTPS3, TOUTPS0, que se refiere a una configuración de postcale de 1:8 y T2CKPS0 para un prescale de 4 yaqué que T2CKPS1 no está habilitado. Una vez que ya hayamos configurado todos los periféricos comenzamos a realizar las subrutinas de atención a interrupciones, de los diagramas de flujo nos guiaremos para Realizar esta subrutina. No debemos olvidar que para cada interrupción debemos mediante líneas de programa revisar si a existido una interrupción y luego borrar la bandera y proceder a preguntar nuevamente si es el caso de que no existió ninguna Interrupción. Para el programa ya sea del conteo ascendente, descendente solo cargaremos el valor deseado y luego se lo decrementara mediante el pulsante designado para esta acción, no ayudaremos con el cambio de estado del registro STATUS, Z para realizar las comparaciones. Para el reloj también nos ayudaremos del cambio de

estado del registro STATUS,Z, cargando un valor previamente dependiendo de si es el minutero, horero o segundero y luego Comparando o realizando una resta. Siempre revisando el desbordamiento del flag del TMR1 que ya habíamos configurado previamente para ser utilizado exclusivamente en las líneas de programa del Reloj. Para el cronometro también nos ayudaremos del cambio de estado del registro STATUS,Z, cargando un valor previamente dependiendo de si son las unidades, decenas, centenas, unidades de mil, decenas de mil o centenas de mil para luego incrementar el valor del mismo.





RECOMENDACIONES  Tener en muy en cuenta al cargar los valores para los TIMER que se utilizan en el relojcronometro.  Ser muy aproximados en el cálculo para los TIMER.  Verificar que el hardware este en bien armado caso contrario puede producirse un corto el cual puede afectar al micro controlador. CONCLUSIONES Y

En la presente practica se analizó el funcionamiento de los Timer0-1-2, quien fueron utilizados como bases para el funcionamiento de un reloj a tiempo real, cronometro y contador de forma ascendente y descendente

Bibliografía:

[1] http://www.utp.edu.co/~eduque/arquitec/PIC16F877.pdf  [2] Datasheet del PIC 16F877A [3] http://micropic.wordpress.com/2007/06/24/temporizador-timer-0 [4] http://micropic.wordpress.com/2007/06/24/temporizador-timer-1 [5] http://micropic.wordpress.com/2007/06/24/temporizador-timer-2 [6] http://aprenderlyx.com/objetivos-especificos-de-un-proyecto/

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF