You are on page 1of 6

Traducido al Español por: Maria Del Carmen Lara T. para www.mundopic.

com
Autor del Libro: Nebojsa Matic / Descarga Gratuita de: http://www.mikroelektronika.co.yu
____________________________________________________________________________
Capítulo I
LOS FUNDAMENTOS DE PIC BASIC
Introducción

1.1 BASIC para microcontroladores PIC


1.2 Microcontroladores PIC
1.3 primer programa escrito en PIC BASIC
1.4 Escritura y compilado de un programa BASIC
1.5 Cargando un programa en la memoria de un microcontrolador
1.6 Corriendo su programa
1.7 Problemas arrancando su programa (que hacer sí éste no funciona)

Introducción

Sencillez y facilidad, cualidades que el más grande lenguaje de programación brinda para escritura de programas, así como
amplias aplicaciones de los microcontroladores, fue suficiente para incitar a algunas compañías como Microengeneering para
embarcarse en el desarrollo de programas en el lenguaje BASIC. ¿Qué íbamos a obtener? Antes que todo, el tiempo de escritura
fue acortado con el empleo de funciones preparadas que BASIC brinda (Quienes programan en assembler habrían necesitado
una mayor parte del tiempo). De esta manera el programador puede concentrarse en resolver las tareas esenciales sin perder su
tiempo en la es critura de códigos para display LCD. Para evitar alguna confusión en el texto avanzado, es necesario aclarar tres
términos encontrados frecuentemente

Programming language (Lenguaje de programación) Se entiende como un surtido de comandos y reglas de acuerdo a las
que frecuentemente utilizamos para escribir un programa y por esto nosotros distinguimos varios lenguajes de programación
como BASIC, C, PASCAL etc. En BASIC programming language la literatura existente es algo extensa, así que la mayor
atención en este libro ha sido dedicada concretamente a la parte de la programación de microcontroladores.
Program (Programa) Consiste en una secuencia de comandos de lenguaje que nuestro microcontrolador ejecuta uno tras otro.
La estructura del programa BASIC es explicada con más detalles en el segundo capitulo.
BASIC compiler (compilador BASIC) Es el programa de corrido en la PC y su tarea es traducir el código original de BASIC
al lenguaje de 0 a 1 entendible para el microcontrolador. El proceso de traducción del programa en BASIC a un código
Hexadecimal ejecutable es mostrado en la imagen a continuación. El programa escrito en PIC BASIC y registrado como un
archivo Program.bas es convertido en un código ensamblador (Program.asm). Así que para obtener un código ensamblador
es seguidamente traducido a un código Hexadecimal ejecutable el cual es escrito en la memoria de un microcontrolador por un
programador (programador es un recurso utilizado para transferir archivos Hexadecimales desde la computadora hasta la
memo ria del microcontrolador).

Programa Traducido a código


Programa escrito en Programa Traducido a
Hexadecimal entendible para el
lenguaje PIC BASIC código ensamblador
microcontrolador

Recurso de
Compilador Ensamblador
programación

Compilador PIC Recurso de


