viernes, 19 de marzo de 2021

Microcontroladores PIC – Curso Programación en MikroC ( *.asm) (Parte 3)

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

 Una vez simulado y compilado en MikroC obtendremos los siguientes archivos:




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 .


 Aqui cargo el lab03.asm a mi proteus 7.5




 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.



Microcontroladores PIC – Curso de Programación en MikroC (Parte 6 )

Microcontroladores PIC – Curso de Programación en MikroC Bienvenido nuevamente a los tutoriales de Artes Electrónicas Pachani , con...