ejemplo 01 - 16f84

Upload: luciana-lencina-de-villarreal

Post on 11-Jul-2015

697 views

Category:

Documents


1 download

TRANSCRIPT

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresEjemplo N 1 Modelo PIC utilizado: 16F84 16F6xx / 16F87x

Este proyecto tambin puede ser desarrollado con los PIC: Ttulo Descripcin Contador de 0 a 99.

Desarrollar un contador desde 0 hasta 99 visualizando el estado de la cuenta en 2 displays de 7 segmentos mediante un codificado CD4511 .

Objetivo

Mostrar como utilizar registros, convertir datos a BCD y la manera de visualizar datos en displays de 7 segmen tos.

Procedimiento

Incrementar el valor de un registro, convertirlo a BCD y visualizarlo en los di splays de 7 segmentos .

Mdulos utilizados

Configuracin de puerto. Asignacin d e registro Evaluacin de registro Conversin a BCD Visualizacin en display de 7 segmentos con codificador

Desarrollo del ejemploComience creando un nuevo proyecto. Una vez generado un nuevo proyecto, comenzamos declarando registros que vamos a utilizar.

Para eso debemos ir al men Declaraci n/R egistros como se muestra en la imagen a la derecha.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 1/14

Niple para PIC 16F84 v3 - Programacin Visual de Microcontroladores

Para declarar un registro haga doble clic sobre uno de los registros de Usuario (de color verde). Estos registros son los que Ud. puede utilizar para guardar los datos que se requieran en el proyecto. Declare un registro llamado contador . A continuacin vamos a configurar el pue rto B. Para esto ingrese al rbol de herramientas como se muestra en la siguiente imagen.

Se presenta la pantalla de configuracin del puerto B. El puerto B lo utilizaremos para conectar los displays de 7 segmentos, por esto lo configuramos como sali da.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 2/14

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresEl diagrama de flujo debe verse como la siguiente ima gen.

Luego iniciamos el registro contador a 0. De esta manera nos aseguramos que al reiniciarse el microcontrolador, el contador siempre comi enza la cuenta desde 0. Para esto i ngres e al rbol de herramientas como lo muestra imagen de la derecha.

Se presenta la pantalla Asignar un valor a un Registro. Primero seleccione el registro al cual se le asignar un valor. Dado que queremos que el registro contador siempre inicie la cuenta en 0, seleccione la opcin un valor literal, que corresponde a un valor fijo. Luego seleccion e el formato del numero a ingresar, en este caso Decimal y por ltimo ingres e el valor que desea asignar al registro, en este caso 0. Por ltimo, si lo desea puede ingresar un comentario. En la siguiente imagen se muestran los datos ingresados .

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 3/14

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresAl presionar el botn Ingresar se inserta el bloque en el diagrama de flujo, el cual debera ir quedando como lo muestra la siguiente imagen.

El siguiente paso consiste en visualizar el estado de la cuenta en los displays de 7 segmentos. Para esto, es necesario primero convertir el valor del contador a form ato BCD, es decir, que debemos descomponer el valor de la cuenta en Unidades y Decenas para luego mostrar cada valor en el display c orrespon diente. Para mayor informacin sobre visualizacin de datos en displays de 7 segmentos consulte el Anexo1Visualizacin de datos en displays de 7 segmentos. Para convertir un valor a BCD ingrese al men como se muestra en la imagen de la derecha : Se presenta la pantalla convertir registro a BCD. Primero seleccione el registro que desea convertir a BCD. En este caso, el registro Contador. Luego debe seleccionar los registros donde guardar el resultado de la conversin. Como an no hemos declarado los regis tros, presione el bot n nuevo correspondiente a las unidades. Se presenta la pantalla de declaracin de registros y declare el registro Unidad.

Al volver de la pantalla de declaracin de registros, el registro recin declarado ha sido seleccionado en la lista automticamente. Proceda de la misma manera para el registro Decena.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 4/14

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresDado que nuestro proyecto solo cuenta hasta 99, el valor de las ce ntenas no es necesario declararlo. Al presionar el botn Ingresar se inserta el bloque en el diagrama de flujo.

Una vez que ya ha realizado la conversin a BCD, esta en condiciones de visualizar los datos en los displays de 7 segmentos. Vamos a utilizar un codificador CD4511 para ocupar menos cantidad de pines del microcontrolador.

Para esto ingrese al rbol de herramientas como se muestra en la imagen de la derecha: Se presenta la pantalla de visualizacin de displays de 7 segmentos con codificador CD4511.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 5/14

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresPrimero debe seleccionar el tipo de display a utilizar. El CD4511 es un codificador para displays tipo ctodo comn, por esto seleccionamos este tipo de display.

Luego debe seleccionar la cantidad de dgitos a utilizar, en este caso seleccione 2 dgitos. Al seleccionar la cantidad de d gitos a utilizar, se muestra un mensaje que le indica como seleccionar los valores de mostrar en cada display.

El proceso de visualizacin de datos en los displays consiste en enviar el valor de las unidades, habilitar el display correspondiente a las unidades y apagar el display de las decenas, mantener el display de las unidades encendido durante un breve periodo de tiempo (algunos microsegundos), luego se apaga el display correspondiente a las unidades y se enva el dato correspondiente a la decenas, se habilita el display de las decenas y se mantiene encendido durante algunos microsegundos.

