You are on page 1of 14

Introduccin

En este documento de investigacin se encuentra la indagacin se encuentra Que es Basic? Y los


comandos que se usan para programar en el.
El BASIC es un lenguaje de programacin que se creo con fines pedaggicos, era el lenguaje que utilizan
las microcomputadoras de los aos 80. Actualmente sigue siendo muy conocido y tienen muchsimos
dialectos muy diferentes al original.
Los creadores del BASIC fueron John Goerge Kemeny y Thomas Eugene Kurtz en el ao 1964. Fue
inventado para permitir a los estudiantes escribir programas usando terminales de computador de tiempo
compartido. Con el BASIC se quiso hacer un lenguaje de programacin mucho ms sencillo que los que
existan por aquel entonces.

BASIC
En la programacin de computadoras, el BASIC, siglas de Beginner's All-purpose Symbolic Instruction Code1
(Cdigo simblico de instrucciones de propsito general para principiantes en espaol), es una familia de lenguajes
de programacin de alto nivel. El BASIC original, el Dartmouth BASIC, fue diseado en 1964 por John George
Kemeny y Thomas Eugene Kurtz en el Dartmouth College en New Hampshire, Estados Unidos, como un medio
para facilitar la programacin en ordenadores a estudiantes (y profesores) que no fueran de ciencias. De aquella,
casi todo el uso de los ordenadores requera codificar software hecho a medida, con lo cual quedaba restringida a

personas con formacin como cientficos y matemticos. BASIC originalmente fue desarrollado como una
herramienta de enseanza. El lenguaje y sus variantes llegaron a estar ampliamente disponibles en los
microcomputadores a finales de los aos
1970 y en los aos
1980. BASIC sigue siendo popular a da
de hoy en un puado
de dialectos altamente modificados, y en
nuevos
lenguajes,
influenciados por BASIC tales como
Microsoft Visual Basic
o Gambas en GNU/Linux. En el ao
2006, el 59% de los
desarrolladores para la plataforma .NET
usaban Visual Basic
.NET como su nico lenguaje

Compiladores de Basic
Gratuitos:

Small Basic es un compilador para Windows, creado por Microsoft, gratuito, pensado para principiantes.
Puedes leer ms sobre l en el blog.
ASIC, version 4.00, compilador de Basic, parecido a QuickBasic, comprimido con ZIP, 260 K.
UBasic, version 8.30, intrprete de Basic, parecido a GwBasic, comprimido con ZIP, 338 K.
Informacin sobre Visual Basic, la herramienta visual para Windows creada por Microsoft, basada en el
lenguaje Basic. Es posible descargar la versin "Control Creation Edition", que no permite crear ficheros
EXE pero s controles ActiveX, tras rellenar un formulario en la Web de Microsoft.
RapidQ, es un compilador de Basic Visual, gratis, que est disponible para Windows y para Linux. Tambin
permite crear aplicaciones "en modo texto", e incluso escribir antiguos programas con nmeros de lneas....
Informacion sobre XBasic, otro compilador de Basic Visual, tambin gratis (pero ms difcil de manejar) y
tambin disponible para Windows y para Linux.
DarkBasic, es compilador de Basic para Windows, pensado para poder crear juegos con facilidad.
Envelop, es un compilador de Basic Visual, que imita el Visual Basic de Microsoft.
Yabasic, es un intrprete de Basic en modo consola (texto) que est disponible para Windows y diversos
sistemas Unix, y que incluye el cdigo fuente del intrprete.
Bywater Basic es similar, para Linux y Dos.
Free Basic es un compilador multiplataforma de cdigo abierto (open-source) que busca ser lo ms
compatible posible con QBasic y QuickBasic.
QuickForward es un compilador de cdigo abierto que incorpora un entorno de desarrollo y que pretende
ser altamente compatible con QuickBasic 4.5.
NewBasic es un proyecto para crear un compilador de Basic de cdigo abierto (open-source),
multiplataforma, orientado a objetos y compilado a Byte-Code (como Java).
B++ (o B-improved) tambin es un proyecto de Basic para Windows orientado a objetos.
SpeedBasic es un curioso proyecto con un entorno integrado, que permite crear programas visuales, y que
convierte los fuentes Basic a C++ para que luego puedan ser compilados con Visual C++ 6, MinGW o
Borland C++ 5.5
ExtremeBasic es un compilador para Windows y para Mac que incluye entorno de desarrollo y que permite
crear aplicaciones GUI (entornos grficos de usuario). La versin para Windows necesita el compilador de
C++ MinGW.
wxBasic es un compilador de Basic multiplataforma (Windows y Linux) que se apoya en las bibliotecas
wxWindows.
SmallBasic es un compilador sencillo con versiones para Windows, Dos, Linux y PalmOs.
La versin "Express" de Visual Basic 2005 parece poder descargarse libremente desde la pgina Web de
Microsoft, en msdn.microsoft.com/vstudio/express/vb/

