You are on page 1of 12

MikroBasic - Primera Parte

Viernes 12 / 10 / 2012

PORTADA

DESCARGAS

JUEGOS

FORO

CONTACTO

INICIAR SESIN

REGISTRARSE

>> buscar

ARTILUGIOS CIENCIA COCHES ECOLOGA ELECTRNICA ENTRETENIMIENTO HARDWARE INTERNET JUEGOS NEGOCIOS OFF- TOPIC SOFTWARE
Anuncios Google

Visual Basic

Pic

Basic Para Pic

Proyectos Con Pic

ARTCULOS DESTACADOS
Martes 09/10/2012 Project 1794: EEUU planeaba construir un plato volador Martes 09/10/2012 Save the Boobs: Mira porno y lucha contra el cncer Lunes 08/10/2012 Footbonaut: Entrenamiento futbolstico del futuro (vdeo) Lunes 08/10/2012 AMD Trinity alcanza 7,3 GHz de overclocking Domingo 07/10/2012 Pelculas en formato GIF: De Star Wars a Indiana Jones

MikroBasic - Primera Parte


Ariel Palazzesi . Vista 67648 veces
Me gusta 11 Enviar

Advertise Here

Tweet Uno de los compiladores de lenguaje BASIC para microcontroladores PIC que esta atrayendo legiones de usuarios es MikroBasic. Si bien ya lleva un tiempo en el mercado, a partir de la versin 5.00 se ha masificado.

NeoTeo en Facebook
Me gusta A 39,579 personas les gusta NeoTeo.

138

18

156 Votos 17 Comentarios

17
Anuncios Google

>> comenta

Marcela

Manuelita

Facundo

Samir Jann

Flor

AdWords: marketing online


AdWords ahora!

google.com/AdWords - Paga nicamente por resultados. Crea una cuenta de

Sara

Johann

Jershon Al GroneJohel

Adrian

Plug -in social de Facebook

Cable UTP CAT5 y 6


Dominicana

MS VISTAS MEJOR VOTADAS MS COMENTADAS

www.steren.com.do/UTP - Varios modelos a un buen precio Steren ahora en

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

Afortunadamente, el hobbysta no necesita aprender el lenguaje Assembler o conocer a fondo oscuras herramientas de programacin para dotar de software a sus proyectos con microcontroladores. La empresa mikroElectrnica distribuye una serie de compiladores para microcontroladores, entre los que se destacan el mikroC y mikroBasic. La caractersticas mas destacadas de estos compiladores, y en particular del que nos ocupara en esta serie de artculos es la inclusin de un IDE (entorno de desarrollo integrado o en ingls Integrated Development Environment) que hace muy cmoda la programacin, ya que resalta la sintaxis del lenguaje, proporciona acceso muy rpido a la excelente ayuda incluida, estadsticas sobre el uso de recursos del microcontrolador, y muchas ventajas mas. Adems, mikroElectrnica nos permite descargar una versin gratuita del compilador, que a pesar de estar limitado en la generacin de cdigo a 2Kb., es ms que suficiente para muchos proyectos, y sobre todo, sirve perfectamente para que podamos aprender el lenguaje. Probablemente mikroBasic sea el entorno que soporta mas modelos de micros y adems dispone de un enorme grupo de libreras, divididas en comunicaciones RS-232, RS485 e I2C; teclados PS/2, conexiones USB, interfaz para LCD, y un largsimo etc. Nos proponemos a lo largo de estos artculos a profundizar en el set de instrucciones de mikroBasic.

AUTORES
Ariel Palazzesi Federico Reggiani Gianni Sabbione Lisandro Pardo Mario Sacco Matas Bentez Max Ferzzola Nico Varonas

IDE de mikroBasic, uno de sus puntos fuertes. Respecto de la organizacin interna del programa, debemos saber que es necesario que las partes que componen el programa (funciones, rutinas, etc.) sigan ciertas reglas en su escritura. No es necesario que todas estn presentes. Las secciones que son obligatorias son program y el bloque main-end. Las dems, opcionales, solo las usaremos si las necesitamos. program i nclude '******************************************************** Declaraciones (globales, disponibles en todo el programa): '******************************************************** 'Constantes const ... 'variables dim ... ' Simbolos symbol ... ' Procedimientos sub procedure nombre_del_procedimiento(...) ... end sub ' Funciones

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

