de microcontroladores PIC
usando mikroBasic
Manual
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
1
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Ventajas
Desventajas
• Instrumentos bio-médicos
2
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Hoy en día la medicina dispone de equipos más fiables y menos dañinos para la salud, esto
gracias a la integración principalmente de los microprocesadores, pero también de los
microcontroladores.
3
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
• Sistemas de comunicaciones
RS-232. Es una interfaz que designa una norma para el intercambio de una serie de
datos binarios entre un “Equipo Terminal de Datos” y un “Equipo de Comunicación de Datos”,
aunque existen otras en las que también se utiliza RS-232. En particular, existen ocasiones en
que interesa conectar otro tipo de equipamientos, como pueden ser computadores.
USB. También conocido como Universal Serial Bus, es un bus estándar industrial que
define los cables, conectores y protocolos usados en un bus para conectar, comunicar y proveer
de alimentación electrónica entre computadoras, periféricos u dispositivos electrónicos. Este es
utilizado como estándar de conexión de periféricos como: teclados, mouses, memorias USB,
joysticks, escáneres, cámaras digitales, teléfonos móviles, reproductores multimedia, entre otros.
4
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Una gran variedad de periféricos, que se acoplan a las computadoras, son controlados por
microcontroladores. Dentro de estos se pueden encontrar el teclado, el mouse, la webcam, equipos
de audio, micrófonos, inalambricos, y así por el estilo. Incluso es posible que un microcontrolador
se comporte como un mouse o un teclado, enviando comandos al computador, o letras.
• Robótica
5
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Dentro de las funciones del robot están la de identificar los elementos que va a recolectar,
ya sea mediante el uso de sensores o por medio de una cámara, manejo eficiente de la batería
con capacidad de detectar bajo nivel carga y cargar la misma por medio de paneles solares,
controlar el movimiento de las ruedas y del brazo que recolecta las rocas; estas y muchas otras
funciones que son realizadas por microcontroladores.
• Campo Automovilístico
6
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
7
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Para llegar a la solución de problemas es necesario agotar una serie de pasos que se
listarán a continuación.
El rol del programador en este caso es lograr una compresión lo suficientemente buena
del caso y proponer una o varias soluciones sustentadas en razones lógicas y validas.
• Análisis del proceso. Es el resultado del paso anterior, el cual culmina con una posible
solución a la situación, que se debe conocer a detalle sobre que trata.
8
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
• Diseño del proceso. Este se refiere a la manera en que se abordará el problema, que en este
curso será de manera determinista. Cuando se habla de trabajo determinista en
programación quiere decir que el comportamiento del algoritmo es lineal, que cada paso
del algoritmo se ejecutará uno a continuación del otro.
• Vista general del proceso. Una forma muy común y útil a la vez, es la estudiar la solución de
la situación desde un punto de vista general, desde un todo, que describe el conjunto de
implicaciones que se tiene y a partir de ese punto ir hacia un panorama más particular,
dividiendo ese todo del proceso en procesos simples y pequeños.
• Vista partes del proceso. Una vez se tiene el proceso separado en sus partes más simples,
es momento de trabajar con la programación de las partes, también llamadas módulos.
Este tipo de programación se conoce por tanto como programación modular.
Luego del proceso de traducción es posible que se produzcan errores por causa del mismo.
Los errores de compilación, que son causados por un uso incorrecto del lenguaje de
programación, por lo que la computadora no será capaz de entender el programa. Los errores de
ejecución se producen por instrucciones, ordenes, que la computadora puede entender, pero no
ejecutar. Por último están los errores lógicos, los cuales se producen en la lógica del programa, esto
suele ser ocasionado por el propio diseñador del programa, en la etapa de diseño de algoritmo.
Para resolver estos errores se procede a realizar una depuración del código, donde por
medio de análisis y pruebas se pretende encontrar los errores existentes, donde los errores lógicos
terminan siendo los más difíciles de encontrar.
9
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Luego de lograr resolver todos los errores y poner en operación la solución escogida,
viene el mantenimiento, etapa en la cual el programador se dispone a realizar actualizaciones o
mejoras en la medida en que se presenten nuevas necesidades o mejores dispositivos que
puedan hacer algún aporte.
Ejemplos
Ejemplo 2.1.1
Identificar el problema.
Este problema resulta ser simple o por lo menos aparenta serlo. En la práctica los
problema no siempre resultan ser tan sencillos, incluso a veces es difícil hasta identificarlos si no
se está atento.
En este caso, es importante hacer preguntas que conduzcan a la causa del problema.
Una buena pregunta sería: qué necesita una planta para crecer? En general las plantas solo
necesitan agua, buena tierra, luz solar y un clima adecuado. Conversando con Rosa se recolecto
la siguiente información.
Un domingo, Rosa, tratando de encontrar una respuesta, se pasó gran parte del día
observando y descubrió que la sombra de los demás edificios no dejaba que la planta recibiera
suficiente luz.
10
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
◦ Rosa
◦ agua
◦ tierra
◦ ubicación
◦ humedad
◦ clima
◦ luz solar
◦ tipo de planta, condiciones que requiere
Solución 1:
Mudarse a un lugar donde las edificaciones no interfieran con la luz solar, que llegue a la
planta, y que no interfiera con las demás de intereses de Rosa.
11
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Solución 2:
Ya que es un planta decorativa, se puede cambiar por otra que si puede vivir bajos esas
condiciones.
Consecuencias. Esta solución no posee ninguna consecuencia evidente, solo tal vez el
hecho de que Rosa no encuentre otra planta que le guste o que cumpla sus requisitos. En
cuanto a costos no tiene una gran repercusión.
Solución 3:
Comprar o crear un dispositivo que pueda recrear las condiciones necesarias para la
planta pueda vivir, con enfoque en la cantidad de luz que se requiere.
Consecuencias. Esta solución implica un gasto primario, que sería el costo inicial del
dispositivo, un gasto secundario menor que sería la energía que consume para funcionar. En
este caso los costos podrían variar en base a la decisión de comprar un dispositivo ya
desarrollado o desarrollar uno, donde desarrollar uno implica gastos mucho mayores.
Además es posible que el dispositivo solo pueda llevar la planta hasta cierto tamaño, lo
cual a la larga conducirá a otro problema de no existir otro dispositivo como el anterior, pero
para plantas más grandes.
Dado que la solución escogida es la número 2, este proceso termina en este paso,
porque no se requiere de programar o diseñar dispositivo.
Ejemplo 2.1.2
Identificar el problema.
12
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
En los últimos dos meses la Farmacia Santiago ha experimentado un incremento del 10%, el
análisis contratado para buscar solución a esta situación recolecto la siguiente información.
Luego de medir el consumo de las diferentes áreas, se descubrió que un letrero de exterior,
que se había instalado hace aproximadamente dos meses, estaba consumiendo más lo habitual
porque se quedaba encendido en el día. Por la hora de entrada no se percibía que el letrero ya
estaba encendido y ya a la hora de salida tenía que estar encendido.
◦ La persona encargada de abrir y cerrar y el propietario del negocio son quienes enfrenta
el problema.
◦ El propietario es quien toma las decisiones.
◦ La persona encargada de abrir y cerrar, puede olvidar apagar o encender algunas luz o
aparato.
◦ Las luces y el letrero son únicos dispositivos, que consumen energía eléctrica, que se
puede encender o apagar mediante un interruptor.
13
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Solución 1:
Designar a dos personas como encargadas de la labor de encender y apagar todas las
luces y equipos.
Solución 2:
Si no existe instalación eléctrica donde las luces estén aisladas de los demás aparatos,
entonces el equipo solo se puede usar en el letrero, a menos que se realice una re-instalación
para separar las luces en el cableado eléctrico.
Como esta solución evita designar esta tarea a los empleados y ofrece la seguridad que
cumplirá su función, el propietario de la farmacia opto por esta opción. El hecho de que el
establecimiento contaba con el requerimiento eléctrico, explicado más arriba, favoreció esta
opción.
2.2.1. Algoritmos
14
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Los algoritmos cuentan con cuatro características que describen calidad. La finitud, que
expresa que se debe lograr la solución en un tiempo determinado. Precisión, las instrucciones
deben ser claras, precisas y no deben permitir ambigüedades. Entradas y salidas definidas, las
entradas son la puerta a los datos, informaciones y variables que al ser procesados darán una
respuesta final, la salida. Efectividad, el algoritmo debe conducir a la solución de la situación
original.
Ejemplos.
Ejemplo 2.2.1.1
Se quiere saber que edad tiene una persona solo con su fecha del nacimiento.
Algoritmo
Inicio
Constante anoActual = 2015
Entero = anoNacimiento, Edad
Escribir(“Escriba su año de nacimieto”)
Leer(anoNacimiento)
Edad = anoActual – anoNacimiento
Escribir(“Su edad es”, Edad)
Final
15
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Ejemplo 2.2.1.2
Una tienda de celulares vende dos modelos de celulares Iphone 5 y Galaxy S4, se desea
saber la cantidad de dinero que se recauda mensualmente a partir de la cantidad de celulares
vendidos. El Iphone 5 cuesta RD$ 19 000.00 y el Galaxy S4 cuesta RD$ 16 000.00.
Algoritmo
Inicio
Constante Costoi = 19 000.00
Constante CostoS = 16 000.00
Entero = canti, cants
Real = total
Escriba(“Digite cuantos Iphones se vendieron”)
Lea (canti)
Escriba(“Digite cuantos Galaxy se vendieron”)
Lea (cants)
Total = (Costoi * canti) + (Costos * cants)
Escriba(“Este mes se han vendido RD$”, Total)
Final
Ejemplo 2.2.1.3
Inicio
Dirigirse hacia la calle
Detenerse frente a la calle
Mirar a la izquierda
Si vienen vehículos, mirar a la izquierda
Si no vienen vehículos, mirar hacia a la derecha
Si vienen vehículos, mirar a la izquierda
Si no vienen vehículos, cruzar la calle
Final
Ejemplo 2.2.1.4
16
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Diseño de algoritmo.
Para este caso se encontró un equipo que cumple con los requerimientos establecidos y
solo requiere ser programado. Las luces están divididas en tres grupos, las de interior, las de
exterior y las del letrero. Las luces de interior deben estar encendidas desde las 8.00 am hasta las
8.00 pm, las luces de exterior deben estar encendidas desde las 7.00 pm hasta las 6.00 am, y el
letrero debe estar encendido desde las 7.00 pm hasta las 8.00 am, esto es de lunes a sábados. Los
domingos las luces de interior deben estar encendidas desde las 8.00 am hasta las 2.00 pm, las
luces de exterior y el letrero, deben seguir el mismo horario que de lunes a viernes.
Inicio
Salidas = Exterior, Interior, Letrero
Configurar Hora y Fecha
Mientras es Lunes
Si son las 8.00 am
Interior = Encendido
Si son las 8.00 pm
Interior = Apagado
Si son las 7.00 pm
Exterior = Encendido
Si son las 6.00 am
Exterior = Apagado
Si son las 7.00 pm
Letrero = Encendido
Si son las 8.00 am
Letrero = Apagado
17
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Mientras es Martes
Si son las 8.00 am
Interior = Encendido
Si son las 8.00 pm
Interior = Apagado
Si son las 7.00 pm
Exterior = Encendido
Si son las 6.00 am
Exterior = Apagado
Si son las 7.00 pm
Interior = Encendido
Si son las 8.00 am
Exterior = Apagado
...
Mientras es Domingo
Si son las 8.00 am
Interior = Encendido
Si son las 2.00 pm
Interior = Apagado
Si son las 7.00 pm
Exterior = Encendido
Si son las 6.00 am
Exterior = Apagado
Si son las 7.00 pm
Interior = Encendido
Si son las 8.00 am
Exterior = Apagado
Fin
La mayor parte del algoritmo esta expresada de forma simple, por lo no es necesario
dividirlo en partes más pequeñas, a excepción del paso de Configurar Hora y Fecha, que se
expresar como se ve a continuación
18
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Este paso se irá viendo a medida que se siga avanzado en el curso, por el ejemplo quedará
en este punto.
Los diagramas de flujo son una manera de representar gráficamente el flujo de datos a
través de sistemas de tratamiento de información, describen que operaciones y en que secuencia
se requieren para solucionar un problema dado.
Simbología
Los diagramas de flujo se dibujan generalmente usando algunos símbolos entandares; sin
embargo algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos.
19
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Líneas de flujo.
Los diagramas lógicos se tratan de una técnica de modelización, que muestra un sistema
como una red de procesos conectados entre ellos por flujos y almacenamiento de datos, es un
modelo que proporciona en forma gráfica el punto de vista funcional de un sistema.
Estos diagramas describen los lugares de origen y destino de los datos (límites del
sistema), las transformaciones a las que son sometidos los datos (procesos internos), los lugares
en los que se almacena los datos dentro del sistema, y los canales por donde circulan los datos.
20
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de
una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se
prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa
informático se le llama programación.
Ventajas
Desventajas
• No posee estructura ni control de tipos, por lo cual, el programador debe cuidar por
sí mismo de proveer una estructura adecuada a su programa y controlar los tipos de
datos.
• No es portable, debido a que depende de la estructura interna del microcontrolador,
el código de un microcontrolador no puede correr en otro de diferente arquitectura.
• El mantenimiento del código (revisión, modificación, ampliación) es más complicado.
21
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
2.3.2. MikroC
Ventajas
Desventajas
2.3.3. mikroBasic
Ventajas
• Los programas en mikroBasic son más fáciles de mantener (revisar, modificar, ampliar).
• Proporciona a los estudiantes un alto ritmo de aprendizaje en comparación con otros
lenguajes. Este es tan fácil de entender como el lenguaje común.
• Es portable. Al igual que el mikroC.
• mikroBasic proporciona estructura, abstracción y control de tipos de datos.
• Permite también cierto acceso de bajo nivel, similar al ensamblador, combinando en
general ciertas características de bajo nivel del ensamblador y otras ventajas ofrecidas
por los lenguajes de alto nivel.
• Existen muchísimas librerías libremente disponibles para el uso de cualquier
programador, lo cual facilita el desarrollo de una aplicación.
22
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Desventajas
En conclusión, evaluando las ventajas y desventajas de estos tres lenguajes, se concluye que
cada lenguaje tienes sus pro y sus contra, así la elección de uno dependerá de las condiciones de
trabajo o del gusto del propio programador. Para el caso de este curso, que tiene un enfoque
básico, el lenguaje mikroBasic representa la elección idónea para la programación de
microcontroladores.
23
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
3. Sistemas de numeración
Este sistema consta de los dígitos de 0 a 9, con estos 10 símbolos se forman los
números. (1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, …). El 397 es un
número expresado en sistema decimal. Como se aprendió en la primaria los números en este
sistema también se escriben en forma desarrollada, de manera que 397 = 300 + 90 + 7.
Otra forma de escribir los números es en notación científica, tal que 397 = 3*102 + 9*101
+ 7*100, el hecho de que cada posición sea una potencia de 10 denota el porque este sistema
es también llamado sistema de numeración base 10, es decir que utiliza 10 dígitos, 10 símbolos.
24
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Una forma de facilitar el trabajo es creando un tabla con tres filas y tantas columnas como
dígitos tenga el número. En la primera fila se colocan las potencias de las posiciones o sus valores,
en la segunda fila cada dígito va debajo en la columna correspondiente a su posición y en la última
fila se pone el resultado de multiplicar los valores las primeras dos filas, la suma de estos resultados
es el número en sistema decimal.
23 22 21 20
1 1 1 0
Número Binario
8 4 2 0 = 14
Resultado
Para convertir de sistema binario a decimal se hace mediante un proceso de división, donde
se divide el número decimal de forma consecutiva entre 2, que es la base del sistema binario, y se
va tomando el residuo de la división hasta que el cociente sea igual a 0. El residuo siempre debe
ser 1 ó 0. Al final el número binario queda invertido, es decir, que si el resultado es 011 el número
en binario es 110.
2 9 4 2 1 0
1 0 0 1
2 10
Al dividir 10/2 el cociente es 5 y el residuo 0.
2 10 5
0 Al dividir 5/2 el cociente es 2 y el residuo 1.
25
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
2 10 5 2
0 1 Al dividir 2/2 el cociente es 1 y el residuo 0.
2 10 5 2 1
0 1 0
Al dividir 1/2 el cociente es 0 y el residuo 1, como el
cociente es 0 se termina la operación y en la fila de abajo queda el número en binario, 10 =
1010.
2 10 5 2 1 0
0 1 0 1
Este sistema utiliza 16 símbolos o dígitos de los cuales 10 son números, de 0 a 9 y los
otros 6 son las primeras 6 letras del abecedario, de A hasta F. (1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,
E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, …, A8, A9, AA, AB, AC, AD, AE, AF, B0, B1,
B2, ...) De manera que A en hexadecimal es igual a 10 en decimal, B = 11, C = 12, D = 13, E =
14, F = 15 y el 10 = 16.
Para la tabla que se muestra a continuación se han hecho unos cambios, como que en la
primera fila se han colocado las potencias, en la segunda fila los valores de las potencias, en la
tercera el número en hexadecimal y en la cuarta el resultado.
26
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Resultado
16 755
Al dividir 755/16 el cociente es 47 y el residuo 3.
16 755 47
3 Al dividir 47/16 el cociente es 2 y el residuo 15.
16 755 47 2
3 15 Al dividir 2/16 el cociente es 0 y el residuo 2, como el
cociente es 0 se termina la operación y en la fila de abajo queda el número invertido.
16 755 47 2 0
3 15 2
27
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Además el mikroBasic integra una herramienta llamada Quick Converter, la cual puede
realizar conversiones entre los tres sistemas de manera rápida y fácil.
Para hacer la conversión tan solo es necesario colocar el número en la casilla del sistema
original y presionar Enter, inmediatamente la herramienta convierte el número presentando este
en las casillas de los sistemas restantes.
28
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
4. Tipos de datos
Así como en las matemáticas existen los tipos o familias de números, tales como los
números naturales, enteros, decimales, así mismo en programación existen lo que son tipos de
datos que además de tener características parecidas a las de las familias de números también
sirven para determinar la cantidad de memoria que debe alocarse, reservarse para cada constante
y/o variable.
Existen dos categorías para los tipos de datos: simples y derivados. Entre estos últimos
podemos encontrar:
- Arreglos (arrays)
- Cadenas (strings)
- Apuntadores (Pointers)
- Estructuras (Structures)
Los tipos simples representan tipos que no pueden dividirse en elementos más básicos y
que son el modelo para datos elementales a nivel de máquina. La unidad básica de memoria en
mikroBasic for PIC tiene un tamaño de 8-bits, un byte, esto quiere decir que los demás tipos de
datos se creando al hacer combinaciones de bytes. Así se tienen los siguientes tipos:
29
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
En la tabla anterior, se pueden observar dos tipos de datos cuyos tamaño es un 1-bit,
esto es porque el compilador puede manejar individualmente cada bit de un byte y se
aprovecha esta cualidad para crear este tipo, que resulta útil en casos donde el dato que se va a
guardar solo tiene dos valores posibles.
Cada tipo se emplea de acuerdo al dato a guardar y/o manejar, para los tipos byte y
char el dato o información a guardar debe estar entre 0 y 255, además de que tiene que ser
entero. Un ejemplo práctico es cuando se quiere guardar la información de que cantidad de
carros que hay en un parqueo, también los dígitos de una contraseña o un carácter (letra) de
un nombre.
El tipo short tiene un rango desde -128 hasta 127, es decir que a diferenciar de los tipos
byte y char, admite números negativos. Se puede emplear en casos donde la información
representa ausencia o presencia de algo, por ejemplo 5 estudiantes faltaron a una clase donde
el total son 30 estudiantes, esta información podría ser guardada en un variable con el valor de
-5. Otro ejemplo es la cantidad de días que faltan para terminar el mes o el número de
bombillas en un edificio, donde si el número es negativo indica que hacen falta, si es positivo es
que sobran y si es cero, es que están completas.
El tipo word tiene un rango de 0 hasta 65 535, esta formado por 2 bytes y el longword
va desde 0 hasta 4 294 967 295, esta formado por 4 bytes, ambos tipos poseen las mismas
características que los tipos byte y char.
El tipo integer tiene un rango de -32 768 hasta 32 767, esta formado por 2 bytes y el
tipo longint va desde -2 147 483 648 hasta 2 147 483 647, esta formado por 4 bytes, ambos
poseen las mismas características que el tipo short.
Los tipos float y double tienen un rango desde ±2.17549435082 * 10-38 hasta
±6.80564774407 * 1038, están formados por 4 bytes y se emplean para guardar y/o manipular
información que tenga punto flotante o decimal. Un ejemplo puede ser para guardar cual es la
temperatura en una habitación, la cantidad de agua en un recipiente y situaciones parecidas
donde no siempre se pueden representar la información con números enteros.
Para declarar un tipo de dato se hace en esta forma dim nombre_variable as tipo_dato.
Ejemplo:
30
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Los tipos de datos derivados también se conocen como tipos estructurados. Se utilizan para
crear tipos de datos complejos definidos por el usuario.
main:
' Para accesar a un elemento de un arreglo de variables ..
samples[3] = 1500 ' Asigna el valor 1500 al 4to elemento del arreglo
Arreglos Multi-dimensionales
main:
' Para accesar a un elemento de un arreglo de variables ..
m[3][0] = 1 ' Asigna el valor 1 al 1er elemento de la 4ta fila
31
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Una cadena representa una secuencia de caracteres equivalentes a un arreglo del tipo
char. El tipo char se emplea para guardar caracteres alfanumericos, que a menudo son
mostrados en una pantalla.
La representación de cada carácter del alfabeto esta dada por el código ASCII, que es un
estándar para la transmisión de información, donde cada carácter tiene un número asignado.
La mayoría de las persona que utilizan el idioma español y han estado frente a una
computadora, en algún momento se han encontrado con el problema de que la letra ñ no esta
en el teclado, o tienen la necesidad de poner la tilde a una vocal o colocar el carácter @ y
como solución a esto presionan Alt + 64 para @, Alt + 164 para ñ, Alt + 160 para á. Estos
números que se presionan en conjunto con la tecla Alt son los números que representan cada
carácter.
Ejemplo, el carácter 10 representa la función “nueva línea” (line feed), que hace que una
impresora avance el papel, y el carácter 27 representa la tecla “escape” que a menudo se
encuentra en la esquina superior izquierda de los teclados comunes.
32
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
33
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
34
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Para asignar valor a una variable tipo char se puede hacer de dos maneras, una es asignar
el carácter directamente entre comillas dobles, = “a”, y la otra es asignarle el número
correspondiente a ese carácter, = 97. Si se asigna cualquiera de estos dos valores a una variable y
se imprime, en la pantalla aparecerá la letra a.
35
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Por ejemplo,
main:
mensaje = “Hola Mundo!”
Un apuntador es un tipo de dato que almacena una dirección de memoria. Mientras que
una variable accesa el contenido de una dirección de memoria directamente, un apuntador sólo
contiene la dirección de memoria per se.
Para declarar un tipo de dato apuntador, se agrega el símbolo (^) antes del tipo. Por
ejemplo, para crear un apuntador a un word:
dim p as ^word
dim p as ^word
dim a as word
dim b as word
p = @b
p^ = 5
36
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
structure dot
dim x as float
dim y as float
end structure
main:
circle1.radius = 3.7
circle1.center.x = 5.4
circle1.center.y = 0.0
m.x = 236.985
37
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
5. Tokens
my_var = 0
Los Identificadores pueden contener letras desde la A hasta la Z (en mayúsculas y/o
minúsculas), el carácter guión bajo “_” y los dígitos del 0 al 9. El primer carácter siempre debe
ser una letra o el guión bajo, es decir, un identificador no puede comenzar con un número.
mikroBasic no distingue entre mayúsculas y minúsculas, de manera que Sum, sum y sUM
son identificadores equivalentes. Utilizar nombres duplicados para designar distintos
Identificadores dentro de un mismo alcance (scope) no está permitido.
38
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Son palabras de propósito especial que están reservadas por el compilador y no pueden
utilizarse como nombres de identificadores normales.
Además de las palabras claves estándares de BASIC, todos los Registros de Funciones
Especiales (SFR – Special Function Registers) del microcontrolador seleccionado están definidos
como variables globales y representan palabras reservadas que no pueden ser re-definidas (por
ejemplo: PORTA, TRISA, TMR0, etc.)
También, otras palabras reservadas pudieran estar presentes en función de las librerías que
tenga habilitadas en su proyecto.
5.3. Literales
Son tokens que representan un valor numérico fijo o de caracteres (son constantes). El tipo
de dato de una constante es deducido por el compilador mediante el valor numérico y el formato
utilizado.
Los valores enteros pueden ser representados en decimal, hexadecimal o notación binaria.
El valor máximo de un literal es aquel impuesto por el tipo de dato más grande en
mikroBasic (longword). Es decir 4,294,967,295 (0xFFFFFFFF).
Las constantes de punto flotante están limitadas al rango desde ±2.17549435082 * 10 -38
hasta ±6.80564774407 * 1038.
39
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
0. ' = 0.0
-2.23 ' = -2.23
23.45e6 ' = 23.45 * 10^6
2e-5 ' = 2.0 * 10^-5
3E+10 ' = 3.0 * 10^10
.09E34 ' = 0.09 * 10^34
Es un caracter del juego de caracteres extendidos ASCII, encerrado entre comillas (por
ejemplo, “A”).
Son una secuencia de caracteres del juego de caracteres extendidos ASCII, encerrado
entre comillas.
Los operadores son tokens que inician alguna computación (operación lógica o
matemática) cuando son aplicados a variables y otros objetos en una expresión.
- Operadores Aritméticos
- Operadores Bit a Bit (Bitwise Operators)
- Operadores Boleanos (Boolean Operators)
- Operadores Relacionales
40
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Si se utiliza 0 (cero) explicitamente como divisor (por ejemplo: x div 0), el compilador
reportará un error de compilación.
Sin embargo, en el caso de una división implicita por cero: x div y, donde y es 0 (cero), el
resultado será el entero máximo del tipo de dato del resultado (es decir 255, si el resultado es del
tipo byte; 65535, si el resultado es del tipo word; etc.)
El operador – puede usarse como operador unario de prefijo para cambiar el signo de un
valor con signo. Por ejemplo:
41
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Los Operadores Bit a Bit se asocian de izquierda a derecha, con la excepción el operador
de complemento not, el cual se asocia de derecha a izquierda.
Operador Operación
AND bit a bit; realiza la operación lógica AND entre cada bit de ambos operandos.
and
Retorna 1, si ambos bits son 1, de lo contrario, retorna 0.
OR bit a bit; realiza la operación lógica OR entre cada bit de ambos operandos.
or
Retorna 1, si cualquiera de los bits es 1, si ambos son 0, retorna 0.
OR exclusiva bit a bit; realiza la operación lógica XOR entre cada bit de ambos
xor
operandos. Retorna 1, si ambos bits son distintos, de lo contrario, retorna 0.
not Complemento bit a bit (unario); invierte el valor de cada bit.
Desplazar a la izquierda; mueve los bits hacia la izquierda, descartando el bit del
<<
extremo izquierdo y asignando 0 al del extremo derecho.
Desplazar a la derecha; mueve los bits hacia la derecha, descartando el bit del
>> extremo derecho y asignando 0 al del extremo izquierdo (si es un dato sin signo). Si
el dato posee signo, entonces el signo se extiende.
Por ejemplo:
42
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
dim a as byte
dim b as short
dim c as word
A pesar de que mikroBasic no soporta el tipo de dato boolean, usted posee los operadores
booleanos a su disposición para construir expresiones condicionales complejas. Estos operadores
responden a la lógica booleana estándar y retornan ya sea TRUE (verdadero) ó FALSE (falso).
Operador Operación
and AND lógica
or OR lógica
xor OR exclusiva lógica
not Negación lógica
43
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Operador Operación
= Igual a
<> Distinto de
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
6. Expresiones
c * (a + 5)
44
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
Regla General
Las expresiones son evaluadas de acuerdo con el operando de la derecha. Las operaciones
se realizan en el nivel de operando más alto, con los operandos con signos tomando precedencia.
Por ejemplo,
dim a as byte
dim b as word
dim c as integer
dim a as longword
dim b as byte
Expresiones condicionales
Las expresiones condicionales pueden diferir del mismo código en sentencias de asignación
(debido a la excepción del lado izquierdo). Por ejemplo,
45
INTRODUCCIÓN A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC USANDO mikroBasic
dim a as longword
dim b as byte
if b*5 then ' se realiza en el nivel byte, no dará el mismo resultado que...
7. Sentencias
8.
46