No gratuitos:

QBasic era un intrprete de Basic en modo texto que vena incorporado en las ltimas versiones de MsDos.
QuickBasic era un compilador de Basic en modo texto para MsDos realizado por Microsoft. Hasta donde yo
s, no se contina su desarrollo ni se puede descargar (legalmente al menos) desde ningn sitio.

Visual Basic es un compilador de Basic para Windows, creado por Microsoft, visual, pensado para crear con
facilidad aplicaciones con interfaces grficas. No es gratuito. Tienes ms informacin en la pgina de
Microsoft: msdn.microsoft.com/vbasic.
TurboBasic es un compilador de Basic en modo texto para MsDos realizado por Borland. Hasta donde yo
s, no se contina su desarrollo ni se puede descargar (legalmente al menos) desde ningn sitio.
TrueBasic es un entorno creado por John G. Kemeny y Thomas E. Kurtz, los creadores originales del
lenguaje Basic en 1964. Hay versiones para Windows y Mac, pero la de libre descarga obliga a dejar de
trabajar con ella cada 15 minutos volver a entrar.
RealBasic es un compilador multiplataforma para Windows, Macintosh y Linux, con buena apariencia, pero
no es gratuito. Se puede descargar una versin demo.
iBasic es otro compilador no gratuito para Windows, con soporte para DirectX.
Otro no gratuito pero interesante es PowerBasic.
Tambin puedes echar un vistazo a PureBasic, que tiene versiones para Windows, Linux y AmigaOS.

Comandos De Lenguaje BASIC


COMENTARIOS
Usar comentarios en un programa; Aunque sea perfectamente obvio para todos ustedes, puede ser una
herramienta extra que el dia de maana, te puede ayudar a comprender por que implementaste esa seccin en
tu rutina; Ademas, hay que tener en cuenta que si lo compartimos, alguien ms puede leerlo y puede no tener
idea de lo que estas haciendo.
Cabe aclarar, que los comentarios usan espacio en el archivo fuente (.bas), pero no lo hacen en el PICAXE,ya
que estos no son subidos junto a la rutina de programacin.
Implementar un bloque de comentarios en el comienzo del programa y antes de cada seccin del cdigo, puede
describir cual es la funcin de la rutina que tenemos, o bien, podemos describir con mas detalles cada linea de
nuestro programa. Para reconocer los comentarios, podemos dirigirnos a nuestra seccin configuracin del
software, y en la pestaa "editor", seleccionamos preferencias de colores en la sintaxis
Con esta ultima accin, podremos diferenciar en nuestras rutinas los comandos, los comentarios con un color
distintos...
Los comentarios comienzan con un apstrofe () o punto y coma (;) y contina hasta el final de la lnea.
Tambin es muy comn que las personas de habla inglesa y con viejas maas del antiguo basic, implementen
la palabra clave "REM"... esta palabra tambin puede ser usada para comentarios, pero yo personalmente no
la aconsejo, ya que un error en la escritura, por ejemplo REN, nos dara errores en la compilacin y o
simulacin
Bien, vamos a mirar lo que les explico directamente en nuestros software de programacin... configuramos el
soft como mencionamos anteriormente y copiamos y pegamos el siguiente ejemplo:
high 0 poner pin0 a nivel alto
high0 ;poner pin0 a nivel alto
high 0 Rem poner pin0 a nivel alto

