Академический Документы
Профессиональный Документы
Культура Документы
http://protoncompiler.blogspot.pe/2010/05/proton-ide.html
1 may. 2010
Var2
AS BIT
' Crea una variable de un simple bit (0 - 1)
Var3
AS WORD ' Crea una variable de 16-bit sin signo (0 - 65535)
Var4 AS DWORD ' Crea a variable de 32-bit con signo (-2147483647 , +2147483647)
Var5
AS FLOAT ' Crea una variable de 32-bit punto flotante.
ST
AS STRING * 20 ' Crea una cadena con capacidad de 20 caracteres (8-bit)
Alias
DIM tambin puede ser usado para crear un alias para una variable. Esto es muy til para acceder al
interior de una variable.
Dim Var1 as Var2 Var2 es otro nombre de var1
Dim VAr3 as Portb.1 asigna el alias Var3 a la patilla RB0
Arreglos
Los arreglos de variables pueden ser creados en una manera similar a las variables.
Dim Etiqueta [tamao] as tipo
Etiqueta es cualquier identificador, excluyendo palabras claves, como se describi anteriormente.
Tipo es BIT, BYTE WORD. Nmero de elementos es cuantos lugares en el arreglo se desean.
Algunos ejemplos de creacin de arreglo son los siguientes:
DIM sharks[10] as byte
DIM var3[10] as Word
La primera ubicacin dentro del arreglo es el elemento cero. Dada la forma en que los arreglos estn
localizados en memoria hay lmites de tamao para cada tipo.
Constantes
Las llamadas constantes pueden ser creadas de manera similar a las variables. Puede ser mas
conveniente usar un nombre de constante en lugar de un nmero constante. Si el nmero necesita ser
cambiado, nicamente puede ser cambiando en un lugar del programa donde se define la constante. No
pueden guardarse datos variables dentro de una constante. Ejemplos :
Dim Mice as 4.13
En este ejemplo la constante mice es de 4,13 y la misma no puede ser modificada durante el transcurso
del programa.
Constantes Numricas
Proton BAsic permite definir constantes numricas en tres bases: decimal, binario y hexadecimal.
Valores binarios son definidos usando el prefijo % y valores hexadecimales usando el prefijo $. Los
* Multiplicacin
** 16 bits superiores de la multiplicacin
*/ 16 nits medios de la multiplicacin
/ Divisin
// Resto (mdulo)
<< Desplazamiento izquierdo
>> Desplazamiento derecho
ABS Valor absoluto
COS Coseno
DIG Digito
SIN Seno
SQR Raiz cuadrada
Operadores lgicos
Los operadores lgicos difieren de las operaciones de bit inteligente. Entregan un resultado CIERTO /
FALSO de su operacin .Valores 0 son tratados como falso. Cualquier otro valor es cierto. Se usan junto a
operadores de comparacin en una declaracin IF .. THEN .Los operadores soportados son :
Operador Descripcin
AND o && AND logico
OR o I I OR logico
XOR o ^ ^ OR exclusivo logico
NOT AND NAND logico
NOT OR NOR logico
NOT XOR NXOR logico
Relational operators are used to compare two values as shown in the list below. The result can be used to
make a decision regarding program flow.
Relacion
Igualdad
desigualdad
Ejemplo
X=Y
X <> Y
<
>
<=
>=
menor que
mayor que
menor o igual que
mayor o igual que
X<Y
X>Y
X <= Y
X >= Y
CALL etiqueta
Ejecuta la subrutina ensamblador llamada etiqueta. Normalmente se usa GOSUB para ejecutar una
subrutina .La principal diferencia entre GOSUB y CALL, es que con sta ltima no se chequea la existencia
de etiquetas hasta el momento de ensamblar. Usando CALL se puede acceder a una etiqueta en una
seccin de lenguaje ensamblador, lo que es inaccesible mediante Protn Basic .
Dentro de los comandos de Protn Basic mas estudiados para la elaboracin del diseo se describen
los Siguientes:
END
Detiene la ejecucin del proceso y entra en modo de baja potencia .Todos los pins de I/O permanecen
en el estado en que se encuentran ,END trabaja ejecutando una instruccin SLEEP continua dentro de un
loop . Un END , STOP GOTO deben ser colocados al final de un programa para evitar pasar del lmite de
la misma u comience nuevamente .
FOR .. NEXT
FOR Count = Start TO End {STEP {-} Inc}
{Body}
NEXT {Count}
El loop FOR .. NEXT permite a los programas ejecutar un nmero de declaraciones ( Body ) un
numerode veces , usando una variable como contador . Debido a su complejidad y versatilidad , es mejor
describirla paso a paso .
El valor de Start se asigna a la variable ndice ,Count , que puede ser una variable de cualquier tipo .
Se ejecuta el Body . Body es opcional y puede ser omitido ( quizs por un loop de demora ). El valor de Inc
es sumado a ( restado si se especifica - ) Count .Si no se define una clusula STEP , se incrementa
Count en uno . Si Count no pas End desbord el tipo de variable , la ejecucin vuelve al paso 2) . Si el
loop necesita contar ms de 255 ( Count > 255 ) , se debe usar una variable de tamao word .
IF ...THEN
IF Comp { AND/OR Comp ... } THEN
{Declaracin}
ELSE
{ Declaracin}
ENDIF
Efecta una ms comparaciones .Cada trmino Comp puede relacionar una variable con una
constante otra variable e incluye uno de los operadores listados anteriormente . En la segunda forma,
IF..THEN puede ejecutar condicionalmente un grupo de declaraciones que sigan al THEN. Las
declaraciones deben estar seguidas por un ELSE o un ENDIF para completar la estructura.
ON INTERRUPT GOTO Label
Permite el manejo de las interrupciones del micro controlador por medio de una subrutina . Existen dos
formas de manejar interrupciones usando Proton Basic . La primera es escribir una subrutina de interrupcin
en lenguaje ensamblador .Esta es la forma de manejar interrupciones con la menor latencia y el menor
overhead . El segundo mtodo es escribir un handler ( manejador ) de interrupciones.Es similar a una
subrutina , pero termina con un RESUME . Cuando ocurre una interrupcin , se marca con una bandera
.Cuando la ejecucin de la declaracin que se estaba ejecutando termina , el programa salta al handler de
interrupciones indicado en Label.
Una vez que termina el trabajo del handler , una declaracin RESUME enva el programa de vuelta a
donde estaba cuando ocurri la interrupcin , tomando todo como lo dej .
DISABLE y ENABLE
Permiten que distintas secciones de un programa se ejecuten sin la posibilidad de ser interrumpidas .El
lugar ms notorio para usar DISABLE es justo antes del actual handler de interrupciones. O el handler
puede ser colocado antes que la declaracin ON INTERRUPT ya que la bandera de interrupciones no se
chequea antes del primer ON INTERRUPT en un programa .
2 may. 2010
FORMATO GENERAL
1.-El compilador no diferencia mayusculas de minusculas, excepto cuando procesamos constantes entre
comillas como "Hola".
2.- Multiples instrucciones pueden ser combinada en la misma linea separando cada una por dos puntos
(":").
Por ejemplo:
TRISB = 000000 : FOR VAR1 = 0 TO 100 : PORTB = VAR1 : NEXT
3 may. 2010
REPRESENTACIONES NUMERICAS
PROTON reconoce cuatro diferentes representaciones numericas:
Binario, por el prefijo %, por ejemplo:
PORTB = %11110000
Hexadecimal, por el prefijo $, por ejemplo:
PORTC = $11110000
Caracter byte, se utiliza colocando los cvaracteres entre comillas y se corresponden en decimal a su
correpondiente en codificacion ASCII. Por ejemplo:
var1 = "a" ; y representa el valor 97.
Decimal, los valores decimales no requieren prefijo.
PORTD = 254
Punto Flotante, es creado por el uso del punto decimal. Por ejemplo:
var2 = 3.1
4 may. 2010
El compilados tambien puede combinar registros de 16 bits como TMR1, en una variable del tipo word.
Lo cual simplifica la lectura y escritura de estos registros.
Ejemplo:
DIM TIMER1 AS TMR1L.WORD
TIMER1 = 12345
Se combinan TMR1H, y TMR1L en una variable TIMER1, luego TMR1 se carga con el valor 12345.
DIM TIMER3 AS TMR3L.WORD ' Combine TMR3L y TMR3H
DIM AD_RESULT AS ADRES.WORD ' Combina ADRESL y ADRESH
DIM MUL_PROD AS PRODL.WORD ' Combina PRODL y PRODH
5 may. 2010
CONSTANTES Y SIMBOLOS
DECLARACION DE CONSTANTES
Las constantes pueden ser creadas de la misma manera que las variables. Estas pueden ser para uso
informativo o como nombre de una constante numerica. Una vez que una constante es declarada el valor de
esta no puede ser modificado.
La manera de declarar una variable es la siguiente:
DIM Label as Constant expression
Ejemplo :
DIM MOUSE as 1 ; el valor de la constante MOUSE sera 1
DECLARACION DE SIMBOLOS
Symbol proporciona otro mtodo para asignar alias a las
variables y constant. Symbol no puede ser usado para crear una variable. Constantes declaradas
con el empleo de SYMBOL no usan la RAM en el PICmicro.
Ejemplos:
6 may. 2010
PALABRAS RESERVADAS
Las palabras de la lista son protejidas para el uso interno del compilador. asegurese de no usar
cuanquiera de ellas como nombre de variables o etiquetas, de no ser asi se pueden producir errores.
A
ABS, ACOS, ACTUAL_BANKS, ADC_RESOLUTION, ADIN, ADIN_RES, ADIN_STIME, ADIN_TAD
ALL_DIGITAL, ASM, AVAILABLE_RAM, ASIN, ATAN
B
BANK0_END, BANK0_START, BANK10_END, BANK10_START, BANK11_END, BANK11_START
BANK12_END, BANK12_START, BANK13_END, BANK13_START, BANK14_END, BANK14_START
BANK15_END, BANK15_START, BANK1_END, BANK1_START, BANK2_END, BANK2_START
BANK3_END, BANK3_START, BANK4_END, BANK4_START, BANK5_END, BANK5_START
BANK6_END, BANK6_START, BANK7_END, BANK7_START, BANK8_END, BANK8_START
BANK9_END, BANK9_START, BANK_SELECT_SWITCH, BANKA_END, BANKA_START
BIN, BIN1, BIN2, BIN3, BIN4, BIN5, BIN6, BIN7, BIN8, BIN9, BIN10, BIN11, BIN12
,BIN13, BIN14, BIN15, BIN16, BIN17, BIN18, BIN19, BIN20, BIN21, BIN22, BIN23, BIN24, BIN25
,BIN26, BIN27, BIN28, BIN29, BIN30, BIT, BOOTLOADER, BOX, BRANCH
BRANCHL, BREAK, BRESTART, BSTART, BSTOP, BUS_DELAYMS, BUSACK, BUSIN, BUSOUT
BUTTON, BUTTON_DELAY, BYTE
C
CALL, CASE, CCP1_PIN, CCP2_PIN, CDATA, CERASE, CHR$, CIRCLE, CLEAR, CLEARBIT, CLS
CON, CONFIG, CONTEXT, CORE, COS, COUNT, COUNT_ERRORS, COUNTER, CREAD, CURSOR,
CWRITE
D
DA, DATA, DB, DC, DCD, DE, DEC, DEC1, DEC2, DEC3, DEC4, DEC5, DEC6, DEC7, DEC8, DEC9,
DEC10
DECLARE, DEBUG, DEFINE, DELAYMS, DELAYUS, DEVICE
DJC, DJNC, DJZ, DJNZ, DIG, DIM, DISABLE, DIV2, DT, DTMFOUT, DW, DWORD
E
EDATA, EEPROM_SIZE, ELSE, ELSEIF, ENABLE, END, ENDSELECT, ENDASM
ENDIF, ENDM, EQU, EREAD, ERRORLEVEL, EWRITE, EXITM, EXP, EXP10, EXPAND
EXP
F
FILE_REF, FLASH_CAPABLE, FLOAT, FONT, FONT_ADDR, FOR, FREQOUT, FSRSAVE
G
GETBIT, GLCD_CS_INVERT, GLCD_FAST_STROBE, GOSUB, GOTO
H
HBRESTART, HBSTART, HBSTOP, HBUS_BITRATE, HBUSACK
HBUSIN, HBUSOUT, HEX, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7, HEX8
I
I2CREAD, I2CWRITE, IBIN, IBIN1, IBIN2, IBIN3, IBIN4, IBIN5, IBIN6, IBIN7, IBIN8, IBIN9, IBIN10, IBIN11,
IBIN12
IBIN13, IBIN14, IBIN15, IBIN16, IBIN17, IBIN18, IBIN19, IBIN20, IBIN21, IBIN22, IBIN23, IBIN24, IBIN25
IBIN26, IBIN27, IBIN28, IBIN29, IBIN30,ICD, IDATA, IF
IHEX, IHEX1, IHEX2, IHEX3, IHEX4, IHEX5, IHEX6, IHEX7, IHEX8
INC, INCLUDE, INKEY, INPUT, INTERNAL_BUS, INTERNAL_FONT, IJC, IJNC, IJNZ, IJZ
ISBIN, ISBIN1, ISBIN2, ISBIN3, ISBIN4, ISBIN5, ISBIN6, ISBIN7, ISBIN8, ISBIN9, ISBIN10, ISBIN11,
ISBIN12
ISBIN13, ISBIN14, ISBIN15, ISBIN16, ISBIN17, ISBIN18, ISBIN19, ISBIN20, ISBIN21, ISBIN22, ISBIN23,
ISBIN24, ISBIN25
ISBIN26, ISBIN27, ISBIN28, ISBIN29, ISBIN30
ISDEC, ISDEC1, ISDEC2, ISDEC3, ISDEC4, ISDEC5, ISDEC6, ISDEC7, ISDEC8, ISDEC9, ISDEC10
ISHEX, ISHEX1, ISHEX2, ISHEX3, ISHEX4, ISHEX5, ISHEX6, ISHEX7, ISHEX8
K
KEYPAD_PORT
L
LCD_CS1PIN, LCD_CS2PIN, LCD_DTPIN, LCD_DTPORT, LCD_ENPIN, LCD_INTERFACE
LCD_LINES, LCD_RSPIN, LCD_RWPIN, LCD_TYPE, LCDOUT, LCDREAD, LCDWRITE
LEN, LEFT$ LET, LIBRARY, LINE, LOADBIT, LOCAL, LOG, LOG10, LOOKDOWN, LOOKDOWNL,
LOOKUP, LOOKUPL, LOW
M
MACRO_PARAMS, MAX, MID$, MIN, MSSP_TYPE
N
NCD, NEXT
O
ON, ON_INTERRUPT, ON_LOW_INTERRUPT, ONBOARD_ADC, ONBOARD_UART
ONBOARD_USB, OREAD, ORG, OUTPUT, OWRITE
P
PAGE, PAGESEL, PAUSE, PAUSEUS, PEEK, PEEKCODE, PICMICRO_PAGES
PIXEL, PLOT, POKE, POKECODE, POP, PORTB_PULLUPS, POT, POW, PRINT, PSAVE
PULSIN, PULSIN_MAXIMUM, PULSOUT, PUSH, PWM
R
RAM_BANK, RAM_BANKS
RANDOM, RCIN, RCTIME, READ, REM, REMARKS, REMINDERS, REP
REPEAT, RES, RESET_BANK, RESERVE_RAM, RESTORE, RESUME, RETURN, REV
RIGHT$, ROR, ROL, RSIN, RSIN_MODE, RSIN_PIN, RSIN_TIMEOUT, RSOUT
RSOUT_MODE, RSOUT_PACE, RSOUT_PIN
S
S_ASM, SBIN, SBIN1, SBIN2, SBIN3, SBIN4, SBIN5, SBIN6, SBIN7, SBIN8, SBIN9, SBIN10, SBIN11,
SBIN12
SBIN13, SBIN14, SBIN15, SBIN16, SBIN17, SBIN18, SBIN19, SBIN20, SBIN21, SBIN22, SBIN23, SBIN24,
SBIN25
SBIN26, SBIN27, SBIN28, SBIN29, SBIN30, SCL_PIN, SDEC, SDEC1, SDEC2, SDEC3, SDEC4, SDEC5,
SDEC6
SBREAK, SDEC7, SDEC8, SDEC9, SDEC10
T
TAN, THEN, TO, TOGGLE, TOLOWER, TOUPPER
U
UDATA, UNPLOT, UNTIL, UPPER
USB_CLASS_FILE, USB_DESCRIPTOR, USB_SHOW_ENUM, USBIN, USBINIT, USBOUT
V
VAL, VAR, VARIABLE
W
WAIT, WARNINGS, WATCHDOG, WEND, WHILE, WORD, WRITE, WSAVE
X
XIN, XOUT, XIN_TRANSLATE, XOUT_TRANSLATE, XTAL
7 may. 2010
ARREGLOS (ARRAYS)
El PROTON compiler SOPORTA variables de multiples elementos del tipo byte o word. Un arreglo es
un grupo de variables de el mismo tipo (8-bits 16-bits), que comparten el mismo nombre , pero coocadas
en celdas numeradas llamadas elementos.
Codigo Ejemplo:
DEVICE 16F84 '
DIM MYARRAY[10] AS BYTE ' Creaun arreglo de 10 elementos del tipo byte.
DIM INDEX AS BYTE ' Crea una variable normal del tipo BYTE.
STOP
9 may. 2010
CADENAS (STRINGS)
EL PROTON compiler soporta variables de cadena strings, solo cuando se trabaja con dispositivos
de 16-bit core.
Concatenacion
Dos o mas cadenas puedes ser concatenadas usando el operador mas (+) :
SOURCE_STRING1 = "HELLO
SOURCE_STRING2 = "WORLD" '
'Ambas cadenas son concatenadas en la cedana DEST_STRING
DEST_STRING= SOURCE_STRING1+ SOURCE_STRING2
10 may. 2010
o tambien
PRINT AT 1,1,_
"HELLO WORLD",_
DEC VAR1,_
HEX VAR2
30 may. 2010
Requisitos
Para su implementacion se necesita el uso del CI MAX232, en la siguiente configuracion:
Ademas se requiere grabarle el FIRMAWARE del microcontrolador, esto se hace una sola vez, y los
codigos se pueden econtrar dentro de la carpeta:
C:\Archivos de programa\Crownhill\ProtonIDELite\MCLoader
Los FIRWARE son especificos para cada microcontarolador y ademas dependiendo del oscilador a
utilizar (4 MHZ , 20 MHZ):
30 may. 2010
SEROUT
Sintaxis
Informacion General
Trasmite Datos seriales Asincronos (p.e. RS232 datos).
Vea Tambien:
Comunicacion Serial - SERIN
31 may. 2010
FOR....NEXT
Sintaxis
Informacin general
El bucle for ...next, se utiliza para ejecutar una instruccin o una serie de declaraciones de una
determinada cantidad de veces.
Operadores
Variable - se refiere a una variable de ndice utilizado por el bucle. Esta variable de ndice en s puede ser
utilizado en el cuerpo del cdigo, pero tenga cuidado de alterar su valor dentro del bucle ya que esto puede
causar muchos problemas.
ValorInicial - es el valor de que se le asigna inicialmente al Operador Variable le. Este no tiene por qu ser
un nmero real - que podra ser el contenido de otra variable.
ValorFinal - es el valor del Operador Variable que genera la terminacion del bucle. Esto no tiene que ser un
nmero real - que podra ser el contenido de otra variable, o una expresin.
Incremento - es una constante o variable opcional por el que el operador Variable aumenta o disminuye
con cada viaje a travs del bucle FOR ... NEXT. Si se desea que Variable tome valores decrementales un
signo menos debe preceder a Incremento.
Ejemplo 1
' Muestra en un LCD y en formato decimal, todos los valores que la variable WRD
' toma en el bucle FOR...NEXT
' El bucle se realiza 1000 veces , ya que la variable WRD, inicia con el valor 0 y va uncrementando
' de 2 en dos hasta llegar a 2000 y sale del bucle.
DIM WRD as WORD
FOR WRD = 0 TO 2000 STEP 2
PRINT Dec WRD ," " ' Muestra el Valor de WRD en el LCD
NEXT
' cierre del bucle
Ejemplo 2
' Muestra en Decimal los vallores de WRD
' en este ejemplo el bucle se realiza 1000 veces ya que la variable WRD inicial con el valor
' 2000 y va decrementando de 2 en 2 hasta llegar a cero para finalizar el bucle.
31 may. 2010
Ejemplo
'Lee el valor desde el canal 0 del ADC y el lugar en la variable VAR1.
DECLARE ADIN_RES 10 'resultado de 10-bit requiere
RC DECLARE ADIN_TAD FRC 'OSC elegido
DECLARE ADIN_STIME 50 'Permitir 50us muestra de tiempo
DIM VAR1 como WORD
TRISA =% 00000001 'Configurar An0 (PORTA.0) como una variable
ADCON1 =% 10000000 'entrada analgica Ubicado en PORTA.0
VAR1 = 0 ADIN 'coloca la conversin en la variable VAR1
Declaraciones
Hay tres directivas de declarar para el uso con ADIN. Estos son: -
DECLARE ADIN_RES 8, 10 o 12
Establece el nmero de bits en el resultado. Si no se utiliza esta declaracion, el valor por defecto es la
resolucin maxima del tipo utilizado PICmicro.
31 may. 2010
LCD ALFANUMERICA
PRINT
La instruccion utilzada para el manejo de una pantalla LCD alfanumerica es PRINT y se usa segun la
siguiente sintaxis:
PRINT AT posicion_Y, posision_X, expresion1, expresion2,expresion3,....,
posicion_Y => corresponde a la linea donde se escribira
posicion_X => corresponde a la columna
Luego de esto los datos a escribir separados por comas, estos pueden ser valores o expresiones
matematicas, boleanas, y cadenas de texto.
Las cadena de texto deben ser encerradas entre comillas, por ejemplo:
PRINT AT 1,1, "HOLA MUNDO"
PRINT AT 1,1 "HOLA"," ", "MUNDO"
Tambien existen una serie de modificadores que permiten dar formato a los valores numericos que se
desean visuaizar, son las siguientes:
BIN
=> Binario
DEC
=> Decimal
HEX
=> Hexadecimal
SBIN
=> Binario con signo
SDEC
=> Decimal con signo
SHEX
=> Hexadecimal con signo
IBIN
=> Binario con el caracter % al inicio
IDEC
=> Decimal con el caracter # al inicio
IHEX
=> Hexadecimal con el caracter $ al inicio
ISBIN => Binario con signo y con el caracter % al inicio
ISDEC => Decimal con signo y con el caracter # al inicio
ISHEX => Hexadecimal consigno y con el caracter $ al inicio
REP c\n = > Envia un caracter c, n veces
STR array\n = > envia una parte de un arreglo
PRINT AT 3,1, "VAR1 HEX = " , HEX VAR1 ' Muestra "VAR1 HEX = F"
PRINT AT 4,1, "VAR1 BIN = " , BIN VAR1 ' Muestra "VAR1 BIN = 1111"
PRINT AT 6,1 ,"VAR1 HEX= " , HEX4 VAR1 ' Muestra "VAR1 HEX= 000F"
Si es una variable punto flotante la que se quiere visualizar, el digito que se le agrega a DEC, determina
el numero de digitos despues del punto decimal, por ejemplo:
DIM FLT_VAR AS FLOAT
FLT_VAR = 3.145
PRINT DEC2 FLT_VAR
PRINT DEC4 FLT _VAR
PRINT DEC1 FLT_VAR
DECLARE LCD_INTERFACE 4 or 8
Informa al compilador cuantas lineas de datos seran usadas para el manejo del LCD, ocho o cuatro lineas.
' Usado para interface de cuatro lineas y deben ser conectadas desde RB0 hasta RB7
DECLARE LCD_DTPIN PORTB.4
' Usado para interface de cuatro lineas y deben ser conectadas desde RB4 hasta RB7
Si esta declaracion no es utilizada la configuracion por defecto es PORTB.4.
DECLARE LCD_LINES 1 , 2 , or 4
Recomiendo en todo programa no obviar las declaraciones aunque se desee utilizar la configuiracion
por defecto, el formato del codigo del programa lo desarrollo asi:
CODIGO DE EJEMPLO:
Device 16f877
XTAL 4
PORTB_PULLUPS = TRUE
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Configuracion del LCD'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DECLARE LCD_TYPE 0 ' LCD alfanumerica
DECLARE LCD_INTERFACE 4 ' 4 lineas de datos
DECLARE LCD_DTPIN PORTB.4 ' lineas de datos al PORTB RB4->RB7
DECLARE LCD_ENPIN PORTB.2 ' EN al pin RB2
DECLARE LCD_RSPIN PORTB.3 ' RS al pin RB3
DECLARE LCD_LINES 4 ' LCD de cuatro lineas
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Inicio:
' Etiqueta
' Etiqueta
31 may. 2010
IF Comparacion THEN
Instrucciones1
END IF
Caso 2
IF Comparacion THEN
Instrucciones2
ELSE
Instrucciones3
END IF
Caso 3
IF Comparacion THEN
Instrucciones4
ELSEIF Comparacion THEN
Instrucciones5
ELSE
Instrucciones6
ENDIF
Informacion General
Primer Caso : Evala la comparacin que sigue al IF, si se cumple el o los criterios, se ejecutan las
instrucciones1. Si la comparacin no se cumple la instruccin se ignora
Segundo Caso: Evala la comparacin que sigue al IF, si se cumple el o los criterios, se ejecutan
unicamente las instrucciones2; si la comparacin no se cumple la instruccines2 se ignoran,y se pasa a
verificar la comparacion que le sigue al ELSE, si se cumple el o los criterios, se ejecutan unicamente las
instrucciones3; si la comparacin no se cumple la instruccines3 se ignoran.
Tercer caso: Evala la comparacin que sigue al IF, si se cumple el o los criterios, se ejecutan unicamente
las instrucciones4; si la comparacin no se cumple la instruccines4 se ignoran,y se pasa a verificar la
comparacion que le sigue al ELSEIF, si se cumple el o los criterios, se ejecutan unicamente las
instrucciones5; si la comparacin no se cumple la instruccines5 se ignoran, y se pasa a verificar la
comparacion que le sigue al ELSE, si se cumple el o los criterios, se ejecutan unicamente las
instrucciones6; si la comparacin no se cumple la instruccines6 se ignoran.
Ejemplo 1
SYMBOL LED = PORTB.4
VAR1 = 3
LOW LED
END IF
En el ejemplo anterior, VAR1 no es superior a 4, en consecuencia, el creiterio no se cumple, por lo que
las instrucciones HIGH LED, DELAYMS 500 y LOW LED, nunca se ejecutan. Sin embargo, si cambiamos
el valor de la variable VAR1 a 5, a continuacin, el LED se encender durante 500 ms y luego se apaga,
porque VAR1 es ahora mayor que 4, por lo que cumple los criterios de comparacin.
Ejemplo 2
IF X & 1 = 0 THEN
A=0
B=1
ELSE
A=1
ENDIF
Ejemplo 3
IF X = 10 THEN
HIGH LED1
ELSEIF X = 20 THEN
HIGH LED2
ELSE
HIGH LED3
ENDIF
; Si X es igual a 10, enciende LED1 unicamente, SINO SI X es igual a 20, enciende LED2 unicamente,
SINO se cumple ninguna de la anteriores entonces se enciende LED3 unicamente.
Ejemplo 4
31 may. 2010
El trmino asincrnico significa "sin ver el reloj" . De una manera mas especifica, "en la comunicacin
serial asincrona lo datos son transmitidos y recibidos sin el uso de un reloj. Los datos pueden ser enviados
usando tan slo dos cables, uno para datos y otra para tierra. Los puertos serie del PC (tambin llamados
puertos COM o RS232) utilizan la comunicacin serial asncrona. Nota: el otro tipo de comunicacin serial,
sncrona, utiliza por lo menos tres cables, uno para el reloj, una para datos y otra para tierra.
El RS232 es la especificacin elctrica para las seales que usa el puerto serie del PC. A diferencia de
las lgicas TTL, donde 5 voltios es un 1 lgico y 0 voltios es la lgica 0, RS232 utiliza -12 voltios para la
lgica 1 y +12 voltios para la lgica 0. Esta especificacin permite comunicacin a travs de longitudes de
cable ms largo sin amplificacin. La mayora de los circuitos que trabajan con RS232 utiliza un controlador
de lnea /receptor (transceptor), o adaptador de niveles. Este componente hace dos cosas: -
1.
Convierte los 12 voltios de RS-232 a TTL compatible 0 a 5 voltios niveles.
2.
Invierte los niveles de tensin, de modo que la lgica de 5 voltios = 1 y 0 voltios lgica = 0.
Debido a las capacidades de E/S, excelente para la gama de dispositivos PICmicro, y la adopcin de
niveles TTL en la mayora de los puertos serie de los PC modernos, un conductor de lnea es a menudo
innecesaria a menos que las largas distancias estn involucrados entre el transmisor y el receptor. En su
lugar una simple resistencia de limitacin de corriente es todo lo que se requiere.
Usted debe recordar que cuando se utiliza un circuito adpatador de niveles transmisor-receptor, tal
como el MAX232, la polaridad del modo serial se invierte en el proceso de convertir los niveles de seal, sin
embargo, si se utiliza la conexin directa, el modo es virgen. Esta es la causa ms comn de errores al
conectar dispositivos en serie, por lo tanto usted debe hacer provisiones por este dentro de su software.
El argumento de Sern Baudmode acepta un valor de 16-bit que determina sus caractersticas: 1-bit
de parada, los bits 8-datos / sin paridad o bits de datos 7-/ paridad par- y prcticamente cualquier velocidad
a partir de tan 300 baudios a una mayor de 38K baudios (dependiendo de la frecuencia del cristal utilizado).
La lista a continuacin muestra cmo se calcula Baudmode, consulte el manual para
algunos baudmodes norma comn para velocidades de serie.
Si las comunicaciones son con software o hardware existente, su velocidad y modo determinar la
eleccin de la velocidad de transmisin y el modo. En general, 7-bit /paridad-par (7E) se utiliza el modo de
texto, y 8-bit/no-parity (8N) para los datos orentados a byte. Nota: el modo ms comn es 8-bit/sin-paridad,
incluso cuando los datos transmitidos es slo texto. La mayora de los dispositivos que utilizan un modo de
7-bit de datos, lo hacen para aprovechar la funcin de la paridad. La paridad puede detectar algunos errores
de comunicacin, sino que en su uso se pierde un bit de datos. Esto significa que los datos de entrada de
bytes transferidosen el modo 7E (paridad-par) slo puede representar valores de 0 a 127, en vez de la 0 a
la 255 del 8N (sin paridad) de modo.
Los comandos seriales del compilador "Sern" y "SerOut", todavia tienen la opcin de utilizar un bit
de paridad con desde 4 hasta 8 bit de datos. Esto es mediante el uso de las declaraciones: -
Los bit de datos de la declaracion SERIAL_DATA puede variar de 4 a 8 bits (el valor predeterminado si
no se declara es el POR DEFECTO). La Habilitacin de paridad utiliza uno de los nmero de bits
especificado.
DECLARE SERIAL_DATA 9 : Permite 8 bits de datos, junto con un noveno bit de paridad.
El receptor cuenta tambin con los bits de datos para calcular lo que el bit de paridad debe ser. Si
coincide con el bit de paridad, el receptor serial supone que los datos se recibieron correctamente. Por
supuesto, esto no es necesariamente cierto, ya que dos bits de forma incorrecta podran hacer parecer
correcto la recepcion, o el bit de paridad en s mismo podra ser malo cuando el resto de los datos es
correcta.
Muchos sistemas funcionan exclusivamente con el uso de texto de 7-bit / modo de paridad-par. Por
ejemplo, para recibir un byte de datos a travs de bits de PORTA-0 a 9600 baudios, 7E, invertido:
P_ERROR:
PRINT "Error de paridad"
En los ejemplos anteriores, la nica manera de poner fin a la instruccin de Sern (que no sea reiniciar
o de apagado) es dar a Serin los datos en serie que necesita. Si no hay datos de serie recibidos, el
programa se queda atascado en un bucle sin fin. Sin embargo, se puede forzar a Serin a abortar si no recibe
datos en un nmero especificado de milisegundos. Por ejemplo, para recibir un valor a travs de PORTA-0 a
9600 baudios, 8N, invertido y Sern abortar despus de 2 segundos (2000 ms) si no llegan datos: -
TO_ERROR:
PRINT CLS , "Timed Out"
Si no se reciben datos serie en 2 segundos, Sern aborta y salta hasta la etiqueta TO_ERROR. Ambos
argumentos, de Espera y de la Paridad se pueden combinar. A continuacin se muestra un ejemplo para
recibir un de valor a travs de PORTA-0 a 2400 baudios, 7E, invertida con un tiempo de espera de 10
segundos:
Again:
SERIN PORTA.0 , 24660 , P_ERROR , 10000 , TO_ERROR , [SerData]
PRINT CLS , @SerData
GOTO Again
TO_ERROR:
PRINT CLS , "Timed Out"
GOTO Again
P_ERROR:
PRINT CLS , "Parity Error"
GOTO Again
Al disear una aplicacin que requiere la comunicacin serie entre PICmicros, usted debe recordar a
trabajar dentro de estos lmites: -
1. Cuando el PICmicro est enviando o recibiendo datos, no puede ejecutar otras instrucciones.
2. Cuando el PICmicro est ejecutando otras instrucciones, no se puede enviar o recibir datos.
3. El compilador no ofrece un buffer de orden que hay en un PC. A bajas frecuencias del cristal oscilador, y
las mayores tasas de datos serie, el PICmicro no puede recibir datos a travs de Sern, procesarlo, y
ejecutar otro Sern a tiempo para tomar la siguiente parte de los datos, a menos que existan importantes
pausas entre las transmisiones de datos.
SERIN Modificadores
Como ya sabemos, Serin va a esperar y recibir un solo byte de datos, y almacenarlo en una variable.
Si el PICmicro esta conectado a un PC que ejecuta un programa de terminal y el usuario pulsa la tecla "A"
en el teclado, despus de ejecutado el comando Serin, la variable contendra el valor 65, que es el cdigo
ASCII de la letra "A".
Qu pasara si el usuario pulsa la tecla "1"? El resultado sera que la variable que contendr el valor
49 (el cdigo ASCII para el caracter "1"). Este es un punto importante a recordar: cada vez que se pulsa una
letra en el teclado, el ordenador recibe el valor ASCII de ese carcter. Corresponde a la parte receptora de
interpretar los valores segn sea necesario. En este caso, tal vez en realidad quera que la variable
terminara con el valor 1, en lugar del cdigo ASCII 49. El comando Serin proporciona un modificador, el
modificador llamado decimal, que interpretar esto para nosotros. Mira el siguiente cdigo: -
Sin el modificador decimales, sin embargo, habra sido obligado a recibir cada personaje ("1", "2" y "3")
por separado, y an as tendra que hacer alguna conversin manual para llegar al nmero 123 (cien
veintitrs) antes de poder hacer los clculos que desee sobre el mismo.
El modificador decimal est diseado para buscar texto que representa los nmeros decimales. Los
caracteres que representan nmeros decimales son los caracteres "0" a "9". Una vez que el comando Serin
se le pide que utilice el modificador decimal de una variable en particular, sigue de cerca los datos serie
entrantes, buscando el primer carcter decimal. Una vez que encuentra el carcter primera cifra decimal,
seguir buscando ms (la acumulacin de todo el nmero de varios dgitos) hasta que se encuentra un
carcter numrico no decimales. Recuerde que no terminar hasta que encuentra al menos un carcter
decimal seguido por al menos un carcter no decimales. Para ilustrar esto an ms, examine los siguientes
ejemplos (suponiendo que estamos usando el ejemplo de cdigo igual al anterior): -
Resultado: El programa se detiene en el smbolo del Sern, continua en espera para el texto decimal.
Resultado: El programa se detiene en el smbolo del Sern. Se reconoce los caracteres "1", "2" y "3" como el
nmero ciento veintitrs, pero como no no hay datos siguientes al "3", espera de forma continua, ya que no
hay manera de saber si 123 es el nmero entero o no.
Resultados: Al igual que el ejemplo anterior, excepto una vez que el carcter de espacio se recibe, el
programa sabe el nmero completo es 123, y almacena este valor en SERDATA. El comando Serin luego
termina, permitiendo a la siguiente lnea de cdigo se ejecute.
Resultados: Igual que el ejemplo de arriba. La "A" carcter, como el carcter de espacio, es el primer texto
no decimales despus del nmero 123, que indica al programa que ha recibido todo el nmero.
Resultados: Al igual que los ejemplos anteriores. Los caracteres "ABCD" se pasan por alto (ya que no son
decimales, los caracteres 123 son evaluados para ser el nmero 123 y el siguiente carcter, "E", indica al
programa que ha recibido todo el nmero.
El resultado final del modificador de DEC est limitado a 16 bits (hasta el valor de 65535). Si un valor
mayor que este valor recibido por el modificador de decimales, el resultado final ser incorrecto porque el
resultado se extiende el plazo del valor mximo de 16-bit. Por lo tanto, los modificadores de Sern no puede
(en este momento) se utiliza para cargar DWORD (32 bits) variables.
El modificador DEC es slo uno de una familia de modificadores de conversin disponibles con Serin
Ms abajo encontrar una lista de modificadores de conversin disponibles. Todos los modificadores de la
conversin de trabajan similar al modificador decimal (como se describi anteriormente). Los modificadores
de recibir bytes de datos, a la espera para el primer byte que est comprendida en el rango de caracteres
que aceptan (por ejemplo, "0" o "1" para binario, "0" a "9" para decimal, "0" a "9 "y" A "a" F "para
hexadecimal. Una vez que reciben un carcter numrico, siguen aceptando la entrada hasta que un carcter
no numrico llega, o en el caso de los modificadores de longitud fija, hasta que el nmero mximo de dgitos
especificados es recibido.
Aunque es muy eficaz en el filtrado y conversin de texto de entrada, los modificadores no son
totalmente infalibles. Como se mencion anteriormente, los modificadores conversin podrian seguir
aceptando texto, hasta que el primer texto no numrico llege, incluso si el valor resultante supere el tamao
de la variable.Usted puede controlar esto hasta cierto punto mediante el uso de un modificador que
especifica el nmero de dgitos, como DEC2, que aceptara los nicos valores en el rango de 0 a 99.
Una variable precedida por BIN va a recibir la representacin ASCII de su valor binario.
Por ejemplo, si se especifica DEX VAR1 y "123" es recibido, VAR1 se establecer en 123.
Una variable precedida por HEX recibir la representacin ASCII de su valor hexadecimal.
Por ejemplo, si se especifica HEX VAR1 y "FE" se recibe, VAR1 se establecer en 254.
El comando Serin se puede configurar para esperar a una secuencia de caracteres antes de que se
recuva cualquier entrada adicional. Por ejemplo, supongamos que un dispositivo conectado al PICmicro
envia muchas secuencias diferentes de datos, pero los nicos datos que desea observar sean solo justo
despus de los caracteres nicos, "XYZ". El modificador WAIT puede ser utilizado para este propsito: -
El cdigo de arriba espera a que los caracteres "X", "S" y "Z" sean recibidos, en ese orden, entonces
recibe el byte de datos que viene y lo coloca en la variable SERDATA.
STR Modificador
Una cadena es un conjunto de caracteres que se disponen o acceden en un cierto orden. Los
caracteres "ABC" se almacena en una cadena con la "A", seguido por el "B" y luego seguido por el "C". Una
matriz de bytes es un concepto similar al de una cadena, sino que contiene datos que se disponen en un
orden determinado. Cada uno de los elementos de una matriz es del mismo tamao. La cadena "ABC" se
almacenara en una matriz de bytes que contiene tres bytes (elementos). A continuacin se muestra un
ejemplo que recibe diez bytes a travs de bits de PORTA-0 a 9600 bps, N81/inverted, y los almacena en la
matriz de 10 bytes, SERSTRING: -
SERIN PORTA.0, 16468, Relleno [STR SerString] 'la matriz con los datos recibidos.
PRINT SerString
'Mostrar la cadena.
El ejemplo anterior ilustra cmo llenar slo los primeros n bytes de una matriz y, a continuacin, cmo
mostrar slo los primeros n bytes de la matriz. n se refiere al valor que se da despus de la barra invertida.
Consideraciones Generales
Tome ms tiempo para estudiar y verificar los diagramas de cableado de comunicacin serial. Un error
en el cableado puede causar problemas en la comunicacin, o la no comunicacin. Asegrese de conectar
las clavijas de tierra (Vss) entre los dispositivos que se comunican en serie.
Una configuracin desigual entre el emisor y el receptor har que las transferencias de datos sean
ilegibles o no exista transferencias de datos.
Recuerde siempre que un transmisor-receptor de lnea invierte la polaridad de serie. Si los datos
recibidos de serie no se puede leer, lo ms probable es causado por un error de velocidad de transmisin ,
error de posicin, o un error de polaridad. Si recibe datos de otro dispositivo que no es un PICmicro, trate de
usar velocidades de transferencia de 9600 y por debajo, o como alternativa, utilize un cristal de frecuencia
ms alta. Debido a los gastos generales adicionales en el PICmicro, y el hecho de que el comando Serin no
ofrece algn tipo de bufer de hardware de recepcin para la comunicacin serial, po rl oque
recepciones consecuentes, pueden ser perdidas o ilegibles. Si esto ocurre, intente reducir la velocidad de
transmisin, o aumentar la frecuencia del cristal. Uso de variables simples (no matrices) tambin aumentar
la probabilidad de que el PICmicro recibir los datos correctamente.
Vea Tambien:
SEROUT
HARDWARD
Si deseamos conectar el micro al PC, debemos utilizar un circuito adaptador como el MAX232; en la
figura se muestran conectados los pines, 8 y 9, los cuales son opcionales en caso de que se quiera
programar el micro con el Microcode Loader de Proton.
Si queremos comunicar dos micros que estan en el mismo PCB, no hace falta utilizar este circuito, mas
bien si, cuando estos estan conectados en PCB distintas y a distancias considerables.
31 may. 2010
WHILE.....WEND
HACER MIENTRAS
Sintaxis
WHILE Condicion
Instrucciones
..
..
Instrucciones
WEND
Informacio General
Ejecuta un bloque de instrucciones mientras una condicion sea cierta
Ejemplo :
VAR1 = 1
19 sept. 2010
OPERADORES RELACIONALES
Los operadores relacionales se utilizan para comparar dos valores, como se muestra en la siguiente
lista. El resultado puede ser utilizado para tomar una decisin sobre el flujo del programa.
Relacin
Operador
Expresin
Igualdad
X=Y
Desigualdad
<>
X<>Y
Menor que
<
X <Y
Mayor que
>
X> Y
Menor o igual
<=
X <= Y
Mayor o igual
>=
X >= Y
19 sept. 2010
Declarar una variable como FLOAT permitir los clculos de punto flotante con esa variable.
La declaracion de una variable Punto Flotante se efectua de la siuiente manera;
DIM VAR_FLT AS FLOAT
La declaracion de una Constante de Punto Flotante se efectua de la siuiente manera;
SMBOLO PI = 3,14
SMBOLO FL_NUM = 5,0
La aritmtica de punto flotante no es lo mximo en exactitud, es simplemente una forma de comprimir
un valor complejo o grande en un espacio pequeo (4 bytes en el caso del compilador). Resultados
perfectamente adecuados por lo general se puede obtener de la escala correcta de variables de tipo entero,
con un aumento en la velocidad y un ahorro de memoria RAM y el espacio de cdigo. 32 bits de
matemticas de punto flotante es muy intensa ya que el microcontrolador PICmicro es slo un procesador
de 8 bits. Tambin consume grandes cantidades de memoria RAM y espacio de los cdigos para su
funcionamiento, por lo tanto use siempre el punto flotante con moderacin, y slo cuando sea estrictamente
necesario. El punto flotante no est disponible en PICmicros ncleo de 12-bit debido a las restricciones de
memoria, y es ms eficiente cuando se utiliza con los dispositivos bsicos de 16-bit debido al cdigo ms
lineal y especificaciones de RAM.
Formato de punto flotante
El compilador PROTON utiliza la variacin del microchip del formato IEEE 754 de punto flotante. Las
diferencias con la norma IEEE 745 son menores, y bien documentado en la nota de aplicacin AN575 de
Microchip (descargable en www.microchip.com).
Nmeros de punto flotante se representan en formato modificado IEEE-754. Este formato permite que
a las rutinas de punto flotante aprovechar la arquitectura del PICmicro y reducir la cantidad de sobrecarga
requerida en los clculos. La representacin se muestra a continuacin en comparacin con las normas del
formato IEEE-754: donde s es el bit del signo, y es el LSB del exponente y x es un marcador de posicin
para la mantisa y exponente bits.
Los dos formatos se pueden convertir fcilmente de una a la otra por la manipulacin del exponente y la
mantisa 0 bytes. El cdigo de ensamblador siguiente se muestra un ejemplo de esta operacin.
Formato
Exponente
Mantisa 0
Mantisa 1
Mantisa 2
IEEE-754
sxxx xxxx
xxxx xxxx
xxxx yxxx
xxxx xxxx
Microchip
xxxx xxxx
xxxx xxxy
sxxx xxxx
xxxx xxxx
RLF MANTISSA0
RLF exponente
RRF MANTISSA0
DEVICE = 18F452
XTAL = 4
CLS
FLT = FL_NUM * 10
PARADA
Notas
Expresiones de punto flotante que contiene ms de 3 operandos no estn permitidos, debido al
espacio de RAM adicional necesario para una pila de software. Cualquier expresin que contiene una
variable de punto flotante o el valor se calcular como un punto flotante. Aunque el trmino se aplica
tambin contiene un byte, palabra o dword valor o variable.
Si la variable de asignacin es un byte, palabra o variable DWORD, pero la expresin tiene un carcter
de punto flotante. A continuacin, el resultado de punto flotante se convierte en un entero.
Ejemplo ;
DEVICE = 16F877
DIM DWD AS DWORD
DIM FLT que float
SMBOLO PI = 3,14
FLT = 10
DWD = FLT + P
"El clculo resultar en 13,14, pero se reducirn a un nmero entero 13
IMPRIMIR diciembre DWD ' Mostrar el resultado entero 13
PARADA
traduccin del ingls al espaol
5 dic. 2010
ABS (COMANDO)
ABS (VALOR ABSOLUTO)
Sintaxys
Variable = ABS Variable
Detalles
Retorna el Valor Absoluto de un numero.
Ejemplo:
DWD1 = -1234567
DWD2 = ABS DWD1
PRINT DEC DWD2
5 dic. 2010
ACOS
ACOS
(ARCO-COSENO)
Sintaxys
Variable1 = ACOS Variable2
Detalles
Deduce el Arco Coseno de una Variable.
El Valor de la Variable2 debes estra entre -1 a 1.
Ejemplo:
FLOATIN = 0.8
FLOATOUT = ACOS FLOATIN
PRINT DEC FLOATOUT
Notas:
ACOS no est implementada en los dispositivos de 12 o 14 bits, sin embargo, con la funcionalidad
adicional, y la memoria ms lineal que ofrecen los dispositivos de base de 16 bits y de 32 bits de punto
flotante, el ARC COSENO esta implementada.
La trigonometra de punto flotante es abarca amplios recursos de memoria, as que no se sorprenda si
una gran parte de la memoria del PIC se utiliza con un solo operador. Esto tambin significa que la
trigonometra de punto flotante es relativamente lenta para operar.
5 dic. 2010
ADIN
ADIN
Sintaxis
Variable1 = ADIN NumeroCanal
Detalles
Lee el valor del conversor analogico digital del PisMicro.
Ejemplo
Ejemplo
DECLARO ADIN_RES 10
RC DECLARE ADIN_TAD FRC
DECLARO ADIN_STIME 50
Declaraciones:
Hay tres directivas de declaracion para su uso con ADIN. Estas son: -
Notas
Antes de que el comando ADIN puede ser utilizado, el registro TRIS apropiado debe ser manipulado
para ajustar el canal en que se desee la entrada Analogica. Adems, el registro ADCON1 se debe
establecer de acuerdo con el canal en que se requiera una entrada analgica, y en algunos casos, para
configurar el formato del resultado de la conversin.
Si varias conversiones se estn aplicando, a continuacin, un pequeo retraso se debe utilizar despus
del comando ADIN. Esto permite que los condensadores internos de la ADC para cumplir ntegramente: -
3 dic. 2012
Sintaxys
Variable = INKEY
Detalles
Realiza un scan al teclado y devuelve el resultado a una variable.
Operadores
La Variable puede se definida del tipo bit, byte, byte array, word, word array, dword or float.
Ejemplo
DIM VAR1 as BYTE
VAR1 = INKEY
' Scanea el teclado
DELAYMS 50
' Antirrebote/50ms
PRINT @VAR1 , " " ' Muestra el resultado en el LCD .
Notas
INKEY devuelve un valor entre 0 y 16. Si ninguna tecla es presionada el valor devuelto es
16.
Usando el comando LOOKUP, los valores devueltos pueden se cambiados de acuerdo a los
caracteres presentes en el teclado fsicamente.
Ejemplo
VAR1 = INKEY
KEY = LOOKUP VAR1, [255,1,4,7,"*",2,5,8,0,3,6,9,"#",0,0,0]
Los valores del ejemplo son solo demostracin por lo que deben ser ajustados de
acuerdo a los caracteres impresos en cada tecla del mismo.
La rutina INKEY requiere resistores pull_up, por lo cual el mejor puerto para ello es el
puerto B, ya que este posee estos internamente. En caso de seleccionar otro puerto
esta consideracin debe ser tomada en cuenta.
3 dic. 2012
Operators
Variable - tipo bit, byte, byte array, word, word array, dword, or float.
Direccion - constante, variable expresin, que contiene la direccin que se desea leer
en la memoria EEPROM.
Ejemplo
DEVICE 16F84
DIM VAR1 as BYTE
DIM WRD1 as WORD
DIM DWRD1 as DWORD
la direccin 0
VAR1
= EREAD 0
WRD1 = EREAD 1
DWRD1 = EREAD 3
1
3
Nota
Si en la instruccin la variable usada en la asignacin es del tipo
float float dword, entonces cuatro (04) bytes sern ledos de la memoria EEPROM, y
estos correspondern a las direcciones de memoria consecuentes.
Si en la instruccin la variable usada en la asignacin es del tipo float word, entonces cuatro
(04) bytes sern ledos de la memoria EEPROM.
Ejemplo:
Direccion
Dato
Hex
Hex
00
0A
01
0B
02
0C
03
0D
04
0E
05
0F
06
1A
07
1B
08
1C
09
2D
0A
2E
0B
2F
0C
3A
0D
3B
0E
3C
0F
3D
CASO 1:
VAR1 = EREAD 0
En este caso VAR1 es del tipo WORD (16 bits) por lo cual la direccin "0" corresponde a la
parte baja y la direccin "1" a la parte alta.
CASO 2:
VAR1 = EREAD 3
En este caso VAR1 es del tipo DWORD (32 bits) y la asignacin usa las direcciones de
memoria 03-04-05-06.
Vea Tambien :
EDATA
EWRITE
3 dic. 2012
Variable: definida por el usuario y del tipo bit, byte, byte array, word, word
array, dword,float or a constant value.
Ejemplo DEVICE 16F628
EWRITE DIRECCION , [ WRD , VAR1 ] ' Escribe un dato de 16 bits y luego uno de 8
bits.
Notas
Si en la instruccin la variable usada en la escritura de la EEPROM es del
tipoword, entonces sern usadas cuatro (02) bytes de la memoria EEPROM, y
estos correspondern a las direcciones de memoria consecuentes.
Si en la instruccin la variable usada en la lectura es del tipo float word, entonces cuatro
(04) bytes sern escritas en la memoria EEPROM.
3 dic. 2012
Operators
Nota
Valores de 16-bit, 32-bit y punto flotante, pueden ser almacenados en la EEPROM, y estos
son colocados de manera tal que el byte menos significativo ocupe la primera direccin de
memoria.
Por ejemplo, si el valor a almacenar es 1000 con la sentencia Edata, entonces
la instruccin seria la siguiente :
EDATA 1000
Los datos en la EEPROM quedan as : 232, 03
Include "PROTON_4.INC"
Dim CHAR as Byte
Dim CHARPOS as Byte
HELLO EDATA "HOLA ",0
WORLD EDATA "MUNDO",0
EEPROM. terminacin.
Delayms 200
Cls
CHARPOS = HELLO
Gosub DISPLAY_TEXT
CHARPOS = WORLD
Gosub DISPLAY_TEXT
Stop
' Carcter
' Direccin
' Crea una cadena de Texto en la EEPROM. terminacin.
' Crea una cadena de Texto en la
'
'
'
'
'
'
'
retardo 200 ms
Limpia LCD
CHARPOS <= direccion de inicio del texto "HOLA"
Muestra el texto "HOLA"
CHARPOS <= direccion de inicio del texto "MUNDO"
Muestra el texto "MUNDO"
Fin
'
'
'
'
'
'
'
Bucle infinito
Lee EEPROM
Sale del Bucle cuando CHAR = 0
Muestra el caracter
Incrementa CHARPOS
Cierra bucle While
Sale de la subrutina
15 feb. 2013
(terminacin)
Las variables son donde los datos temporales se almacenan en un programa BASIC. Ellos son creados
usando la palabra clave DIM. Debido a que la RAM disponible en en microPIC es algo limitado en tamao,
la eleccin de los tipos o tamaos de variables adecuados para cada tarea especfica es de suma
importancia. Las variables pueden ser del tipo BIT, BYTE, WORD, DWORD, FLOAT o STRING.
El espacio para cada variable se asigna automticamente en el rea de la memoria RAM del
microcontrolador. El formato para crear una variable es el siguiente: -
DIM cat
As Bit
DIM ST As secuencia * 20
Las siguientes palabras reservadas no se debe utilizar como nombres de variables, como el
compilador crear estos nombres cuando sea necesario: -
PP0, PP0H, PP1, PP1H, PP2, PP2H, PP3, PP3H, PP4, PP4H, PP5, PP5H, PP6, PP6H, PP7, PP7H, PP8,
PP9H, GEN, GENH, GEN2, GEN2H, GEN3, GEN3H, GEN4, GEN4H, GPR, BPF, BPFH.
Cada tipo de variable requiere diferentes cantidades de memoria RAM para su asignacin. La lista de
abajo ilustra esto.
FLOAT
DWORD
Word
BYTE
Bit
FLOAT
Tericamente puede tener un valor de 1-1e37 hasta e38, as como los valores fraccionarios, haciendo
de este el ms exacto de los tipos de variables. Sin embargo, ms que los tipos DWORD, esto tiene un
precio ya que los clculos y las comparaciones FLOAT utilizan ms espacio de cdigo en el PIC. Utilice
este tipo de variable con moderacin y slo cuando sea estrictamente necesario. Los valores ms bajos de
punto flotante ofrecen ms precisin.
DWORD
Puede contener un valor entre -2147483647 y 2147483647. Esto tiene un precio sin embargo, ya
que los clculos y las comparaciones DWORD usarn ms espacio de cdigo dentro de la PICmicro, al igual
que FLOAT, utilice este tipo de variable con moderacin y slo cuando sea necesario.
WORD
Podr contener a un valor entre 0 y 65535, que suele ser lo suficientemente grande para la mayora
de aplicaciones. Se sigue utilizando ms memoria, pero no tanto como un tipo DWORD.
BYTE
Puede tener un valor de 0 a 255, y son los caballos de trabajo habituales de la mayora de los
programas. El Cdigo producido por las variables de tamao BYTE es muy bajo en comparacin con los
tipos WORD, FLOAT o DWORD, y se debe tomar en cuenta si el programa requiere un funcionamiento ms
rpido, o ms eficiente.
BIT
Puede tener un 0 o un 1. Estos se crean 8 a la vez, por lo tanto, si declara una sola variable de tipo
BIT en el programa no guardar espacio de memoria RAM, solo ahorrar espacio de cdigo, ya que las
variables de tipo bit producen el uso ms eficiente de cdigo para las comparaciones etc
15 feb. 2013
Identificadores y Etiquetas
Identificadores
Un identificador es simplemente un nombre. Son
usados en Pronto Basic como etiquetas de lneas y
nombres de variables. Un identificador es cualquier
secuencia de letras, dgitos y smbolos, aunque no deben
comenzar con un dgito. Los identificadores no distinguen
las letras maysculas de las minsculas, por lo que
etiqueta, ETIQUETA, Etiqueta son todas tratadas como
equivalentes. Aunque las etiquetas pueden tener cualquier
nmero de caracteres de longitud, Protn Basic solamente
reconoce los primeros 32.
Etiquetas
Para marcar lneas que el programa puede desear
referenciar con comandos GOTO GOSUB, Proton BAsic
usa tiquetas de lnea y no permite nmero de lnea y no
requiere que cada lnea sea etiquetada. Cualquier lnea
puede comenzar con una etiqueta de lnea que es
Goto etiqueta1
20 feb. 2013
MULTIMETRO DIGITAL
MONTAJE EN ISIS 7.7 SP2
MICROCONTROLADOR : PIC16F877
LCD 2x16
FUNCIONES :
1.
VOLTIMETRO
2.
AMPERIMETRO
3.
CONTADOR
4.
5.
6.
7.
8.
FRECUENCIA
PERIODO
CICLO UTIL
OHMETRO
CAPACIMETRO
CODIGO :
; MULTIMETRO DIGITAL
Device 16F877
Declare XTAL
PORTB_PULLUPS = 1
Declare ADIN_STIME 50
ADCON1 = %10000010
;******************************************************************************************************
;CONFIGURACION DE PUERTOS
TRISD=001111
TRISC=000000
TRISB=000001
TRISA=011111
TRISE=000001
Clear PORTD
; LIMPIA EL PUERTO D
Clear PORTB
; LIMPIA EL PUERTO B
Clear PORTC
; LIMPIA EL PUERTO C
Clear PORTE
; LIMPIA EL PUERTO E
Declare LCD_TYPE 0
;PANTALLA ALFANUMERICA
'DECLARACION DE VARIABLES
SIGNO MENOS -
5
Print 254,104, $00,$10,$18,$1C,$1C,$18,$10,$00
'CARGANDO EL 7MO. CARACTER PERSONALIZADO EN LA CGRAM
CARACTER 6
FACHA ARRIBA -
FLECHA ABAJO -
Cls
;LIMPIA EL LCD
DIGITAL ",3
DelayMS 3000
Cls
Cont = 0
INICIO:
If PORTD.1 = 1 Then
DelayMS 300
Cont= Cont + 1
If Cont = 7 Then
Cont = 6
End If
End If
If PORTD.0 = 1 Then
DelayMS 300
Cont= Cont - 1
If Cont = 255 Then
Cont = 0
End If
End If
Case 1 :
Print At 1,1,"2-",5, "AMPERIMETRO ",6
Print At 2,1,"3-", " MED. FREC ",7
If PORTD.2=1 Then
Call AMPERIMETRO
End If
Case 2 :
Print At 1,1,"3-",5, "MED. FREC ",6
Print At 2,1,"4-", " MED. PERIODO",7
If PORTD.2=1 Then
Call FRECUENCIMETRO
End If
Case 3 :
Print At 1,1,"4-",5, "MED. PERIODO",6
Print At 2,1,"5-", " % CICLO UTIL",7
If PORTD.2=1 Then
Call MED_PERIODO
End If
Case 4 :
Print At 1,1,"5-",5, "% CICLO UTIL",6
",7
If PORTD.2=1 Then
Call CICLO_UTIL
End If
Case 5 :
Print At 1,1,"6-",5, "OHMETRO
",6
"
If PORTD.2=1 Then
Call Capacimetro
End If
End Select
GoTo INICIO
Frec = Frec * 5
Print At 1,1, " FREC = ",Dec Frec , " HZ
Until PORTD.3=1
"
Return
MED_PERIODO:
Cls
Repeat
Frec = Counter PORTB.0,200
POR UN PERIODO DE 200 MS
Frec = Frec * 5
periodo = 1000 / Frec
Print At 1,1, " T = ",DEC2 periodo , " mSeg
Until PORTD.3=1
"
Return
" ;
Return
Until PORTD.3=1
" ;
Return
" ;
DelayMS 10
ciclo_h = PulsIn PORTB.0,1
ALTO
porc_ciclo_util = (ciclo_h*100)
porc_ciclo_util= porc_ciclo_util /(ciclo_l + ciclo_h)
Print At 1,1, "Ciclo Ut= ", DEC1 porc_ciclo_util ,"
" ;
Until PORTD.3=1
Return
Next
capacitancia= capacitancia /100 ; SE DIVIDE ENTRE 100 PARA SACAR EL PROMEDIO
Print At 1,1, " Cap = ", Dec capacitancia , 223, " uF
" ;
Until PORTD.3=1
Return
28 feb. 2016
'****************************************************************
Device 16F877
Xtal 20
PortB_Pullups FALSE
'DESHABILITA LAS RESISTENCIAS PULL-UP DEL PUERTO B
On_Interrupt GoTo INTERRUPCION
; DEFINICIONES PARA LA CONFIGURACION INTERUPCIONES
' RC OSC
' 50us sample time
ADCON1 = %10000000
Declare LCD_Type 0
Declare LCD_DTPin PORTD.4
Declare LCD_ENPin PORTD.3
Declare LCD_RSPin PORTD.2
;CONFIGURACION DEL PUERTO SE COMUNICACION SERIAL
Declare SERIAL_DATA 8
Symbol RS232 = 84
Symbol tx_pin = PORTC.6
Symbol rx_pin = PORTC.7
;(NO COLOCAR DEBAJO DEL PROGRAMA PRINCIPAL ESTO SE DEBE A QUE LA DIRECCIN
; DE MEMORIA DE PROGRAMA DE ATENCIN DE INTERRUPCIONES ES LA ORG 0x004)
GoTo Salta_Int
INTERRUPCION:
flag = 1
INTF = 0
Context Restore
Salta_Int:
'CONFIGURACION DE PUERTOS
TRISA = %11111111
TRISB= %11111111
TRISC = %10111111
TRISD.0 = 0
TRISD.1 = 1
;CONFIGURACIN DEL LA INTERRUPCIN POR FLANCO DE SUBIDA DEL PIN RBO (RB0/INT)
GIE=1
INTEDG = 1
INTE = 1
INTF = 0
cont = 0
flag = 0
BUZZER = 0
PESO =0
ALTURA =0
While 1 = 1
If flag = 1 Then
DelayMS 2700
ALTURA = PORTB
BUZZER = 1
DelayMS 300
BUZZER = 0
ADC = ADIn 0
PESO = ADC
Select Case PORTB
Case 1 : ALTURA = 1
Case 3 : ALTURA = 2
Case 7 : ALTURA = 3
Case 15 : ALTURA = 4
Case 31 : ALTURA = 5
Case 63 : ALTURA = 6
Case 127 : ALTURA = 7
Case Else: ALTURA = 0
End Select
cont = cont + 1
SerOut tx_pin, RS232, [Dec cont, ".- Peso: ", Dec2 PESO, " - ALTURA : " ,Dec ALTURA, 13]
rs232
flag = 0
Print At 1,1,"Peso : ", Dec2 PESO, " "
Print At 2,1,"Altura : ", Dec ALTURA, " "
End If
Wend
' envio
Visual Basic es uno de los tantos lenguajes de programacin que podemos encontrar hoy en da.
Dicho lenguaje nace del BASIC (Beginners All-purpose Symbolic Instruction Code) que fue creado en
su versin original en el Dartmouth College, con el propsito de servir a aquellas personas que estaban
interesadas en iniciarse en algn lenguaje de programacin. Luego de sufrir varias modificaciones, en
el ao 1978 se estableci el BASIC estndar. La sencillez del lenguaje gan el desprecio de los
programadores avanzados por considerarlo "un lenguaje para principiantes".
VISUAL BASIC
Es un lenguaje de programacin que se ha diseado para facilitar el desarrollo de aplicaciones en un
entorno grafico (GUI-GRAPHICAL USER INTERFACE) Como Windows 98, Windows NT o superior.
CARACTERSTICAS DE VISUAL BASIC.
Diseador de entorno de datos: Es posible generar, de manera automtica, conectividad entre
controles y datos mediante la accin de arrastrar y colocar sobre formularios o informes.
Los Objetos Actives son una nueva tecnologa de acceso a datos mediante la accin de arrastrar y
colocar sobre formularios o informes.
Asistente para formularios: Sirve para generar de manera automtica formularios que administran
registros de tablas o consultas pertenecientes a una base de datos, hoja de calculo u objeto (ADOACTIVE DATA OBJECT)
Asistente para barras de herramientas es factible incluir barras de herramientas es factible incluir barra
de herramientas personalizada, donde el usuario selecciona los botones que desea visualizar durante
la ejecucin.
En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con cdigo HTML para controlar
los eventos que se realizan con frecuencia en una pagina web.
La Ventana de Vista de datos proporciona acceso a la estructura de una base de datos. Desde esta
tambin acceso al Diseador de Consultas y diseador de Base de datos para administrar y registros.
DESCRIPCIN DE VENTANAS PRINCIPALES
Ejecutamos Visual Basic (VB) y al comenzar podemos ver la siguiente ventana que nos permitir
saber que en que formato deseamos el programa:
Est nos esta mostrando la diferentes formas para comenzar, hay 3 formas, la primera Nuevo es
iniciando un Nuevo Proyecto, seleccionando uno tipo de proyecto, la segunda Existente es abriendo
un proyecto ya existente, el archivo tiene que contener la extensin *.vbp, *.mak o*.vbg, y por ultimo la
tercera Recientes es seleccionando un proyecto de la lista de archivos recientemente abiertos (VB se
encarga automticamente de mostrar una lista de los ltimos proyectos abiertos).
Para continuar se elige EXE estndar y luego Abrir, ahora se explicara la Ventana principal de Visual
Basic.
LAS PARTES DEL ENTORNO DE VISUAL BASIC.
Barra de titulo: muestra el nombre del proyecto y del formulario q se est diseando actualmente
Barra de mens: agrupa los mens despegables que contienes todas las operaciones que pueden
llevarse a cabo con Visual Basic 6.0.
Barra de herramientas estndar: contienen los botones que se utilizan con mayor frecuencia cuando se
trabaja con un proyecto. Simplifica la eleccin de opciones de los mens Archivo, Edicin, Ver y
Ejecutar; adems, en el rea derecha presenta la ubicacin (coordenadas) y el tamao del objeto
seleccionado
Ventana de formulario: es el rea donde se disea la interfaz grfica, es decir, es donde se inserta
electo grficos, como botones, imgenes, casilla de verificacin, cuadros de listas, etc.
Cuadro de herramientas: presenta todos los controles necesarios para disear una aplicacin, como
cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc.
Ventana de proyecto: muestra los elementos involucrados en el proyecto, como formularios, mdulos,
controles oxc, etc. Cada elemento puede seleccionarse en forma independiente para su edicin.
Ventana de posicin del formulario: muestra la ubicacin que tendr el formulario en la pantalla,
cuando ejecute la aplicacin. Esta ubicacin puede cambiarse si se hace clic con el botn izquierdo del
mouse.
La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en este
caso muestra las propiedades del Form1, luego podemos ver que abajo dice "Form1 Form", lo que
est en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un
Formulario (Form)
1.- Barra de titulo, en est se muestra el nombre del proyecto actual en el que se esta trabajando,
luego viene el nombre del programa, continuado a "Microsoft Visual Basic viene el estado en el que
est el proyecto, hay 3 tipos de estado en [Diseo] cuando se est escribiendo el
cdigo, [Ejecucin] el programa se encuentra en ejecucin, o en estado de [Interrupcin] que es
cuando en estado de ejecucin se produjo un error, por ultimo en la barra de titulo se puede visualizar
el nombre del Form (Formulario) actual en que se est trabajando y como se est trabajando [Form1
[Form]] cuando se trabaja en el diseo del Formulario o [Form1 [Cdigo]] cuando se trabaja en el
cdigo para ese formulario.
2.- En la barra de mens se encuentran todas las opciones para manejar Visual Basic, a medida que
se vayan utilizando se irn explicando.
3.- La barra de herramientas, contiene varios accesos directos a los mens, para agilizar el manejo de
Visual Basic.
4.- Se le llama Cuadro de herramientas y sirve para colocar objetos en la Ventana de Diseo, como
Cuadros de textos, Botones, Imgenes, y otros. Esto funciona muy fcil ya que seleccionamos por
ejemplo un CommandButton (botn), y vamos al ventana diseo y lo creamos haciendo Clic con el
Mouse (sin soltarlo!) y lo arrastramos hasta el tamao que deseemos, en ese momento soltamos el
botn. Y listo ya tienes un botn estilo Windows para usar!.
5.- La Ventana diseo, es aqu donde se le da la apariencia al programa, es decir lo que el usuario va a
ver. Los puntillos del fondo son utilizados con el fin de alinear ms fcil los objetos en el
Formulario(Ventana).
6.- En la ventana Posicin del Formulario, se puede ver un monitor y dentro de l una ventanita, esto
sirve para definir la posicin de la ventana cuando se inicie el programa, es decir donde se va a
mostrar. Pruebe hacer clic sobre la ventana (sin soltar el botn!) y arrastre la ventana dentro del
monitor, luego suelte el botn del Mouse. Y cuando se ejecute la aplicacin la ventana aparecer en
esa posicin.
7.- La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en
este caso muestra las propiedades del Form1, luego podemos ver que abajo dice "Form1 Form", lo
que est en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un
Formulario (Form).
8.- En la ventana Posicin del Formulario, se puede ver un monitor y dentro de l una ventanita, esto
sirve para definir la posicin de la ventana cuando se inicie el programa, es decir donde se va a
mostrar. Pruebe hacer clic sobre la ventana (sin soltar el botn!) y arrastre la ventana dentro del
monitor, luego suelte el botn del Mouse. Y cuando se ejecute la aplicacin la ventana aparecer en
esa posicin.
8.- El Explorador de proyectos es donde visualizamos todas los Formularios(Ventanas), Mdulos,
Clases, entre otros del proyecto actualmente abierto, es decir de la aplicacin que se est creando, en
este caso hay un solo Formulario llamado Form1, lo que aparece dentro de parntesis es el nombre de
archivo. Y este Formulario se encuentra dentro de una carpeta llamada "Formularios", por ser que VB
clasifica los archivos por tipos, cuando use otros tipos de archivos adems de Formularios podr
visualizar otras carpetas.
VARIABLE
Basic, desde siempre, al contrario de otros sistemas de programacin, no exigi la definicin previa de
una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le
asignamos a un dato. Ese dato podr cambiar.
Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al mbito en
que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no
sera accesible desde los dems procedimientos o formularios.
Public: Las variables declaradas sern publicas y podrn estar accesibles desde todos los formularios
de la aplicacin. Para conseguirlo tendremos que declararlas en un mdulo de cdigo, no en la seccin
declarations de cualquier formulario de los que conste la aplicacin. Para crear un mdulo de cdigo
en el men principal de Visual Basic marcamos en INSERT/MODULE y aparecer junto a los dems
formularios de la ventana de proyecto aunque con un icono distinto indicando que se trata de un
mdulo de cdigo.
Static: Con esta forma de declarar variables conseguiremos que las variables locales no se creen y se
destruyan al entrar y salir de los procedimientos donde fueron declaradas sino que se mantenga su
valor durante todo el periodo de ejecucin de la aplicacin. De esta forma a entrar en algn
procedimiento las variables recuerdan el valor que tenan cuando se sali de l.
TIPOS DE VARIABLES
TIPO
COMENTARIO
BOOLEAN
BYTE
INTEGER
LONG
SINGLE
DOUBLE
CURRENCY
STRING
cadenas de caracteres
DATE
Constante: Declaracin de constantes que pueden ser usadas en cualquier punto en lugar de su valor,
permitiendo cambiarlo cuando sea necesario, sin tener que cambiarlo en todos los sitios en que se
utiliza. La expresin no puede utilizar llamadas a funciones, pues la constante se calcula en tiempo de
compilacin, no en tiempo de ejecucin.
EXPRESIONES LGICAS
Existen los llamados operadores lgicos, que nos permiten establecer condiciones que dependadan
de ms de un criterio de seleccin. Todos los operadores hacen que la expresin en la que se
encuentren se evala a verdadero o falso, sin posibilidad de cualquier otro valor.
Estas expresiones son:
And: exp1 And exp2, donde se evala a verdadero sólo en el caso que el exp1 como exp2 se
evalen a verdadero. En cualquier otro caso se evala a falso.
Or: exp1 Or exp2, donde se evala a verdadero cuando alguna de las expresiones exp1 o exp2 se
evala a verdadero.
Not: Not exp1. aqu se evala a verdadero si exp1 es falso y se evala a falso si exp1 es verdadero.
Xor: exp1 Xor exp2, se evala a verdadero slo en el caso de que una y slo una de las expresiones
exp1 o exp2 se evala a verdadero.
OPERADORES DE VISUAL BASIC
En Visual Basic existe un gran nmero de operadores que se pueden utilizar para crear frmulas.
Los operadores ms utilizados en una aplicacin de Visual Basic son los siguientes:
Operador
Resta
Multiplicacin
Divisin
Divisin entera
Mod
Exponenciacin
&
OPERADORES RELACIONALES
Los operadores relacinales que reconoce vcpp son:
Operador
Significado
==
Igual que
>
Mayor que
<
Menor que
>=
<=
!=
SENTENCIAS
SENTENCIA DIM
Es la forma mas comn de declarar una variable como
Privada. Puede emplearse en un Procedimiento, Funcin, Formulario o Mdulo. La sintaxis es de la
siguiente forma:
Dim nombrevariable As Integer (o el tipo que sea)
Declarando una variable con la sentencia DIM, en un formulario, Funcin, procedimiento o mdulo,
el entorno de la variable ser el explicado anteriormente para una variable declarada como Privada. Es
decir, esa variable no sale del formulario, procedimiento mdulo donde se declar. Cada vez que
entremos al formulario, procedimiento o mdulo, esa variable tomar el valor cero (si es numrica) o
nulo (si es string).
Resumimos la forma de declarar una variable :
En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento)
Dim Variable As Tipovariable
En un Formulario (En su seccin de declaraciones)
SENTENCIAS CONDICIONALES.
LA SENTENCIA SELECT
La sentencia SELECT "selecciona" los campos que conformarn la consulta, es decir, que establece
los campos que se visualizarn o compondrn la consulta. El parmetro 'lista_campo' est compuesto
por uno o ms nombres de campos, separados por comas, pudindose especificar tambin el nombre
de la tabla a la cual pertenecen, seguido de un punto y del nombre del campo correspondiente. Si el
nombre del campo o de la tabla est compuesto de ms de una palabra, este nombre ha de escribirse
entre corchetes ([nombre]). Si se desea seleccionar todos los campos de una tabla, se puede utilizar el
asterisco (*) para indicarlo.
Una sentencia SELECT no puede escribirse sin la clusula FROM. Una clusula es una extensin de
un mandato que complementa a una sentencia o instruccin, pudiendo complementar tambin a otras
sentencias. Es, por decirlo as, un accesorio imprescindible en una determinada mquina, que puede
tambin acoplarse a otras mquinas. En este caso, la clusula FROM permite indicar en qu tablas o
en qu consultas (queries) se encuentran los campos especificados en la sentencias SELECT. Estas
tablas o consultas se separan por medio de comas (,), y, si sus nombres estn compuestos por ms de
una palabra, stos se escriben entre corchetes ([nombre]).
Tenemos aqu algunos ejemplos de mandatos SQL en la estructura SELECT...FROM...:
SELECT nombre,apellidos FROM clientes;
Selecciona los campos 'nombre' y 'apellidos' de la tabla 'clientes'.
SELECT clientes.nombre, producto FROM clientes, productos;
Selecciona el campo 'nombre' de la tabla 'clientes', y el campo 'producto' de la tabla productos.
Hay que tener en cuenta que si dos tablas poseen el mismo nombre de campo (un 'nombre' de cliente
y un 'nombre' de producto, hay que especificar tambin la tabla a la cual pertenece dicho campo, ya,
que de lo contrario, seleccionara ambos nombres).
SELECT pedidos.* FROM pedidos;
Selecciona todos los campos de la tabla 'pedidos'.
SELECT * FROM pedidos;
Selecciona todos los campos de la tabla 'pedidos'.
SELECT nombre, apellidos, telefono FROM clientes;
Selecciona los campos 'nombre', 'apellidos' y 'telefono' de la tabla 'clientes'. De esta manera
obtenemos una agenda telefnica de nuestros clientes.
SELECT [codigo postal] FROM [tabla morosos];
Selecciona el campo 'codigo postal' de la tabla 'tabla morosos'.
BUCLE POR CONTADOR
Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las
26 letras maysculas del alfabeto ingls
For N=65 To 90
Label1.caption = Chr ( N )
Next N
Este "programa" nos presentar en una caja (Label) los caracteres cuyo nmero ASCII vaya desde el
65 (A) al 90 (Z) Comenzar presentando el correspondiente al nmero 65, e ir presentando
sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parar.
Label1.caption = Chr ( N )
Label1.RefreshN ' Refresca la etiqueta
X=0
Do While X < 1000
X=X+1
Loop
Next N
La instruccin de la clusula Else, slo se ejecuta cuando el resto de condiciones han fracasado.
Cualquiera de los bloques de instruccin puede contener un nmero arbitrario de instrucciones,
incluida la posibilidad de que existan otras instrucciones IF-THEN-ELSE. Se pueden colocar todas las
sentencias de cdigo que queramos en cada uno de los bloques de sentencias, siempre que cada
sentencia vaya en una lnea distinta..
Un ciclo similar a el 'Do While' es el 'Loop While'. La principal diferencia es que el ciclo Do While la
condicin para poder continuar esta al principio (primero ceha la condicin y luego ejecuta el cdigo
que se desea repetir), mientras que en el Loop While esta al final, esto es despus de que ejecuta el
cdigo checa si debe continuar. Esto significa que un ciclo Do While, puede nunca ser ejecutado,
mientras que un ciclo Loop While siempre al menos se ejecutar una vez.
Cuando existe un gran nmero de instrucciones a evaluar es aconsejable utilizar otra estructura de
decisin, como puede ser las instruccinSelect Case. Esta instruccin no d ms potencia al lenguaje,
pero hace que el cdigo sea ms legible y eficiente. Esta sentencia permite realizar operaciones
diferentes dependiendo del valor de una variable.
La estructura de repeticin For...Next es adecuada cuando conocemos el nmero de veces que debe
repetirse un conjunto de instrucciones y deseamos reducir la cantidad de cdigo escrito.
Otra estructura de repeticin es Do...Loop. Esta estructura se utiliza cuando desconocemos cuntas
veces se ha de ejecutar el bucle.
Si utilizamos While el bucle se repite mientras la condicin se cumpla y si utilizamos Until el bucle se
repetir hasta que la condicin d valor verdadero. Con While, la condicin es comprobada al principio
del bucle, por lo que si no se cumple al iniciarse, el cuerpo del bucle no se ejecutar. Con Until se
comprueba a la salida del bucle, por lo que por lo menos, una vez se ejecutar el bucle.
Los siguientes comandos pueden ser usados para repetir varias veces la ejecucin de una seccin de
cdigo.
Ciclo Do (Sintaxis):
Do While condicin
lneas de cdigo
Loop
Ciclo While (Sintaxis):
Do
lneas de cdigo
Loop While condicin
Los ciclos For si los programadores saben cuantas veces un cliclo debe ser ejecutado.
Ciclo For (Sintaxis):
Pero recordar que lenguajes modernos y orientados a clientes-servidores de igual forma tienen
componentes que permiten del mismo modo al usuario tomar decisiones incluso directamente en
pantalla, es decir tambien existen los objetos, controles o componentes de seleccin y decisin en
html.
El formato general de una instruccin condicional es:
Como se observa, son cuatro partes bien diferenciadas entre si;
La condicin
Variables
Operadores
Relacinales
Constante o Variables
sexo
sueldo
>
300,000
Una condicin simple se define como el conjunto de variables y/o constantes unidas por los llamados
operadores relacinales.
INSTRUCCIONES DE CONTROL DE PROGRAMA
INSTRUCCIN IF
Es la instruccin condicional mas usada en los diversos lenguajes de programacin, su formato
completo y de trabajo en vcpp es:
cargar o asignar la variable de condicin;
if (condicin)
{ grupo cierto de instrucciones;}
else
{ grupo falso de instrucciones; };
OPERADOR
SIGNIFICADO
&&
"Y" LOGICO
||
"O" LOGICO
"NO" NEGACION
Ejemplo:
if ( (carrera=="informatica") && ( sexo=="m") ) etc, etc, etc.
Notas:
Observar que cada condicin simple lleva sus propios parentesis.
Si la variable es de tipo string el dato va entre comillas("), pero si la variable es de tipo char el dato va
entre apostrofes(').
Para que el computador evale como CIERTA una condicin compuesta que contiene el operador
lgico "&&", las dos condiciones simples deben ser ciertas.
Para que el computador evale como CIERTA una condicin compuesta que contiene el operador
lgico "||", basta con que una de las condiciones simples sea cierta.
La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la
relacin donde n = cantidad de condiciones, la primera mitad de ellos empieza en cierto y la segunda
mitad en falso.
Ejemplo, si formamos una condicin compuesta con dos condiciones simples y el operador lgico "y",
la cantidad total de casos posibles serian , y se puede construir la siguiente tabla de verdad.
Tabla de verdad con "y"
IRA COND SIMPLE
EVALUACION
La evaluacin final, se obtiene usando la regla anteriormente descrita para una condicin compuesta,
que contiene el operador "Y".
Esta tabla significa lo siguiente;
1.- Cualquiera que sean la cantidad de datos procesados, siempre caer en uno de estos cuatro casos
generales.
La tabla de verdad para una condicin compuesta con "Or" es la siguiente;
IRA COND SIMPLE
EVALUACION
Construir una tabla de verdad para una condicin compuesta de tres o mas condiciones simples, es
tambin tarea sencilla, solo recordar que;
1.- La cantidad posible de casos es posible, la mitad empiezan con Cierto y la otra mitad empiezan con
Falso.
2.- Para evaluar esta condicin triple primero se evalan las dos primeras incluyendo su operador bajo
las reglas ya descritas y luego se evala el resultado parcial contra la ultima condicin y ultimo
operador para obtener la evaluacin final.
Ejemplo una condicin compuesta de tres condiciones simples, donde el primer operador lgico es el
"y" y el segundo operador lgico es el "O", dara la siguiente tabla de verdad.
Ira cond
2da cond
Eval 1a Y 2a
3ra cond
CAPTION:
Representa es texto que aparecer en el men.
NAME:
Es el nombre del control. Se puede anteponer el prefijo mnu ms el texto del ttulo del men.
CHECKED:
Establece si debe aparecer una marca de verificacin a la izquierda del texto del objeto del men. La
marca la puedes utilizar cuando deseas informar de la opcin que est activada en un momento
determinado.
ENABLED:
Indica si el objeto podr recibir eventos del usuario. Si tiene el valor False el elemento aparecer
atenuado en el men.
VISIBLE:
Indica si el objeto debe mostrarse o no, si se establece este valor a False, los elementos situados a la
derecha ocupan el lugar del elemento no visible.
WINDOWSLIST:
Establece el valor que determina si un objeto de men mantiene una lista de las ventanas MDI
secundarias del formulario actual. Elementos del Men:
Utilizando los botones de sangra se puede determinar el nivel del objeto men que quieras
seleccionar. As, los ttulos de men se sitan en el nivel superior, mostrndose en la lista inferior del
editor de mens, lo ms a la izquierda posible. En muchas aplicaciones se pueden ver unas barras
horizontales en los mens desplegables que realizan la funcin de dividir en secciones dichos mens.
Este elemento es conocido como un separador, y sirve para separar aquellos comandos del men que
tengan_un_motivo_en_comn.
Para crear un separador, basta con introducir un guin (-) en la propiedad Caption. No se puede crear
un elemento en un nivel inferior inmediatamente despus de un separador, es decir, no puedes tener
como ttulo de men un separador.
TECLAS DE MTODO ABREVIADO:
Al introducir el carcter & el men est creando una tecla de acceso a dicho objeto. Esta tecla se
representa subrayada en el texto de men y respresenta la tecla del teclado que el usuario puede
pulsar para ejecutar la accin. Dicha tecla se corresponde con la letra que sigue al caracter & en la
propiedad Caption del objeto men. Si se trata de un ttulo de men tienes que usar la tecla de acceso
en combinacin con la telca [Alt.]. Una vez abierto un ttulo de men y desplegado sus elementos, para
acceder rpidamente a uno de ellos, puedes usar la tecla de acceso directamente.
Tienes que tener cuidado en no utilizar las mismas teclas de acceso para elementos de un mismo nivel
de men ya que entonces no funcionarn. El editor de men tambin admite la incorporacin de teclas
de mtodo abreviado. Las abreviaturas del men son combinaciones de teclas que se pueden utilizar
en lugar de elegir el elemento del men correspondiente. Para crear una tecla de mtodo abreviado
tienes que utilizar la propiedad Shortcut, a la que puedes acceder al crear el men desde el editor de
mens.
EVENTOS DEL MEN
Cuando en tiempo de diseo seleccionamos la opcin de men de un formulario que estamos creando,
Visual Basic muestra el procedimiento de evento click de dicho elemento del men. En el caso del
ttulo del men, el procedimiento click tiene como accin predeterminada la de mostrar los elementos
de men del nivel inferior, por lo que no ser necesario tener que programar esta accin. Esto tambin
se puede aplicar a los elementos de un men que son a su vez ttulos de submens. En casi todos los
casos tienes que utilizar una opcin del men para descargar el formulario o para finalizar la
aplicacin. La opcin de texto salir suele ser el ms apropiado. La instruccin Unload descarga de
memoria el formulario que se especifique. Se puede usar de varias formas, por ejemplo si estamos
dentro de un Form llamado frmconsulta podremos salir de l de dos formas: Una es Unload Me o
Unload frmconsulta.
MSGBOX
La sntaxis completa de la funcin MsgBox es:
MsgBox(mensaje[, botones][, título][, archivoAyuda, contexto])
Los valores que pueden tomar el parmetro botones son:
Constante
Valor
Descipcin
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
Botones si y no
vbRetryCancel
vbCritical
16
vbQuestion
32
Icono de interrogacin
vbExclamation
48
Icono de exclamacin
vbInformation
64
vbAplicationModal
vbSystemModal
4096
El parmetro botones es de valor numrico, y adems de los botones que aparecen en le cuadro de
dilogo, tambin puede indicar el icono que acompae al mensaje y el tipo de dilogo modal que es.
Cuando un cuadro de dilogo es modal de aplicacien tienes que cerrarlo para interactuar con otra
ventana de la misma aplicacin. Cuando es un cuadro de dilogo modal del sistema, todas las
aplicaciones que estn ejecutndose se suspenden hasta que el usuario responda al cuadro de
dilogo. El cuadro InputBox se consigue a travs de la funcin InputBox. Se utiliza cuando se necesita
que el usuario introduzca alguna informacin.
LOS CONTROLES
Realmente son objetos que disponen de sus propias propiedades y mtodos, y cuya utilidad es la de
facilitarnos el desarrollo de nuestras aplicaciones. Bueno, este intento de definicin puede haber
quedado bien, pero para que lo tengis ms claro, tener en cuenta que en cualquier aplicacin con la
que trabajamos estamos rodeados de controles. Quien no ha visto en multitud de programas los
botones ACEPTAR y CANCELAR, un cuadro para introducir texto, una lista con datos, etc.. Pues todos
ellos son controles y no tendremos que preocuparnos por crearlos para nuestras aplicaciones sino que
ya vienen con el paquete de VB, lo nico que tendremos que hacer es modificar sus propiedades:
tamao, color, etc.. para incorporarlos en nuestras aplicaciones y asociarles el cdigo necesario para
que se comporten como esperamos al ejecutar la aplicacin.
Antes de empezar a conocer los controles bsicos veamos cuales son sus caractersticas generales:
Propiedades: Todos los controles disponen de una serie de propiedades las cuales
podemos cambiar al incluirlos en nuestras aplicaciones. Ejemplos de propiedades son el
color, el tipo de letra, el nombre, el texto, etc.
explorador de windows) dispone del metodo order que te ordena los datos aparecidos en
la lista.
Eventos: Son acciones que pueden ser motivadas por el propio usuario o por mismo
sistema operativo. Ejemplos pueden ser el movimiento del raton o hacer click sobre su
botn. En Visual Basic digamos que se utiliza la programacin orientada a eventos, lo cual
es una de las diferencias ms importantes respecto a la programacin lineal de MS DOS.
No necesitamos detectar cuando se ha producido un evento determinado, Windows lo
detecta automticamente. Los eventos ya estan definidos, son bastantes y cada control
cuenta con los suyos propios, aunque son muy parecidos. Lo nico que tendremos que
hacer es asociar el cdigo necesario al evento que necesitemos tratar.
Para mostrar la ventana donde aparecen los controles que Visual Basic carga por defecto nada ms
arrancar la aplicacin tendremos que marcar en View del men principal (versin inglesa) y activar la
opcin Toolbox. Obtendremos una ventana como esta en la pantalla:
Realmente existen muchos ms controles, aunque estos son los ms utilizados y por eso aparecen por
defecto. Para tener acceso a los dems controles tanto de Visual Basic como los controles que
incorporan otras aplicaciones marcaremos en Tools/Custom Controls del men principal.
Moviendo el ratn por encima de cualquier control aparecer una pista indicndonos el control de que
se trata.
Para que esta ventana aparezca siempre en primer plano aunque no sea la ventana activa
marcaremos con el boton derecho del ratn en cualquier lugar de la ventana y activaremos la
opcin Always On Top del men contextual.
CONTROLES BASICOS
TextBox
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras
aplicaciones.
No hace falta que indiquemos las coordenadas de la situacin del formulario en pantalla, simplemente
tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamao que
queramos en nuestro formulario.
PROPIEDADES
Las propiedades de las que dispone el control son las siguientes:(para obtener el cuadro de
propiedades, seleccionar el control y pulsar F4 o pulsar con el boton derecho para obtener el men
contextual y marcar Propierties)
Text: Aqui indicamos el texto que aparecer en el control. Podemos asignarle cualquier texto en
tiempo de diseo o ejecucin. Tambin podemos tomar el texto que haya introducido el usuario para
tratarlo durante la ejecucin.
Name: Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este caso
Text1 y es el nombre con el que se conocer el control cuando lo utilicemos en el codigo. En un mismo
formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que
represente la funcion que tiene el control en la aplicacion para que el codigo quede ms claro. Ejemplo,
si en el textbox vamos a introducir la direccin de una persona podemos asignale a esta propiedad el
valor Direccion.
MultiLine: Permite que introduzcamos varias lineas de texto en el control en lugar de slo una.
Alignment: Alineacion que tendr el texto dentro del control: izquierda, centro o derecha. Para que
funcione la propiedad MultiLine debe estar con el valor true.
Locked: Si esta con valor true bloquea el control, es decir, el usuario no puede introducir ni modificar el
texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el usuario
pueda modificarlos por error.
Otras propiedades que son comunes a la mayoria de los controles:
Backcolor: color de fondo.
Forecolor: color de letra.
Font: tipo y tamao de letra.
METODOS
Recordemos que por mtodos se entienten los procedimientos o funciones asociados a un control, los
cuales nos permiten realizar ciertas operaciones tiles sobre dicho control: Ej. ordenar sus elementos,
buscar un dato, etc..
Pues bien, los controles bsicos que vamos a ver en este captulo nicamente contienen mtodos
avanzados que no vamos a analizar por ahora, ya que son mtodos que no se suelen utilizar. Ms
adelante cuando veamos otros tipos de controles estudiaremos cuales son los mtodos que nos
podrn servir. Si alguien est interesado en conocer todas las caractersticas de los controles puede
hacerlo mirando en la ayuda que proporciona VB, haciendo click sobre cualquier control de la caja de
herramientas y pulsando a continuacin F1 obtendr ayuda referente a ese control donde aparecern
todas sus propiedades, metodos y eventos.
EVENTOS
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento
del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al producir el evento.
MouseMove: al mover el raton por encima del control.
Mousedown: al pulsar cualquier boton del raton
Change: al cambiar el contenido del control
Click: al hacer click con el botn izquierdo del ratn sobre el control
Doubleclick: al hacer doble click con el con el botn izquierdo del ratn sobre el control
Getfocus: este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el
control en tiempo de ejecucin para introducir datos en l o realizar alguna operacin.
Lostfocus: Es el contrario del anterior evento, se activa cuando el control pierde el enfoque, es decir,
se pasa a otro control para seguir introduciendo datos.
EJEMPLO
Vamos a probar el uso del control TextBox mediante un pequeo ejemplo en el que teniendo un nico
control de este tipo en un formulario, lo programaremos de forma que al pasar el ratn sobre el control
(evento mousemove) aparecer en el formulario el texto que contenga.
Observamos que al situar el control en el formulario aparece por defecto el texto Text1. Para que no
aparezca ese texto al ejecutar la aplicacin, debemos cambiar la propiedad Text pulsando F4 y colocar
el texto que queramos o no colocar nada.
Lo que queremos hacer es que cada vez que movamos el raton por el control aparezca su contenido
en el formulario. Entonces lo que habr que hacer abrir la ventana de cdigo, seleccionando el control
y pulsando F7, o con el botn derecho del ratn y la opcin View code del men contextual. Este
proceso nos llevar al cuadro de la imagen siguiente.
Lo que tendremos que hacer es seleccionar el evento que necesitemos de la seccin Proc, en nuestro
caso mousemove y a continuacin teclear el codigo correspondiente: La instruccin print visualiza un
texto en el formulario y si le ponemos text1.text le decimos que nos muestre la propiedad Text del
control Text1 que ese ser el nombre que tendr el control por defecto si no lo hemos cambiado en la
propiedad name.
Al ejecutar esta pequea aplicacin pulsando F5 observaremos como aparece en el formulario lo que
hayamos tecleado en el control cada vez que movemos el raton sobre el Textbox.
Podemos modificar el programa para que responda a cualquier otro evento sin ms que seleccionarlo
en la seccin Proc e introduciendo el codigo que sea necesario.
Label
Este control es tambin uno de los ms utilizados, aunque su utilidad queda restringida a la
visualizacin de datos en el mismo, no permitiendo la introduccin de datos por parte del usuario.
La forma de utilizarlo es similar a la del control anterior, dibujar el control en el formulario con el tamao
que queramos y asignarle un texto en tiempo de diseo o de ejecucin esta vez sin utilizar la propiedad
text puesto que no la incorpora, sino utilizando la propiedad caption.
Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la utilidad
de los dems controles que tengamos en la aplicacin o para indicarnos acciones que podemos
realizar. En el ejemplo anterior donde apareca un textbox en el formulario, hubiera quedado mejor con
un mensaje aclaratorio contenido en un control label:
PROPIEDADES
Caption: Es el texto que contendr el control.
Alignment: Alineacin del texto contenido en el control, no necesita que est activada ninguna otra
propiedad.
BorderStyle: Si queremos que aparezca un borde alrededor del control activaremos esta propiedad.
Para este control no se suelen utilizar los eventos ya que su contenido suele cambiar poco a lo largo
de la ejecucin de la aplicacin. De todas formas los eventos son casi los mismos del control textbox
excepto que no dispone de los eventos GetFocus y LostFocus ya que a este control no se le puede
dar el enfoque.
En la parte final de este capitulo veremos un ejemplo donde se muestra el funcionamiento de todos los
controles que vamos a ir viendo.Por ahora a ver si conseguis que ahora el mensaje no aparezca en el
formulario sino en un segundo label situado en el formulario, dejando un control label que muestre el
mensaje aclaratorio que hemos visto antes.
CommandButton
Este control es el tpico botn que aparece en todas las aplicaciones y que al hacer click sobre l nos
permite realizar alguna operacin concreta, normalmente Aceptar o Cancelar. Aunque segn el cdigo
que le asociemos podremos realizar las operaciones que queramos.
En el ejemplo anterior podemos aadir un control de este tipo para salir de la aplicacin sin tener
pulsar sobre la equis de la esquina superior derecha.
Pero slo con introducir un control de este tipo con el texto salir que se introduce a traves de la
propiedad caption no basta. Habr que asociarle un cdigo que nos permita salir de la aplicacin en el
evento adecuado. Y el evento por excelencia de este control es click. As pues accederemos al cdigo
del control y la sentencia nos permitir salir de la aplicacin es End, simplemente tecleamos esa
palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicacin al pulsar sobre
dicho botn.
PROPIEDADES
Caption: Aqui pondremos el letrero que queremos que apaezca en el botn: aceptar, cancelar, salir,
etc.
Enabled: Esta es una nueva propiedad, cuando su valor es true el botn funciona normalmente,
cuando su valor es false el boton se encuentra desactivado, no responde a los eventos producidos
sobre l y el texto aparece en un gris claro advirtiendonos de su estado. Podemos utilizar esta
propiedad para activar o desactivar un boton dependiendo del estado de otros controles. Por ejemplo,
en un boton Aceptar, no activarlo hasta que se haya introducido una cantidad en un control textbox, ya
que ese botn nos calcular el IVA de la cantidad.
EVENTOS
Click: Es el evento tpico de este control y el que ms se utiliza.
MouseMove: Como sabemos detecta el movimiento del ratn sobre el control. Puede servir para que
aparezca un mensaje en un control Label que nos aporte informacin sobre la utilidad del control
ampliando el texto que hayamos colocado como caption del commandbutton.
OptionButton
Este control nos permite elegir una opcin entre varias de las que se nos plantean. Cada opcin ser
un control optionbutton diferente.
Facilita la introduccin de datos por parte del usuario:
De todas las opciones que se nos ofrece, en este caso los 4 colores, slo podremos activar una. Si
activamos cualquier otra opcin, se desactivar automticamente la ltima que tenamos activada.
El marco que est alrededor de los 4 controles optionbutton se trata del control Frame , es opcional,
aunque es conveniente colocarlo siempre que hagamos uso de las opciones. No slo por motivos de
presentacin sino porque de esta manera podremos establecer grupos de controles optionbutton
independientes en los que en cada grupo slo pueda haber una opcin activada a la vez. Tambin, al
mover el marco se movern los controles incluidos en l facilitndonos las modificaciones.
Para que los controles Optionbutton queden englobados dentro de un control Frame, primero
tendremos que colocar el control Frame en el formulario con el tamao adecuado y despues ir
colocando los controles Optionbutton dentro del Frame.
Del control Frame la nica propiedad que nos interesar es caption, que es el texto que aparecer en
el encabezado, en el ejemplo anterior: colores.
PROPIEDADES DE OPTIONBUTTON
Caption: El texto que aparecer al lado del control: Rojo, verde, etc.
Value: Es el valor que tendr el control: True si se encuentra activado y False si no lo est. Para
comprobar que opcin ha activado el usuario comprobaremos el estado de esta propiedad.
Alignment: Alineacin del texto respecto al control: Left Justify: el control aparece a la izquierda del
texto. Es el ejemplo anterior.Right Justify: el control aparece a la derecha del texto.
Los eventos del control son los mismos que en anteriores controles, aunque no se suele asociar cdigo
a los eventos de este tipo de controles, sino nicamente conocer el valor que tienen: true o false.
Aplicacin de ejemplo
Para practicar con los controles que hemos visto vamos a realizar una pequea aplicacin que
consistir en realizar con 2 nmeros que introduzcamos, una operacin que seleccionemos y mostrar
el resultado.
Los controles Optionbutton tienen cada uno de ellos el mismo nombre que su caption
Para el botn Calcular que es el que nos mostrar el resultado segn la operacin
seleccionada, he utilizado la instruccin If Then Else que vimos en el captulo anterior:
El botn Limpiar Datos nos va a servir para borrar de una forma rpida los datos
introducidos por el usuario y el resultado preparando los controles para introducir nuevos
datos. El cdigo que tendremos que introducir es muy simple