El que estaba haciendo y funciona con funciones básicas es este:
Saludos.
Saludos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú; Repetición del ejercicio Indexado_02.asm sobre la forma de implementar una tabla de
; verdad, pero resuelto con más eficacia.
;
; ZONA DE DATOS **********************************************************************
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
bcf STATUS,C ; Lee los sensores y los multiplica por 2
rlf PORTA,W ; añadiendo un "0" y desplazando hacia la izquierda.
andlw b'00001111' ; Se queda con los cuatro bits más bajos
addwf PCL,F ; Salta a la configuración adecuada.
movlw b'01100001' ; Estado "Vacio" (configuración 0).
goto ActivaSalida
movlw b'01100010' ; Estado "Llenándose" (configuración 1).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 2).
goto ActivaSalida
movlw b'00100100' ; Estado "Lleno" (configuración 3).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 4).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 5).
goto ActivaSalida
movlw b'00010000' ; Estado "Alarma" (configuración 6).
goto ActivaSalida
movlw b'00001000' ; Estado "Rebose" (configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal
END