SYMBOL
Los smbolos en nuestras rutinas, son palabras clave que identifican constantes, variables y direcciones en el
programa.
La asignacin del smbolo se realiza poniendo el comando symbol + nombre del smbolo y seguido de este
implementamos el signo igual (=). Posterior a estas lineas, agregamos la variable o constante.
Los smbolos pueden ser cualquier palabra que no sea la relativa a un comando.
Los smbolos pueden contener caracteres numricos (e.j.: ucontrol1, salida2, etc.) Pero el primer carcter no
puede ser uno numrico (e.j.: 1salida).
El uso de smbolos no aumentan la longitud del programa. osea, esta funcin no tiene peso alguno en lo que
refiere el programa. Por lo general, yo en mi caso, implemento este comdo para renombrar las entradas y
salidas del microcontrolador, osea, me ayuda a recordar cual es la funcin de cada salida a la hora de leer y o
modificar mi programa
Las direcciones del programa configuradas con el comando symbol, siempre tienen que ir sobre la primer

instruccin o mejor dicho, al inicio del programa.


Nuevamente, vamos a nuestro software y ejecutaremos la siguiente rutina de ejemplo:
symbol Led_Rojo = 7
symbol Contador = B0
let Contador = 200
inicio:
high Led_Rojo
pause Contador
low Led_Rojo
pause Counter
goto inicio

define Led-Rojo como una constante (la salida7)


define Contador como una variable (B0)
precarga de la variable Contador con el valor 200
define una direccin de programa
pone a nivel alto 1 la salida 7
espera de 0,2 segundos
pone a nivel bajo 0 la salida 7
espera de 0,2 segundos
salta hasta la direccin indicada en inicio

CONSTANTES
Las llamadas constantes, pueden ser creadas de manera similar a las variables. Puede que sea ms
conveniente usar un nombre para la constante en lugar de implementar un nmero constante. Si el nmero
necesita ser cambiado, nicamente puede ser cambiado en algn lugar del programa donde se define la
constante. Dentro de las constantes, no pueden guardarse datos variables.
Las constantes declaradas pueden ser de cuatro tipos: decimal, hexadecimal, binario y ASCII.

Los nmeros decimales se escriben directamente sin ningn prefijo.

Los nmeros hexadecimales se preceden del smbolo dlar ($).

Los nmeros binarios de preceden del smbolo tanto por ciento (%).

Los valores ASCII se colocan tre comilla ().

VARIABLES
Veamos los tipos de variable segn el sistema, ya que estas varan en su aplicacin segn cada modelo de
programacin :

PICAXE es usado al programar mdulos PICAXE.

El BASIC y Extended son usados al programar mdulos Stamp.

El ensamblador es el utilizado con cdigo de ensamblador.

PICAXE
El sistema PICAXE da soporte a las siguientes variables:
Words: W0, W1, W2, W3, W4, W5, W6
Bytes: DIRS, PINS (solo PICAXE-08), INFRA, KEYVALUE
B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13
Bits: PIN0, PIN1, PIN2, PIN3, PIN4, PIN5, PIN6, PIN7 (conjuntamente igual PINS)
BIT0, BIT1, BIT2, BIT3, BIT4, BIT4, BIT5, BIT6, BIT7 (conjuntamente igual B0)
BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14, BIT15 (conjuntamente igual B1)
In/Out aade los pseudo nombres:
INPUT0, INPUT1, etc. puede usarse en lugar de PIN0, PIN1, tec.
OUTPUT0, OUTPUT1, etc. puede usarse en lugar de 0, 1, 2, etc.
BASIC
El modo BASIC da soporte a las siguientes variables:
Words: PORT
W0, W1, W2, W3, W4, W5, W6

