0% encontró este documento útil (0 votos)
253 vistas9 páginas

Curso Mikrobasic

Este documento introduce el compilador MikroBasic para microcontroladores PIC de Microchip. MikroBasic es un compilador BASIC que incluye un entorno de desarrollo integrado con características como una sintaxis BASIC sencilla, depurador de hardware, bibliotecas y ejemplos. A continuación, se describen conceptos básicos de programación en BASIC como comentarios, tipos de datos, constantes, variables y operadores aritméticos. Finalmente, se explican bucles como WHILE y DO-LOOP UNTIL para ejecutar instrucciones

Cargado por

Edson Rodas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
253 vistas9 páginas

Curso Mikrobasic

Este documento introduce el compilador MikroBasic para microcontroladores PIC de Microchip. MikroBasic es un compilador BASIC que incluye un entorno de desarrollo integrado con características como una sintaxis BASIC sencilla, depurador de hardware, bibliotecas y ejemplos. A continuación, se describen conceptos básicos de programación en BASIC como comentarios, tipos de datos, constantes, variables y operadores aritméticos. Finalmente, se explican bucles como WHILE y DO-LOOP UNTIL para ejecutar instrucciones

Cargado por

Edson Rodas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1.

Introducción a MikroBasic
Introducción
Hoy en día es muy común encontrarnos con una gran cantidad de compiladores de alto nivel para los Microcontrolado
compiladores es MikroBasic de la empresa Mikroelectronica. Con ayuda de este tutorial el estudiante aprendera a util
compilador y depurador que viene integrado en el mismo programa.

MikroBasic
MikroBasic PRO para PIC es un compilador BASIC con todas las características para microcontroladores PIC de Mic
diseñado para desarrollar, construir ydepurar aplicaciones embebidas basadas en PIC. Este entorno de desarrollo cuen
una amplia variedad de características tales como: una sintaxis BASIC fácil de aprender, IDE fácil de usar, un código
equipos y bibliotecas de software, la documentación completa, el simulador de software, un depurador de hardware, l
Además incluye muchos ejemplos prácticos que permiten un rápido inicio en la programacion demicrocontroladores P

CARACTERÍSTICAS PRINCIPALES DEL LENGUAJE  DE PROGRAM


Similar al uso de cualquier lengua que no está limitada a los libros y a las revistas, el lenguaje de programación Basic
tipo particular de ordenador, procesador o sistema operativo. Esto puede ser un problema, ya que Basic varía lige
(como diferentes dialectos de una lengua). Por consiguiente, en este libro no vamos a darle una descripción detalla
sino presentar una aplicación muy concreta de Basic, lenguaje de programación utilizado en el compilador mikroBasi

A continuación está un ejemplo de cómo no se debe escribir un programa. 

o Los comentarios no están incluidos


o Nombres de etiquetas no tienen significado
o Secciones del código no están agrupadas o tabuladas...

Este programa funciona correctamente, pero sólo el programador que lo escribió conoce su propósito y modo de ejecu
En la siguiente figura se muestra la estructura de un programa simple bien escrito en Basic, destacando las partes en l
2. Programacion Elemental
Contenidos

1. 1 Introducción

2. 2 Comentarios

3. 3 Tipos de Datos en Basic

4. 4 Constantes

5. 5 Variables

6. 6 Operadores Aritméticos

7. 7 Práctica de Laboratorio

Introducción
El Basic es un lenguaje de programación simple y fácil de entender. Para utilizarlo correctamente, basta con conocer s
los que consiste cada programa. Estos son:

o Comentarios
o Operadores
o Constantes
o Variables
o Símbolos
o Directivas
o Etiquetas
o Procedimientos y funciones
o Módulos
o Identificadores
o Expresiones
o Instrucciones

Comentarios
Los comentarios son las partes del programa utilizados para aclarar las instrucciones o para proporcionar más informa
texto que sigue a un apóstrofe se considera un comentario. El compilador determina dónde comienzan y terminan los
durante la compilación. Aunque los comentarios no pueden afectar a la ejecución de un programa, son tan importante
programa. Esto se debe a que con frecuencia es necesario mejorar, modificar, actualizar o simplificar un programa y e
los programas más simples sin utilizar los comentarios ya que sin ellos sólo el programador que lo escribió conoce su
con un máximo de uno o dos días antes de olvidarlo.
Tipos de Datos en Basic
Hay varios tipos de datos que se pueden utilizar en el lenguaje de programación Basic. La siguiente tabla muestra el
tener cuando se utilizan en su forma básica.

