viernes, 19 de marzo de 2021

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

Hola nuevamente a los tutoriales de Artes Electrónicas Pachani, continuano con el curso de programacion del microcontrolador PIC 18F4550 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



Poniendo a prueba nuestro conocimiento con un ejercicio mas practico en Ensamblador vamos a desarrollar programas para resolver una necesidad.

Mis proyectos en C

La estructura de un programa en lenguaje C, es relativamente simple, por lo cual vamos a 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 copie los bits del puerto D hacia el puerto B.
Solución.- Pensemos cuales son las necesidades de nuestro proyecto!
Primero realizaremos un diagrama de flujo (si fuera necesario Psuedocodigo) que trate de explicar lo mejor posible nuestro código de manera secuencial, la información que generemos de nuestro programa nos va dar una idea de las capacidades de nuestro microcontrolador, esta información ayuda tambien otros programadores sobre como funciona nuestro código.

Diagrama de Flujos
Analizamos las capacidades de nuestro microcontrolador, los lamparas (o leds) van a ser los bits de nuestro microcontrolador en nuestro caso los bits del puerto B que lo habilitaremos como salida de datos. Al puerto D lo vamos a configurar como puerto de entrada de datos.
En nuestro diagrama vamos a utilizar una variable “x” esta nos va ser de utilidad pues hará de puente entre el mundo exterior y el microcontrolador.   


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 (pero puedes omitir e ir al IDE de MikroC para poder programar directo):


 Una breve explicación de como sigue la secuencia del anterior programa:
1).- Configuramos el puerto B para que trabaje como salida y puerto D configuramos como entrada.
2).- La variable x es utilisada para copiar los datos del puerto D, luego el valor de la variable se utiliza para cargar al acumulador W del microcontrolador, los datos que son guardados en la variable se puede utilizar para varias operaciones dentro del microcontrolador.
3).- Una vez hayamos cargado al acumulador W, podemos mostrar al mundo exterior por medio del registro LATB , de ese modo lo visualizamos los datos.

Por ultimo una vez escrito nuestro codigo lo copiaremos a nuestro IDE de MikroC, lo compilaremos y luego obtendremos el archivo lab04.hex.

Simulación en MikroC
Una vez tenemos nuestro codigo copiamos dentro del entorno de MikroC , de modo que luego compilamos:



Una vez compilado nuestro programas hemos obtenido el archivo lab04.hex para luego 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 lab04.hex y lab04.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 lab04.hex .

Aqui cargo el lab04.asm a mi proteus 7.5


Aca cargamos el hexadecimal del proyecto para poder simular:




 Cargamos el archivo lab04.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 siguiente:
1).- Usar una variable x como puente entre el microcontrolador y el mundo exterior .
2).- Podemos aprovechar los datos obtenidos de fuera del microcontrolador como la variable x , para otro tipo de operaciones como control de sensores y datos para aplicaciones concretas.
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 , es inú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 hoy 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...