Ensamblador que
BASIC que convierte programación que
convierte código ASM
el programa a código escribe el código
a código Hexadecimal
ensamblador Hexadecimal a la
memoria del
___________________________________________________________________________
microcontrolador
Libro para descarga Gratuita – Usted puede descargar la versión en Inglés en:
http://www.mikroelektronika.co.yu
Traducido al Español por: Maria Del Carmen Lara T. para www.mundopic.com
Autor del Libro: Nebojsa Matic / Descarga Gratuita de: http://www.mikroelektronika.co.yu
____________________________________________________________________________
1.1 BASIC para microcontroladores PIC
Como lenguaje de programación, BASIC es conocido desde hace bastante tiempo por los usuarios de PC por ser el más fácil y
extendido. Actualmente la reputación ha sido cada vez más transferida al mundo de los microcontroladores. PIC BASIC
habilita rápida y relativamente fácil programas escritos para microcontroladores PIC en comparación con los Microchip's
assembling language MPASM. Durante la escritura del programa, el programador encuentra siempre el mismo problema, como
la manera de enviar mensajes vía serial, escritura en una variables en un display LCD, generación de señales PWM, etc. Todo
por el propósito de facilitar la programación, PIC BASIC contiene su estructura de comandos propuesta para solventar
problemas frecuentemente encontrados en la práctica. Tan lejos como la velocidad de ejecución y el tamaño del programa son
concernientes, MPASM es un pequeño adelanto con respecto a PIC BASIC (por esto existe la posibilidad de combinar PIC
BASIC con assembler). Usualmente, la parte del programa en la que el mismo comando es ejecutado muchas veces o el
tiempo de ejecución es crítico, son escritas en ensamblador. Microcontroladores modernos como PIC ejecutan la instrucción en
un único ciclo que dura 4 ciclos del oscilador. Si el oscilador del microcontrolador es de 4MHz (un ciclo sencillo dura 250 ns),
una única instrucción assembler requiere 250nS x 4 = 1uS para la ejecución, cada comando BASIC es el resultado de una
secuencia de instrucciones assembler y el tiempo exacto necesario para su ejecución puede ser obtenido a través de una simple
suma de tiempos necesarios para la ejecución de instrucciones assembler con un sólo comando BASIC.

1.2 microcontroladores PIC


La creación de PIC BASIC seguida de un éxito grandioso con sello Basic (pequeñas láminas con PIC16F84 y eeprom serial que
compone el sistema microcontrolador completo) así como sus codificaciones. PIC BASIC habilita el programa escrito con el
sello original BASIC a ser trasladado para su ejecución directa en el PIC16xxx, PIC17Cxxx y PIC18Cxxx miembros de la
familia de microcontroladores. Por cierto, con PIC BASIC es posible escribir programas para microcontroladores PIC de las
siguientes familias PIC12C67x, PIC14C000, PIC16C55x, PIC16C6x, PIC16C7x, PIC16x84, PIC16C9xx, PIC16F62x,
PIC16C87x, PIC17Cxxx y PIC 18Cxxx. Por el contrario, los programas escritos en lenguaje PIC BASIC no pueden ser corridos
en microcontroladores que poseen el hardware apilado en dos niveles como es el caso del PIC16C5x (En el que la llamada a
comandos de alguna subrutina no puede ser utilizada más de dos veces en una línea).

Para los controladores que no son capaces de trabajar con PIC BASIC hay una sustitución adecuada. Por ejemplo, en vez del
PIC16C54 o 58, podemos usar pines compatibles con los chips PIC16C554, 558, 620 y 622 quienes también operan con PIC
BASIC sin ninguna diferencia de precios.

Generalmente la mejor opción para el desarrollo de aplicaciones, utilizando PIC BASIC son microcontroladores de la familia:
PIC16F87x, PIC16F62X y por supuesto el famoso PIC16F84. Con esta familia de microcontroladores PIC, la memoria de
programa es creada utilizando tecnología FLASH, tecnología que provee un borrado y reprogramado más rápido, de este modo
se permite una depuración más rápida. Con un simple clic del Mouse en el software del programa, el programa del
microcontrolador puede ser instantáneamente borrado y luego recargado sin remover el CHIP del programador. También el
programa cargado en la memoria FLASH puede ser almacenado después de que la fuente de poder ha sido apagada. Los
antiguos microcontroladores PIC de las series (12C67x, 14C000, 16C55x, 16C6xx, 16C7xx y 16C92x) tienen memoria de
programa creada usando tecnología EPROM/ROM, así que ellos pueden ser programados sólo una vez ( versión OTP con
memoria ROM) o con ventana de vidrio (versión JW con memoria EPROM), las cuales permiten un borrado en unos pocos
minutos exponiendo la ventana a una luz UV. Versiones OTP con usualmente más baratos y son usados para manufactura de
productos en serie. Además de la memoria FLASH, microcontroladores de las series PIC16F87x y PIC16F84 pueden contener
64-256 bytes de memoria EEPROM interna, las cuales pueden ser usadas para el grabado de los datos del programa y otros
parámetros para cuando la corriente es apagada. PIC BASIC ha sido construido con instrucciones de lectura y escritura que
pueden ser usadas para la carga y guardado de datos a la escritura EEPROM. Para obtener información completa acerca
aplicaciones específicas de las aplicaciones de los microcontroladores, usted debería obtener la hoja de datos apropiada al
microcontrolador o el CD de Microchip.

