![]() |
WEB SERVER COPROCESSOR DEVELOPER BOARD FT497 |
File: demo1.spd |
Dip1 = ^Dipswitch’7 |
Dip2 = ^Dipswitch’6 N Ó I C A M 40 A R G O R P RESISTOR la estructura del archivo, dejando el detalle sólo para aquellas partes que se refieren a los parámetros insertados en el SitePlayer. Recuérdese, no obstante, que en HTML se utilizan etiquetas (tags) para definir un objeto concreto. Los tags siempre se escriben entre signos de “mayor que” y “menor que”, y se cierran con el mismo tag, precedido del símbolo /. Por ejemplo: todo el código html debe quedar comprendido entre el tag (dispuesto al principio del archivo) y el tag (colocado al final del archivo). DEMO 2 Ejemplo de lectura de una entrada analógica: se lee el valor del trimmer R4 y se visualiza en formato numérico. 38-49 CursoSitePlayerCap4 23/6/05 08:15 Página 41 |
Dip3 = ^Dipswitch’5 |
Dip4 = ^Dipswitch’4 |
Dip5 = ^Dipswitch’3 |
Dip6 = ^Dipswitch’2 |
Dip7 = ^Dipswitch’1 |
Dip8 = ^Dipswitch’0 |
© 2003 Futura Elettronica Company. All rights reserved. |
cierra un paaárrafo, el tag Dip1 = ^Dipswitch’7 y Trimmer = ^Trimmer y definen, respectivamente, una línea y una columna de y una tabla. Una mirada a la imagen que muestra la página html tal como puede visualizarse desde un navegador y observando el listado se comprende con facilidad cómo los diferentes tags dan lugar a las diversas partes de la página. Una parte interesante es:
Dip1 es sólo texto, por que se visualizará así mismo, mientras que ^Dipswitch es un objeto del SitePlayer. En el capítulo precedente se definieron los objetos como el medio que el SitePlayer utiliza para comunicar con el mundo exterior; fundamentalmente, se trata de células de memoria cuyo contenido puede modificarse desde el
DEMO 2: Definiciones
;DEMO2.SPD
;DEFINITIONS $Devicename “Futura Elettronica Demo2” $DHCPP off $DHC $DownloadPassword “” $SitePassword “” Inmediatamente se deduce que esta línea, com- $InitialIP “192.168.0.250” prendida entre los tags
N Ó I C A M 41 A R G O R P RESISTOR
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 42
DEMO 1: Listado Basic ;File DEMO1.BAS TEMP var byte DATOIN DA TOIN var byte DATOOUT var byte INDIRIZZO var byte FLAGOK var bit TEMPERATURA TEMPERA TURA var byte TRIMMER var byte Include “modedefs.bas” ‘LED SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO
LED1 = PORTC.0 PORTC.0 LED2 = PORTC.1 PORTC.1 LED3 = PORTC.2 PORTC.2 LED4 = PORTC.3 PORTC.3 LED5 = PORTC.4 PORTC.4 LED6 = PORTC.5 PORTC.5 LED7 = PORTC.6 PORTC.6 LED8 = PORTC.7 PORTC.7
‘DIP SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO
DIP1 = PORTB.0 PORTB.0 DIP2 = PORTB.1 PORTB.1 DIP3 = PORTB.2 PORTB.2 DIP4 = PORTB.3 PORTB.3 DIP5 = PORTB.4 PORTB.4 DIP6 = PORTB.5 PORTB.5 DIP7 = PORTB.6 PORTB.6 DIP8 = PORTB.7 PORTB.7
N Ó I C A M 42 A R G O R P RESISTOR
‘Comunicación con el Site Player SYMBOLL TX232 = PORT SYMBO PORTA.2 A.2 SYMBOLL RX232 = PORT SYMBO PORTA.5 A.5 ‘Interrupt del Site Player SYMBOL SYM BOL INT INTSP SP = POR PORTTA.4 ‘Definición I/O ADCON1=%0000010 ‘RA0,RA1 e RA3 analógicos ADCON0=%10000001 OUTP OU TPUT UT LE LED1 D1 OUTP OU TPUT UT LE LED2 D2 OUTP OU TPUT UT LE LED3 D3 OUTP OU TPUT UT LE LED4 D4 OUTP OU TPUT UT LE LED5 D5 OUTP OU TPUT UT LE LED6 D6 OUTP OU TPUT UT LE LED7 D7
OUTPUT OUTP UT LE LED8 D8 OUTPUT OUT PUT TX2 TX232 32 INPU IN PUTT RX RX23 2322 ‘Dip INPUTT INPU INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT
DIP1 DIP1 DIP2 DI P2 DIP3 DI P3 DIP4 DI P4 DIP5 DI P5 DIP6 DI P6 DIP7 DI P7 DIP8 DI P8
‘Rutina de verificación de los leds TEST: Gosub SPEGNILED Led1 = 1 Pause 200 ‘Portb con pull up internos Led1 = 0 Led2 = 1 OPTION_REG.7 = 0 Pause 200 INPU IN PUTT Po Port rta. a.00 Led2 = 0 INPU IN PUTT Po Port rta. a.11 Led3 = 1 INPU IN PUTT INT NTSP SP Pause 200 Pause 100 Led3 = 0 Gosub TEST Led4 = 1 Pause 300 Pause 200 START: Led4 = 0 ‘Inicializar Led5 = 1 Gosub SEND20 Pause 200 Pause 200 Led5 = 0 START1: Led6 = 1 ‘Leer portb Pause 200 DATOOUT DA TOOUT = Portb Led6 = 0 DIRECCIÓN = 5 Led7 = 1 Gosub WRITEDATO Pause 200 Pause 1000 Led7 = 0 Goto START1 Led8 = 1 Pause 200 ‘***************************** Gosub APAGARLEDS ‘Rutina de envío de 20 bytes 0 para Return inicialización SEND20: ‘Rutina de apagado de los leds For TEMP TEMP = 1 to 20 APAGARLEDS: Serout TX232,T9600,[0] LED1 = 0 Pause 5 LED2 = 0 Next TEMP LED3 = 0 Return LED4 = 0 LED5 = 0 ‘Rutina de escritura de un byte LED6 = 0 ‘Envia : Comando de escritura (128), LED7 = 0 ‘DIRECCIÓN, DATOOUT LED8 = 0 WRITEDATO: Return Pause 10
microcontrolador conectado a la serie y, por otro lado, representan valores que se insertan en la página web cuando ésta se envía a un navegador. Si se visualiza esta página web abriendo el archivo desde un PC con un navegador, se obtiene la línea Dip1 = ^Dipswitch’7
Serout TX232,T9600,[128] Pause 5 Serout TX232,T9600,[DIRECCIÓN] Pause 5 Serout TX232,T9600,[DATOOUT] Pause 20 Return
Pero cuando el navegador interroga el SitePlayer, éste sustituye ^Dipswitch por el valor del objeto correspondiente que, en la práctica, es el valor de la célula de memoria RAM que se había definico como objeto Dipswitch. Dado que Dipswitch (como enseguida se verá) es un byte que muestra exactamente el estado de los dipswitches de la demoboard, para visualizar el estado de cada dipswitch en concreto debe aislarse cada bit de este byte. Para ello se utiliza un modificador, que es:
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 43
DEMO 2: Listado HTML
^oggetto’n que contesta indicando el valor adoptado por el enésimo bit del objeto. Así, en el caso que nos ocupa, el SitePlayer sustituirá ^Dipswitch’7 ^Dipswitch’7 por el valor del séptimo bit del objeto Dipswitch que, como bien supone el lector, corresponde exactamente al estado lógico del correspondi correspondiente ente dipswitch de la demoboard. File demo1.spd = Archivo demo1.spd Tal como ya se ha explicado durante el presente curso, debe crearse un archivo con extensión .spd que, una vez compilado por el SiteLinker, se descargará en el módulo SitePlayer. Este archivo, reproducido en el recuadro Demo1: definiciones, contiene una serie de definiciones y objetos. En lo que se refiere a definiciones, pueden verse: $Devicename “Futura elettronica” , que asigna un nombre al dispositivo;
DEVELOPER BOARD FT497
$DHCP off , que deshabilita deshabilita la modalidad de asignación de la IP por el servidor (o bien el SitePlayer dispone dispone de una IP estáti estática); ca); $DownloadPassword “” y $SitePassword “” , que no asignan ninguna password; ;$InitialIP “192.168.0.2 “192.168.0.250” 50” , que asigna al módulo SitePlayer la dirección IP; $PostIRQ on , que permite activar en la patilla 11 del SitePlayer la señal de llegada de datos; $Sitefile “C:\Programm “C:\Programmi\SitePlayer\demo i\SitePlayer\demoboard\demo1 board\demo1\ \ demo1.spb” , que define exactamente la localización y la denominación del archivo .spb a crear (este archivo .spb es el que se descargará en el módulo SitePlayer); $Sitepath “C:\Programmi\SitePlayer\demoboard\demo1\ root” , que define el recorrido donde se guardan las páginas web y las imágenes a ellas asociadas. Al personalizar esta parte de las definiciones debe prestarse atención a las dos definiciones $Sitefile y $Sitepath, en las cuales debe indicarse el recorrido donde se encuen-
N Ó I C A M 43 A R G O R P RESISTOR
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 44
DEMO 2: Listado Basic ;File DEMO2.BAS TEMP var byte DATOIN DA TOIN var byte DATOOUT var byte DIRECCIÓN var byte FLAGOK var bit TEMPERATURA TEMPERA TURA var byte TRIMMER var byte Include “modedefs.bas” ‘LED SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO
LED1 = PORTC.0 PORTC.0 LED2 = PORTC.1 PORTC.1 LED3 = PORTC.2 PORTC.2 LED4 = PORTC.3 PORTC.3 LED5 = PORTC.4 PORTC.4 LED6 = PORTC.5 PORTC.5 LED7 = PORTC.6 PORTC.6 LED8 = PORTC.7 PORTC.7
‘DIP SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO
DIP1 = PORTB.0 PORTB.0 DIP2 = PORTB.1 PORTB.1 DIP3 = PORTB.2 PORTB.2 DIP4 = PORTB.3 PORTB.3 DIP5 = PORTB.4 PORTB.4 DIP6 = PORTB.5 PORTB.5 DIP7 = PORTB.6 PORTB.6 DIP8 = PORTB.7 PORTB.7
N Ó I C A M 44 A R G O R P RESISTOR
OUTPUT OUTP UT LE LED3 D3 OUTP OU TPUT UT LE LED4 D4 OUTP OU TPUT UT LE LED5 D5 OUTP OU TPUT UT LE LED6 D6 OUTP OU TPUT UT LE LED7 D7 OUTP OU TPUT UT LE LED8 D8 OUTPUT OUT PUT TX2 TX232 32 INPU IN PUTT RX RX23 2322 ‘Dip
INPUTT INPU INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT
DIP1 DIP1 DIP2 DI P2 DIP3 DI P3 DIP4 DI P4 DIP5 DI P5 DIP6 DI P6 DIP7 DI P7 DIP8 DI P8
‘Portb con pull up internos OPTION_REG.7 = 0 INPU IN PUTT Po Port rta. a.00 INPU IN PUTT Po Port rta. a.11 INPU IN PUTT INT NTSP SP
‘Interrupt del Site Player SYMBOL SYM BOL INT INTSP SP = POR PORTTA.4
START: ‘Inizializar Gosub SEND20 Pause 500 START1: ‘Leer entradas analógicas Gosub CONVERTI DATOOUT DA TOOUT = TRIMMER DIRECCIÓN = 5 Gosub WRITEDATO Pause 1000 Goto START1
‘Definición I/O ADCON1=%00000100 ADCON0=%10000001 OUTP OU TPUT UT LE LED1 D1 OUTP OU TPUT UT LE LED2 D2
‘***************************** ‘Routina de envío de los 20 bytes 0 para inicialización SEND20: For TEMP TEMP = 1 to 20
‘Comunicación con el Site Player SYMBOLL TX232 = PORT SYMBO PORTA.2 A.2 SYMBOLL RX232 = PORT SYMBO PORTA.5 A.5
tran los archivos. Otro parámetro particularmente importante es $InizialIP, ya que sirve para asignar la dirección IP del propio dispositivo. En lo que que respecta a objetos, en la demo1 sólo se encuentra uno de ellos, el identificado con la localización de dirección 5 (éste es el significado de la directiva org 05h), que es un bit cuyo valor por defecto es 0 (db0). File demo1.bas = Archivo demo1.bas Tras el análisis de los archivos de la página web y del SitePlayer, sólo queda analizar y comprender el programa para el microcontrolador, microcontrolador, escrito en Basic, cuyo listado puede verse en el recuadro Demo1: listado en Básic. La primera parte del archivo, desde el inicio hasta la etiqueta START, es prácticamente igual para todos los programas
Serout TX232,T9600,[0] Pause 5 Next TEMP Return ‘Rutina de escritura de un byte ‘Enviar : Comando de escritura (128), DIRECCIÓN, DATOOUT WRITEDATO: Pause 10 Serout TX232,T9600,[128] Pause 5 Serout TX232,T9600,[DIRECCIÓN] Pause 5 Serout TX232,T9600,[DATOOUT] Pause 20 Return ‘Routina de conversión ‘Introducir resultado en TRIMMER y TEMPERATURA CONVERTIR: ADCON0.3 = 0 ADCON0.4 = 0 ADCON0.5 = 0 Pause 1 ADCON0.2 = 1 ‘Arrancar proceso conversión Pause 5 TRIMMER = ADRESH Pause 1 ADCON0.3 = 1 ADCON0.4 = 0 ADCON0.5 = 0 Pause 1 ADCON0.2 = 1 ‘Arrancar proceso conversión Pause 5 TEMPERATURA TEMPERA TURA = ADRESH Pause 1 Return
redactados para el presente curso e incluye las definiciones de la variables utilizadas por el programa, las definiciones de las diversas líneas de I/O y las líneas de comunicaciones con el SitePlayer SitePlayer.. También se inicializa el convertidor analógico/Digital, aunque en esta aplicación no se utiliza. Previamente al inicio del programa propiamente propiamente dicho se reclama una rutina de prueba (TEST) para verificar el funcionamiento de los leds. El programa se arranca desde la etiqueta START. Se llama la rutina SEND20, que envía al módulo SitePlayer 20 bytes, todos de valor 0. Estos pasos son necesarios para asegurar que el módulo SitePlayer interprete correctamente los siguientes comandos recibidos por la serie: por esta razón, se han implementado en todos los programas del curso. A propósito de la comunicación serie, conviene
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 45
DEMO 3 Ejemplo de lectura de una entrada analógica y visualización gráfica: se lee la temperatura ambiente con el sensor SENS y se visualiza en formato gráfico.
La instrucción
DEMO 3: Definiciones ;DEMO3.SPD ;DEFINITIONS $Devicename “Futura elettronica Demo3” $DHCPP off $DHC $DownloadPassword “” $SitePassword “” $InitialIP “192.168.0.250” $PostIRQ on $Sitefile “C:\Programas\SitePlayer\demoboard\demo3\demo3.spb” $Sitepath “C:\Programas\SitePlayer\demoboard\demo3\root” ;OBJECTS org Cifra3 Cifra2 Cifra1
05h db 0 db 0 db 0
no olvidar que el módulo SitePlayer utiliza una comunicación serie normal, a 9.699 baud. La instrucción SEROUT SEROUT de PicBasic simplifica notablenotablemente la escritura del programa: basta con especificar en esta instrucción instrucción la patilla a donde donde enviar los datos, datos, la velocidad de transmisión y el dato a transmitir: la comunicación serie se ha establece automáticamente.
Serout TX232,T9600,[0] ordena enviar el byte 0 a la patilla TX232 a 9.600 baud. Una vez inicializado el módulo, en la etiqueta START1 se arranca el programa principal, un bucle que procede a leer cada segundo el estado del dipswitch y llama a la rutina WRITEDATO. WRITEDA TO. Esta subrutina envía tres bytes al SitePlayer, que son: el comando de escritura (128), la dirección de la célula de memoria en donde se desea escribir (que en la subrutina se representa por la variable INDIRIZZO (DIRECCIÓN), (DIRECCI ÓN), y el dato a escribir escribir.. A esta variable se le asigna el valor 5, que es la localización de memoria del objeto Dipswitch definido en el archivo de definiciones del SitePlayer. El byte del dato a escribir está constituido por la variable DATAOUT, a la cual se ha asignado el valor del Portb, es decir, el estado e stado del dipswitch. En este punto conviene hacer una precisión respecto del comando de escritura: éste está constituido por la fórmula comando = 128 + número número de bytes a enviar - 1. En el presente caso, como sólo se envía un byte, se tiene: comando = 128 + 1 -1, es e s decir, 128. Con esta orden pueden enviarse hasta 16 bytes, que se memorizarán a partir de la dirección especificada.
N Ó I C A M 45 A R G O R P RESISTOR
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 46
DEMO 3: Listado HTML
DEVELOPER BOARD FT497
N Ó I C A M 46 A R G O R P RESISTOR
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 47
DEMO 3: Listado Basic ;File DEMO3.BAS TEMP var byte DATOIN DA TOIN var byte DATOOUT var byte DIRECCIÓN var byte FLAGOK var bit TEMPERATURA TEMPERA TURA var byte TRIMMER var byte CIFRA1 var byte CIFRA2 var byte CIFRA3 var byte DATOLONG DA TOLONG var word Include “modedefs.bas” ‘LED SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO
LED1 = PORTC.0 PORTC.0 LED2 = PORTC.1 PORTC.1 LED3 = PORTC.2 PORTC.2 LED4 = PORTC.3 PORTC.3 LED5 = PORTC.4 PORTC.4 LED6 = PORTC.5 PORTC.5 LED7 = PORTC.6 PORTC.6 LED8 = PORTC.7 PORTC.7
‘DIP SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO SYMBOLL SYMBO
DIP1 = PORTB.0 PORTB.0 DIP2 = PORTB.1 PORTB.1 DIP3 = PORTB.2 PORTB.2 DIP4 = PORTB.3 PORTB.3 DIP5 = PORTB.4 PORTB.4 DIP6 = PORTB.5 PORTB.5 DIP7 = PORTB.6 PORTB.6 DIP8 = PORTB.7 PORTB.7
OUTPUT OUTP UT LE LED3 D3 OUTP OU TPUT UT LE LED4 D4 OUTP OU TPUT UT LE LED5 D5 OUTP OU TPUT UT LE LED6 D6 OUTP OU TPUT UT LE LED7 D7 OUTP OU TPUT UT LE LED8 D8 OUTPU OU TPUTT TX TX232 232 INP NPU UT RX RX23 2322 ‘Dip
INPUTT INPU INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT INPU IN PUTT
DIP1 DIP1 DIP2 DI P2 DIP3 DI P3 DIP4 DI P4 DIP5 DI P5 DIP6 DI P6 DIP7 DI P7 DIP8 DI P8
‘Portb con pull up internos OPTION_REG.7 = 0 INPU IN PUTT Po Port rta. a.00 INPU IN PUTT Po Port rta. a.11 INP NPU UT INTS TSPP
‘Interrupt del Site Player SYMBOL SYM BOL INT INTSP SP = POR PORTTA.4
START: ‘Inicializar Gosub SEND20 Pause 500 START1: ‘Leer entradas analógicas Gosub CONVERTIR DATOLONG DA TOLONG = TEMPERATURA*2 CIFRA3 = DATOLONG DIG 2 CIFRA2 = DATOLONG DIG 1 CIFRA1 = DATOLONG DIG 0 DIRECCIÓN = 5 Gosub WRITETEMP Pause 1000 Goto START1
‘Definición I/O ADCON1=%00000100 ADCON0=%10000001 OUTP OU TPUT UT LE LED1 D1 OUTP OU TPUT UT LE LED2 D2
‘***************************** ‘Rutina de envío de 20 bytes 0 para inicialización SEND20: For TEMP TEMP = 1 to 20
‘Comunicación con el Site Player SYMBOLL TX23 SYMBO TX2322 = PORTA.2 PORTA.2 SYMBOLL RX232 = PORT SYMBO PORTA.5
Este sencillo programa permite visualizar en la página web el ajuste del trimmer de la demoboard. En efecto: al observar el código html, se detecta la presencia de un objeto en la línea Trimmer = ^Trimmer. Obviamente, este objeto se encuentra de nuevo en el archivo de definiciones demo2.spd, que es igual que el archivo de definiciones de demo1, excepto en el nombre del objeto.
Serout TX232,T9600,[0] Pause 5 Next TEMP Return ‘Rutine de escritura de tres bytes ‘Enviar : Comando de escritura (128), DIRECCIÓN, ‘CIFRA1,CIFRA2, CIFRA3 WRITETEMP: Pause 10 Serout TX232,T9600,[130] Pause 5 Serout TX232,T9600,[INDIRIZZO] Pause 5 Serout TX232,T960 TX232,T9600,[CIFRA3] 0,[CIFRA3] Pause 5 Serout TX232,T960 TX232,T9600,[CIFRA2] 0,[CIFRA2] Pause 5 Serout TX232,T960 TX232,T9600,[CIFRA1] 0,[CIFRA1] Pause 20 Return ‘Rutine de conversión ‘Introducir resultado en TRIMMER y TEMPERATURA CONVERTIR: ADCON0.3 = 0 ADCON0.4 = 0 ADCON0.5 = 0 Pause 1 ADCON0.2 = 1 ‘Arrancar proceso conversión Pause 5 TRIMMER = ADRESH Pause 1 ADCON0.3 = 1 ADCON0.4 = 0 ADCON0.5 = 0 Pause 1 ADCON0.2 = 1 ‘Arrancar proceso conversión Pause 5 TEMPERATURA TEMPERA TURA = ADRESH Pause 1 Return
Al estudiar las descripciones se presta particular atención al programa previsto para el microcontroldor PIC. La parte de inicialización es igual a la de la demo1, y también lo es el bucle principal del programa, con la sola diferencia de que antes se iba a leer la puertab, en la que se conectaban los dipswitches, mientras que ahora se va a leer el canal AN0 del convertidor A/D, al que está conectado el trimmer. Conviene dedicar una atención especial a las operaciones de conversión analógico-digital y a la rutina CONVERTI. Esta rutina, ya prevista para leer el calor de temperatura de la sonda LM35 de la demoboard, realiza
N Ó I C A M 47 A R G O R P RESISTOR
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 48
MODIFICADORES APLICABLES A LOS LOS OB OBJET JETOS OS Operación
N Ó I C A M 48 A R G O R P
^objeto:n ^objeto+n ^objeto-n ^objeto*n ^objeto/n ^objeto&n ^objeto|n ^objeto~n ^objeto#n ^objeto$n ^objeto’n
RESISTOR
Significado del modificador Visualiza la enésima cifra del objeto, empezando desde la derecha. Visualiza Por ejemplo, si objeto vale 35, ^objeto:1 visualiza sólo la cifra 5. Suma n a objeto y visualiza el total. Deduce n de objeto y visualiza el total. Multiplica objeto por n y visualiza el total. Divide objeto por n y visualiza el total. Ejecuta el AND lógico entre n y objeto y visualiza el total. Ejecuta el OR lógico entre n y objeto y visualiza el total. Ejecuta el XOR lógico entre n y objeto y visualiza el total. Ejecuta el AND lógico entre n y objeto y visualiza “CHECKED” si el resultado es distinto de cero; no visualiza nada si el resultado es 0. Si objeto = n visualiza “CHECKED”; si no, no visualiza nada. Restituye el enésimo bit de objeto desde la derecha (0 es el primer bit).
las operaciones siguientes: ante todo, selecciona el canal AN0, al que está conectado el trimmer; arranca la conversión y 5 milisegundos más tarde se lee el registro ADRESH, que contiene el resultado de la conversión; este valor se introduce en la variable TRIMMER; acto seguido se selecciona el canal AN1, al que está conectada la sonda de temperatura, y nuevamente se incia la conversión: 5 milisegundos más tarde se lee el resultado de la conversión y se asigna a la variable TEMPERATURA. En el caso de la demo1, sólo se toma el valor de la variable TRIMMER para enviarlo al módulo SitePlayer a través de la rutina WRITEDATO. Programma Demo3 = Programa Demo3 Con esta demo se pretende visualizar en la página web la temperatura medida por la sonda de temperatura LM35 instalada en la demoboard FT497. Por otra parte, se deseaba obtener una visualización dotada de cierto interés gráfico: así, se han realizado las cifras de 0 a 9 (y el signo decimal, un punto) con la ayuda de un programa de diseño gráfico, consiguiendo 10 imágenes jpeg que se han denominado 0_blk.jpg, 1_blk.jpg, 2_blk.jpg, etc. Con esto se consigue un ejercicio adicional: cómo visualizar una imagen dada en función de un objeto. El valor de la temperatura se pasa del microcontrolador al SitePlayer contenido en tres objetos que corresponden a las tres cifras que componen la informción completa. Por ejemplo: si la temperatura es de 21,4 grados, los tres objetos, denominados Cifra1, Cifra2 y Cifra 3, valdrán 4, 1 y 2, respectivamente. respectivamente. A partir de esta información información debe
poder visualizarse la temperatura correcta en le página html. ¿Cómo hacerlo? Inspeccionanc Inspeccionancoo el listado index.htm se localiza fácilmente la parte del mismo que realiza la visualización:
Eliminando los cimandos de formatización y de alineamiento de caracteres queda lo siguiente:
src=”/^Cifra3:1_BLK.jpg”> src=”/^Cifra2:1_BLK.jpg”> src=”DP_BLK.jpg”> src=”/^Cifra1:1_BLK.jpg src=”/^Cifr a1:1_BLK.jpg”> ”>
El tag img src indica la inserción de una imagen en la página html. Normalmente, se encuentra una sintaxis del tipo img src=”immagine.jpg” Pero en el caso que se está estudiando la imágene a insertar depende de los objetos Cifra3, Cifra2 y Cifra1. En realidad, con Cifra3:1 se indica que Cifra3 debe considerarse la primera cifra del objeto. En este ejemplo, en el que
38-49 CursoSitePlayerCap4
23/6/05
08:15
Página 49
El módulo SitePlayer está disponible montado y verificado (cód. SP1) al precio de Eur 42,00: el conjunto híbrido resultante implementa un Web Server, un controlador Ethernet 10baseT, una memoria Flash para almacenar las páginas Web y un dispositivo de interfaz serie.
Para mejorar el aprendizaje del SitePlaye SitePlayerr se dispone del circuito demoboard/programador en kit (cód. FT497K) al precio de Eur 48,00. El kit incluye la placa placa de circuito imprso taladrada taladrada y serigrafiada, serigrafiada, un PIC16F876, 8 leds, 1 dip-switch de 8 polos, 1 trimmer, 1 sensor de temperatura, salida PWM, salida analógica, conector Ethernet, conector para programación “in-circuit” del PIC. El kit comprende todos los componentes y los listados de demostración a nivel fuente (fuente Basic para PIC; páginas HTML; archivos de definición SPD), etc. El kit no comprende el módulo SitePlayer, el alimentador de red y el programador del PIC (cód. FT386K, Eur 86,00). Los precios incluyen el IVA. IVA. la temperatura vale 21.4 grados, Cifra3:1 vale 2. De modo que Cifra3:1 queda sustituido por 2_BLK.jpg. Con ello se obtiene el comando img src=”/2_BLK.jpg”. En otras palabras, se inserta la imagen 2_BLK.jog, que es la imagen de la cifra 2. El mismo procedimiento se utliza para visualizar los números 1 y 4, obtenidos de Cifra2 y Cifra 1. Antes de Cifra1 se inserta el punto decimal, que es una imagen definida en el archivo DP_BLK. Debe tenerse en cuenta que todos lo0s archivos de imagen deben encontrarse necesriamente en el mismo directorio que el archivo index.htm. Sólo de esta manera podrán ser procesados correctamente por el SiteLinker en el momento de crear el archivo que se descargará en la memoria flash del módulo. Conviene tomar la astuta precaución de no diseñar imágenes particularmente grandes, ya que la memoria del SitePlayer no es infinita. Después de conocer los archivos de la página web, puede analizarse el archivo de definiciones, que también se parece sumamente a los anteriores, con la diferencia de que esta vez habrá tres objetos en presencia, de nombre Cifra1, Cifra2 y Cifra3. File demo3.bas = Archivo demo3.bas Este es el archivo que debe implementarse en el PIC. Como puede verse, se parece mucho al anterior, de modo que sólo hará falta un par de explicaciones de cómo se obtienen las tres cifras que deben pasarse al módulo SitePlayer. En lógica electrónica, empezar por el principio quiere decir empezar por el funcionamiento de la sonda LM35. Este componente entrega 10 mV por grado centigrado. Suponiendo que la tempoeratura sea de 21,4 ºC, la sonda entregará, exactamente: 21.4*10 21.4* 10 mV = 214 mV
Dado que la ganancia de U4a es exactamente de 10 veces, a la salida de este amplificador operacional se tendrá: 214mV * 10 = 2140 2140 V = 2.14 V Pero el fondo de escala del convertidor A/D es de 5 V, es decir, aplicando 0 V se obtiene el númemro 0 y aplicando 5 V se obtiene 255; 255; así, a la tensión de 2.14 V corres corresponponderá el número (2.14 / 5) * 255, es decir, 109 Multiplicando este número nuevamente por 2, con el software del microcontrolador, microcontrolador, se obtiene 218, que, sin ser exactamente el número número que se buscaba buscaba (214), resulta resulta suficientemente aproximado, teniendo en cuenta el orden de magnitud de la tolerancia de los resistores que determinan la ganancia del operacional. Obtenido este número, sólo falta descomponer descomponerlo lo en las tres cifras BCD y enviarlo al SitePlayer. De la descomposición en las cifras BCD se encarga la instrucción Basic DIG, mediante las instrucciones CIFRA3 = DATALONG DIG 2, CIFRA2 = DATALONG DIG 1 CIFRA1 = DATALONG DIG 0 que sitúan en las tres variables CIFRA1, CIFRA2 y CIFRA3 las tres cifras BCD que conforman el valor de la temperatura. Para enviar estos tres datos se utiliza la subrutina WRITETEMP, que expide el comando de WRITE al módulo SitePlayer (esta orden vale ahora 130 porque hay tres datos a enviar) y, a continuación, las tres cifras.
N Ó I C A M 49 A R G O R P RESISTOR
Sign In