Este proceso debe repetirse muchas veces y se produce a gran velocidad. De esta manera se genera la ilusin ptica de estar visualizando el valor representado por los 2 dgitos. El campo repeticiones contiene la cantidad de veces que el proceso de multiplexado se repite. El valor por defecto es de 1000 repeticiones. Si el valor de las repeticiones aumenta, mayor ser el tiempo que el micro permanecer mostrando el dato antes de seguir con la ejecucin del resto del programa.

En este caso, si modifica el valor de las repeticiones, se vara la velocidad del conteo.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 6/14

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresLuego debe seleccionar el valor a visualizar en cada display. Esto se realiza haciendo un doble clic sobre cada imagen de display. Se presenta la pantalla Mostrar un valor en un display. Seleccione el registro Unidad. Recordemos que este registro contiene el valor de las unidades del estado actual de la cuenta calculado mediante el bloque de conversin a BCD. Proceda del mismo modo para el registro de las decenas. Una vez seleccionados los datos a visualizar en cada display, se debe seleccionar el pin por el cual desea habilitar e inhabilitar cada display para realizar el multiplexado. Esto se realiza seleccionando el Pin correspondiente en cada una de las listas desplegables que se presentan debajo de cada uno de los displays.

Observe que Niple slo presenta en la lista los pines que estn configurados como Salida. De esta mane ra se evitan los errores por seleccionar pines configurados como Entrada o no configurados. Seleccione los pines B3 y B2 para las unidades y las decenas respectivamente.

Por ltimo, debe seleccionar los pines correspondientes al bus de datos por el cual se enva el dato a v isuali zar al codificador CD4511. Para este ejemplo seleccione los pines B4 al B7 como lo muestra la siguiente imagen.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 7/14

Niple para PIC 16F84 v3 - Programacin Visual de Microcontroladores

Por ltimo puede consultar e imprimir el esquema de conexin de la configuracin que ha seleccionado.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 8/14

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresAl presionar el botn Ingresar se inserta el bloque en el diagrama de flujo el cual debe verse como lo muestra la siguiente imagen.

Por ltimo debe sumarle 1 al registro Contador. Para esto ingrese al rbol de herramientas como se muestra en la imagen de la de recha. Se presenta la pantalla Matemticas Adicin - 8 Bis. El campo sintaxis presenta la manera de interpretar los datos solicitados.

En el campo Sumando 1 seleccione el registro contador y en el campo Sumando 2 seleccione la opcin un literal, formato decimal, valor 1.

Por ltimo, seleccione el registro donde des ea guardar el resultado del c lculo, en este caso, seleccione la opcin en otro registro, registro Contador. Esto significa que el registro Contador ser sobrescrito con el resultado del clculo. La siguiente imagen muestra como debera quedar la pan talla.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 9/14

Niple para PIC 16F84 v3 - Programacin Visual de Microcontroladores

Al presionar el botn Ingresar, se inserta el bloque en el diagrama de flujo el cual debera quedar como lo muestra la siguiente imagen.

Dado que el presente proyecto slo cuenta hasta 99, una vez realizado el incremento del registro contador, debemos controlar que el valor del mismo no supere el nmero 99.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 10/1 4

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresEsto lo hacemos comparando el registro con el valor literal (constante) 99 y reiniciar la cuenta a 0 cuando el registro sea mayor a 99. Para comparar el valor del registro utilizamos el bloque de comparacin de registro a 8 bits ingresando al rbol de herramientas como se muestra en la imagen de la derecha. Se presenta la pantalla Evaluar un registro. El registro a evaluar es el registro Contador, el operador de comparacin es > y el valor de comparacin es de tipo Literal, Decimal y v alor 99. En la siguiente imagen se muestran los datos seleccionados.

Al insertar el bloque, el diagrama de flujo debe verse como la siguiente imagen.

El bloque que acabamos de insertar puede interpretase como la formulacin de la siguiente pregunta: El registro Co ntador , es mayor que el valor decimal 99?

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 11/1 4

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresY como todo bloque de comparacin, debe tener 2 salidas; una para el SI y otra para el NO. El primer bloque insertado a contin uacin de ste, corresponde a la salida del SI y el segundo a la salida del NO. Entonces, que ocurre si el registro contador es mayos que 99? Debemos reiniciar la cuenta a 0. Esto se realiza asignando el valor 0 al registro Contador. Para esto utilizamos el m dulo de Asignar un valor a un Registro del mismo modo que explicamos al inicio del ejemplo. El diagrama de flujo debe verse como la imagen de la derecha.

Continuando con el bloque de evaluacin de registro, si el valor no es mayor a 99, entonces no se debe reiniciar la cuenta, sino que debe volver al bloque de conversin a BCD para c omenzar el ciclo nuevamente. Para esto genere un vnculo Fl echa desde el bloque de evaluacin hacia el bloque de conversin a BCD como se muestra en la siguiente imagen.

Para terminar con este proyecto debemos cerrar el ciclo por medio de un vnculo (flecha) desde el bloque de asignacin del registro contador a 0 hacia el bloque de conversin a BCD. De esta manera, el microcontrolador ejecuta todo el proceso nuevame nte con el nuevo valor de la cue nta.

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 12/1 4

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresEl diagrama de flujo completo debe que dar como la siguiente imagen.

Por ltimo genere el cdigo Assembler, compile el cdigo Assembler y grabe el microcontrolador.

Esquema electrnico

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 13/1 4

Niple para PIC 16F84 v3 - Programacin Visual de MicrocontroladoresImagen de l proyecto en funcionamiento

Niple 16F84 Ejemplo 1 - Contador desde 0 hasta 99.

Pgina 14/1 4