Tipo de dato Descripción Tamaño (Número de Rango de valores


bits)
bit Un bit 1 0o1
sbit Un bit 1 0o1
byte, char Carácter 8 0 ... 255
short Entero corto con signo 8 -127 ... 128
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
float Punto flotante 32 ±1.17549435082*10-38 ...
±6.80564774407*1038
Constantes
Las constantes son los números o caracteres cuyo valor no puede ser cambiado durante la ejecución de programa. A d
se almacenan en la memoria ROM del microcontrolador para guardar el mayor espacio posible de la memoria  RAM
por sus nombres y el prefijo const. Cada constante se declara bajo un nombre único que debe ser un identificado
formatos decimal, hexadecimal o binario. El compilador los distingue por su prefijo. Si una constante no lleva prefijo

const nombre_de_constante [as type] = valor

El tipo de constante se especifica opcionalmente. En la ausencia de tipo, el compilador lo considera “el menor” tipo c
const MAX as longint = 10000
const MIN = 1000 ' Compilador supone el tipo word
const SWITCH = "n" ' Compilador supone el tipo char

Variables
Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado durante la ejecución de pro
nombre únicoque debe ser un identificador válido. Por ejemplo, para sumar dos números (número1 + número2)
variable para representar qué es lo que llamamos suma en vida cotidiana. En este caso, número1, número2 y suma son

dim nombre_de_variable as type

Las variables en Basic son de un tipo, lo que significa que es necesario especificar el tipo de dato que se asignará a la
la memoria RAM y el espacio de memoria ocupado (en bytes) depende de su tipo. Aparte de las declaraciones de un
tipo, se pueden declarar en forma de una lista. Aquí, lista de identificadores es una lista de identificadores válidos de
puede ser cualquier tipo de dato.

dim i, j, k as byte 'Definir variables i, j, k


dim counter, temp as word 'Definir variables contador y temp

Operadores Aritméticos
Los operadores aritméticos se utilizan para realizar operaciones aritméticas. Estas operaciones se realizan sobre los op
devuelven los  resultados numéricos. Las operaciones binarias se realizan sobre dos operandos, mientras que las opera
operando. Todos los operadores aritméticos se asocian de izquierda a derecha.

Operador Operación
+ Adición
- Resta
* Multiplicación
/ División - punto
flotante
div División - redondear
mod Residuo
Práctica de Laboratorio
1. Crear un Nuevo Proyecto
2. Copiar el siguiente código
program Prog_elemental

' Declarations section


dim var1,var2,var3 as byte
dim var4 as short
dim var5 as integer
dim var6 as float

main:
  var1=135
  var2=123
  var3=var1+var2
  var3=var1-var2
  var3=var2-var1
  var4=var1+var2
  var4=var1-var2
  var4=var2-var1
  var5=var1+var2
  var3=var1*var2
  var5=var1*var2
  var3=var1+3.16
  var6=var1+3.16