Los ejemplos de programas trabajados a través de éste libro son más que todo para ser corridos en
microcontroladores PIC16F84 o PIC6F877, pero podrían, con pequeñas o sin ninguna corrección, ser corridos en otros
microcontroladores PIC.

___________________________________________________________________________
Libro para descarga Gratuita – Usted puede descargar la versión en Inglés en:
http://www.mikroelektronika.co.yu
Traducido al Español por: Maria Del Carmen Lara T. para www.mundopic.com
Autor del Libro: Nebojsa Matic / Descarga Gratuita de: http://www.mikroelektronika.co.yu
____________________________________________________________________________
1.3 Primer programa escrito en PIC BASIC
Para empezar a programar y desarrollar aplicaciones en BASIC programming language, es necesario tener por lo menos un
editor de texto. El compilador PIC BASIC para el agrado de algunos es un sistema en desarrollo con el cual el programa se
supone es chequeado. Para escribir el código del programa en BASIC, cualquier editor de texto que pueda guardar el archivo
del programa como solamente texto ASCII (sin formato de símbolos especiales) puede ser usado. Para esto se propone el uso de
editores como Notepad o WordPad. Una solución aún mejor que el uso de cualquier editor de texto clásico es el uso de un
editor especialmente desarrollado para el programa escrito en ese código como Microchip's MPLAB o Mecanique's Micro
CODE STUDIO.

La ventaja de esos paquetes de programas es que ellos cuidan de la sintaxis del código, liberan memoria y proveen un ambiente
más confortable cuando se escribe el programa (Los apéndices A y B describen al MPLAB y a los editores de MicroCODE
STUDIO).

1.4 Escritura y compilado de un programa BASIC


El primer paso es escribir el código del programa en algunos de los editores de texto enumerados. Cada código escrito debe ser
guardado en un sólo archivo con la extensión .BAS exclusivamente como texto ASCII. Un Ejemplo de un programa simple en
BASIC - BLINK.BAS

Cuando el programa original en BASIC es terminado y guardado como un sólo archivo con extensión .BAS es necesario iniciar
el compilador PIC BASIC. El procedimiento para compilar da lugar a dos pasos.

Paso 1. En el primer paso el compilador convertirá el archivo BAS en código


assembler y lo guardará como un archivo BLINK.ASM.

PASO 2. En el segundo paso el compilador automáticamente llama al


ensamblador, el cual convierte el ASM en un tipo de archivo en código
Hexadecimal ejecutable, listo para ser grabado en la memoria de programa del
microcontrolador.

La transición entre el primer y el segundo paso es hecha por el usuario – éste ultimo imperceptible para el programador, ya que
todo pasa de una forma completamente automática y es definido de este modo en un proceso indivisible. En el caso de un error
de sintaxis en el código del programa, el compilado no será exitoso y el archivo en Hexadecimal no será creado por completo.
Entonces los errores deben ser corregidos en el archivo original BAS y repetir el proceso completo de compilación. La mejor
táctica es la de escribir y probar pequeñas partes del programa, que escribir uno gigantesco de 1000 líneas o más para luego
enfrascarse en la búsqueda de errores.

___________________________________________________________________________
Libro para descarga Gratuita – Usted puede descargar la versión en Inglés en:
http://www.mikroelektronika.co.yu
Traducido al Español por: Maria Del Carmen Lara T. para www.mundopic.com
Autor del Libro: Nebojsa Matic / Descarga Gratuita de: http://www.mikroelektronika.co.yu
____________________________________________________________________________

