Hola nuevamente a Artes
Electrónicas Pachani, iniciaremos la programación del microcontrolador PIC 18F4550, en ensamblador
en el entorno MikroC , esta dirigido para
lectores novatos, aficionados (hobbistas), estudiantes, que deseen
implementar programas para microcontroladores en MikroC.
Un
lenguaje de alto nivel
Bien
sabemos por lo dicho antes
que el compilador de alto nivel en lenguaje C utiliza estructuras que
facilitan la programación, optimiza las operaciones matemáticas y
los procesos, por medio del uso de
funciones predefinidas y las no predefinidas que nosotros mismos podemos crear, así como el uso de un conjunto de variables, de tipo carácter, entero, y punto decimal.
funciones predefinidas y las no predefinidas que nosotros mismos podemos crear, así como el uso de un conjunto de variables, de tipo carácter, entero, y punto decimal.
En
nuestro caso aremos uso de esta facilidad para hacer uso del lenguaje
C y también Ensamblador para mejorar la calidad de nuestro código
para aprovechar las características de nuestros microcontroladores
ante la problemática que necesitamos resolver.
Registros
de control de puerto
Cada puerto de E/S dentro de los microcontroladores tiene asociado 3
registros:
Registro TRIS : mediante este registro se configuran cada una
de las líneas de E/S del puerto como:
ENTRADA (bit correspondiente a '1')
SALIDA (bit correspondiente a '0').
Registro PORT : mediante este registro se puede LEER el nivel
en el pin de E/S (Entrada de Datos)
Registro LAT : mediante este registro se ESCRIBIR el valor de
del pin de E/S (Salida de Datos)
Ahora
continuemos con la estructura de un programa en lenguaje C, este
relativamente simple, por lo cual trataremos de respetar esta
plantilla (que lo veremos un par de tutoriales mas y luego lo
dejaremos de lado):
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
01.-
Realizar un
programa que muestre
el valor decimal 5 por el puerto B .
Solución.-
De la misma manera como
iniciamos en nuestros anteriores proyectos primero vamos a etiquetar
nuestro proyecto para
las instrucciones.
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 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 llamado
Pluma, luego lo copiare en MicroC:
1).-
Inicializamos el
puerto B
y
limpiamos su contenido,
para
llamarlo.
2).- Habilitamos el 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 LAT de salida en el pin seleccionado.
Cada pin de este puerto tiene un pull up interno (resistencia
conectada a V DD ). Cuando el puerto se configura como salida las
pull-ups se desactivan automáticamente y también cada vez que se
enciende el PIC (Power On Reset POR).
4).- Ahora que terminamos de escribir el código es
momento de copiar dentro del IDE de MikroC .
Por
ultimo compilaremos
y luego obtendremos el archivo lab01.hex.
Simulación
en MikroC
Una vez obtenido el archivo lab01.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 lab01.hex y
lab01.asm , 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 lab01.hex .
Primero cargamos el archivo lab01.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 que tenemos que tener en mente son las
siguientes:
1).- Cuando trabajamos con el puerto B se debe tener en mente las
caracteristicas del mismo. Este puerto se puede programar por medio
de los registros: PORTB, TRISB, OPTION_REG (activar/desactivar las
pull ups) y ANSEL. En la tabla siguiente se indican las tecnologías
de entrada y salida de cada pin de este puerto.
![]() |
| Tabla . Tecnologías E/S del puerto B del PIC18F4550 en modo digital. |
Cuando se habiliten las funciones de periféricos de este puerto B,
se debe tener cuidado al definir los bits del registro TRISB. Algunos
periféricos modifican estos bits para hacer que algunos pines operen
como salida y otros como entrada. Esta modificación tiene vigencia
mientras el periférico está habilitado.
En resumen podemos ver en el siguiente video como va la configuración
asi como los programas y hardware utilizados para el presente
proyecto.
Con todas estas observaciones se trata de aprender mas de los
microcontroladores, ahora en cuanto a la configuración del
microcontrolador todo dependerá de la hoja de datos que posee el
microcontrolador, en el caso de 18F4550 de a poco con los ejemplo
iremos viendo estas características. 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 otro 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 7 de abril de 2020].
2.-Datasheet pic2550-4550; pic2550-4550; Publicado
el año 2009;
[Fecha de consulta 11
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 interruptore






