Professional Documents
Culture Documents
PROGRAMACION
DOCENTE: ING. CARLOS MORENO PAREDES
ALUMNO: CARLOS RANGHEL SOTO
ESPINOZA
CODIGO: 2011235842
CURSO: MICROPROCESADORES
ESCUELA: ING.DE TELECOMUNICACIONES
UNFV
El mundo de los
microcontroladores
INTRODUCCIN
Los principiantes en electrnica creen que un microcontrolador es igual a un microprocesador. Esto no es cierto.
Difieren uno del otro en muchos sentidos. La primera y la ms importante diferencia es su funcionalidad. Para
utilizar al microprocesador en una aplicacin real, se debe de conectar con componentes tales como memoria o
componentes buses de transmisin de datos. Aunque el microprocesador se considera una mquina de
computacin poderosa, no est preparado para la comunicacin con los dispositivos perifricos que se le
conectan. Para que el microprocesador se comunique con algn perifrico, se deben utilizar los circuitos
especiales. As era en el principio y esta prctica sigue vigente en la actualidad.
Por otro lado, al microcontrolador se le disea de tal manera que tenga todas las componentes integradas en el
mismo chip. No necesita de otros componentes especializados para su aplicacin, porque todos los circuitos
necesarios, que de otra manera correspondan a los perifricos, ya se encuentran incorporados. As se ahorra
tiempo y espacio necesario para construir un dispositivo.
LENGUAJES DE PROGRAMACIN
El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina el cdigo ejecutable y est compuesto por una serie de ceros y unos,
aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el cdigo binario est compuesto por palabras de 12, 14 o 16 bits de
anchura. Cada palabra es interpretada por la CPU como una instruccin a ser ejecutada durante el funcionamiento del microcontrolador. Como es ms fcil
trabajar con el sistema de numeracin hexadecimal, el cdigo ejecutable se representa con frecuencia como una serie de los nmeros hexadecimales
denominada cdigo Hex. A todas las instrucciones que el microcontrolador puede reconocer y ejecutar se le denominan colectivamente Juego de instrucciones.
En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes .
Normalmente los programas se escriben en el lenguaje ensamblador cuando se requiere controlar completamente la ejecucin de programa.
Como el proceso de escribir un cdigo ejecutable era considerablemente arduo, en consecuencia fue creado el primer lenguaje de programacin denominado ensamblador (ASM). El proceso de programacin se hizo un poco ms
complicado. Por otro lado, el proceso de escribir un programa dej de ser una pesadilla. Las instrucciones en ensamblador consisten en las abreviaturas con significado. Un programa denominado ensamblador instalado en la PC
compila las instrucciones del lenguaje ensamblador a cdigo mquina (cdigo binario). Este programa compila instruccin a instruccin sin optimizacin. La ventaja principal del lenguaje ensamblador es su simplicidad y el hecho
de que a cada instruccin corresponde una localidad de memoria. Como permite controlar todos los procesos puestos en marcha dentro del microcontrolador, este lenguaje de programacin todava sigue siendo popular.
Por otro lado, los programas se ejecutan siempre a alta velocidad y en la mayora de casos no es necesario saber en detalle qu ocurre dentro del microcontrolador. A pesar de todos los lados buenos del lenguaje ensamblador, los
programadores siempre han necesitado un lenguaje de programacin similar al lenguaje utilizado en el habla cotidiana. Por ltimo, los lenguajes de programacin de alto nivel (Basic entre otros) fueron creados. La ventaja
principal de estos lenguajes es la simplicidad de escribir un programa. Varias instrucciones en ensamblador se sustituyen por una sentencia en Basic. El programador ya no tiene que conocer el conjunto de instrucciones del
microcontrolador utilizado. Ya no es posible conocer exactamente cmo se ejecuta cada sentencia, de todas formas ya no importa. Aunque siempre se puede insertar en el programa una secuencia escrita en ensamblador.
El proceso de escribir un programa en Basic. Al seleccionar la opcin apropiada, el programa ser compilado en el
ensamblador y luego en el cdigo hex que ser cargado en el microcontrolador.
Similar al lenguaje ensamblador, un programa especializado e instalado en la PC se encarga de compilar un
programa a cdigo mquina. A diferencia del ensamblador, los compiladores para los lenguajes de programacin
de alto nivel crean un cdigo ejecutable que no es siempre tan corto como el cdigo escrito en ensamblador.
Aqu est un ejemplo de cmo no se debe escribir un programa. Los comentarios no estn incluidos, nombres de etiquetas no tienen significado, secciones del cdigo no
estn agrupadas...Este programa funciona correctamente, pero slo el programador que lo escribi conoce su propsito y modo de ejecucin (como mximo uno o dos
das).
En la siguiente figura se muestra la estructura de un programa simple escrito en Basic, destacando las partes en las que consiste. Esto es un ejemplo de cmo se debe
escribir un programa. Las diferencias son ms que obvias...
ESTRUCTURA DE PROGRAMA
Similar a los otros lenguajes de programacin, Basic dispone de un conjunto de reglas estrictamente definidas que se deben observar al escribir un programa. Para escribir un programa
en Basic, es necesario instalar un software que proporciona el entorno de trabajo apropiado y entiende estas reglas en la PC... Al escribir una carta, se necesita un programa para
procesar palabras. En este caso, se necesita el compilador mikroBasic PRO for PIC.
A diferencia de la mayora de programas a los que est acostumbrado a manejar, el proceso de escribir programas en el compilador no empieza por seleccionar la opcin File>New, sino
Project>New. Por qu? Bueno, usted escribe un programa en un documento con extensin .mbas (mikroBasic). Una vez que se ha escrito el programa, el mismo se debe compilar en
cdigo HEX para crear un nuevo documento con extensin .hex. Al mismo tiempo el compilador generar automticamente varios documentos aparte de se. Por ahora el propsito de
estos documentos no importa. Por supuesto, hay algo para conectarlos todos. Usted ya lo adivina - se trata de un proyecto. El programa que escribe es slo una parte del proyecto.
Slo para estar seguro de que estamos hablando en los mismos trminos... A partir de ahora la palabra mdulo se refiere a un documento con extensin .mbas. El texto que contiene se refiere a un programa. Cada proyecto escrito en el
compilador mikroBasic PRO for PIC es de extensin .mbppi (microBasic Project for PIC) y consiste en un mdulo como mnimo (mdulo principal - Main Module).
Cada proyecto en el mikroBasic PRO for PIC requiere un solo mdulo principal. Lo identifica la palabra clave program y ordena al compilador por dnde empezar el proceso de la compilacin. Al crear con xito un proyecto vaco en Project
Wizard, el mdulo principal (main module) ser visualizado automticamente en la ventana Code Editor:
programMyProject ' El mdulo principal es denominado MyProject
main: ' Procedimiento principal
... '*
... '* Escribir el cdigo de programa aqu
... '*
end.
A la palabra clave program no le puede preceder nada, excepto comentarios. Como hemos mencionado anteriormente, el proyecto puede incluir a otros mdulos que, a diferencia del mdulo principal, empiezan por la palabra clave module.
Para que el compilador pueda reconocer todos los mdulos que pertenecen a un proyecto, es necesario especificarlos en el
mdulo principal por medio de la palabra clave include seguida por un nombre del mdulo entre comillas. La extensin de estos
ficheros no se debe incluir. Se permite slo un mdulo por clusula include. El nmero de las clusulas include no est limitado,
pero todas ellas deben estar especificadas inmediatamente despus del nombre del programa (mdulo principal). Ejemplo:
program MyProgram
' Inicio de programa (mdulo principal denominado
MyProgram)
' Otros mdulos incluidos son:
include "utils"
' Mdulo utils
include "strings"
' Mdulo strings
include "MyUnit"
' Mdulo MyUnit
...
IDENTIFICADORES
Los identificadores son los nombres arbitrarios asignados a los objetos bsicos del lenguaje teles como constantes, variables, funciones, procedimientos etc. A alguien se le ocurri
utilizar la palabra identificador en vez de utilizar el nombre. As de simple. Aqu estn las reglas a observar al utilizar los identificadores.
Los identificadores pueden incluir cualquiera de los caracteres alfabticos A-Z (a-z), los dgitos 0-9 y el carcter subrayado '_'.
El primer carcter de un identificador no puede ser un dgito.
Ningn identificador puede contener caracteres especiales tales como ! [{ # $ % & etc.
Basic no es sensible a la diferencia entre minsculas y maysculas, lo que significa que FIRST, first y First son identificadores idnticos.
El smbolo ^ (signo de intercalacin) se utiliza para denotar un operador exponencial, el smbolo * (asterisco) se utiliza para denotar la multiplicacin, mientras que los dems smbolos
tienen el significado comn.
COMENTARIOS
Los comentarios son las partes del programa utilizados para aclarar las instrucciones de programa o para proporcionar ms informacin al respecto.
En Basic, cualquier texto que sigue a un apstrofo (') se considera un comentario, Los comentarios no se compilan al cdigo ejecutable. El
compilador es capaz de reconocer los caracteres especiales utilizados para designar dnde los comentarios comienzan y terminan y no hace nada
de caso al texto entre ellos durante la compilacin. Aunque los comentarios no pueden afectar a la ejecucin de programa, son tan importantes
como cualquier otra parte de programa. Aqu est el porqu... Con frecuencia es necesario mejorar, modificar, actualizar, simplificar un programa...
No es posible interpretar incluso los programas simples sin utilizar los comentarios.
ETIQUETAS
Las etiquetas proporcionan el modo ms fcil de controlar el flujo de programa. Se utilizan para denotar las
lneas particulares en el programa donde se deben ejecutar la instruccin de salto y la subrutina apropiada.
Todas las etiquetas deben terminar por : as que el compilador las puede reconocer con facilidad.
CONSTANTES
Las constantes son los nmeros o caracteres cuyo valor no puede ser cambiado durante la ejecucin de programa. A diferencia de las variables, las
constantes se almacenan en la memoria ROM del microcontrolador para guardar el mayor espacio posible de la memoria RAM. El compilador
reconoce las constantes por sus nombres y el prefijo const. Cada constante se declara bajo un nombre nico que debe ser un identificador vlido. Las
constantes pueden ser en formatos decimal, hexadecimal o binario. El compilador los distingue por su prefijo. Si una constante no lleva prefijo, se
considera decimal por defecto.
FORMATO
PREFIJO
Decimal
Hexadecimal
Binario
EJEMPLO
const MAX = 100
0x o $
Punto flotante
En el siguiente ejemplo, una constante denominada T_MAX se declara de modo que tenga el
valor fraccional 32.60. Ahora, el programa puede comparar la temperatura anteriormente
medida con la constante con el nombre con significado en vez del nmero 32.60.
VARIABLES
Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado durante la ejecucin de
programa. Cada variable se declara bajo un nombre nicoque debe ser un identificador vlido. Por ejemplo, para sumar
dos nmeros (nmero1 + nmero2) en el programa, es necesario tener una variable para representar qu es lo que
llamamos suma en vida cotidiana. En este caso, nmero1, nmero2 y suma son variables. La sintaxis es la siguiente:
SMBOLOS
Los smbolos en Basic permiten crear los macros simples sin parmetros. Cualquier lnea de cdigo se puede reemplazar por un solo identificador.
Los smbolos pueden aumentar legibilidad y reutilizacin de cdigo cuando se utilizan correctamente.
Los smbolos deben ser declarados al principio del mdulo, bajo el nombre del mdulo y la directiva opcional include. El mbito de un smbolo es
siempre limitado al mdulo en el que ha sido declarado.
DESCRIPCIN
TAMAO
(NMERO DE
BITS)
RANGO DE
VALORES
bit
Un bit
0o1
sbit
Un bit
0o1
byte, char
Carcter
0 ... 255
short
Entero con
signo corto
word
Entero sin
signo
16
0 ... 65535
integer
Entero con
signo
16
-32768 ...
32767
longword
Palabra de 32
bits
32
0 ...
4294967295
longint
Palabra de 32
bits asignada
32
2147483648 ...
2147483647
32
1.175494350
82*10-38...
6.805647744
07*1038
TIPO DE DATO
float
Punto flotante
dim a as byte
dim b as short
'...
b = -1
a = byte(b) ' a is 255, not -1
' El dato no cambia su representacin binaria %11111111
' pero el compilador la interpreta de la manera diferente
OPERADORES
Un operador es un smbolo que denota una operacin aritmtica, lgica u otra operacin particular. Cada operacin se realiza sobre uno o ms operandos (variables o
constantes) en una expresin. Adems, cada operador dispone de la ejecucin de prioridad y de la asociatividad. Si una expresin contiene ms de un operando, los
operandos se ejecutarn en orden de su prioridad. Hay 4 categoras de prioridad en Basic. Los operadores que pertenecen a la misma categora tienen igual prioridad.
Si dos o ms operandos tienen el mismo nivel de prioridad, las operaciones se realizan de izquierda a derecha. Los parntesis se utilizan para definir la prioridad de la
operacin dentro de la expresin. A cada categora se le asigna una de dos reglas de asociatividad: de izquierda a derecha o de derecha a izquierda. Refirase a la
siguiente tabla:
PRIORIDAD
Alta
OPERADORES
ASOCIATIVIDAD
@ not + -
de derecha a
izquierda
de izquierda a
* / div mod and <<
derecha
>>
+ - or xor
Baja
de izquierda a
derecha
de izquierda a
derecha
OPERADORES ARITMTICOS
Los operadores aritmticos se utilizan para realizar operaciones aritmticas. Estas operaciones se realizan
sobre los operandos numricos y siempre devuelven los resultados numricos. Las operaciones binarias se
realizan sobre dos operandos, mientras que las operaciones unitarias se realizan sobre un operando. Todos los
operadores aritmticos se asocian de izquierda a derecha.
OPERADOR
OPERACIN
Adicin
*
/
div
mod
Resta
Multiplicacin
Divisin - punto flotante
Divisin - redondear
Remanente
OPERADOR
SIGNIFICAD
O
EJEMPLO
CONDICIN
DE
VERACIDAD
>
es mayor
que
b>a
sibes
mayor quea
>=
es mayor o
igual que
a >= 5
siaes mayor
o igual que5
<
es menor
que
a<b
siaes
menor queb
<=
es menor o
igual que
a <= b
siaes
menor o
igual queb
a=6
siaes igual
que6
es igual que
no es igual
siano es
OPERAND
O
<<
>>
and
or
not
xor
SIGNIFICA
DO
EJEMPLO
RESULTADO
desplazam
iento a la A = B <<
izquierda 2
B=
A=
11110011 11001100
desplazam
iento a la A = B >>
derecha
3
B=
A=
11110011 00011110
Y lgico
para
C = A and
manejo de B
bits
O lgico
para
manejo de C = A or B
bits
NO lgico
para
manejo de A = not B
bits
EXOR
lgico para
C = A xor
manejo de
B
A=111000
11
C=
B=110011 11000000
00
A=111000
11
C=
B=110011 11101111
00
B=
A=
11001100 00110011
A=
11100011 C =
B=
00101111
Los operadores de manejo de bitsy(and),o(or) yxorrealizan las operaciones lgicas sobre los
pares de bits de operandos apropiados. El operador not complementa cada bit de un solo operando.
$1234 and $5678 ' resultado es $1230 porque:
' $1234 : 0001 0010 0011 0100
' $5678 : 0101 0110 0111 1000
' ---------------------------' y : 0001 0010 0011 0000 ... eso es, $1230
$1234 or $5678 'equivale a $567C
$1234 xor $5678 ' equivale a $444C
not $1234 ' equivale a $EDCB
OPERADORES DE DESPLAZAMIENTO
Hay dos operadores de desplazamiento de bits en mikroBasic. Son el operador << que realiza un
desplazamiento de bits a la izquierda y el operador >> que realiza un desplazamiento de bits a la
derecha. Los operadores de desplazamiento de bits tienen dos operandos cada uno. El operando
izquierdo es un objeto que se desplaza, mientras que el derecho indica el nmero de posiciones a
mover el objeto. Los dos operandos deben ser de tipo entero. El operando derecho debe ser el valor
positivo.
Al desplazar a la izquierda los bits que salen por la izquierda se pierden, mientras que los nuevos
bits a la derecha se rellenan con ceros. Por lo tanto, el desplazamiento del operando que carece de
signo a la izquierda por n posiciones equivale a multiplicarlo por 2 nsi todos los bits descartados son
ceros. Lo mismo se puede aplicar a los operandos con signo si todos los bits descartados son iguales
que el signo de bit.
SENTENCIAS CONDICIONALES
Las condiciones son ingredientes comunes de un programa. Las condiciones permiten ejecutar una o
varias sentencias dependiendo de validez de una expresin. En otras palabras, Si se cumple la
condicin (...), se debe hacer (...). De lo contrario, se debe hacer (...). Una sentencia condicional
puede ser seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.
SENTENCIA CONDICIONAL IF
La sintaxis en una forma simple de la sentencia if es:
if expresin then
operaciones
end if
Si el resultado de la expresin es verdadero (distinto de 0), las operaciones se realizan y el programa
contina con la ejecucin. Si el resultado de la expresin es falso (0), las operaciones no se realizan y
el programa contina inmediatamente con la ejecucin.
El operador if se puede utilizar en combinacin con el operador else:
if expresin then
operaciones1
else
other operaciones2
end if
Si el resultado de la expresin es verdadero (distinto de 0), las operaciones1 se realizan. De lo
contrario, las operaciones2 se realizan. Despus de realizar estas operaciones, el programa contina
con la ejecucin.
SENTENCIAS IF ANIDADAS
La sentencia if anidada necesita una atencin adicional. Es una sentencia utilizada dentro de otra sentencia if.
Siguiendo la regla, se descomponen empezando por la sentencia if ms anidada, mientras que cada sentencia
else se enlaza a la ms cercana sentencia if disponible a la izquierda.
select case decimal_digit 'El valor del dgito decimal se est comprobando
case 0
mask = %01111110 'Visualizar "0"
case 1
mask = %00110000 'Visualizar "1"
case 2
mask = %01101101
case 3
mask = %01111001
case 4
mask = %00110011
case 5
mask = %01011011
case 6
mask = %01011111
case 7
mask = %01110000
case 8
mask = %01111111
case 9
mask = %01111011
end select
Todo lo que usted ha ledo hasta ahora sobre la programacin en Basic es slo teora. Es til saberlo, pero no se olvide de que este lenguaje de
programacin no est tan relacionado con algo concreto y tangible. Podr experimentar muchos problemas con los nombres exactos de los
registros, sus direcciones, nombres de los bits de control particulares, y muchos ms al empezar a escribir su primer programa en Basic. El punto
es que usted necesita ms que una teora para que el microcontrolador haga algo til.
Teniendo en cuenta de que Es mejor prevenir que curar, hay que avisarle de todas las cosas por resolver antes de que empiece a escribir un
programa para el microcontrolador. Antes que nada, necesita un programa instalado en la PC que eniende el lenguaje de programacin a
utilizar y que proporciona un entorno de trabajo apropiado. No hay un compilador apropiado para un tipo de compilador, tampoco para todos los
microcontroladores. Normalmente se utiliza un software para programar los similares microcontroladores de un fabricante.
En las secciones anteriores hemos presentado el lenguaje mikroBasic, especialmente diseado para programar los PIC. Ahora, cuando sabe lo
suficiente sobre ese lenguaje, es hora de presentar el software que utilizar para desarrollar y editar los proyectos. Este software se le denomina
Entorno de desarrollo integrado (Integrated Developement Environment - IDE) e incluye todas las herramientas necesarias para desarrollar los
proyectos (editor, depurador etc.).
Como implica su nombre, mikroBasic PRO for PIC est pensado para escribir los programas para los microcontroladores PIC en Basic. Este
compilador contiene las informaciones de arquitectura de los microcontroladores PIC (registros, sus direcciones exactas, mdulos de memoria,
funcionamiento de sus mdulos, juego de instrucciones, disposicin de pines etc.). Adems incluye las herramientas apropiadas para programar
los microcontroladores PIC. Lo primero que tiene que hacer al iniciar el compilador es seleccionar el chip y frecuencia de operacin de la lista.
Esto no es un final, sino un comienzo. Por fin puede empezar a escribir el programa en Basic.
El proceso de crear y ejecutar un proyecto contiene los siguientes pasos:
Crear un proyecto (nombre de proyecto, configuracin de proyecto, dependencias entre archivos);
Editar un programa;
Compilar el programa y correccin de errores;
Depurar (ejecutar el programa paso a paso para asegurarse de que se ejecutan las operaciones deseadas);
Programar un microcontrolador (cargar el archivo .hex generado por el compilador en el microcontrolador utilizando el programador PICflash).
Basta con seguir las instrucciones y pulsar sobre Next, OK, Next, Next... En general, es el mismo
procedimiento menos la ltima opcin: 'Do you want to install PICFLASH v7.11 programmer?'. Para
qu sirve este software? Como ya hemos dicho, el compilador compila un programa escrito en Basic
en cdigo hex. El siguiente paso es cargar ese cdigo en el microcontrolador. Por eso es necesario
instalar el programador PICFLASH. Hgalo! Una vez ms: Next, OK, Next, Next...
Una vez completada la instalacin del PICFLASH, el sistema operativo le preguntar a instalar otro
programa similar. Es un software para programar una familia de los microcontroladores PIC que
funcionan en modo de bajo consumo (3.3 V). Salte este paso.
El ltimo paso - la instalacin del controlador (driver)!
El controlador a instalar depende del sistema operativo utilizado. En este caso, el ordenador utiliza el
sistema operativo de 32 bits Windows XP. Seleccione la carpeta Win 2000, XP, 2003 32-bit que
contiene el controlador apropiado e inicie la instalacin.
Desgraciadamente, una descripcin detallada de todas las opciones disponibles de este IDE nos
tomara mucho tiempo. Por eso vamos a describir slo lo ms importante del compilador mikroBasic
PROfor PIC. De todos modos, para obtener ms informacin presione el botn de Ayuda (Help) [F1].
En el captulo cuatro se presentan varios ejemplos y se da una explicacin detallada de cmo crear
un nuevo proyecto y escribir un programa.
Un programa escrito en el compilador mikroBasic PROfor PIC no es un archivo autnomo, sino que forma
parte de un proyecto que incluye un cdigo hex, un cdigo ensamblador y otros archivos. Algunos de ellos
se requieren para compilar el programa, mientras que otros se crean durante el proceso de compilacin. La
ventana Project Manager le permite manejar todos los ficheros del proyecto. Basta con pulsar con el botn
derecho del ratn sobre una carpeta y seleccionar la opcin que necesita para su proyecto.
Las libreras contienen un gran nmero de funciones listas para ser utilizadas. Las libreras en mikroBasic proporcionan muchas facilidades para escribir programas para
los microcontroladores PIC. El compilador debe conocer todas las dependencias del archivo fuente de mikroBasic para compilarlo apropiadamente. Abra la ventana
Library Manager, y marque las que quiere utilizar en el programa. Al marcar una librera, se aade automticamente al proyecto y se enlaza durante el proceso de la
compilacin. As, no necesita incluir las libreras manualmente en sus archivos del cdigo fuente por medio de la directiva del preprocesador #include. Por ejemplo, si su
programa utiliza un LCD no hace falta escribir nuevas funciones ya que al seleccionar la librera Lcd, usted podr utilizar funciones listas para ser utilizadas de la librera
Lcd en su programa. Si esta librera no est seleccionada en la ventana Library Manager, cada vez que intente utilizar una funcin de la librera LCD, el compilador le
informar de un error. Una descripcin de cada librera est disponible al pulsar con el botn derecho del ratn sobre su nombre y seleccionar la opcin Help.
CODE EXPLORER (Explorador de cdigo)
La ventana Code Explorer le permite localizar funciones y procedimientos dentro de los programas largos. Por
ejemplo, si usted busca una funcin utilizada en el programa, basta con pulsar dos veces sobre su nombre en
esta ventana, y el cursor estar automticamente posicionado en la lnea apropiada en el programa.
PROJECT SETTINGS (Configuracin de proyectos)
Al compilar un proyecto, el compilador genera el archivo .hex que se cargar en el microcontrolador. Estos archivos
sern diferentes ya que depende del tipo del microcontrolador as como del propsito de la compilacin. Por esta
razn es necesario ajustar algunos parmetros de proyectos utilizando la ventana Project Settings.
Device(dispositivo): Al seleccionar el tipo del microcontrolador a utilizar permite al compilador extraer el archivo de
definicin asociado. El archivo de definicin de un microcontrolador contiene la informacin especfica de sus registros
SFR, de sus direcciones de memoria y algunas variables de programacin especficas a ese tipo del microcontrolador.
Es obligatorio crear un archivo .hex compatible.
Oscillator(oscilador): Se debe especificar la velocidad de operacin del microcontrolador. Por supuesto, este valor
depende del oscilador utilizado. El compilador la necesita para compilar rutinas, lo que requiere informacin del
tiempo (por ejemplo, la funcin Delay_ms). Ms tarde, el programador necesitar esta informacin tambin. La
velocidad de operacin se configura de modo que permita al oscilador interno del microcontrolador funcionar a una
frecuencia seleccionada.
Build/Debugger Type:Todo el proceso de compilar (building) est compuesto por anlisis sintctico (parsing),
compilar, enlazar (linking) y generar los archivos .hex. El tipo de compilacin le permite ajustar el modo de
compilacin. Dependiendo del modo seleccionado, difieren los archivos generados a cargar en el microcontrolador.
Build type - release:Al elegir esta opcin, el compilador no puede afectar ms a la ejecucin de programa despus
de la compilacin. El programa a cargar en el microcontrolador no ser modificado de ninguna manera.
Build type - ICD debug:El archivo .hex generado contiene los datos adicionales que permiten el funcionamiento del
depurador. Una vez completado el proceso de la compilacin y cargado el programa en la memoria del
microcontrolador, el compilador se queda conectado al microcontrolador por medio del cable USB y el programador, y
todava puede afectar a su funcionamiento. Una herramienta denominada mikroICD (Depurador en circuito - In Circuit
Debugger) permite ejecutar el programa paso a paso y proporcionar un acceso al contenido actual de todos los
registros del microcontrolador.
El simulador software se puede utilizar en ambos modos de compilacin para el propsito de depurar. Le permite
simular su programa al reproducir el comportamiento del microcontrolador. El simulador no utiliza los dispositivos
reales para simular el funcionamiento del microcontrolador, as que algunas operaciones no pueden ser reproducidas
(por ejemplo, interrupcin). De todos modos, resulta ms rpido depurar un programa por medio de un simulador.
Adems, no se requiere ningn dispositivo destino.
Note que es posible modificar cualquier configuracin en cualquier momento mientras se edita el programa. No se
olvide de recompilar y reprogramar su dispositivo despus de modificar una configuracin.
Al escribir un programa, compile su cdigo de forma regular con el propsito de corregir cunto ms errores de sintaxis.
Asimismo usted puede compilar su programa cada vez que se complete la redaccin de una nueva funcin as como probar
su comportamiento al utilizar modo de depuracin. De este modo, resulta ms fcil solucionar los errores de programa. De lo
contrario, usted tendr que editar el programa entero.
COMPILAR Y SOLUCIONAR ERRORES
Para compilar su cdigo, pulse sobre la opcin Build en el men Project. En realidad, el proyecto entero se ha compilado, y si
la compilacin se ha realizado con xito, se generarn los archivos de salida (asm, .hex etc.). Una compilacin se ha realizado
con xito si no se ha encontrado ningn error. Durante el proceso de compilacin se generan muchos mensajes que se
visualizan en la ventana Messages. Estos mensajes consisten en informacin, advertencia y errores. Cada error encontrado se
asocia con su lnea de programa y su descripcin. Como un error en su cdigo puede generar mucho ms errores,
simplemente debe intentar solucionar el primer error en la lista y despus recompile su programa. En otras palabras, es
recomendable solucionar los errores uno a uno.
En el ejemplo anterior el programa informa de un error de sintaxis en la lnea 80. La compilacin le permite corregir su
programa por medio de solucionar todos los errores en mikroBasic. Cuando todos los errores se solucionen, su programa
est listo para ser cargado en el microcontrolador. De todas formas, su tarea todava no est terminada, porque an no
sabe si su programa se comporta como se esperaba o no.
DEPURAR EL PROGRAMA
Como ya hemos visto, hay dos modos de depurar: un depurador software que simula el funcionamiento del
microcontrolador (modo por defecto) y depurador hardware (mikroICD) que lee directamente el contenido de la
memoria del microcontrolador. El procedimiento de depuracin es el mismo sin reparar en el modo elegido. En caso de
elegir la opcin ICD debug, hay que cargar el programa en el microcontrolador antes de depurarlo. La depuracin es un
paso muy importante ya que permite probar el programa despus de una compilacin realizada con xito, o solucionar
los errores descubiertos mientras se ejecuta el programa.
Para iniciar la depuracin, pulse sobre la opcin Start debugger del men Run. El editor del cdigo ser ligeramente
modificado automticamente y aparecer una ventana denominada Watch Values. El principio de depuracin se basa
en ejecutar el programa paso a paso y monitorear el contenido de los registros y los valores de las variables. De este
modo, es posible comprobar el resultado de un clculo y ver si algo inesperado ha ocurrido. Al ejecutar el programa
paso a paso, podr localizar los problemas con facilidad. Durante una depuracin el programa ser modificado, por lo
que usted siempre debe recompilar el programa despus de cada correccin, y reiniciar el depurador para comprobar
qu ha sido modificado.
SIMULADOR SOFTWARE
Si quiere ser un programador y dedicarse a programar los microcontroladores, tenga en cuenta de que los programas
nunca funcionan al primer intento. Por eso, empiece a funcionar un simulador. El simulador es una parte integral del
compilador utilizado para simular el funcionamiento del microcontrolador.
Antes de empezar a utilizar el simulador, seleccione el modo de funcionamiento en la ventana Project Settings (Build type release), compile el programa y pulse sobre la opcin Run /Start Debugger.
El compilador se pone automticamente en el modo de simulacin. En este modo se monitorea el estado de todos los bits de
registros y se le permite ejecutar el programa paso a paso durante el monitoreo del funcionamiento del microcontrolador en la
pantalla.
Hay varios iconos, utilizados para el funcionamiento del simulador, que aparecern en la barra de herramientas cuando el
compilador entre en este modo.
La lnea que se est ejecutando actualmente est marcada en azul. Es posible leer el contenido de
registros y variables seleccionados en la ventana Watch Values en cualquier momento. Para saltar
directamente a los puntos de ruptura, utilice el comando Run/Pause Debugger.
El depurador software y hardware tienen la misma funcin de monitorear el estado de los registros durante la ejecucin del
programa. La diferencia es que el depurador software simula ejecucin de programa en una PC, mientras que el depurador ICD
(depurador hardware) utiliza el microcontrolador. Cualquier cambio de estado lgico de los pines se indica en el registro (puerto)
apropiado. Como la ventana Watch Values permite monitorear el estado de todos los registros, resulta fcil comprobar si un pin
est a cero o a uno. La ltima modificacin est marcada en rojo en la ventana Watch Values. Esto le permite localizar la
modificacin en el archivo list durante el proceso de la depuracin. Para visualizar esta ventana es necesario seleccionar la opcin
View/Windows/Watch Values. Entonces usted puede hacer una lista de re-gistros/variables que quiere monitorear.
Si quiere saber cunto tiempo tarda un microcontrolador en ejecutar una parte del programa, seleccione la opcin Run/View
Stopwatch. Aparecer una ventana como se muestra en la figura a la derecha.Cmo funciona un cronmetro? Eso es pan
comido...El tiempo que tarda un comando (step into, step over, run/pause etc.) en ejecutarse por el depurador se mide
automticamente y se visualiza en la ventana Stopwatch. Por ejemplo, se mide tiempo para ejecutar un programa, tiempo para
ejecutar el ltimo paso etc.
DEPURADOR EN CIRCUITO
La otra forma de comprobar la ejecucin de programa es al utilizar el depurador mikroICD (depurador en circuito). El mikroICD
(depurador en circuito) es una parte integral del programador PICflash. Se utiliza con el propsito de probar y depurar los
programas. El proceso de probar y depurar se realiza al monitorizar los estados de todos los registros dentro del microcontrolador
durante su funcionamiento en entorno real. Para habilitar la depuracin, es necesario seleccionar las opciones Build Type-ICD
Debug y Debugger-mikroICD antes de cargar el programa en el microcontrolador. Tan pronto como se inicie el depurador mikroICD,
aparecer una ventana como se muestra en la siguiente Figura. El depurador mikroICD se comunica con el microcontrolador PIC
por sus pines utilizados para la programacin. Por eso no se pueden utilizar como pines de E/S durante la ejecucin de la
depuracin de programa. Durante la operacin del depurador mikroICD, el programador y la PC deben estar conectados al utilizar
un cable USB.
En este ejemplo la lnea de programa 31 est marcada por el azul, lo que quiere decir que es la siguiente en
ser ejecutada. El estado actual de todos los registros dentro del microcontrolador se puede visualizar en la
ventana Watch Values del mikroICD.
Despus de ejecutar el comando Step Over [F8] el microcontrolador ejecutar la lnea de programa 31. La
siguiente lnea en ser ejecutada (32) est marcada por el azul. El estado de los registros cambiados durante
la ejecucin de esta instruccin se puede visualizar en la ventana Watch Values.
El terminal USART representa una sustitucin para la estndar Windows Hyper Terminal. Se puede utilizar para controlar el
funcionamiento del microcontrolador que utiliza la comunicacin USART. Tales microcontroladores estn incorporados en
un dispositivo destino y conectados al conector RS232 de la PC por medio de un cable serial. La ventana USART terminal
dispone de opciones para configurar la comunicacin serial y visualizar los datos enviados/recibidos.
EDITOR EEPROM
Al seleccionar la opcin EEPROM Editor del men Tools, aparecer una ventana como se muestra en la siguiente figura. As es
cmo funciona la memoria EEPROM del microcontrolador. Si quiere cambiar de su contenido despus de cargar el programa en el
microcontrolador, sta es la forma correcta de hacerlo. El nuevo contenido es un dato de un tipo especfico (char, int o double),
primero debe seleccionarlo, introducir el valor en el campo Edit Value y pulsar sobre Edit. Luego, pulse sobre el botn Save para
guardarlo como un documento con extensin .hex. Si la opcin Use EEPROM in Project est activa, los datos se cargarn
automticamente en el microcontrolador durante el proceso de la programacin.
VENTANA ASCII CHART
Si necesita representar numricamente un carcter ASCII, seleccione la opcin ASCII chart del men Tools. Aparecer una tabla,
como se muestra en la figura que est a continuacin.
Usted probablemente sabe que cada tecla de teclado est asociada con un cdigo (cdigo ASCII). Como se puede ver, los
caracteres que representan los nmeros tienen valores diferentes. Por esta razn, la instruccin de programa para visualizar
el nmero 7 en un LCD no visualizar este nmero, sino el equivalente a la instruccin BEL. Si enva el mismo nmero en
forma de un carcter a un LCD, obtendr el resultado esperado - nmero 7. Por consiguiente, si quiere visualizar un nmero
sin convertirlo en un carcter apropiado, es necesario aadir el nmero 48 a cada dgito en el que consiste el nmero a
visualizar.
EDITOR DE SIETE SEGMENTOS
Un editor de siete segmentos le permite determinar con facilidad el nmero a poner en un puerto de salida con el propsito
de visualizar un smbolo deseado. Por supuesto, se da por entendido que los pines del puerto deben estar conectados a los
segmentos del visualizador de manera apropiada. Basta con colocar el cursor en cualquier segmento del visualizador y pulsar
sobre l. Se visualizar inmediatamente el nmero a introducir en el programa.
Un cdigo generado que utiliza herramientas para controlar los visualizadores LCD y GLCD contiene
funciones de la librera Lcd. Si las utiliza en el programa, no se olvide de marcar la caja de chequeo
junto a esta librera en la ventana Library Manager. As el compilador ser capaz de reconocer estas
funciones correctamente.