Bytes: DIRS, PINS


B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13
Bits: DIR0, DIR1, DIR2, DIR3, DIR4, DIR5, DIR6, DIR7 (conjuntamente igual DIRS)
BIT0, BIT1, BIT2, BIT3, BIT4, BIT4, BIT5, BIT6, BIT7 (conjuntamente igual B0)
BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14, BIT15 (conjuntamente igual B1)
Nota: B12 y B13 (W6) es usado dentro de las rdenes GOSUB como una pila. Por consiguiente
no debera utilizarse como un registro de propsito general.
EXTENDED
El modo extendido da soporte a todas las variables de BASIC.
Adems: INPUT0, INPUT1, etc . puede usarse en lugar de pin0, pin1 etctera.
OUTPUT0, OUTPUT1, etc . puede usarse en lugar de 0, 1, 2 etctera.
Nota:B12 y B13 (W6) es usado dentro de las rdenes GOSUB como una pila. Por consiguiente no debera
utilizarse como un registro de propsito general.
ENSAMBLADOR
El modo ensamblador soporta los mismos modelos de variables que el modo extendido.
GOTO
Este comando tiene como funcin la ejecucin del programa que continua en la declaracin de la etiqueta.
Osea, dicho en otras palabras, este comando tiene como funcin dar una direccin donde saltara el programa y
seguira la lectura de las instrucciones para continuar el programa.
veamos un ejemplo practico:
inicio:
high 1
pause 5000
low 1
pause 5000
goto inicio

salida 1 a nivel alto


espera de 5 segundos
salida 1 a nivel bajo
espera de 5 segundos
salta a inicio

GOSUB
Este comando, tiene como funcin saltar a la subrutina indicada en etiqueta, guardando su direccin de
regreso en la memoria pila (snack). A diferencia del GOTO, cuando se llega a un RETURN, la ejecucin sigue
con la declaracin siguiente al ltimo GOSUB ejecutado.
Se puede usar un nmero ilimitado de subrutinas en un programa y pueden estar anidadas. En otras palabras,
las subrutinas pueden llamar a otra subrutina. Cada anidamiento no debe ser mayor de cuatro niveles.
Ejemplo:
inicio:
let b2 = 15
set b2 con valor 15
pause 2000
espera de 2 segundos
gosub flash
salta al procedimiento flash
let b2 = 5
set b2 con valor 5
pause 2000
espera de 2 segundos
gosub flash
salta al procedimiento flash
end
fin del programa
flash:
for b0 = 1 to b2 define el bucle con el valor b2
high 1
salida 1 a nivel alto
pause 500
espera de 0,5 segundos
low 1
salida 1 a nivel bajo
pause 500
espera de 0,5 segundos
next b0
fin de bucle
return
retorno a linea siguiente de la llamada
goto inicio
Dicho en otras palabras, cuando nosotros ejecutamos GOSUB, salta el programa a una etiqueta, y cuando
llega al comando RETURN, vuelve a la siguiente linea de donde partio con el comando GOSUB....

FOR ... NEXT


El bucle FOR NEXT permite a los programas ejecutar un nmero de declaraciones, tantas veces se lo defina
usando una variable como contador. Este comando es ideal para acortar lineas de programas repetitivos; quiza
no sea aplicable a muchas ideas, pero por lo general, con un poco de maa, se lo puede acondicionar a
nuestras necesidades.... Miren estos dos ejemplos sencillos donde queremos hacer que un led parpadee unas 5
veces:
symbol led1= output7
ejemplo1:
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
high led1
pause 1000
low led1
pause 1000
end
Ahora, veamos este otro modo de realizar la misma accion:
bucle:
for b0 = 1 to 5
high 1
pause 500
low 1
pause 500
next b0
end
Quiza, como es un poco difcil de entender perfectamente como funciona este comando, vamos a describirla
paso a paso para comprender mejor como funciona esta y para que sirve. Una ves mas, arrancamos nuestro
software programing editor, copiamos y pegamos en el las siguientes lineas de instrucciones que doy como
ejemplo a continuacin:
bucle:
for b0 = 1 to 20
high 1
pause 500
low 1
pause 500
next b0
pause 2000
goto bucle

