Menu Principal:
Prácticas > Práctica 3
Una de las razones de por qué los µC de Microchip son tan populares es la gran variedad de herramientas que se disponen para realizar aplicaciones con ellos. Entre estas herramientas se tiene mikroBasic, lenguaje de programación basado en el popular lenguaje BASIC, pero que se encuentra orientado hacia los microcontroladores de Microchip, es decir, en esencia programar en mikroBasic es similar a programar en BASIC o en cualquier otro lenguaje igualmente basado en BASIC tal como VisualBASIC.
Existen otros programas tales como PicBasic, ProPIC, HiTech, CPIC, etc., que también pueden ser utilizados para escribir los programas, pero hemos elegido mikroBasic por ser un lenguaje amigable y fácil de utilizar, por que posee una amplia variedad de librerías que permiten controlar de forma extremadamente sencilla gran cantidad de periféricos, tiene un entorno gráfico de programación y es gratuito.
Para comenzar debemos tener claros varios términos que se utilizan con frecuencia:
Lenguaje de programación es un conjunto de comandos y las normas según las cuales vamos a escribir el programa. Existen varios lenguajes de programación como Basic, C, Pascal, etc Hay un montón de recursos sobre lenguaje de programación BASIC por ahí, así que nos centraremos nuestra atención en particular a la programación de microcontroladores.
Programa consiste en una secuencia de comandos escritos en lenguaje de programación que el microcontrolador ejecuta una tras otra. Después entraremos en detalle en la estructura de un programa BASIC.
Compilador es un programa ejecutado por el ordenador y su tarea consiste en traducir el código original BASIC a un lenguaje de ceros y unos que pueden ser grabados en el microcontrolador. El proceso de traducción de BASIC a programa ejecutable muestra en la siguiente figura. El programa escrito en BASIC y guardado como archivo program.pbas es convertido por el compilador en código ensamblador (program.asm). El código ensamblador es traducido a código hexadecimal ejecutable que puede escribirse en la memoria del microcontrolador.
Programador es un dispositivo que usamos para transferir nuestros archivos HEX del ordenador a la memoria del microcontrolador.
El primer paso es escribir nuestro código. Cada archivo de origen se guarda en un único archivo de texto con extensión. Pbas. Aquí hay un ejemplo simple de un programa BASIC, blink.pbas.
program LED_Blink
main:
TRISB = 0 ' Configura los pines de PORTB como salidas
eloop:
PORTB = $FF ' Enciende los diodos en PORTB
Delay_ms(1000) ' Espera 1 segundo
PORTB = 0 ' Apaga los diodos en PORTB
Delay_ms(1000) ' Espera 1 segundo
goto eloop ' Repite el bucle
end.
Cuando el programa se completa y se guarda como archivo .pbas puede ser compilado, haga clic en el Icono Compilar (o simplemente pulse CTRL + F9) en mikroBasic IDE. El procedimiento de compilación se lleva a cabo en dos fases consecutivas:
El Compilador convertirá el archivo .pbas a código ensamblador y lo guardará como archivo blink.asm.
A continuación, el compilador llama automáticamente al ensamblador que convierte el archivo .asm en código hexadecimal ejecutable listo para grabar en el microcontrolador.
En caso de error de sintaxis en el código de programa, éste no será compilado y el archivo .hex no se generará. Los errores deben ser corregidos en el archivo .pbas original y, a continuación, el archivo fuente puede ser compilado de nuevo.
Como resultado de la compilación de éxito de nuestro anterior código, mikroBasic generará los siguientes ficheros:
El archivo .hex es el necesario para programar el microcontrolador.
El dispositivo de programación (programador), con el software correspondiente instalado en el PC son los encargados de escribir el contenido del archivo .hex en la memoria interna del microcontrolador.
El contenido del archivo blink.hex es el siguiente:
:100000000428FF3FFF3FFF3F031383168601FF30A5
:10001000831286000630F000FF30F100FF30F2005E
:10002000F00B13281A28F10B16281928F20B1628A2
:10003000132810281A30F000FF30F100F00B2128AF
:100040002428F10B21281E284230F000F00B26282E
:1000500086010630F000FF30F100FF30F200F00BB7
:1000600032283928F10B35283828F20B3528322868
:100070002F281A30F000FF30F100F00B4028432801
:10008000F10B40283D284230F000F00B45280428B1
:100090004828FF3FFF3FFF3FFF3FFF3FFF3FFF3F3E
:02400E007A3FF7
:00000001FF
Además de cargar el código de programa en la memoria, el programador también configura los parámetros del microcontrolador, como el tipo de oscilador, protección de memoria contra la lectura, temporizador watchdog, etc.
La siguiente figura muestra la conexión entre el ordenador, dispositivo de programación y el µC.
Para el buen funcionamiento del microcontrolador, es necesario prever la fuente de alimentación, oscilador, y un circuito de reset. Puede realizarse con un simple rectificador y un circuito LM7805 como se muestra en la siguiente figura.
El oscilador puede ser un cristal de 4Mhz y dos condensadores de 22pF.
Durante el desarrollo de aplicaciones, lo más fácil para usar el reset del circuito - pin MCLR - es conectarlo a +5 V mediante una resistencia de 10K.
A continuación se muestra la configuración mínima para el funcionamiento de un microcontrolador PIC.