1.5 Cargando un programa a la memoria del microcontrolador


Como resultado de la compilación exitosa de un programa en PIC BASIC se creará los siguientes archivos:

- BLINK.ASM – archivo en assembler


- BLINK.LST – listado de programa
- BLINK.MAC – archivo con macros
- BLINK.HEX – archivo ejecutable que es escrito en la memoria de programa.

El archivo con la extensión .HEX es en efecto el programa que es escrito a la memoria de programa del microcontrolador. El
programador con el software instalado en la PC es usado para esta operación. El programador es un dispositivo para la carga
del archivo Hexadecimal en la memoria interna del microcontrolador. El software del PC lee el archivo Hexadecimal y envía al
programador la información de la locación exacta en donde un valor debe ser escrito en la memoria de programa, PIC BASIC
crea el archivo Hexadecimal en un estándar 8-bit Merged Intel HEX formato aceptado por la mayoría de los software de
programación. En el texto a continuación un archivo BLINK.HEX.

Además de escribir y leer el código del programa en el microcontrolador, el programador sirve para establecer la configuración
del microcontrolador. Aquí se configura el tipo de oscilador, protección de la memoria en contra lectura, encendido de un
watchdog timer etc. La conexión entre el PC y el microcontrolador es mostrada a continuación.

Software
para
programar

El software del programador es usado exclusivamente para la comunicación entre la PC y el programador y no es sustituible
con algún código escrito. El software para programación del microcontrolador y posible simulador es conocido con el nombre
IDE. Integrated Development Environment (ambiente de desarrollo integrado) - Microchip's MPLAB.

1.6 Corriendo su programa

___________________________________________________________________________
Libro para descarga Gratuita – Usted puede descargar la versión en Inglés en:
http://www.mikroelektronika.co.yu
Traducido al Español por: Maria Del Carmen Lara T. para www.mundopic.com
Autor del Libro: Nebojsa Matic / Descarga Gratuita de: http://www.mikroelektronika.co.yu
____________________________________________________________________________
Para una correcta operación del microcontrolador y la corrida correcta de un programa es necesario asegurar la fuente del
microcontrolador, el oscilador y el circuito de reset. La fuente del microcontrolador puede ser construida con un simple
puente rectificador y un regulador de voltaje LM7805, como se muestra en la figura a continuación.

Transformador

EL oscilador del microcontrolador puede ser un cristal de 4MHz y dos capacitores de 22pF o un resonador cerámico de la
misma frecuencia (el resonador cerámico contiene los capacitores mencionados, pero contrariamente al oscilador tiene tres
terminaciones en vez de dos). La velocidad a la que opera el microcontrolador depende de la velocidad a la que el programa
corre y éste a su vez de la frecuencia del oscilador. En el curso del desarrollo de una aplicación lo más fácil de hacer es usar el
circuito interno de reset conectando el pin MCLR a +5V con una resistencia de 10K de por medio.

A continuación El esquema de un puente rectificador con un regulador de voltaje LM7805 el cual da la salida estable de +5V,
configuración mínima que permite la operación de un microcontrolador PIC.

Para ver el efecto del


programa BLINK, la
resistencia y el diodo LED
están conectados al pin 7 del
puerto B

Configuración de Hardware mínima necesaria para la operación del microcontrolador PIC Después de que la fuente de
poder es colocada en el circuito estructurado similar al anterior, el microcontrolador PIC debe mostrarse como funcionando, y
su diodo LED debe estar parpadeando una y otra vez cada segundo. Si la señal parece completamente perdida (diodo LED no
está funcionando), se debe chequear si +5V está presente en todos los pines correspondientes del microcontrolador PIC.

1.7 Problemas arrancando su programa (Que hacer sí este no funciona)