define el bucle con repeticin de 1 a 20


salida 1 a nivel alto
espera de 0,5 segundos
salida 1 a nivel bajo
espera de 0,5 segundos
fin de bucle
espera de 2 segundos
salta a bucle para comienzo de nuevo

Como podemos ver en nuestro ejemplo (quiero imaginar que ya lo estn simulando); Al iniciarse el programa,
cuando la lectura ingresa en el contador (for b0 = 1 to 20), pre carga el valor 1 en un espacio de memoria
determinado (en este caso b0) y comienza un conteo que finalizara cuando llegue a 20.

En el caso de la rutina que ejemplifique, luego de pasar por la instruccin de comenzar con el contador, sigue
leyendo el resto de las lineas y ejecutando toda accin que conlleven en ellas (high1-pause-low1-pause)
hasta llegar a la linea donde dice "next b0". En esta linea, lo que hacemos, es decirle al contador que adicione
un entero en la memoria que alojamos el conteo (b0) y luego salta automticamente a la linea donde
comienza el contador (for b0 = 1 to 20) iniciando nuevamente toda la accin descrita anteriormente hasta
llegar a almacenar en la memoria el valor 20 (por que esa fue la instruccin que le dimos cuando le dijimos que
cuente de 1 a 20 con "for b0 = 1 to 20")... Ahora, notemos algo raro.... Cuando llega a 20, en ves de retornar
a la linea del contador, ahora sigue leyendo la siguiente linea. En este caso, la siguiente linea nos dice con el
comando PAUSE y GOTO, que debemos hacer un retardo y volver al programa u etiqueta "bucle".
Supuestamente, despus de esto, como el contador tenia registrado el valor 20, no tendria que seguir
contando... Bueno, pues le comento que no es asi, ya que al volver a reiniciarse el programa, el contador
vuelve a cero tambin.
Para el caso en que nosotros quisiramos que al llegar a determinado conteo, el programa termine, lo que
podramos hacer, es implementar la siguiente rutina:
bucle:
for b0 = 1 to 20
define el bucle con repeticin de 1 a 20
high 1
salida 1 a nivel alto
pause 500
espera de 0,5 segundos
low 1
salida 1 a nivel bajo
pause 500
espera de 0,5 segundos
next b0
fin de bucle
pause 2000
espera de 2 segundos
end
salta a bucle para comienzo de nuevo

HIGH
Este comando, es una accin que se implementa para poner a nivel alto (1 logico) un pin o mejor dicho puerto
de salida especifico del microcontrolador.
Dicho en otras palabras, empleamos este comando, para activar una salida...

LOW
Este comando es todo lo contrario al comando high, ya que coloca el pin de salida especificado en valor bajo (0
logico). Dicho en otras palabras, implementamos este comando para desactivar una salida...
Veamos como funcionan los comandos high y low en el siguiente ejemplo:
inicio:
high 1
pone salida 1 a nivel alto
pause 5000 espera de 5 segundos
low 1
pone la salida 1 a nivel bajo
pause 5000 espera de 5 segundos
goto inicio salta a comienzo de bucle repetitivo

INPUT
Este comando refiere a un puerto de entrada especifico; En cierta manera, convierte el numero de Pin
especificado en una entrada. Osea, no es que podemos configurar nuestros puerto como entradas y salidas; A
lo que me refiero, es que definimos en una linea, que accion queremos que adopte esa entrada definida.
Para definir nuestra entrada, se puede
implementar el
comando INPUT, o bien, podemos adoptar el
numero de
puerto (0 a 7 para el caso de los micros 18x) y
definirlo con un
sencillo IN antes del numero de puerto de
entrada (in7 /
input7)
Al definir el comando input en nuestro
programa,
automticamente, estamos mencionando que
vamos a
trabajar con seales digitales entrantes en un
puerto
definido... Cuando me refiero a seales
digitales, me
refiero a las seales que solo pueden estar en
dos estados...
Alto, o bajo (5vcc - ovcc / cerrado - abierto)

