Sunteți pe pagina 1din 11

Instituto Tecnolgico Privado de Occidente.

Sexto Electrnica.



Electrnica Industrial


Investigacin
PicBasic





Christian Daniel Sen Gonzlez
Cdigo: 121207
Clave: 31










INTRODUCCION
El compilador PicBasic Pro (PBP) es nuestro lenguaje de programacin de nueva
generacin que hace mas fcil y rpido para usted programar micro controladores
Pic micro de Microchip Technology .
El lenguaje Basic es mucho ms fcil de leer y escribir que el lenguaje
ensamblador Microchip.
El PBP es similar al BASIC STAMP II y tiene muchas de las libreras y funciones
de los BASIC STAMP I y II. Como es un compilador real los programas se
ejecutan mucho ms rpido y pueden ser mayores que sus equivalentes STAMP.
.









Programacin de PICs y Lenguajes de programacin.

Justificacin: ltimamente hemos encontrado a muchos estudiantes y colegas
que nos preguntan acerca de cmo pueden iniciarse en la programacin de PIC
micro (Peripheral Interface Controller) es por esto que a continuacin se dan
algunas pautas y consejos tanto para quienes ya estn involucrados en el medio
como para quienes empiezan y desean hacerlo de la manera ms profesional
posible.
Objetivo: ayudar a aclarar dudas sobre los lenguajes de programacin para PI Cs
estableciendo comparaciones entre ellos y sacando conclusiones para ayudar a
las personas que se inician en este mundo y a despejar dudas a quienes ya estn
involucrados en l.
Utilidad: Para quienes quieren comparar ventajas y desventajas entre los
diferentes lenguajes de programacin para PIC. Para quienes quieren conocer
proveedores de compiladores para PIC. Para quienes quieren iniciarse en algn
lenguaje especfico de programacin para PIC hay ejemplos que les pueden servir
de introduccin.
Es muy comn que las personas que se inician en la programacin de
microcontroladores PIC de Microchip encuentren como primer obstculo el
lenguaje con el que se programarn dichos dispositivos.
En este artculo describir las opciones existentes sobre los lenguajes de
programacin sus ventajas y desventajas y las conclusiones finales.
Realmente cuando cargamos (quemamos) un PIC con un programa no lo
hacemos con ningn lenguaje, en realidad lo cargamos con OPCODES o cdigos
de operacin que por lo general estn en base hexadecimal, sin importar la gama
de PIC (baja, media o alta) esto siempre ser as. Un ejemplo de opcode para PIC
es:
286C
Que es una instruccin referente a GOTO 0X6C, es decir salte a la posicin 6C de
la memoria de programa.
Cuando se compila un programa cualquiera que sea y en el lenguaje que sea, se
genera una lista de OPCODES la cual quedar almacenada en el archivo con
extensin .hex.
Por ejemplo creamos la rutina ENCENDERLED, cuando compilemos se generar,
entre otros, un archivo ENCENDERLED. hex que es el archivo que realmente le
cargamos a la memoria de programa del PIC. Para efectuar la tarea de cargar el
archivo *.hex al PIC es necesario tener una herramienta de hardware llamada
programador que es la interfaz entre el computador y el pic.
Dentro de los lenguajes en los que programamos rutinas para PIC existen tres
posibilidades:
Lenguaje BASIC
Lenguaje C
Lenguaje Ensamblador (assembler)
Un error comn que cometen los principiantes cuando se les menciona la
posibilidad de programar en Basic o C es pensar que con Visual Basic o Visual
C++ pueden elaborar rutinas para PICs, pero en realidad lo que se debe tener en
cuenta es que existen compiladores especiales para estos lenguajes y por ende la
sintaxis es diferente de la de un lenguaje orientado a objetos.
A continuacin veremos detalladamente cada una de las tres posibilidades
enumeradas anteriormente, cada una con sus ventajas y desventajas asi como un
sencillo ejemplo de aplicacin en cada una de ellas.
1. El lenguaje BASIC:
Ventajas:
Es un lenguaje muy simple y con instrucciones fcilmente legibles, incluso por no
expertos.
Desventajas:
Nunca vas a tener el control del programa en cuanto tiempos de ejecucin y
control de registros bit a bit.
Es muy complicado el manejo de interrupciones simultneas en este lenguaje.
Tiene limitaciones cuando genera el archivo .hex, es decir no optimiza el tamao
de memoria de programa del PIC.
La mayora de compiladores para este lenguaje pueden utilizarse nicamente bajo
ambiente Windows.
Existen varias casas que producen compiladores para este lenguaje, entre ellas se
pueden mencionar a:
www.letbasic.com
www.melabs.com
www.basicmicro.com
El ms conocido y que a mi parecer es mejor entre ellos es el PICBASIC PRO de
MicroEngineering Labs Inc. No es gratuito.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200
milisegundos en lenguaje Basic empleando el software PICBASIC PRO:

