- Tres sondas detectoras ( SV - Sonda de Vacío, SLL - Sonda de Llenado, SR - Sonda de Rebose.
- Dos bombas de llenado: BOMBA1 y BOMBA2
- 5 Indicadores: Vacío, Llenandose, Lleno, Rebose, ALARMA
Funcionamiento:
- Cuando ninguna de las sondas está activada, se entiende que el depósito está vacío y se accionarán las 2 bombas. El indicador VACÍO se iluminará.
- Cuando el nivel de líquido toca "SV" se seguirá llenando con ambas bombas. El indicador "Llenandose" se ilumina.
- Cuando el indicador "SLL" se activa, la BOMBA2 se apaga, sólo queda activa la BOMBA1. El indicador "Lleno" se encenderá.
- Cuando el indicador "SR" se activa, la BOMBA1 se apaga, El indicador "Rebose" se encenderá.
- Cuando se produce un fallo o un mal funcionamiento la alarma se encenderá.
EN ASM:
Primero armamos una tabla de verdad para ayudarnos en el trabajo:
;TABLA DE VERDAD
;====================================================================
;SV SLL SR VACIO LLENANDOSE LLENO REBOSE ALARMA B1 B2
;0 0 0 1 0 0 0 0 1 1 (VACIO1)
;0 0 1 0 0 0 0 1 0 0 (ALARMA1)
;0 1 0 0 0 0 0 1 0 0 (ALARMA2)
;0 1 1 0 0 0 0 1 0 0 (ALARMA3)
;1 0 0 0 1 0 0 0 1 1 (LLENANDOSE1)
;1 0 1 0 0 0 0 1 0 0 (ALARMA4)
;1 1 0 0 0 1 0 0 1 0 (LLENO1)
;1 1 1 0 0 0 1 0 0 0 (REBOSE1)
Definimos el PORTA como entrada y el PORTB como salida:
Main
;====================================================================
movlw b'11111'
movwf TRISA ;todo el PORTA como entrada
movlw b'00000000'
movwf TRISB ;todo el PORTB como salida
BANK0
Ppal
movf PORTA,W
andlw b'00000111'
addlw PCL,F ;Cargo los bits correspondientes a los sensores
goto VACIO1 ;para que siga la tabla de verdad descripta
goto ALARMA1 ;anteriormente
goto ALARMA2
goto ALARMA3
goto LLENANDOSE1
goto ALARMA4
goto LLENO1
goto REBOSE1
VACIO1
movlw b'10000110'
movwf PORTB
ALARMA1
movlw b'00001000'
movwf PORTB
ALARMA2
movlw b'00001000'
movwf PORTB
ALARMA3
movlw b'00001000'
movwf PORTB
LLENANDOSE1
movlw b'01000110'
movwf PORTB
ALARMA4
movlw b'00001000'
movwf PORTB
LLENO1
movlw b'00100100'
movwf PORTB
REBOSE1
movlw b'00010000'
movwf PORTB
;====================================================================
END ;Directiva que indica la finalización del pgm
Primero armamos una tabla de verdad para ayudarnos en el trabajo:
;TABLA DE VERDAD
;====================================================================
;SV SLL SR VACIO LLENANDOSE LLENO REBOSE ALARMA B1 B2
;0 0 0 1 0 0 0 0 1 1 (VACIO1)
;0 0 1 0 0 0 0 1 0 0 (ALARMA1)
;0 1 0 0 0 0 0 1 0 0 (ALARMA2)
;0 1 1 0 0 0 0 1 0 0 (ALARMA3)
;1 0 0 0 1 0 0 0 1 1 (LLENANDOSE1)
;1 0 1 0 0 0 0 1 0 0 (ALARMA4)
;1 1 0 0 0 1 0 0 1 0 (LLENO1)
;1 1 1 0 0 0 1 0 0 0 (REBOSE1)
Definimos el PORTA como entrada y el PORTB como salida:
Main
;====================================================================
BANK1
movlw b'11111'
movwf TRISA ;todo el PORTA como entrada
movlw b'00000000'
movwf TRISB ;todo el PORTB como salida
BANK0
Ppal
movf PORTA,W
andlw b'00000111'
addlw PCL,F ;Cargo los bits correspondientes a los sensores
goto VACIO1 ;para que siga la tabla de verdad descripta
goto ALARMA1 ;anteriormente
goto ALARMA2
goto ALARMA3
goto LLENANDOSE1
goto ALARMA4
goto LLENO1
goto REBOSE1
VACIO1
movlw b'10000110'
movwf PORTB
ALARMA1
movlw b'00001000'
movwf PORTB
ALARMA2
movlw b'00001000'
movwf PORTB
ALARMA3
movlw b'00001000'
movwf PORTB
LLENANDOSE1
movlw b'01000110'
movwf PORTB
ALARMA4
movlw b'00001000'
movwf PORTB
LLENO1
movlw b'00100100'
movwf PORTB
REBOSE1
movlw b'00010000'
movwf PORTB
;====================================================================
END ;Directiva que indica la finalización del pgm
No hay comentarios:
Publicar un comentario