end.
4. Compilar el Proyecto
5. Depurar Código y agregar los registros var1, var2, var3, var4 y var5
6. Presione F8 para ir paso a paso y conteste las siguientes preguntas:
a. ¿Cuál es el valor de var3 después de las líneas 12, 13 y 14 y explique por qué es ese resultado?
b. ¿Cuál debería ser el valor de var3 después de las líneas 12, 13 y 14?
c. ¿Cuál es el valor de var4 después de las líneas 15, 16 y 17 y explique por qué es ese resultado?
d. ¿Cuál debería ser el valor de var4 después de las líneas 15, 16 y 17?
e. ¿Cuál es el valor de var5 después de las líneas 18, 19, 20 y 21 y explique por qué es ese resultado?
f.  ¿Cuál debería ser el valor de var5 después de las líneas 18, 19, 20 y 21?
g. ¿Cuál es el valor de var3 después de la línea 21 y explique por qué es ese resultado?
h. ¿Cuál debería ser el valor de var3 después de la línea 21?
i.  ¿Cuál es el valor de var6 después de la línea 22 y explique por qué es ese resultado? (luego de la línea 22 presione
h. ¿Cuál debería ser el valor de var6 después de la línea 22?
7. Cambia el formato de todas las variables a hexadecimal y binario y contesta de nuevo las preguntas anteriores.

4. Bucles de Programa
Introducción
Algunas instrucciones (operaciones) deben ejecutarse más de una vez en el programa a esto se le denomina bucle, lazos o ciclo
depende de las condiciones o centinelas de salida del bucle.

Bucle WHILE
El bucle while (mientras en español) se utiliza cuando el número de iteraciones no está especificado. Es necesario co
de ejecutar un bucle. En otras palabras, el bucle while se ejecuta una vez cumplidas todas las condiciones necesa
aparece la sintaxis del bucle while:

while condicion
    ...
    sentencias
    ...
wend

El programa se queda en el bucle hasta que la condicón llegue a ser falsa. El valor de la condición se comprueba antes
Si el valor de la expresión es falso antes de entrar el bucle, no se ejecuta ninguna iteración, es decir, las sentencia
continúa con la ejecución desde el fin del bucle while (desde las instrucciones que siguen  a la instrucción wend).

Un tipo especial del bucle de programa es un bucle infinito. La ejecución es simple en este caso ya que el resultad
diferente de 0), lo que significa que el programa se queda en el  bucle:

while 1     ' Se puede escribir ‘true’ en vez de ‘1’


    ...  ' Las expresiones se ejecutarán repetidamente (bucle infinito)
    ...
wend

Bucle DO-LOOP UNTIL


La sentencia do-loop until (Hacer-Lazo hasta que) se utiliza cuando el número de iteraciones no está especificado.
que la condición siga siendo verdadero. La sintaxis del bucle do es la siguiente:

do
    ...
    sentencias
    ...
loop until condicion

Este bucle es similar al anterior, la diferencia es que las sentencias se ejecutarán hasta que la condición se convierta
del bucle se comprueban hasta el final del bucle, así que el bucle se ejecuta al menos una vez, sin comprobar si la con

Bucle FOR
El bucle for (Para en español) se utiliza cuando el número de iteraciones está especificado. La sintaxis del bucle for es

for contador = valor_inicial to valor_final [step valor_de_paso]


    ...
    sentencias
    ...
next contador
La variable contador se incrementa por el valor de paso con cada iteración de bucle. 

El parámetro valor_de_paso es un valor entero opcional, que es igual a 1 si es omitido. Antes de ejecutar la pr
valor_inicial y se incrementa hasta llegar o exceder al valor_ final. Con cada iteración se ejecutan las sentencias. Las
deben ser compatibles con el contador. El especificador sentencia puede ser cualquier sentencia que no afect
valor_de_paso puede ser negativo, lo que permite contar atrás.

Práctica de Laboratorio
1. Crear un Nuevo Proyecto llamado Bucles
2. Copiar el siguiente código

'*******************************************************************************
'El siguiente código se encarga de realizar la suma de los números desde el 1
'hasta el 5 con los tres tipos de bucles
'*******************************************************************************
program Bucles

dim sum,i as byte

main:
  sum=0         'Sum sera igual a 0
  i=1           'i sera igual a 1
  while i<=5     'mientras i sea menor o igual a 5
    sum=sum+i     'sum sera igual al valor anterior mas el valor de i
    i=i+1         'i sera igual al valor anterior mas 1
  wend
  
  sum=0             'el valor de sum sera 0
  i=1               'el valor de i sera 1
  do                'hacer
    sum=sum+i         'sum sera igual al valor anterior mas el valor de i
    i=i+1             'i sera igual al valor anterior mas 1
  loop until i>5   'Hasta que i sea mayor o igual a 5
  
  sum=0             'el valor de sum sera 0
  for i=0 to 5      'para i desde 0 hasta 5
    sum=sum+i         'sum sera igual al valor anterior mas el valor de i
  next i            'proximo valor de i (i se incrementa en 1)

end.

3. Compilar el Proyecto (ctrl+F9)
4. Depurar Código (F9) y agregar los registros i y sum.
5. Presiona F8 para ir paso a paso, da doble clic sobre cada registro en la ventana Watch Values para cambiar su valor y contest