Lenguaje C:
Ventajas:
Es un lenguaje de alto nivel mas cercano a la mquina.
Puedes construir rutinas matemticas fcilmente.
Puede ser de ayuda al combinarlo con Ensamblador sobre todo en la gama alta.
Se pueden crear macros con este lenguaje, para despus simplificar el cdigo en
diferentes desarrollos.
Es aceptado por la empresa fabricante Microchip, incluso ellos tienen algunos
compiladores C.
Desventajas:
Los programas al compilarlos pueden resultar un poco extensos y pesados por ello
debe tenerse en cuenta la capacidad de memoria de programa del PIC a utilizar.
Con este lenguaje tampoco se puede controlar del todo los tiempos y los registros
bit a bit.
Para este lenguaje existen tambin varias casas que producen software y
compiladores para este lenguaje entre ellas las ms importantes son:
www.microchip.com con sus compiladores C18 para la gama alta y C30 para los
dsPIC, ambos Como otras herramientas de esta marca, se puede incluir en el
entorno gratuito MPLAB IDE, y permite a los desarrolladores, llevar a cabo su
aplicacin en un lenguaje de alto nivel. No son del todo gratuitos.
www.ccsinfo.com Sus herramientas ms conocidas, son la serie de compiladores
para las distintas familias de microcontroladores Microchip PIC MCU: PCW IDE,
PCWH IDE y PCWHD IDE. Ofrecen la posibilidad de que el usuario pueda elegir el
compilador concreto para la familia que va a utilizar, y compilar en modo lnea de
comandos, tanto para Microsoft Windows, como para Linux. Para los usuarios de
Microsoft Windows, tambin existe la posibilidad de utilizar su potente entorno de
desarrollo PCWHD IDE, que incluye adems de los compiladores para todas las
familias de PICs y dsPICs, entre otras cosas, un editor de cdigo con
reconocimiento de comandos, un depurador ICD, y un Wizard que en base a lo
que el usuario le indique, generar la mayor parte del cdigo para inicializar el
microcontrolador. Adems incluyen una gran cantidad de libreras muy tiles para
asociar con la rutina que estamos desarrollando. Este compilador tambin puede
integrarse con MPLAB IDE. No es gratuito.
www.htsoft.com (HI-TECH) Sus herramientas ms conocidas son PICC y PICC18.
No son gratuitos.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200
milisegundos en lenguaje C empleando el software de CCS PCW IDE:
Lenguaje Ensamblador:
Ventajas:
Es el lenguaje de bajo nivel natural de la lnea PIC tanto para gama baja, media o
alta.
Con l se tiene un aprovechamiento eficiente de los recursos del PIC.
Se pueden crear macros con este lenguaje, para despus simplificar el cdigo en
diferentes desarrollos.
Con el se pueden controlar los tiempos y los registros bit a bit.
Excelente para manejar interrupciones simultneas.
Cuando se genera el archivo .hex ste es completamente optimizado.
Desventajas:
En realidad desde mi punto de vista no existe ninguna, excepto cuando no se tiene
experiencia en programacin puede tardarse el desarrollo de alguna rutina en
comparacin con los otros lenguajes.
El compilador para este lenguaje es el MPLAB IDE el cual se consigue totalmente
gratuito en la pgina de Microchip y constantemente estn sacando nuevas
versiones, debe aclararse que este solo funciona bajo ambiente Windows. Para
Linux existe un versin alternativa llamada: PIKLAB la cual presenta simuladores,
editores, ensambladores y soporta una gran cantidad de compiladores C para PIC.
Ejemplo: rutina que hace parpadear un led en el pin cero del puerto B cada 200
milisegundos en lenguaje Ensamblador empleando el software de Microchip
MPLAB IDE:
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.
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 OPERADORES ASOCIATIVIDAD
Alta @ not + - de derecha a izquierda