sub function Nombre_de_la_funcion(...) < declaraciones locales> ... end sub '******************************************************** '* Programa principal: '******************************************************** main: ' Aqu escribimos nuestro cdigo end. Ahora, empecemos a ver sus instrucciones ms elementales: Comentarios: se puede (y debe!) comentar el cdigo usando el apostrofe '. Los comentarios pueden ir solos en una lnea, o a continuacin de una instruccin cualquiera. No se permiten comentarios de ms de una lnea: ' Esto es un comentario A = 10 ' y esto tambin. Estos comentarios son los que nos permitirn realizar modificaciones o mejoras en nuestro cdigo sin necesidad de perder horas intentando comprender lo que escribimos tiempo atrs. Identificadores: Los llamados identificadores son en realidad los nombres de nuestras variables, procedimientos, funciones, constantes, etc. En mikroBasic los nombres de identificadores pueden contener letras desde la a hasta z y desde la A hasta Z, el guin bajo (_) y los dgitos del 0 al 9. El primer carcter no puede ser un digito. Adems, los nombres de los identificadores no son case-sensitive, es decir que Total, total y TOTAL son nombres de la misma variable, y podemos usar cualquiera de ellos por igual. Correctos: Temperatura aux_12 rele_activado Incorrectos: 3boton 'Comienza con un digito Aux.12 'Contiene un punto _salto 'Comienza con un guin bajo Humedad% 'Contiene un carcter invalido (%) Variables: Al igual que en otros dialectos Basic, las variables son objetos cuyo valor puede cambiar con la ejecucin del programa. Cada variable tiene un nombre nico, que se ajuste a las reglas definidas mas arriba para los identificadores. Deben declararse con dim antes de ser usadas, y su mbito de validez vara de acuerdo a la seccin en que se declaran (ver la ayuda para ms datos sobre esto). La sintaxis de dim es: dim lista de variables as tipo La lista de tipos disponibles incluyen Byte (8 bits, con valores de 0 a 255), Word (2 bytes, o 16 bits, con valores de 0 a 65535) y Longint (con valores desde -2147483648 a 2147483647). No son los nicos, la lista completa de tipos se puede consultar en la documentacin del compilador. Algunos ejemplos validos de dim son: dim i, j, k as byte dim contar, temp as word dim cadena as longint[100]

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

La opcin "code explorer" permite analizar nuestro programa. Bucles: Tenemos 3 formas de lograr que un grupo de instrucciones se repitan: 1) FOR NEXT : Se repite mientras variable sea menor que valor_final. En cada ciclo variable se incrementa en incremento o en 1 si step no esta presente. for variable = valor_inicial to valor_final [step incremento] Instrucciones a repetir next variable Ejemplo: s=0 for i = 0 to n s = s + a[i] * b[i] next i 2) WHILE END: Mientras que la expresin sea verdadera, las instrucciones a repetir se ejecutaran. Si dentro de esas instrucciones no existe alguna que modifique el resultado de expresin, el ciclo se repetir eternamente. Como la expresin se evala al comenzar el ciclo, puede ocurrir que si al comenzar el programa la expresin sea falsa las instrucciones a repetir no se ejecuten nunca. while expresin Instrucciones a repetir wend Ejemplo 1: s=0 i=0 while i < n s = s + a[i] * b[i] i=i+1 wend Ejemplo 2: Un ciclo sin fin. while TRUE Instrucciones a repetir wend 3) DO LOOP: En este caso, las instrucciones a repetir se repiten mientras la expresin sea verdadera. Al evaluarse al final del ciclo, el grupo de instrucciones a repetir se ejecutaran al

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

menos una vez. do Instrucciones a repetir s loop until expresin Ejemplo: Producto escalar entre dos vectores. s=0 i=0 ... do s = s + a[i] * b[i] i=i+1 loop until i = n Cualquiera es estas tres formas de crear un bucle puede ser interrumpida si dentro de las instrucciones a repetir se coloca la instruccin break. Al ejecutarla, el control del programa salta a la sentencia escrita inmediatamente a continuacin de next, wend o loop until, segn el caso. Toma de decisiones: Existen dos instrucciones para la toma de decisiones dentro de un programa escrito en Mikrobasic: 1) IF THEN ELSE ENDIF: Las instrucciones a continuacin del then se ejecutan si la expresin es verdadera, y las que despus del else si es falsa. if expresin then instrucciones [else instrucciones] end if 2) SELECT CASE: Se utiliza para transferir el control a una rama del programa, basndose en una determinada condicin. Consiste en una expresin y una lista de sus posibles valores. Las instrucciones a continuacin del case else, si existen, se ejecutan en caso de que selector tome un valor para el que no exista una rama case disponible. select case selector case valor_1 instrucciones_1 ... case valor_n instrucciones_n [case else Instrucciones por defecto] end select Saltos: Tambin tenemos dos instrucciones que permiten saltos incondicionales: 1) GOTO: Generalmente desaconsejada, esta instruccin nos permite transferir el control a cualquier punto dentro del programa. A pesar de estar demostrado que es posible construir cualquier programa sin utilizar nunca esta instruccin, se utiliza con cierta frecuencia. El control del programa se transfiere a la lnea que tenga la etiqueta utilizada en el goto: for i = 0 to n for j = 0 to m ... if desastre goto Error end if ... next j next i . . . Error: ' cdigo para manejar el error. . .

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

