Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
***
de
de
de
de
de
un byte
un word
cadena
cadena
caracter
'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
'*********************************************
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
'*********************************************
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
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
*****************************************************************************
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.