* / div mod and << >> de izquierda a derecha

+ - or xor de izquierda a derecha
Baja = <> < > <= >= 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
- Resta
* Multiplicacin
/ Divisin - punto flotante
div Divisin - redondear
mod Remanente

DIVISIN POR CERO Si un cero (0) se utiliza explcitamente como el segundo
operando en la operacin de divisin (x div 0), el compilador informa de un error y
no generar un cdigo. En caso de una divisin implcita, o sea, en el caso de que
el segundo operando sea un objeto cuyo valor es 0 (x div y, w y=0), el resultado
ser indefinido.
OPERADORES RELACIONALES Los operadores relacionales se utilizan para
comparar dos variables y determinar la validez de su relacin. En mikroBasic,
todos los operadores relacionales devuelven 255 si la expresin es evaluada como
verdadera (true). Si una expresin es evaluada como falsa (false), el operador
devuelve 0. Lo mismo se aplica a las expresiones tales como si la expresin es
evaluada como verdadera, entonces...
OPERADOR SIGNIFICADO EJEMPLO
CONDICIN DE
VERACIDAD
> es mayor que b > a si b es mayor que a
>=
es mayor o igual
que
a >= 5
si a es mayor o igual
que 5
< es menor que a < b si a es menor que b
<=
es menor o igual
que
a <= b
si a es menor o igual
que b
= es igual que a = 6 si a es igual que 6
<> no es igual que a <> b si a no es igual que b
OPERADORES LGICOS DE MANEJO DE BITS
Los operadores lgicos de manejo de bits se realizan sobre los bits de un
operando. Se asocian de izquierda a derecha. La nica excepcin es el
complemento not que realiza un desplazamiento de derecha a izquierda. Los
operadores de manejo de bits se enumeran en la siguiente tabla:
OPERANDO SIGNIFICADO EJEMPLO RESULTADO
<<
desplazamiento a la
izquierda
A = B << 2
B =
11110011
A =
11001100
>>
desplazamiento a la
derecha
A = B >> 3
B =
11110011
A =
00011110
and
Y lgico para manejo
de bits
C = A and B
A=11100011
B=11001100
C =
11000000
or
O lgico para manejo
de bits
C = A or B
A=11100011
B=11001100
C =
11101111
not
NO lgico para manejo
de bits
A = not B
B =
11001100
A =
00110011
xor
EXOR lgico para
manejo de bits
C = A xor B
A =
11100011
B =
11001100
C =
00101111
Los operadores de manejo de bits y (and), o (or) y xor realizan las operaciones
lgicas sobre los pares de bits de operandos apropiados. El operador not
complementa cada bit de un solo operando.

























Conclusin
Se trata de un entorno de programacin integrado, que adems de permitir la
creacin de programas en lenguaje assembler incorpora un muy completo
BASIC, con soporte para dispositivos 1-wire, LCD, RS-232 y muchos mas.
Otro aspecto destacable es la inclusin de una gran cantidad de mdulos de
E/S que simulan exactamente lo que esta pasando en nuestro programa,
incluidos un modulo LCD, teclado, osciloscopio, displays de 7 segmentos entre
otros

S-ar putea să vă placă și