Niple 16F84 - Ejemplo 01

14
Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 1/14 Ejemplo Nº 1 Modelo PIC utilizado: 16F84 Este proyecto también puede ser desarrollado con los PIC: 16F6xx / 16F87x Título Contador de 0 a 99. Descripción 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 segmentos. Procedimiento Incrementar el valor de un registro, convertirlo a BCD y visualizarlo en los dis- plays de 7 segmentos . Módulos utilizados Configuración de puerto. Asignación d e registro Evaluación de registro Conversión a BCD Visualización en display de 7 segmentos con codificador Desarrollo del ejemplo Comience creando un nuevo proyecto. Una vez generado un nuevo proyecto, comen- zamos declarando regis- tros que vamos a utili- zar. Para eso debemos ir al menú “Declaración/Registros” como se muestra en la imagen a la derecha.

description

ejemplo

Transcript of Niple 16F84 - Ejemplo 01

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 1/14

Ejemplo Nº 1 Modelo PIC utilizado: 16F84

Este proyecto también puede ser desarrollado con los PIC: 16F6xx / 16F87x

Título Contador de 0 a 99.

Descripción 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 segmentos.

Procedimiento Incrementar el valor de un registro, convertirlo a BCD y visualizarlo en los di s-

plays de 7 segmentos .

Módulos utilizados Configuración de puerto.

Asignación d e registro

Evaluación de registro

Conversión a BCD

Visualización en display de 7 segmentos con codificador

Desarrollo del ejemplo

Comience creando

un nuevo proyecto.

Una vez generado un

nuevo proyecto, comen-

zamos declarando regis-

tros que vamos a util i-

zar.

Para eso debemos ir al menú “Declaraci ón/Registros” como se

muestra en la imagen a la derecha.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 2/14

Para declarar un registro haga doble clic sobre

uno de los registros de Usuario (de color verde). Es-

tos registros son los que Ud. puede utilizar para

guardar los datos que se requieran en el proyecto.

Declare un registro llamado “contador ”.

A continuación vamos a configurar el puerto B.

Para esto ingrese al árbol de herramientas como se

muestra en la siguiente imagen.

Se presenta la pantalla de configuración del puerto B. El puerto B lo utilizaremos para conectar los dis-

plays de 7 segmentos, por esto lo configuramos como salida.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 3/14

El diagrama de flujo debe verse como la siguiente imagen.

Luego iniciamos el registro “contador” a 0. De esta manera nos

aseguramos que al reiniciarse el microcontrolador, el contador siempre

comienza 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 opción “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 s iguiente imagen se muestran los datos ingresados .

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 4/14

Al presionar el botón “Ingresar” se inserta el bloque en el diagrama de flujo, el cual debería 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 co-

rrespondiente.

Para mayor información sobre visualización de datos en displays de 7 segmentos consulte el Anexo1-

“Visualización 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 ca-

so, el registro Contador.

Luego debe seleccionar los registros donde guardar el resultado de la

conversión. Como aún no hemos declarado los registros, presione el bo-

tón “nuevo” correspondiente a las unidades. Se presenta la pantalla de

declaración de registros y declare el registro “Unidad”.

Al volver de la pantalla de decla-

ración de registros, el registro re-

cién declarado ha sido selecciona-

do en la lista automáticamente.

Proceda de la misma manera

para el registro “Decena”.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 5/14

Dado que nuestro proyecto solo cuenta hasta 99, el valor de las centenas no es necesario declararlo.

Al presionar el botón “Ingresar” se inserta el bloque en el diagrama de flujo.

Una vez que ya ha realizado la conversión a BCD, esta en condiciones de visualizar los datos en los dis-

plays 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 ima-

gen de la derecha:

Se presenta la pantalla de visualización de displays de 7 segmentos con

codificador CD4511.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 6/14

Primero debe seleccionar el tipo de display a utilizar. El CD4511 es un codificador para displays tipo cá-

todo común, por esto seleccionamos este tipo de display.

Luego debe seleccionar la cantidad de dígitos a utilizar, en este caso seleccione 2 dígitos.

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 visualización 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 dis-

play correspondiente a las unidades y se envía 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

ilusión óptica de estar visualizando el valor representado por los 2 dígitos.

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 ejecución del resto del programa.

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

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 7/14

Luego 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 con-

tiene el valor de las unidades del es-

tado actual de la cuenta calculado

mediante el bloque de conversión 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 des-

ea 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 pre-

sentan debajo de cada uno de los displays.

Observe que Niple sólo presenta en la lista los pines que están configurados como “Salida”. De esta

manera 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 envía el dato a vi-

sualizar al codificador CD4511.

Para este ejemplo seleccione los pines B4 al B7 como lo muestra la siguiente imagen.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 8/14

Por último puede consultar e imprimir el esquema de conexión de la configuración que ha seleccionado.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 9/14

Al presionar el botón “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 derecha.

Se presenta la pantalla “Matemáticas – Adición - 8 Bis”.

El campo “sintaxis” presenta la manera de interpretar los datos sol i-

citados.

En el campo “Sumando 1” seleccione el registro contador y en el

campo “Sumando 2” seleccione la opción “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 opción “en otro registro”, regis-

tro “Contador”. Esto significa que el registro “Contador” será sobrescri-

to con el resultado del cálculo.

La siguiente imagen muestra como debería quedar la pantalla.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 10/14

Al presionar el botón “Ingresar”, se inserta el bloque en el diagrama de flujo el cual debería quedar como

lo muestra la siguiente imagen.

Dado que el presente proyecto sólo cuenta hasta 99, una vez realizado el incremento del registro conta-

dor, debemos controlar que el valor del mismo no supere el número 99.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 11/14

Esto 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 “comparación

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 compara-

ción es “>” y el valor de comparación es de tipo “Literal”, “Decimal” y valor

“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 formulación de la siguiente pregunta:

¿El registro “Contador ”, es mayor que el valor decimal 99?

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 12/14

Y como todo bloque de comparación,

debe tener 2 salidas; una para el “SI” y

otra para el “NO”.

El primer bloque insertado a continua-

ción 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 re-

iniciar la cuenta a 0. Esto se realiza asig-

nando el valor “0” al registro “Contador”.

Para esto utilizamos el módulo de “Asig-

nar un valor a un Registro” del mismo

modo que explicamos al inicio del ejem-

plo.

El diagrama de flujo debe verse como

la imagen de la derecha.

Continuando con el bloque de eva-

luación de registro, si el valor no es

mayor a 99, entonces no se debe reini-

ciar la cuenta, sino que debe volver al

bloque de conversión a BCD para co-

menzar el ciclo nuevamente.

Para esto genere un vínculo “Fl e-

cha” desde el bloque de evaluación

hacia el bloque de conversión a BCD

como se muestra en la siguiente ima-

gen.

Para terminar con este proyecto de-

bemos “cerrar el ciclo” por medio de un

“vínculo” (flecha) desde el bloque de

asignación del registro contador a “0”

hacia el bloque de conversión a BCD.

De esta manera, el microcontrolador

ejecuta todo el proceso nuevamente

con el nuevo valor de la cuenta.

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 13/14

El diagrama de flujo completo debe quedar como la siguiente imagen.

Por último genere el código Assembler, compile el código Assembler y grabe el microcontrolador.

Esquema electrónico

Niple para PIC 16F84 v3 - Programación Visual de Microcontroladores

Niple 16F84 – Ejemplo 1 - Contador desde 0 hasta 99. Página 14/14

Imagen de l proyecto en funcionamiento