___________________________________________________________________________
Libro para descarga Gratuita – Usted puede descargar la versión en Inglés en:
http://www.mikroelektronika.co.yu
Traducido al Español por: Maria Del Carmen Lara T. para www.mundopic.com
Autor del Libro: Nebojsa Matic / Descarga Gratuita de: http://www.mikroelektronika.co.yu
____________________________________________________________________________
Los problemas más frecuentes al usar microcontroladores PIC pueden ser corregidos chequeando los pocos componente
externos utilizados, revisando que sus valores correspondan a los que se necesitan y que todas las conexiones del
microcontrolador estén hechas apropiadamente. A continuación algunas sugerencias que pueden ser útiles a la hora de
programar.

Paso 1. Revise que el pin MCLR esté conectado a los 5V en un circuito de reset seguro o simplemente con
una resistencia de 10K. Si el pin permanece desconectado, el nivel de voltaje se mantendrá "fluctuante" y éste
podría funcionar a veces, pero usualmente éste no lo hará. EL Chip tiene un circuito power-on-reset, y una
resistencia externa de empuje (pull-up) en el pin MCLR.

Paso 2. Revise que la conexión con el resonador esté estable. Para la mayoría de lo microcontroladores PIC
comenzar con un resonador de 4MHz es suficiente.

Paso 3. Revise la fuente de poder. El microcontrolador PIC consume muy poca energía pero la fuente debe
estar filtrada. A la salida del rectificador, la corriente es directa pero pulsante y esto no es recomendable para
la fuente del microcontrolador. Para evitar esta pulsación, el capacitor electrolítico de mayor capacitancia
(470 µF) es colocado a la salida del rectificador.

Si el microcontrolador PIC detecta un dispositivo que hala mucha energía de la fuente de poder está en condiciones de
provocar un mal funcionamiento en las líneas de alimentación, así que el microcontrolador puede dejar de funcionar
correctamente y puede comenzar a mostrar un funcionamiento extraño o no apropiado. Además, los 7 segmentos del LED
pueden inducir una caída de tensión (El peor escenario es cuando todos los dígitos está en 8, porque el display requerirá más
potencia), y la fuente no es capaz de suministrar suficiente corriente (para el caso de una batería de 9V por ejemplo).

Algunos microcontroladores PIC tienen pines multifuncionales de entrada \ salida, como es el caso de la familia PIC16C62x
(PIC16C620, 621 y 622). Los microcontroladores pertenecientes a esta familia están provistos con comparadores análogos en el
puerto A. Antes de poner a trabajar estos chips, el puerto A es configurado a modo análogo, lo cual permite el uso de muchas
funciones del pin de este puerto. Cualquier microcontrolador PIC con entradas análogas puede después de ser reseteado mostrar
su propio modo análogo (sí los mismos pines son usados como líneas digitales deben ser antes configurados a modo digital).

Una de las posibles fuentes de problemas es que el cuarto pin del puerto A muestra un comportamiento particular cuando éste
es usado como salida (porque este pin tiene abierto colectores de salida en vez del utilizado estado bipolar). Esto implica que la
inscripción del 0 lógico en éste pin podría sin embargo ser configurado en el nivel bajo (low) , pero la inscripción de la unidad
lógica mantendrá la corriente fluctuante mientras se configura en el nivel alto (high). Para mantener Este pin actuando en una
forma apropiada una resistencia es colocada entre RA4 y 5V. La magnitud de esta resistencia puede ser entre 4.7K y 10K,
dependiendo de la intensidad de la corriente necesaria para el convertidor entrante (convected entrance). Éste pin funciona
como cualquier otro pin usado como entrada (todos los pines después de recetados son configurados como salidas).

Durante el trabajo con microcontroladores PIC se pueden esperar muchos más problemas. A veces lo que ha sido probado
parece que va a funcionar, pero eso no pasa cuando se ha sido descuidado o dependiendo del esfuerzo que se ha puesto en el
trabajo. Normalmente hay mas de una manera para resolver las cosas. Un ángulo diferente para ver las cosas podría traer
consigo una solución con el mismo esfuerzo.

___________________________________________________________________________
Libro para descarga Gratuita – Usted puede descargar la versión en Inglés en:
http://www.mikroelektronika.co.yu

You might also like