a. ¿Cuáles valores toman las variables sum e i en las líneas 13, 14, 20, 21, 26 y 27?
b. ¿Cuál es la diferencia entre los tres ciclos?

6. Cambia el valor de i en las líneas 5 y 18 por uno mayor a 5 y observa de nuevo la depuración.
5. Arreglos y Matrices
Una matriz es una lista organizada y limitada de variables del mismo tipo denominadas elementos. Este tipo es den
referenciado por un índice único así que los diferentes elementos pueden tener el mismo valor. Para declarar una m
sus elementos (denominado tipo de matriz), su nombre y el número de sus elementos encerrados entre corchetes:

dim nombre_de_matriz as tipo_de_componente [número_de_componentes]

Los elementos de una matriz se identifican por su posición. Los índices van desde 0 (el primer elemento de una matr
contenidos en la matriz). El compilador tiene que “saber” cuántas localidades de memoria debe alojar al declarar
matriz no puede ser variable. 

Para explicar con más claridad, una matriz puede ser pensada como una lista más o menos larga o corta de variables d
asigna un número ordinal que siempre empieza por cero. A esta matriz se le denomina vector. En la tabla de la dere
estante que contiene 100 elementos.

Elementos de la matriz Contenido de elementos

estante[0] 7

estante[1] 23

estante[2] 34

estante[3] 0

estante[4] 0

estante[5] 12

estante[6] 9

... ...

... ...

estante[99] 23

En este caso, el contenido de una variable (elemento) representa un número de productos que contiene el estante. A lo
medio de la indexación, o sea, al especificar sus índices encerrados entre corchetes:

dim shelf as byte [100]   ' Declarar la matriz "estante" con 100 elementos
shelf [4] = 12 ' 12 elementos están ‘colocados’ en el estante [4]
temp = shelf [1] ' Variable estante [1] se copia a la variable temp

En las matrices de constantes, a los elementos se les pueden asignar sus contenidos durante la declaración de matriz. E
de matriz denominada CALENDARIO se declara y a cada elemento se le asigna un número específico de días:

const CALENDARIO as byte [12]= (31,28,31,30,31,30,31,31,30,31,30,31)

El número de los valores asignados no debe exceder la longitud de la matriz especificada, solo puede ser menor. En e
les asignarán ceros.

Práctica de Laboratorio
1. Crear un Nuevo Proyecto llamado Arreglos
2. Copiar el siguiente código

'El siguiente muestra en un display de 7 segmentos conectado al PORTD el valor


'correspondiente al codigo BCD ingresado por el PORTB
program Arreglos
                        'Declaracion de los valores del display 7seg.
const mask as byte [16]= (0x3F,0x06,0x5B,0x4F,  '0,1,2,3,
                          0x66,0x6D,0x7D,0x07,  '4,5,6,7,
                          0x7F,0x67,0x77,0x7C,  '8,9,A,b,
                          0x39,0x5E,0x79,0x71)  'C,d,E,F.
dim i as byte

main:
  ANSEL=0
  ANSELH=0
  TRISB=255             'Todos los pines como salidas
  TRISD=0               'Todos los pines como Salidas
  while 1               'Inicio del ciclo infinito
    i=PORTB and 0x0F    'Tomamos los 4 bits inferiores de PORTB
    PORTD=mask[i]       'PORTD sera igual al i-esimo valor de mask
  wend
    
end.

3. Compilar el Proyecto (ctrl+F9)
4. Depurar Código (F9) y agregar los registros i, PORTB y PORTD.
5. Presiona F8 para ir paso a paso, da doble clic sobre cada registro en la ventana Watch Values para cambiar su valor y contest

a. Si el valor de PORTB es 5 décimal cuál es el valor de PORTD y la variable i después de la línea 18


b. Si el valor de PORTB es 35 décimal cuál es el valor de PORTD y la variable i después de la línea 18 (Convierte 35 a Hexadecim

6. Crear un Nuevo Circuito similar al siguiente, para ello será necesario buscar mediante la ventana de busqueda LOGICSTATE,

7. Inicia la simulación (F12) y luego cambia los valores de los LOGICSTATES conectados a PORTB y observa el resultado en el Dis

También podría gustarte