Está en la página 1de 7

____________________________________________Claudio Marcelo Villca Carrasco _________

TUTORIAL DE SINTAXIS BASIC


Estructura de un programa en BASIC
La estructura de un programa en MIKROBASIC, es denotado por la inclusin de los siguientes
cuerpos que lo componen:
1. Nombre del programa e inclusin de otros mdulos.
2. Cuerpo de declaraciones generales.
3. Cuerpo del programa principal.

Nombre del programa e inclusin de otros mdulos


program <Nombre_programa>
include <Inclucion de otros modulos>

Cuerpo de declaraciones generales


'***

Declaracin de Smbolos

***

symbol Retardo=delay_ms(100)
'Declaracin de un smbolo
symbol Salida =PORTB.0
'Declaracin de un smbolo
symbol fo1=PORTB.B1
'Declaracin de un bit en el smbolo
'************************************
'***

Declaracin de Constantes

***

const CONTE1 as byte=100


'Constante
const CONTE2=1000
'Constante
const MENSAJE1="Claudio"
'Constante
const MENSAJE2="Marcelo"
'Constante
const NUMERO as char="B"
'Constante
'************************************

de
de
de
de
de

un byte
un word
cadena
cadena
caracter

'*** Declaracin de Estructuras


***
structure nombre_structura
dim dato1 as type1
dim dato2 as type2
end structure
'************************************
'*** Declaracin de Variables
***
dim var1 as byte
'Declaracin de una variable tipo byte
dim var2 as word
'Declaracin de una variable tipo word
dim conta as byte
'Declaracin de una variable
'************************************

____________________________________________Claudio Marcelo Villca Carrasco _________


'*** Declaracin de matrices
*****
dim cajon as byte[5]
'Matriz de 5 elementos
const mes as byte[12] = (31,28,31,30,31,30,31,31,30,31,30,31)
'Matriz de constantes
'************************************
'***
Declaraciones de bits
******
dim foco1 as sbit at PORTB.B0
'Declaracin de un bit en el registro
dim foco2 as bit
'Declaracin de un solo bit sin registro
'************************************
'***
Declaraciones de Procedimientos
******
sub procedure nombre(parametros)
'declaraciones locales
end sub
'**********************************************
'***
Declaraciones de Funciones
**********
sub function function_name(...) as return_type
<local declarations>
end sub
'**********************************************

Cuerpo del programa principal


main:

'Programa Principal

TRISB=10
TRISC=%11110000
TRISD=0xFC
PORTB=9
PORTC=%10101010
PORTD=0x0B
TRISA.0=0
PORTA.1=1
end.

'Formato Decimal
'Formato Binario
'Formato Hexadecimal
'Formato Decimal
'Formato Binario
'Formato Hexadecimal
Acceso a un bit
Acceso a un bit
Fin del programa

Sentencias de salto
'*********************************************
'Etiqueta:
'goto Etiqueta
'*********************************************
'gosub Subrutina
'...
'Subrutina:
'...
'return
'*********************************************

____________________________________________Claudio Marcelo Villca Carrasco _________


Para las siguientes sentencias condicionales y bucles de programa, el programa es un contador de
0 a 15 en su formato binario.

Sentencias Condicionales
'************** Sentencia if-else-if *************
' if conta=16 then
' conta=0
' else
' PORTB=conta
' inc(conta)
' delay_ms(500)
' end if
'goto Bucle
'************** Sentencia select case ***********
'select case conta
' case 0 PORTB=conta
' case 1 PORTB=conta
' case 2 PORTB=conta
' case 3 PORTB=conta
' case 4 PORTB=conta
' case 5 PORTB=conta
' case 6 PORTB=conta
' case 7 PORTB=conta
' case 8 PORTB=conta
' case 9 PORTB=conta
' case 10 PORTB=conta
' case 11 PORTB=conta
' case 12 PORTB=conta
' case 13 PORTB=conta
' case 14 PORTB=conta
' case 15 PORTB=conta
' case 16 conta=0
'end select
' delay_ms(500)
' inc(conta)
'goto Bucle
'*********************************************

____________________________________________Claudio Marcelo Villca Carrasco _________

Bucles de Programa
'*************** Bucle while ******************
'while conta<16
'Es cierto la expresion?
' PORTB=conta
' delay_ms(500)
' inc(conta)
'wend
' conta=0
'goto Bucle
'*************** Bucle for ******************
'for conta=0 to 15
' PORTB=conta
' delay_ms(500)
'next conta
' conta=0
'goto Bucle
'************Bucle do while *****************
'do
' PORTB=conta
' delay_ms(500)
' inc(conta)
'loop until conta>15 'Es falsa la expresin
' conta=0

Tablas

____________________________________________Claudio Marcelo Villca Carrasco _________

____________________________________________Claudio Marcelo Villca Carrasco _________

Procedimientos
Los procedimientos son sub rutinas que no devuelven ningn valor a la sentencia que lo llamo, y
estn denotados de la manera siguiente:
sub procedure Nombre_procedimiento(lista de parametros)
[declaraciones locales ]
Cuerpo del procedimiento
end sub

Ejemplo:
program Procedimiento
sub procedure Producto(dim byref Resp as word,dim x,y as byte) 'Parmetros formales
Resp=x*y
PORTB=Resp
end sub
*****************************************************************************
Los parmetros en el procedimiento se denominan parmetros formales y a estas se les puede
pasar dicho parmetro por direccin o por valor, en este ejemplo se describe:
- Parmetros formales por direccin = dim byref Resp as Word
- Parmetros formales por valor
= dim x,y as byte
*****************************************************************************
dim Resul as word
main:
TRISB=0
Producto(Resul,2,3)
'Parmetros actuales (por direccin, por valor, por valor)
delay_ms(1000)
delay_ms(1000)
PORTB=1
end.
*****************************************************************************
Para llamar a un procedimiento es necesario invocar al nombre del procedimiento con los
parmetros denominados parmetros actuales estas se les pasan por direccin o por valor, como
por ejemplo:
- Llamada al procedimiento por una direccin (Resul), y por dos valores (2,3)
Si el procedimiento no tiene parmetros, entonces la llamada tambin se la invocara sin
parmetros.
Cabe mencionar que los parmetros actuales por direccin deben de ser antes declaradas como
en el caso:
dim Resul as word
*****************************************************************************

____________________________________________Claudio Marcelo Villca Carrasco _________

Funciones
Las funciones son sub rutinas que si devuelven algn valor a la sentencia que lo llamo, y estn
denotados de la manera siguiente:
sub function Nombre_funcion(lista parmetros) as tipo_de_valor_devuelto
Declaraciones locales
Cuerpo de la funcion
end sub

Ejemplo:
program Funciones
sub function power(dim byref x as byte,dim n as byte) as longint
'Parmetros formales
dim i as byte
result=1
if n>0 then
for i=1 to n
result=result*x
next i
end if
end sub
******************************************************************************
Al igual que en los procedimientos los parmetros son nombrados de la misma manera, ya que la
diferencia entre estas dos subrutinas esta en el valor devuelto.
******************************************************************************
dim Rp as longint
dim a as byte
main:
TRISB=0
PORTB=0
a=3
Rp=power(a,2)
'Parmetros actuales (por direccin, por valor)
PORTB=Rp
end.
******************************************************************************
Como se puede apreciar los parmetros actuales por referencia, siempre se deben de declarar en
el programa antes de ser utilizadas.

También podría gustarte