comandos basic

20
Introducción En este documento de investigación se encuentra la indagación se encuentra ¿Que es Basic? Y los comandos que se usan para programar en el. El BASIC es un lenguaje de programación que se creo con fines pedagógicos, era el lenguaje que utilizan las microcomputadoras de los años 80. Actualmente sigue siendo muy conocido y tienen muchísimos dialectos muy diferentes al original. Los creadores del BASIC fueron John Goerge Kemeny y Thomas Eugene Kurtz en el año 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 programación mucho más sencillo que los que existían por aquel entonces.

Upload: mario-peralta

Post on 21-Nov-2015

216 views

Category:

Documents


3 download

DESCRIPTION

Comandos Basic Comandos del lenguaje Basic comandos para PICsbasic

TRANSCRIPT

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 deBasicGratuitos:

Small Basic es un compilador para Windows, creado por Microsoft, gratuito, pensado para principiantes. Puedes leer ms sobre len 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 sobreVisual 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 sobreXBasic, 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 Basices similar, para Linux y Dos. Free Basices un compilador multiplataforma de cdigo abierto (open-source) que busca ser lo ms compatible posible con QBasic y QuickBasic. QuickForwardes un compilador de cdigo abiertoque incorpora un entorno de desarrollo y que pretende ser altamente compatible con QuickBasic 4.5. NewBasices 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. SpeedBasices 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 ExtremeBasices 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. wxBasices un compilador de Basic multiplataforma (Windows y Linux) que se apoya en las bibliotecas wxWindows. SmallBasices un compilador sencillo con versiones para Windows, Dos, Linux y PalmOs. La versin"Express" de Visual Basic 2005parece poder descargarse libremente desde la pgina Web de Microsoft, enmsdn.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. TrueBasices 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. RealBasices un compilador multiplataforma para Windows, Macintosh y Linux, con buena apariencia, pero no es gratuito. Se puede descargar una versin demo. iBasices otro compilador no gratuito para Windows, con soporte para DirectX. Otro no gratuito pero interesante esPowerBasic. Tambin puedes echar un vistazo aPureBasic, que tiene versiones para Windows, Linux y AmigaOS.

Comandos De Lenguaje BASIC

COMENTARIOSUsar 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 simulacinBien, 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 0poner pin0 a nivel altohigh0;poner pin0 a nivel altohigh 0Rem poner pin0 a nivel alto

SYMBOLLos smbolos en nuestras rutinas, son palabras clave que identifican constantes, variables y direcciones en el programa.La asignacin del smbolo se realiza poniendo el comandosymbol+ 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 programaLas direcciones del programa configuradas con el comandosymbol, 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 define Led-Rojo como una constante (la salida7)symbol Contador = B0 define Contador como una variable (B0)let Contador = 200 precarga de la variable Contador con el valor 200inicio: define una direccin de programahigh Led_Rojo pone a nivel alto 1 la salida 7pause Contador espera de 0,2 segundoslow Led_Rojo pone a nivel bajo 0 la salida 7pause Counter espera de 0,2 segundosgoto inicio salta hasta la direccin indicada en inicio

CONSTANTESLas 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 ().

VARIABLESVeamos 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.

PICAXEEl sistema PICAXE da soporte a las siguientes variables:Words:W0, W1, W2, W3, W4, W5, W6Bytes:DIRS, PINS (solo PICAXE-08), INFRA, KEYVALUEB0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13Bits: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.

BASICEl modo BASIC da soporte a las siguientes variables:Words:PORTW0, W1, W2, W3, W4, W5, W6Bytes:DIRS, PINSB0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13Bits: 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 consiguienteno debera utilizarse como un registro de propsito general.

EXTENDEDEl 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.

ENSAMBLADOREl modo ensamblador soporta los mismos modelos de variables que el modo extendido.

GOTOEste 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 salida 1 a nivel altopause 5000espera de 5 segundoslow 1 salida 1 a nivel bajopause 5000espera de 5 segundosgoto inicio salta a inicio

GOSUBEste 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 15pause 2000 espera de 2 segundosgosub flash salta al procedimiento flashlet b2 = 5 set b2 con valor 5pause 2000 espera de 2 segundosgosub flash salta al procedimiento flashend fin del programa

flash:for b0 = 1 to b2 define el bucle con el valor b2high 1 salida 1 a nivel altopause 500 espera de 0,5 segundoslow 1 salida 1 a nivel bajopause 500 espera de 0,5 segundosnext b0 fin de buclereturn retorno a linea siguiente de la llamadagoto inicio

Dicho en otras palabras, cuando nosotros ejecutamosGOSUB, salta el programa a una etiqueta, y cuando llega al comandoRETURN, vuelve a la siguiente linea de donde partio con el comandoGOSUB....

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= output7ejemplo1:high led1pause 1000low led1pause 1000high led1pause 1000low led1pause 1000high led1pause 1000low led1pause 1000high led1pause 1000low led1pause 1000high led1pause 1000low led1pause 1000end

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 softwareprograming editor, copiamos y pegamos en el las siguientes lineas de instrucciones que doy como ejemplo a continuacin:

bucle:for b0 = 1 to 20 define el bucle con repeticin de 1 a 20high 1 salida 1 a nivel altopause 500 espera de 0,5 segundoslow 1 salida 1 a nivel bajopause 500 espera de 0,5 segundosnext b0 fin de buclepause 2000 espera de 2 segundosgoto bucle 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 casob0) 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 comandoPAUSEyGOTO, 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 20high 1 salida 1 a nivel altopause 500 espera de 0,5 segundoslow 1 salida 1 a nivel bajopause 500 espera de 0,5 segundosnext b0 fin de buclepause 2000 espera de 2 segundosend salta a bucle para comienzo de nuevo

HIGHEste 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...

LOWEste 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 comandoshighylowen el siguiente ejemplo:

inicio:high 1 pone salida 1 a nivel altopause 5000espera de 5 segundoslow 1 pone la salida 1 a nivel bajopause 5000espera de 5 segundosgoto iniciosalta a comienzo de bucle repetitivo

INPUTEste 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)

OUTPUTEste comando refiere a un puerto de salida especifico; En cierta manera, convierte el numero de Pin especificado en una salida. Osea, como mencione anteriormente eninput, 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 saltar al subprocedimiento i1gosub i2 saltar al subprocedimiento i2goto inicio volver a la etiqueta inicio

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

i2:if in1 = 0 then salida6 si la entrada 1 es igual a cero, entonces ir a la etiqueta salida6pause 500 retardo de 1/2 segundoreturn volver y seguir en la seguiente linea (en este caso gosub i2)

salida7:high 7 poner en alto salida 7low 6 poner en bajo salida 6pause 500 retardo de 1/2 segundogoto i2 ir a la etiqueta i2

salida6:high output6 poner en alto salida 6low output7 poner en bajo salida 7pause 500 retardo de 1/2 segundogoto inicio 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.

ENDEste 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 set b2 con valor 5pause 2000 espera de 2 segundosgosub flash salta al subprocedimiento flashlet b2 = 3 set b2 con valor 3pause 2000 espera de 2 segundosgosub flash salta al subprocedimiento flashend

flash:for b0 = 1 to b2 define el bucle con el valor b2high 1 salida 1 a nivel altopause 500 espera de 0,5 segundoslow 1 salida 1 a nivel bajopause 500 espera de 0,5 segundosnext b0 fin de buclereturn retorno a linea siguiente de la llamada

ifthenifandtheniforthen

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) 50goto inicio sino salta a inicio

flash:high 1 pone a nivel alto el pin 1pause 5000 espera de 5 segundoslow 1 pone a nivel bajo la salida 1goto inicio salto a inicioMencionemos algunas instruccionesIf . . ThenSalto condicional a otra instruccin.For . . NextRepite varias veces una serie de instrucciones.GosubLlamada a una subrutinaHighEnciende un pinLowApaga un pinSerinEntrada serie asncrona en un pin. (RS232)SeroutSalida serie asincrona en un pin. (RS232) AdcinLee el convertidor analgico digitalWriteEscribe en la memoria EEPROM del PICHpwmSalida para generar modulacin en anchura de pulsosCONCLUSION

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