2) GOSUB RETURN: Funciona de manera similar a GOTO, pero con la ventaja de que el control del programa regresa a la instruccin posterior a GOSUB luego de ser ejecutado el return. Esto la hace ideal para crear subrutinas que pueden ser llamadas varias veces y/o desde distintos puntos del programa gosub mi_rutina instrucciones ... mi_rutina: cdigo de la subrutina ... Return

Display de LEDs programado en mikroBasic. Es muy recomendable por cuestiones de claridad del cdigo y sobre todo para facilitar su mantenimiento, que aquellos grupos de instrucciones que se utilicen mas de una vez dentro del programa, se escriban como funciones o procedimientos. MikroBasic permite el uso de ambas, y esta es la sintaxis que se debe respetar: Funciones: sub function nombre_de_la_funcion(lista_de_parametros) as tipo [ declaraciones locales ] Cuerpo de la funcion end sub Procedimientos: sub procedure nombre_del_procedimiento(lista_de_parametros [ declaraciones locales ] Cuerpo del procedimiento end sub Ejemplo: Una funcin para elevar un numero x a una potencia n cualquiera. sub function potencia(dim x, n as byte) as longint dim i as byte i=0 resultado = 1 if n > 0 then for i = 1 to n resultado = resultado*x next i end if end sub Desde el programa principal, si queremos calcular 25, debemos escribir algo como esto: A = potencia (2,5) Y A tomara el valor de 32 (25).

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

Permite colorear el cdigo para facilitar la lectura. Cada uno de estos puertos recibe un nombre, generalmente puertoA, puertoB, etc. En los microcontroladores PICs mas pequeos, de 8 pines en total, solo se dispone de un puerto que tiene hasta 6 E/S (los otros dos pines del PIC se destinan a la alimentacin del mismo). En los de 16 pines disponemos de dos puertos, el portA que tiene entre 5 y 8 E/S (dependiendo del modelo de PIC) y el portB que tiene 8 E/S. Desde MikroBasic es posible leer cada uno de los 8 bits que componen cada puerto, o escribir en ellos un 1 o un 0, adems de elegir individualmente el comportamiento de cada pin, es decir, si va a ser un pin de entrada o de salida. En los PICs mas complejos tambin se puede seleccionar si un pin determinado de un puerto va a ser una entrada analgica (que el PIC va a convertir internamente en un valor digital), etc. Veamos cuales son estas instrucciones mediante un caso prctico: supongamos que estamos usando un PIC 16F84A, que no posee conversores A/D, solo tiene dos puertos de E/S digitales, el puertoA con E/S y el puertoB con 8. Vamos a configurar todo el puertoA como entradas (supongamos que en ellas tendremos conectados pulsadores que al operarlos conecten el pin correspondiente a 5V) y el puertoB tendra los primeros cinco pines (del 0 al 4) como salidas, conectados a LEDs que encendern cuando escribamos un 1 en ellas y los dems (del 5 al 7) como entradas. El circuito elctrico seria el de la figura que vemos al final de la pgina. La instruccin TRISn es la que nos permite configurar los pines del puerto n como entradas y salidas. Podemos configurarlos individualmente, o bien configurar todo el puerto a la vez. Los pines que TRIS defina como 0 sern de salida, y los definidos como 1 se comportaran como entradas. Veamos algunos ejemplos: TRISB = 0 : Configura TODOS los pines del puertoB como salidas. TRISB = %11110000 : Configura los pines del 4 al 7 como entradas y los dems como salidas. El % indica que el numero a continuacin esta en binario. TRISB = 240 : Hace lo mismo que la anterior: 240 en decimal es lo mismo que 11110000 en binario. (128 + 64 + 32 + 16 + 0 + 0 + 0 + 0 = 240) TRISA = 255 : Configura todo el puertoA como entradas. Si el puerto solo tiene 5 bits conectados a pines fsicos, los otros 3 bits se ignoran. Para el caso de nuestro ejemplo, el programa quedara as: program Ejemplo1 main: 'Este es el cuerpo del programa TRISA = 255 ' Todos los pines del puertoA como entradas TRISB = %11100000 ' PuertoB tiene 3 pines como entradas y 5 como salidas end. 'Fin del programa

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

Obviamente, si compilamos este programa y lo cargamos en el microcontrolador, no veremos que encienda ningn LED ni ninguna otra cosa, puesto que lo nico que hemos hecho es configurar los puertos, pero no hemos escrito nada en ellos. Ahora, veamos como hacer para que los LEDs enciendan a medida que accionemos los pulsadores. Al conectar el circuito a la alimentacin, los 5 LEDs estarn apagados. Al ir presionando los pulsadores, el LED correspondiente se encender, y quedara en ese estado. Si se pulsa cualquiera de los tres pulsadores conectados a los pines del puertoB, todos los LEDs que estn encendidos se apagaran. Veamos el programa: program Ejemplo2 main: 'Este es el cuerpo del programa TRISA = 255 ' Todos los pines del puertoA como entradas TRISB = %11100000 ' PuertoB tiene 3 pines como entradas y 5 como salidas PORTB = %00000000 ' Apago los LEDs conectados al puertoB while TRUE ' Comienzo un bucle infinito if PORTA.0 = 1 then ' Si se presiona el pulsador 1 PORTB.0 = 1 ' Enciendo el LED 1 End if if PORTA.1 = 1 then ' Si se presiona el pulsador 2 PORTB.1 = 1 ' Enciendo el LED 1 End if if PORTA.2 = 1 then ' Si se presiona el pulsador 3 PORTB.2 = 1 ' Enciendo el LED 1 End if if PORTA.3 = 1 then ' Si se presiona el pulsador 4 PORTB.3 = 1 ' Enciendo el LED 1 End if if PORTA.4 = 1 then ' Si se presiona el pulsador 5 PORTB.4 = 1 ' Enciendo el LED 1 End if if PORTB.5 = 1 OR PORTB.6 = 1 OR PORTB.7 = 1 then ' Si se presiona algun pulsador del puertoB PORTB = %00000000 ' Apago los LEDs conectados al puertoB End if

delay_ms(100) ' Espero 100 milisegundos antes de wend ' repetir el bucle. end. 'Fin del programa El programa anterior se puede compilar y cargar en un 16F84A mediante el programador visto oportunamente. Los que hayan armado el entrenador visto en Power User tambin pueden aprovecharlo y montar sobre el circuito correspondiente para probar el programa. Es importante recalcar que el uso de comentarios, tal como se ve en el cdigo anterior, permite la fcil comprensin del programa por terceros (e incluso por uno mismo!).

Esta fuente es necesaria para alimentar al PIC.

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

Circuito para probar el codigo de control de puertos.

Los ejemplos visto, si bien muy simples ya que justamente esa era la idea al escribirlos, nos permiten vislumbrar el potencial de este lenguaje. Es evidente que teniendo una idea acabada de la tarea que debe realizar nuestro circuito y construyendo un algoritmo adecuado, esta en nuestras manos el poder realizar prcticamente cualquier aparato usando un PIC. A lo largo de sucesivas notas veremos como controlar motores, displays LCD y todo lo imaginable mediante un PIC, y como no, mikroBasic. Descarga de mikroBasic.

Anuncios Google

TAGS: TUTORIALES

Y T, QU OPINAS?

#1

kile jueves, 07 de diciembre de 2006, 00:00


Me pueden decir como programar el pic 16F628 para un control de un auto (juguete) pero los comandos son enviados por MATLAB en mi computadora de ahi a la etada de radio control y luego al receptor .
Votos: 0 de 2

Responder >>

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

#2

Cesar.... viernes, 02 de marzo de 2007, 23:58


buenisimo el articulo. .....esta muy claramente explicado......me gustaria seguir viendo funciones mas especificas....pro ejemplo en el 16f628 ocupar el pwm en basic y esas cosas, ya que no se donde sacar info sobre eso.....saludos ;)
Votos: 1 de 1

