11. Tablas con la instrucción RETLWEs muy común utilizar la instrucción RETLW para la creación de tablas de valores. Esta instrucción devuelve un valor en el acumulador al retornar de una subrutina, la usaremos conjuntamente con el registro PCL (echale un vistazo si no lo recuerdas). La creación de la tabla se hará de la siguiente forma:TABLA MOVWF PCLVALORES RETLW VALOR0 RETLW VALOR1 RETLW VALOR2 RETLW VALOR3 ....Donde VALOR0, VALOR1, VALOR2... etc. son los valores que queremos almacenar en la tabla.La estrategia a seguir para consultar algún valor de la tabla es cargar en el acumulador la dirección de memoria de programa donde se encunetra el valorque quieres leer y después llamar a la subrutina TABLA (con un CALL). Y te estarás preguntando como se en que dirección esta cada valor, pues bien, el VALOR0 está en la dirección VALORES (es la etiqueta que hemos puesto a esa dirección), el VALOR1 está en la dirección VALORES+1, VALOR2 está en la dirección VALORES+2... etc.Y como no hay como un ejemplo para ver las cosas mas claras ahí va uno:El siguiente ejemplo cuenta las veces que se acciona un pulsador conectado en RA0 y muestra el valor del conteo en un display de 7 segmentos de ánodocomún conectado al puerto B. La tabla contiene los valores necesarios para iluminar el display con cada número del 0 al 9. A continuación se muestran el esquema y el programa: |
;****************************
;* El siguiente programa cuenta las *;* veces que se acciona un pulsador *
;* conectado a RA0 y muestra el *
;* resultado de la cuenta en un *
;* display de 7 segmentos de ánodo *
;* común conectado en el puerto B *
;****************************
PCL EQU 02H
STATUS EQU 03H
TRISA EQU 05H
PORTA EQU 05HTRISB EQU 06H
PORTB EQU 06H
CUENTA EQU 0CH ;Registro donde contaremos
RETARDO EQU 0DH ;Registro para el retardo
F EQU 1
w EQU 0
#DEFINE BANCO0 BCF STATUS,5
#DEFINE BANCO1 BSF STATUS,5ORG 00H
GOTO INICIO ;Dejamos sitio a continuación para escribir
;nuestra tabla
TABLA MOVWF PCL ;cargamos el valor del acumulador en el registro
;PCL. Cuando se ejecute esta instrucción el pic ;saltará inmediatamente a la dirección de programa
;que le hayamos metido.
;en esta tabla almacenaremos los valores que hay
;que sacar por el puerto para que se muestren en ;el display los números del 0 al 9:
DISP RETLW 40H ;Para mostrar el 0
RETLW 79H ;Para mostrar el 1
RETLW 24H ;Para mostrar el 2
RETLW 30H ;Para mostrar el 3
RETLW 19H ;Para mostrar el 4
RETLW12H ;Para mostrar el 5
RETLW 02H ;Para mostrar el 6
RETLW 78H ;Para mostrar el 7
RETLW 00H ;Para mostrar el 8
RETLW 10H ;Para mostrar el 9
INICIO ...
Leer documento completo
Regístrate para leer el documento completo.