que tal creo que con lo que te explico y los ejemplo con otros comandos sabras como se utiliza el comando RESTORE
RESTORE
Restaurar el valor
Descripción general
Mueve el puntero en una tabla de datos a la posición especificada por el valor destrito
Operadores
Relación calidad - una constante, variable o expresión.
Ejemplo
DIM VAR1
DATA 5 , 8 , "fred" , 12
RESTORE
READ VAR1
' VAR1 ahora contendrá el valor 5
READ VAR1
' VAR1 ahora contiene el valor 8
RESTORE 3
' Puntero ahora colocado en la posición 4 en nuestro ejemplo es "r"
READ VAR1
'VAR1 ahora contiene el valor 114 es decir la 'r' carácter en decimal
La tabla de datos se define con los valores 5, 8, 102, 114, 101, 100,12 como "Fred" equivale a F: 102, I: 114, E: 101, d: 100 en decimal. El puntero de tabla es restituido de inmediato al inicio del programa. Esto no siempre es necesario, pero como regla general, es una buena idea para evitar que se desborde. La VAR1 lee el primer elemento de los datos de la tabla e incrementa el puntero de la tabla. El próximo VAR1 Leer considera por lo tanto el segundo punto de los datos.
RESTORE 3 desplaza el puntero a la ubicación de la tabla de sesiones (primera ubicación es la posición de puntero 0) en la tabla - en este caso donde la letra «r» es. Leer VAR1 ahora recupera el equivalente decimal de «r», que es de 114.
DATA
Sintaxis
DATA ( datos alfanuméricos )
Descripción general
Coloque la información en la memoria de código utilizando la instrucción RETLW cuando se utiliza con dispositivos de 14-bit y la memoria FLASH cuando se utiliza un dispositivo de 16-bit . Para el acceso de lectura.
Operadores
De datos alfanuméricos - un 8,16, valor de 32 bits, o valores en coma flotante, o de cualquier carácter alfabético o cadena entre comillas.
Ejemplo
DIM VAR1 AS BYTE
DATA 5, 8, "fred”, 12
RESTORE
READ VAR1 ' Variable VAR1 contiene el valor 5
READ VAR1 ' Variable VAR1 contiene el valor 8
' Puntero se coloca en la posición 4 en la tabla de datos "r"
RESTORE 3
' VAR1 contiene ahora el valor 114, es decir la 'r'
READ VAR1
La tabla de datos se define con los valores 5, 8, 102, 114, 101, 100,12 como "Fred" equivale a F: 102, I: 114, E: 101, d: 100 en decimal. El puntero de tabla es restituido de inmediato el inicio del programa. Esto no siempre es necesario, pero como regla general, es una buena idea para evitar que el contador de lectura se desborde.
La VAR1 leyó por primera vez, toma el primer elemento de los datos de la tabla e incrementa el puntero de la tabla. El próximo VAR1 Leer considera por lo tanto el segundo punto de los datos. RESTORE 3 mueve el puntero de la tabla a la ubicación de sesiones (primera ubicación es la posición de puntero 0) en la tabla - en este caso donde la letra «r» es. Leer VAR1 ahora recupera el equivalente decimal de «r», que es de 114.
Notas
Las tablas de DATA deben ser colocadas al comienzo del programa. Los intentos de leer más allá del final de la tabla pueden resultar en errores y resultados imprevisibles. Sólo una instancia de DATA se permite por el programa, sin embargo, puede ser de cualquier longitud. Si el contenido de la declaración alfanumérica DATA no cabe en una sola línea, una continuación de la información adicional debe ser colocada directamente debajo, utilizando otra declaración de datos:
DATA "HELLO "
DATA "WORLD"
Es el mismo:
DATA "HELLO WORLD"
LOOKUP
Sintaxis
Variable = LOOKUP Index , [ Constant { , Constant…etc } ]
Descripción general
Busque el valor especificado por el índice y lo almacena en la variable. Si el índice supera el valor más alto de los elementos de la lista, y luego la variable permanece sin cambios.
Operadores
Variable - una constante, una variable o expresión. Aquí es donde el valor recuperado será almacenado.
Índex - una constante o variable. Este es el número del artículo del valor a recuperar de la lista.
Constante (s) - cualquier valor de 8 bits (0-255). Un máximo de 255 valores puede ser colocado entre corchetes, 256 si se utiliza un dispositivo de núcleo de 16 bits.
Ejemplo
'Crear una animación de una línea de hilatura.
DIM INDEX as BYTE
DIM Frame as BYTE
CLS ' limpiar LCD
Rotate:
FOR INDEX = 0 TO 3 ' Crear un bucle de 4
Frame = LOOKUP INDEX , [ "|\-/" ] ' Tabla de caracteres
PRINT AT 1 , 1 , Frame ' Mostrar en LCD
DELAYMS 200 ' Tiempo para ver caracteres
NEXT ' Siguiente
GOTO Rotate ' Crea un Bucle Cerrado
Notas
Comienza por el valor índice de 0. Por ejemplo, en el comando de búsqueda abajo. Si el primer valor (10) Se requiere, entonces el índice será cargado con 0 y 1 para el segundo valor (20), etc
VAR1 = LOOKUP INDEX, [10, 20 , 30 ]
READ
Sintaxis
LEA variable
Descripción general
Lea el valor siguiente de una tabla de datos y el lugar en la variable
Operadores
Variable - una variable definida por el usuario de tipo bit, byte, matriz de bytes, palabra, palabra matriz, DWORD o flotar.
Ejemplo 1
DIM VAR1 AS BYTE
DATA 5, 8, "fred”, 12
RESTORE
READ VAR1 ' Variable VAR1 contiene el valor 5
READ VAR1 ' Variable VAR1 contiene el valor 8
RESTORE 3 ' Puntero se coloca en la posición 4 en la tabla de datos "r"
READ VAR1 ' VAR1 contiene ahora el valor 114, es decir la 'r'
Ejemplo 2
DEVICE 16F877
DIM CHAR AS BYTE
DIM LOOP AS BYTE
DATA "HELLO WORLD" ' Crea un cadena de texto en el código de la memoria
CLS
FOR LOOP = 0 TO 9 ' Crea un bucle de 10
RESTORE LOOP ' Punto de posición dentro de la declaración DATA
READ CHAR ' Leer CHAR
PRINT CHAR ' Mostrar Valor de CHAR
NEXT
STOP
El programa anterior lee y muestra 10 valores de la declaración de datos de acompañamiento. Que resulta en "HELLO WORLD" como se muestra. Los datos no se utilizan simplemente para el almacenamiento de caracteres, también puede contener 8, 16, 32 bits, o valores en coma flotante. El siguiente ejemplo ilustra esto:
DEVICE = 16F628DIM VAR1 AS BYTE
DIM WRD1 AS WORD
DIM DWD1 AS DWORD
DIM FLT1 AS FLOAT
DATA 123 , 1234 , 123456 , 123.456
CLS
RESTORE ' Ir a la Primera ubicacion de DATA
READ VAR1 ' Leer el valor de 8-bit
PRINT DEC VAR1," "
READ WRD1 ' Leer el valor d e16-bit
PRINT DEC WRD1
READ DWD1 ' Leer el valor de 32-bit
PRINT AT 2,1, DEC DWD1," "
READ FLT1 ' Leer el valor de punto flotante
PRINT DEC FLT1
STOP
Ejemplos de Punto Flotante
14-Bit Ejemplo
"14-bit de lectura de datos de punto flotante de una tabla y mostrar los resultados
DEVICE = 16F877
DIM FLT AS FLOAT ' Declarar una variable de punto flotante
DATA 3.14 , 65535.123 , 1234.5678 , -1243.456 , -3.14 , 998999.12 , 0.005
CLS ' Limpiar LCD
RESTORE ' Primera ubicación dentro de DATA
REPEAT ' Crea un bucle
READ FLT ' Lee los Datos de la tabla DATA
PRINT AT 1 , 1 , DEC3 FLT ' Mostrar datos Leídos
DELAYMS 1000 ' tiempo de espera
UNTIL FLT = 0.005 ' Para 0.005 cuando se lee
STOP
16-bit Ejemplo
"16-bit de lectura de datos de punto flotante de una tabla y mostrar los resultados
DEVICE = 18F4550
DIM FLT AS FLOAT
DATA 3.14 , 65535.123 , 1234.5678 , -1243.456 , -3.14 , 998999.12 , 0.005
CLS
RESTORE
REPEAT
READ FLT
PRINT AT 1 , 1 , DEC3 FLT
DELAYMS 1000
UNTIL FLT = 0.005
STOP
Notas
Si una variable float, DWORD o WORD se utiliza en el comando de lectura, y luego a 32, o 16-bit (respectivamente) el valor se lee en la tabla de datos. En consecuencia, si se utiliza una variable de tamaño en bytes, y luego de 8-bits se leen. Las variables de tamaño BIT de tamaño, también leen 8-bits de la tabla, pero cualquier valor mayor que 0 es tratado como un 1. Los intentos de leer más allá del final de la tabla pueden resultar en errores y los resultados indeterminados.
El comando de lectura es un remanente de la sintaxis básica de otro tipo y ha sido sustituida por el uso de LREAD y CREAD, que ofrecen mucho más flexibilidad.