Hola nuevamente a
los tutoriales de Artes
Electrónicas Pachani, continuamos curso de programacion del microcontroladores 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 MikroC.
Un
lenguaje de alto nivel
Es
momento de probar nuestro conocimiento con un ejercicio mas practico
en Ensamblador vamos
a desarrollar programas para resolver una necesidad.
Mis
proyectos
en C
No
olvidemos que la estructura de un programa en lenguaje C, es
relativamente simple, por lo cual trataremos de respetar la plantilla
y la secuencia de pasos para tener una mejor idea del programa:
1er
Paso.- 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
(
principal ).
2do
paso.- Hacer
las declaraciones de funciones diseñadas por el desarrollador para
las tareas específicas en su programa si
es necesario para el programa.
3er
paso.- 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
el siguiente ejemplo se aplica
la estructura del
programa:
Problema
3.-
Realizar un
programa que controle
las luces instaladas
en un auto de modo que simule la secuencia del auto increíble (kirc
, una serie de los años 90’s)
.
Solución.-
Lo
primero vamos a pensar
cuales son las necesidades de
nuestro proyecto para
ello realizaremos un diagrama de flujo que trate de explicar lo mejor
posible nuestro codigo 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.
El problema lo debemos de interpretarlo a nivel del microcontrolador,
los lamparas (o leds) puede ser un bit de cualquier puerto de
nuestro microcontrolador de modo que yo escogeré el puerto B como
salida de datos, de modo que cumpla con las necesidades de nuestro
cliente.
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 lab03.hex
. Ya
que no hemos tenido problemas dentro de las instrucciones para
nuestro programa ahora debemos de comprobar que nuestro código
funciona de manera adecuada en el simulador proteus.
Simulación
en Proteus
Los archivos mas importantes son el lab03.hex y lab03.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, ya que el interprete se encargar de realizar
la traducción para obtener el archivo lab03.hex
.
Aca cargamos el hexadecimal del proyecto para poder simular:
Cargamos el archivo lab03.hex para que se pueda iniciar
con la simulación, para lo cual primero cargamos solamente el
archivo HEX, si nuestras instrucciones son las adecuadas la mejor
manera sera verla en la simulación.
Algunas
observaciones
Tenemos que tener en mente lo siguientes:
1).- Trabajar con el puerto B se debe tener en mente las
características del mismo, los bits del puerto B pueden entregar
alrededor de 40mA , lo cual no es útil para encender leds de alta
potencia y mas aun tratar de encender luces (o focos) de gran
potencia , para poder aprovechar esta salida por parte del
microcontrolador debemos de utilizar Relay’s mecánicos o bien de
estado solido como los opto-acopladores .
Veamos el video resumen de como se configura el microcontrolador para
resolver el problema:
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].
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.