Responder >>

#3

Cesar... viernes, 06 de abril de 2007, 19:22


Por la misma razn que encuentro muy buenos estos articulos, es que los insto a seguir con mas articulos sobre mikrobasic, seria de gran ayuda para mi, y muchas personas que buscan info en la red.....saludos ;)
Votos: 1 de 1

Responder >>

#4

luis reyes jueves, 06 de septiembre de 2007, 19:10


Te pido que me ayudes en un proyecto es el control de giro de un motor yipo jaula de ardilla usando redes neuronales, las redes neuronales se usan en matlab, aydame con el programa , con el modo de cargarlo a comunicarlo con un pic , el circuto electrico y como iran a los contactores este circuto please
Votos: 0 de 0

Responder >>

#5

Bran mircoles, 05 de diciembre de 2007, 19:35


Que calidad de articulo, buenisiiiimo, solo resta esperar las proximas entregas. Por favor no tardes amigo... me gustaria informacion sobre librerias para comunicacion con RS232. Saludos!!!!!
Votos: 0 de 0

Responder >>

#6

Darved lunes, 24 de diciembre de 2007, 19:36


Necesito mxa ayuda. resulta que necesito conectar un ultrasonido PING))) al pic 16F877 pero este sensor solo tiene un pin que usa de entrada y salida (adeams de los pines de alimentacion, claro esta). No se como hacer para que un pin del pic se comporte como entrada o como salida, ese es el pproblema. Te agradeceria mucho tu ayuda.
Votos: 1 de 1