OUTPUT
Este comando refiere a un puerto de salida especifico;
En cierta
manera, convierte el numero de Pin especificado en
una salida. Osea,
como mencione anteriormente en input, no es que
podemos
configurar nuestros puerto como entradas y salidas; A
lo que me
refiero, es que definimos en una linea, que accin
queremos que
adopte esa salida definida. Para definir nuestra salida,
se puede
implementar el comando OUTPUT, o bien, podemos adoptar el numero de puerto (0 a 7 para el caso de los
micros 18x) y definir la accin o estado de este puerto (high 7 - low 7 / high output7 - low output7)
Para comprender un poco mejor lo que les explico, nuevamente, copiamos las siguientes lineas y las pegamos
en nuestro software para ver en el ejemplo, como funcionan las entradas y salidas de nuestro micro (notar que
en la versin 5.2 del software, se puede visualizar en un grafico los estados de los pines del microcontrolador):
inicio:
gosub i1
gosub i2
goto inicio

saltar al subprocedimiento i1
saltar al subprocedimiento i2
volver a la etiqueta inicio

i1:
if input1= 1 then salida7 si la entrada 1 es igual a uno, entonces ir a la etiqueta salida7
pause 500
retardo de 1/2 segundo
return
volver y seguir en la seguiente linea (en este caso gosub i2)
i2:
if in1 = 0 then salida6
pause 500
return

si la entrada 1 es igual a cero, entonces ir a la etiqueta salida6


retardo de 1/2 segundo
volver y seguir en la seguiente linea (en este caso gosub i2)

salida7:
high 7
low 6
pause 500
goto i2

poner en alto salida 7


poner en bajo salida 6
retardo de 1/2 segundo
ir a la etiqueta i2

salida6:
high output6
low output7
pause 500
goto inicio

poner en alto salida 6


poner en bajo salida 7
retardo de 1/2 segundo
ir a la inicio

Nota: en este ejemplo, cite ambas maneras e las que podemos definir u nombrar un puerto de entrada o
salida. Si ya han simulado esta rutina, vern que el software, las reconoce a ambas como lo mismo y no
genera ningn conflicto.

END
Este comando, tiene como objeto detener la ejecucin del proceso y el microcontrolador no se ejecuta mas
hasta que lo reiniciemos o bien, hasta que no le demos la instruccin manual de volver a comenzar con su
ciclo. Cuando el microcontrolador es detenido por el comando END, este entra en modo de bajo consumo. Otra
de las caracterstica de este comando, es que cuando se ejecuta esta instruccin, todos los pins de entrada y
salida, cuando la lectura de lineas llega a este comando, se congelan y permanecen en el estado en que se
encuentran(I/O).
Para ver mejor como funciona este comando, vamos a nuestro software programing editor, copiamos y
pegamos en el las siguientes lineas que sumo como ejemplo:
inicio:
let b2 = 5
pause 2000
gosub flash

set b2 con valor 5


espera de 2 segundos
salta al subprocedimiento flash

let b2 = 3
pause 2000
gosub flash
end

set b2 con valor 3


espera de 2 segundos
salta al subprocedimiento flash

flash:
for b0 = 1 to b2 define el bucle con el valor b2
high 1
salida 1 a nivel alto
pause 500
espera de 0,5 segundos
low 1
salida 1 a nivel bajo
pause 500
espera de 0,5 segundos
next b0
fin de bucle
return
retorno a linea siguiente de la llamada
ifthen
ifandthen
iforthen
Estos comandos son en si parte de una estructura de comparacin con salto a una direccin determinada
(siempre a una etiqueta), en el caso en que se cumpla la funcin asignada.
Las funciones que se pueden asignar a estas comparaciones son:
= (igual que)
>= (mayor o igual que)
> (mayor que)
< (menor que)
<= (menor o igual que)
<> (no es igual que)
& (funcin lgica AND)
or (funcin lgica OR)
entre otras, que veremos mas adelante dada su complejidad....
El principio basico de estos tres comandos, son la de establecer una pregunta (IF...)sobre el estado de un
puerto determinado, compara, lee el estado, evala en trminos de VERDADERO o FALSO y en el caso de ser
cierto, se ejecuta la operacin posterior al THEN (entonces...). Si lo considera falso, no se ejecuta la operacin
posterior al THEN y prosigue con la lectura de la siguiente linea.
Veamos lo que les menciono de la siguiente manera:

ifthen
if input 1 = 1 then action3
(traduciendo estos trminos, estamos diciendo que si la entrada 1 es igual a 1, entonces ir a la etiqueta
"action3")

ifandthen
if input 1 = 1 and input 0 = 1 then action3 (traduciendo estos trminos, estamos diciendo que si la entrada
1 es igual a 1 y la entrada 0 es igual a 1 , entonces ir a la etiqueta "action3")

iforthen
if input 1 = 1 or input 0 = 1 then action3
(traduciendo estos trminos, estamos diciendo que si la entrada 1 es igual a 1 o la entrada 0 es igual a 1 ,
osea, cualquiera de las dos entradas esta en estado alto, entonces ir a la etiqueta "action3")
Vamos hacerlo mas practico, y ejecutemos este ejemplo:
inicio:
if pin0 = 1 then flash
goto inicio

salta a flash si el valor del pin0 es un 1


sino salta a inicio

flash:
high 1

pone a valor alto la salida 1

pause 5000
low 1
goto inicio

espera de 5 segundos
pone a valor bajo la salida 1
salto a inicio

PAUSE
Este comando, es implementado para generar retardos en los saltos entre lineas y ejecucin del cdigo del
programa. La especificacin del tiempo de retardo, esta dada en "mili-segundos", y esta especificacin del
tiempo, es de 16 bits, por lo que los retardos pueden ser de hasta 65635 mili-segundos (66 segundos).
Veamos un ejemplo practico:
inicio:
high 1
pause 5000
low 1
pause 5000
goto inicio

pone el pin 1 a nivel alto


espera de 5 segundos
pone el pin 1 a nivel bajo
espera de 5 segundos
salta a inicio del bucle

WAIT
Este comando, al igual que el anterior, es implementado para generar retardos en los saltos entre lineas y
ejecucin del cdigo del programa. La especificacin del tiempo de retardo, esta dada en "segundos" y puede
tener un mximo de 65 segundos, el cual, si implementamos un FOR...NEXT, claramente podemos ampliarlo a
mas tiempo....
Veamoslo mas practico en este ejemplo:
inicio:
high 7
wait 5
low 7
wait 5
goto inicio

configura pin 7 como salida a nivel alto


espera 5 segundos
configura pin 7 como salida a nivel bajo
espera 5 segundos
repite programa indefinidamente

RETURN
Este es un muy buen comando que si lo sabemos implementar, podemos hacer watch dog mas rpidos e
interesantes. En si, este comando tiene como funcin volver desde una subrutina, retomando la ejecucin en la
declaracin que sigue al GOSUB que llam la subrutina.
veamos un ejemplo sencillo en nuestro software:
inicio:
let b2 = 15
pause 2000
gosub flash
let b2 = 5
pause 2000
gosub flash
end

asigna a la variable b2 el valor 15


espera de 2 segundos
llamada a subrutina flash
asigna a la variable b2 el valor 5
espera de 2 segundos
llamada a subrutina flash

flash:
for b0 = 1 to b2 define el bucle para el tiempo de b2
high 1
pone la salida 1 a nivel alto
pause 500
espera 0,5 segundos
low 1
pone la salida 1 a nivel bajo
pause 500
espera 0,5 segundos
next b0
fin del bucle
return
vuelve a lnea siguiente de llamada

