Hola nuevamente a
los tutoriales de Artes
Electrónicas Pachani, continuando con el curso de programacion del microcontrolador PIC 18F4550, aprenderemos a realizar programas en ensamblador
en el entorno MikroC ,esta serie de tutoriales esta dirigido para
lectores novatos, aficionados (hobbistas), estudiantes, que deseen
implementar programas para microcontroladores en MikroC.
Un
lenguaje de alto nivel
Para
la visualización de datos es muy común el uso de displays de 7
segmentos en este tutorial
revisaremos las diferentes formas de manejo y control de estos dispositivos, con el propósito de que tengamos las herramientas suficientes para resolver las necesidades que pudiera resolver. El manejo de los mismos con otros módulos como los teclados hexadecimales es otra que las aplicaciones que abordamos en los siguientes tutoriales.
revisaremos las diferentes formas de manejo y control de estos dispositivos, con el propósito de que tengamos las herramientas suficientes para resolver las necesidades que pudiera resolver. El manejo de los mismos con otros módulos como los teclados hexadecimales es otra que las aplicaciones que abordamos en los siguientes tutoriales.
Manejo
de display 7 Segmentos
En
ciertas aplicaciones donde se disponen de suficientes líneas del
puerto del microcontrolador se puede aplicar el su uso de manera
directa. En la figura, se muestra el circuito del display conectado
al puerto D del microcontrolador. Se utiliza un display de cátodo
común por lo que el terminal común del display se conecta a VCC
. También se podría utilizar un display cátodo común.
Así
mismo, como cuando se utiliza un driver decodificador de 7 segmentos,
se debe tener cuidado de utilizar las resistencias limitado-res de
corriente para conectar los segmentos del display al puerto y evitar
que se produzcan posibles sobre-corrientes que puedan afectar al
puerto o al segmento del display. Resistencias con valores entre 220Ω
y 330Ω, son comunes utilizar para activar los segmentos del display.
Ahora
considerando que los datos que salen al puerto D se debe elaborar la
tabla de datos decodificados para manejar por software y obtener los
números respectivos hagamos uso de la configuración de un display
de 7 segmentos como se ve:
La
tabla, muestra los valores para activar los segmentos de un display
cátodo común, recuerde que el display de cátodo común con un
nivel alto (0) el segmento se desactiva y con un nivel bajo (1) el
segmento se activa.
g
|
f
|
e
|
d
|
c
|
b
|
a
|
Equivalencia Hexadecimal
|
Numero en el display
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0x3F
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
0x06
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
1
|
0x5B
|
2
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
0x4F
|
3
|
1
|
1
|
0
|
0
|
1
|
1
|
0
|
0x66
|
4
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
0x6D
|
5
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0x7D
|
6
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0x07
|
7
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
0x7F
|
8
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
0x67
|
9
|
Tabla
de datos decodificados para utilizar 7 segmentos.
Resolvamos
un ejemplo practico que aplique lo anterior estudiado.
Problema
3.-
Realizar un
programa que controle
un display
de 7 segmentos de modo
que cuente de 0 a 9, con un delay de 0.625 seg
.
Antes
de empezar la estructura de un programa en lenguaje C, nosotros
seguiremos la siguiente plantilla y la secuencia de pasos para tener
una mejor idea para programar y resolver nuestra necesidad:
1er
Paso.- Es indispensable
declarar las variables globales que el desarrollador considere
necesarias para el funcionamiento del programa, estás variables
globales son reconocidas por todos los puntos de código del programa
incluidas las funciones propias del desarrollador y la función main.
2do
paso.- El paso a seguir
es hacer las declaraciones de funciones diseñadas por el
desarrollador para las tareas específicas en su programa.
3er
paso.- Posteriormente se
declara la función main
y al comienzo de está se deben declarar las variables que se
requieran dentro de la misma. El código que sigue debe configurar e
inicializar los puertos y módulos del microcontrolador que sean
indispensables en la aplicación.
4to paso.-
Por último se edita el código que contiene el aplicativo concreto
del programa.
En base a la anterior estructura
para un programa, resolvamos
el problema:
Solución.-
En
el siguiente diagrama
de flujo trataremos
de
explicar lo mejor posible nuestro código
de manera secuencial es
decir
esto
nos ayudara para tener información de nuestro programa tanto para
poder hacer modificaciones nuestras o bien para que otra persona,
tenga información sobre como funciona nuestro código.
Ahora
que
tenemos nuestro diagrama de flujo podemos empezar a escribir nuestro
codigo en C ,escribamos
el siguiente código según nuestra receta anterior, para
facilitar las instrucciones del programa, yo lo muestro primer en un
editor de texto,
luego lo copiare en MicroC:
Una breve explicación de como sigue la secuencia del anterior
programa:
1).-
Limpiamos
el
puerto B
para que trabaje como puerto de salida.
2).- Habilitamos a los puertos B como salida de datos
por medio de la instrucción TRIS como lo hemos estado haciendo.
3).- El registro de sentido de datos es TRISB. Al programar un
bit de TRISB con un valor de 1 se consigue que el pin correspondiente
del puerto B trabaje como entrada es decir, coloca el driver de
salida en alta impedancia. Al programar un bit de TRISB con 0 se
logra que el pin correspondiente del puerto B opere como salida es
decir, coloca el contenido del latch de salida en el pin
seleccionado. Cada pin de este puerto tiene un pull up interno
(resistencia conectada a VDD ).
4).- Ahora cargamos una secuencia de bits que se iran
mostrando por el puerto B por medio del registro LATB, es importante
recordar que este es modo como mostramos al mundo exterior los datos
que iremos cargando al acumulador W.
Por
ultimo una
ves escrito el archivo en lab03.c
lo copiaremos a nuestro IDE de MikroC, lo compilaremos y luego
obtendremos el archivo lab03.hex.
Simulación
en MikroC
Una vez tenemos nuestro codigo copiamos dentro del entorno de MikroC
, de modo que luego compilamos:
Una
vez
obtenido el archivo lab05.hex
ahora
debemos de comprobar que nuestro código funciona de manera adecuada
para
ello vamos a usar el
simulador proteus.
Simulación
en Proteus
Una vez simulado y compilado en MikroC obtendremos los siguientes
archivos:
Los archivos mas importantes son el lab05.hex
y lab05.c , el primero para poder instalar en
nuestro microcontrolador y simular en Proteus , el segundo es el
archivo que facilita crear nuestro archivo para compilar que seria
como el archivo *.asm pero para la versión en C.
Aquí cargo el lab05.asm a mi proteus 7.5
Al momento de simular vemos que cumple con nuestro código que hemos
diseñado :
Algunas
observaciones
Tenemos que tener en mente lo siguientes:
1).- Al procesar el Microcontrolador los datos e información podemos
requerir la visualización de estos datos ahí que el 7 segmentos nos
puede ser de gran ayuda para visualizar los datos procesador por
parte del microcontrolador, estos por ejemplo son visualizar los
números que se pueden introducir por el puerto de entrada, de una
operación matemática, el resultado del tratamiento de un sensor,
etc .
Veamos el video resumen de como se configura el microcontrolador para
resolver el problema:
Ver y/o descargar el video
Con todo lo aprendido de los microcontroladores, vemos que podemos
aprovechar las capacidades de los mismos para resolver necesidades
del dia a dia en nuestras vidas. Para concluir, a medida que suba
otro tutorial iré subiendo mas información con otro ejemplo, espero
que toda la información te sea de utilidad y los espero en el
próximo tutorial.
Todo el material que aquí se encuentra es de mi autoría, ademas de
una recopilación de información de Internet de recursos que se
pueden descargar como libros los cuales son usados como referencia
para los ejercicios y los ejemplos. Cualquier consulta la puedes
realizar en la parte de comentarios.
Bibliografia:
1.- Juan Ricardo Clavijo Mendoza, Diseño y simulación de sistemas
microcontrolados en lenguaje C; Publicado el año 2011;[Fecha de
consulta 12 de Abril de 2020].
2.-Juan Ricardo Penagos Plazas; Cómo programar en lenguaje C los
microcontroladores PIC16F88, 16F628A y 16F877A; Publicado
el año 2010; [Fecha de consulta 14
de Abril de
2020].
3.- Eduardo Garcia Breijio;
Compilador_C_CCS_y_simulador_PROTEUS_para_microcontroladores_PIC;
Publicado el año 2008;
[Fecha de consulta 19 de Abril de 2020].
Software
utilizados:
1.-
MikroC_PRO_PIC_2016_Build.6.6.3
descargado de la pagina oficial de Microchip.
2.- Proteus v 7.5
, simulado en linuxMint
19,4 por medio del programa Wine.
3.-
Editor de texto libre, se puede descargar de Internet, es un editor
GNU Linux.
4.-
OpenProg , programador de microcontroladores PIC-AVR.
Hardware
utilizados:
1.-
Placa de Programación basado en los esquemas de OpenProg.
2.-
Placa entrenadora desarrollado en base al microcontrolador Pic
18F4550.
3.-
Placas modulo de leds , botoneras e interruptores.