Responder >>

#7

HUGO_AUSTRIA mircoles, 30 de enero de 2008, 01:36


Requiero un manual de mikrobasic en espaol como me pueden acer llegar uno Gracias Hugo Austria
Votos: 0 de 0

Responder >>

#8

workman lunes, 04 de febrero de 2008, 04:11


Wow increible!!! muchas gracias, ya en varios foros he solicitado esto o alguna pista de como realizar las salidas o ver las palabras reservadas de algun lenguaje para empezar a programar pics y nadie respondia.... pero me topo con este articulo que esta INCREIBLE!!! muchas gracias por compartir. salu2
Votos: 0 de 0

Responder >>

#9

victor lunes, 05 de mayo de 2008, 19:26


me parece un gran articulo bastante preciso a lo que uno quierey busca

Responder >>

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte

Votos: 0 de 0

#10

el201044 sbado, 31 de mayo de 2008, 01:30


quisiera saber si pueden informarme como puedo conseguir el programa para decodificar seal de tv por cable para un pic 16f84,y tambien el circuito electrico
Votos: 0 de 0

Responder >>

#11

marshall_260 sbado, 31 de mayo de 2008, 15:06

#10 Hola el201044.

No tenemos idea de donde conseguir lo que necesitas. De hecho, es posible que en muchos paises ni siquiera sea legal construir algo asi. Saludos.
Votos: 0 de 0

Responder >>

#12

Julio Cesar viernes, 11 de julio de 2008, 07:17


Li o artigo sobre o MikroBasic, gostei muito, sou iniciante em programao pic, conheci o programa MikroBasic a pouco tempo, e aprendi mais algumas coisas lendo esta primeira parte. Voces esto de parabens, muito bem explicado. Julio Cesar Brasil - Curitiba-Paran
Votos: 1 de 1

Responder >>

#13

1Neri1 viernes, 18 de septiembre de 2009, 07:00


el articulo esta muy bueno para alguien que recien esta empezando, felicidades
Votos: 0 de 0

Responder >>

#14

patriska mircoles, 23 de diciembre de 2009, 06:20


Q tal, que paso con la contibuacion de esto. Le cambiaron el nombre?? o no le siguieron??

Votos: 0 de 0

Responder >>

#15

Himself mircoles, 25 de agosto de 2010, 00:19


Chequealo esta buena!
Votos: 0 de 0

Responder >>

#16

matias viernes, 26 de agosto de 2011, 05:03


hola a todos necesito a alguien q sepa bien de programacion, tengo un proble en la escuela ( estoy en la secundaria) porfavor alguien q me ayude porq me han dado el trbajo final y no lo puedo realizar si alguien me ayuda porfavor q me contacte, les dejo mi correo electronico: mati_style_@hotmail.com porfavor los necesito para graduarme y es la unica materia en la q me cuesta mucho, espero una respuesta inmediata

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

MikroBasic - Primera Parte Votos: 0 de 0

Responder >>

#17

mecatroyer lunes, 21 de noviembre de 2011, 02:46


Muchas gracias por la informacin, de ante mano muchas gracias.
Votos: 0 de 0

Responder >>

NUEVO COMENTARIO
Nombre Email

Comentario

enviar >>

vista previa

Volver a comentarios

Ir arriba
Copyright 2005 - 2011 NeoTeo - Revista de Tecnologa

ACERCA DE NEOTEO
Contacto Publicidad

JUEGOS
Angry Birds Juegos de Kick Buttowski Juegos Fox Juegos para Nias Juegos Gratis ABC Juegos

WEBS DEL GRUPO


Tienda de Fotografa Ropa Descargas

http://www.neoteo.com/mikrobasic-primera-parte[12/10/2012 01:27:29 a.m.]

You might also like