INFRAIN
Este comando se implementa para para esperar en el receptor una seal infrarrojo procedente del transmisor
IR.
Este comando, ademas de poder implementarlos en nuestros propios proyectos, podemos crear nuestros

propios controles remotos IR o bien repetidores IR para toda la gama de equipos de la marca SONY, ya que
implementa el mismo protocolo que esta compaa implementa en sus productos.
El comando en si, interactua en el programa esperando la seal infrarroja, y una ves recibida esta seal, el
valor de ella se almacena en la variable predefinida infra (es similar a b0,b1,etc , `pero de uso exclusivo para
este comando).
Veamos este ejemplo.... Si no tienen un control sony, no importa, podemos simularlo igualmente y cambiar los
valores desde la tabla de variables de la derecha...
Inicio:
infrain espera una nueva seal infrarroja
if infra = 1 then accion_on1 si el valor de infra es 1 salta a accion_on1
if infra = 2 then accion_on2 si el valor de infra es 1 salta a accion_on2
if infra = 3 then accion_on3 si el valor de infra es 1 salta a accion_on3
if infra = 4 then accion_off1 si el valor de infra es 1 salta a accion_off1
if infra = 5 then accion_off2 si el valor de infra es 1 salta a accion_off2
if infra = 6 then accion_off3 si el valor de infra es 1 salta a accion_off3
goto inicio
accion_on1:
high 1
goto inicio
accion_on2:
high 2
goto inicio
accion_on3:
high 3
goto inicio
accion_off1:
low1
goto inicio
accion_off2:
low2
goto inicio
accion_off3:
low3
goto inicio

READADC
Un sensor analgico, es capas de medir y proveer informacin codificada en voltajes variables. Esta seal
entrante en el puerto analgico del microcontrolador, puede ser representado por valores de 0 a 255 (por
ejemplo en el caso de una foto resistencia, podriamos decir que 0 es oscuro, y 255 luz intensa)...
Este comando, lo podemos implementar para convertir una seal analgica entrante en el puerto ADC del
microcontrolador, en digital con una resolucin de 8 bits. El dato obtenido de esta lectura convertida (A/D), es
almacenada en una variable (b0,b1,b2,bX,etc) que luego, ese dato puede ser empleado para cualquier
propsito
NOTA: cuando implementamos este comando, es muy importante a tener en cuenta, que si almacenamos el
dato en una variable tipo "b1", esta es almacenada con una resolucin de 8 bits... Si la almacenamos en una
variable tipo "w1", el dato es almacenado con una resolucin de 10 bits...
Veamos este sencillo ejemplo primero:
inicio:
readadc 1,b1
if b1 > 50 then flash
goto inicio

lee el valor y lo almacena en b1


salta a flash si b1 > 50
sino salta a inicio

flash:
high 1
pause 5000
low 1
goto inicio

pone a nivel alto el pin 1


espera de 5 segundos
pone a nivel bajo la salida 1
salto a inicio

Mencionemos algunas instrucciones


If . . Then
Salto condicional a otra instruccin.
For . . Next
Repite varias veces una serie de instrucciones.
Gosub
Llamada a una subrutina
High
Enciende un pin
Low
Apaga un pin
Serin
Entrada serie asncrona en un pin. (RS232)
Serout
Salida serie asincrona en un pin. (RS232) Adcin
Lee el convertidor analgico digital
Write
Escribe en la memoria EEPROM del PIC
Hpwm
Salida para generar modulacin en anchura de pulsos

CONCLUSION
Aprend y entend que es el lenguaje Basic.
Aprend los varios tipos de comandos que existen para programar
en el lenguaje de BASIC.
Comprend que existen varios programas que derivan de el
lenguaje de BASIC pero tienen un propsito distinto al BASIC
original, en otras palabras esta programados para programar
para que compile un objeto distinto como el PICs.

BIBLIOGRAFIA
http://es.wikipedia.org/wiki/BASIC

http://www.ucontrol.com.ar/forosmf/picaxe/comandos-basic-de-programacion/

http://www.electronicaestudio.com/docs/09basic.pdf

You might also like