Documente Academic
Documente Profesional
Documente Cultură
167
168
RA-MA
bsf clrf movlw movwf bcf Principal movf andlw movwf movlw addwf movlw btfsc addlw movwf movf call movwf goto
STATUS,RP0 TRISB b'00011111' TRISA STATUS,RP0 PORTA,W b'00000111' GuardaOffset LOW (TablaVerdad+1) GuardaOffset,F HIGH (TablaVerdad+1) STATUS,C 1 PCLATH GuardaOffset,W TablaVerdad PORTB Principal
; Acceso al Banco 1. ; Las lneas del Puerto B se configuran como salida. ; Las 5 lneas del Puerto A se configuran como entrada. ; Acceso al Banco 0. ; Lee el valor de las variables de entrada. ; Se queda con los tres bits bajos de entrada. ; Guarda el offset del salto. ; Obtiene los 8 bits bajos de la direccin de memoria ; de programa donde est situada la tabla real. ; Y halla el valor del salto absoluto dentro de la tabla. ; Cinco bits alto de la direccin de memoria de ; programa donde est situada la tabla real. ; Ha desbordado la pgina de 256 bytes? ; S, entonces aade una unidad al PCH. ; Prepara el PCLATH. ; El offset se cargar en el PCL. ; Obtiene la configuracin de salida. ; Se visualiza por el puerto de salida.
; Subrutina "TablaVerdad" --------------------------------------------------------------; ; La tabla de la verdad se sita desbordando los primeros 256 bytes de memoria de programa. ORG TablaVerdad movwf retlw retlw retlw retlw retlw retlw retlw retlw END .254 ; Cerca del borde de la primera pgina de 256 bytes. ; Posicin 0x00FE de memoria de programa (PCH-PCL). ; El salto dentro de la tabla: PCH=PCLATH, PCL=W. ; (Ver figura 9-8). ; (Configuracin 0). Posicin 0x00FF. ; (Configuracin 1). Posicin 0x0100. ; (Configuracin 2). Posicin 0x0101. ; (Configuracin 3). Posicin 0x0102. ; (Configuracin 4). Posicin 0x0103. ; (Configuracin 5). Posicin 0x0104. ; (Configuracin 6). Posicin 0x0105. ; (Configuracin 7). Posicin 0x0106.
Se comprueba que el manejo de las tablas de datos se complica, por tanto, este procedimiento slo se debe utilizar en caso necesario.