En el puerto B que lo tengo como entradas, sólo quiero coger los tres bit de mayor peso. Que son el RB7, RB6 y el RB5.
En el puerto B se recoge 01001101, cuando en realidad se desea coger el alguna configuración en los últimos bit de mayor peso como dije arriba.
¿cómo soluciono este problema?
En el puerto B se recoge 01001101, cuando en realidad se desea coger el alguna configuración en los últimos bit de mayor peso como dije arriba.
¿cómo soluciono este problema?
Código:
Principal
movf PORTB,W ; Lee los sensores.
andlw b'11100000' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
goto Configuracion0
goto Configuracion1
goto Configuracion2
goto Configuracion3
goto Configuracion4
goto Configuracion5
goto Configuracion6
goto Configuracion7
Configuracion0
movlw b'01100001' ; Estado "Vacio" (configuración 0).
goto ActivaSalida
Configuracion1
movlw b'01100010' ; Estado "Llenándose" (configuración 1).
goto ActivaSalida
Configuracion2
movlw b'00010000' ; Estado "Alarma" (configuración 2).
goto ActivaSalida
Configuracion3
movlw b'00100100' ; Estado "Lleno" (configuración 3).
goto ActivaSalida
Configuracion4
movlw b'00010000' ; Estado "Alarma" (configuración 4).
goto ActivaSalida
Configuracion5
movlw b'00010000' ; Estado "Alarma" (configuración 5).
goto ActivaSalida
Configuracion6
movlw b'00010000' ; Estado "Alarma" (configuración 6).
goto ActivaSalida
Configuracion7
movlw b'00001000' ; Estado "Rebose" (configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal