Está en la página 1de 20

MICROPROCESADORES

Estructura de un programa en Basic

MICROPROCESADORES
DIFERENCIA ENTRE UN PROGRAMA EN BASIC Y ASSAMBLER

BASIC

ASSAMBLER

MICROPROCESADORES
CARACTERSTICAS PRINCIPALES DEL LENGUAJE DE PROGRAMACIN BASIC
Similar al uso de cualquier lengua que no est limitada a un procesador o
sistema operativo. Esto puede ser un problema, ya que Basic vara ligeramente
dependiendo de su aplicacin
El Basic tratado a continuacin es especficamente el utilizado para PIC.
El Basic es un lenguaje de programacin simple y fcil de entender. Para
utilizarlo correctamente, basta con conocer slo unos pocos elementos bsicos
en los que consiste cada programa. Estos son:
- Identificadores: Etiquetas , variables , alias , arreglos, constantes, cadena de
constantes y simbolos
- Instrucciones
- Operadores y
- Directivas

MICROPROCESADORES
IDENTIFICADORES DE PIC BASIC

Etiquetas: Son palabras que se utilizan para sealar el inicio de una rutina en el programa
Se debe colocar : luego de la etiqueta. Ej:
Inicio:
Variables: Son palabras que se utilizan para almacenar valores que cambian en la
ejecucin del programa
Syntaxis: label VAR size{.modifiers}
Las etiquetas pueden contener hasta 32 caracteres, La directiva VAR es una palabra
reservada y el tamao (Size) es la cantidad de espacio que se usara de la RAM
Ejemplo s:
Book var word
Page var byte
Letter var bit

MICROPROCESADORES

Alias: Son palabras que tienen igual asignacin que una variable ya declarada.
Ej: page var byte
Letter0 var page.0

letter0 es el bit0 del byte page


letter0 es el bit0 del byte page

Arreglos: Son un conjunto de variables.


Ej: Chapter var byte[10] Esto indica que chapter es: chapter[0],
chapter[1], , chapter[10], pudiendose seleccionandose el indice para
seleccionar el elemento deseado del arreglo.
Por limitaciones de espacio los arreglos solo pueden contener los siguientes
elementos de acuerdo a su tipo: Bit 128 , Byte 64, Word 32

MICROPROCESADORES
Constantes : Las llamadas constantes pueden ser creadas de manera similar a las
variables. Puede ser mas conveniente usar un nombre de constante en lugar de un
nmero constante. Si el nmero necesita ser cambiado, nicamente puede ser
cambiando en un lugar del programa donde se define la constante. No pueden
guardarse datos variables dentro de una constante.
Ejemplo: Mice con 3
En Basic Pro se pueden definir constantes numricas en tres bases: decimal, binario y
hexadecimal.
Valores binarios son definidos usando el prefijo % ,
Valores hexadecimales usando el prefijo $.
Y los valores decimales se toman por defecto y no requieren prefijo.
Ej: %100 valor binario para el decimal 4.
$100 valor hexadecimal para el decimal 256.
Para facilitar la programacin, los caracteres son convertidos en sus equivalentes ASCII.
La constante debe ser puesta entre comillas y contener slo un carcter (de lo
contrario, ellas son una cadena de constantes).
A ASCII valor para el decimal 65

MICROPROCESADORES
BP no provee capacidad de manejo de cadenas, pero las cadenas pueden ser usados
con algunos comandos.
Una cadena contiene uno o ms caracteres y es delimitado entre comillas.
Hello String (forma abreviada de H, e, l, l, o)

Las cadenas son usualmente tratadas como una lista de valores de caracteres
individuales
SMBOLOS : provee otro mtodo para renombrar (darle alias) a variables y constantes.
Con la directiva SYMBOL, esta no puede ser usado para crear una variable.
Ejemplo:
SYMBOL lion = cat cat fue previamente creada usando VAR
SYMBOL mouse = 1 igual que mouse con 1

MICROPROCESADORES
Las operaciones matematicas usan un formato de hasta 16bits por lo que una
multipliacion puede producir 32, en ese caso con los operadores de multiplicacion se
indica donde se desea se guarde cada word (16 bits)

Ej:

W2 = W1 * W0 la parte LS se coloca en W2
W2 = W1 ** W0 la parte MS de se colaca en W2

Operadores logicos
& AND
| OR
^ XOR
&/ NAND
| / NOR
^ / EXXOR

MICROPROCESADORES

DECLARACIONES MLTIPLES
Para permitir programas mas compactos y agrupamientos lgicos de comandos
relacionados, PBP soporta el uso de (:) para separar comandos ubicados en la
misma lnea. Los siguientes dos ejemplos son equivalentes.
W2 = W0
W0 = W1
W1 = W2
Es lo mismo que:
W2 = w0 : W0 = W1 : W1 = W2
En los dos casos, el tamao del cdigo generado es el mismo.
CARCTER DE EXTENSIN DE LNEA
El nmero mximo de caracteres que puede aparecer en una lnea PBP es
256. Declaraciones muy largas pueden ser extendidas a la lnea siguiente
usando el carcter ( _ ) al final de cada lnea a ser continuada.
Branch B0 , [label0, label1, label2, _
Label3, label4]

MICROPROCESADORES

INCLUDE
Se puede agregar archivos fuente BASIC a un programa PBP usando INCLUDE. Usted
puede tener su rutina standard, definiciones u otros archivos que desee guardar en forma
separada. Los archivos de definicin de modo serial y de stamp son ejemplo de esta.
Estos archivos pueden ser incluidos en programas donde ser necesario, pero no en
programas donde no se los necesita.
Las lneas de cdigo fuente del archivo incluido son insertadas dentro del programa
exactamente donde se coloca el INCLUDE.
INCLUDE modedefs.bas

MICROPROCESADORES
OPERADORES MATEMTICOS

PBP efecta todas las operaciones matemticas en urden jerrquico .Esto significa que existe
precedencia para los operadores .Multiplicacin y divisin son efectuados antes que suma y resta ,
por ejemplo. Para asegurarse que las operaciones son efectuadas en el orden que se desea , use
parntesis para agrupar las operaciones.
A = ( B + C ) * ( D - E )
Todas las operaciones matemticas se realizan sin signo y con una precisin de 16 bit. Los
operadores soportados son :

MICROPROCESADORES
OPERADORES MATEMTICOS

MICROPROCESADORES

Ejemplo de programa para hacer parpadear un LED conectado al puerto


PORTB.0 , aproximadamente una vez por segundo.
loop:
high PORTB.0 enciende el LED
pause 500
demora de .5 segundos
Low PORTB.0 apaga el LED
pause 500
demora de .5 segundos
goto loop
vuelve a loop y hace parpadear el LED para siempre
end

MICROPROCESADORES
MULTIPLICACIN
PBP efecta multiplicaciones 16 x 16 bits .El operador * devuelve los 16 bit inferiores
del resultado de 32 bit. Esta es la multiplicacin tpica encontrada en los lenguajes de
programacin. El operador ** devuelve los 16 bit superiores del resultado de 32 bit.
Estos dos operadores pueden ser utilizados en conjunto para realizar multiplicaciones
de 16 x 16 bit que produzcan resultados de 32 bit .

W1 = W0 * 1000 multiplica el valor de W0 por 1000 y coloca el resultado en W1


W2 = W0 ** 1000 W0 por 1000 y coloca los 16 bit superiores (que Deben ser 0 ) en
W2
El operador */ los 16 bit medios del resultado de 32 bit.
W3 = W1 */ W0 multiplica W1 por W0 y coloca los 16 bit medios en W3
DIVISIN
PBP efecta divisiones de 16 x 16 bit . El operador / devuelve el resultado de 16 bit .
El operador // devuelve el resto (mdulo del nmero).
W1 = W0 / 1000 Divide el valor de W0 por 1000 y coloca el resultado en w1
W2 = W0 // 1000 Divide el valor de W0 por 1000 y coloca el resto en W2

MICROPROCESADORES
MAX y MIN I
MAX y MIN devuelven el mximo y mnimo ,respectivamente , de dos nmeros . Se usan
normalmente para limitar nmeros a un valor.
B1 = B0 MAX 100 setea B1 al mayor de B0 y 100 (B0 debe estar entre 100 y 255
B1 = B0 MIN 100 setea B1 al menor de B0 y 100(B1no puede ser mayor de 100

NCD
NCD devuelve el nmero de prioridad de bit codificado (1-16) de un valor . Se usa para
encontrar el bit codificado con 1 de un valor dado . Devuelve 0 si no existen bits con
valor 1 .
B0 = NCD %01001000 setea B0 en 7

REV I
REV invierte el orden de los bits inferiores de un valor .El nmero de bits a ser invertidos es de 1 a 16 .
B0 = %10101100 REV 4 setea B0 a %10100011

MICROPROCESADORES
REFERENCIA DE DECLARACIONES

MICROPROCESADORES
REFERENCIA DE DECLARACIONES

MICROPROCESADORES
REFERENCIA DE DECLARACIONES

MICROPROCESADORES
REFERENCIA DE DECLARACIONES

MICROPROCESADORES
MODULO DE CAPTURA, COMPARACION Y PWM
(MEJORADO)(CCP Y ECCP)