Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En este programa el primer paso es leer el puerto de entrada para determinar las condiciones
de los sensores del campo y de esta manera decidir los valores que saldrán para activar o
desactivar la bomba.
Para individualizar los sensores utilizaremos la instrucción TEST, esta instrucción funciona
como la comparación pero utiliza el producto lógico en vez de la resta y el resultado no se
almacena, solo modifica las banderas en el registro de estado.
Las mascaras serán las siguientes:
Sensor presencia de agua: observe que este sensor esta conectado en el bit 2 del puerto,
recuerde que la lectura es variable por lo cual la representamos como indiferencias (condición
no importa) y el producto será con 0 en los bits que no tomaremos y con 1 en el bit de interés,
como se muestra:
De esta manera si el resultado es cero habrá ausencia de agua y si es distinto de cero habrá
presencia de agua, cuando el resultado es cero se activa la bandera Z por lo cual podemos
usar el salto JZ cuando hay ausencia y el JNZ cuando hay presencia de agua.
Sensor de nivel bajo: observe que este sensor esta conectado en el bit 1 del puerto, recuerde
que la lectura es variable por lo cual la representamos como indiferencias (condición no
importa) y el producto será con 0 en los bits que no tomaremos y con 1 en el bit de interés,
como se muestra:
Sensor de nivel alto: observe que este sensor está conectado en el bit 0 del puerto, recuerde
que la lectura es variable por lo cual la representamos como indiferencias (condición no
importa) y el producto será con 0 en los bits que no tomaremos y con 1 en el bit de interés,
como se muestra:
De esta manera si el resultado es cero habrá nivel alto y si es distinto de cero no habrá nivel
alto de agua, cuando el resultado es cero se activa la bandera Z por lo cual podemos usar el
salto JZ cuando hay nivel alto y el JNZ cuando no hay nivel alto de agua.
Finalmente para encender y apagar la bomba hay que activar o desactivar el bit 3 del puerto #2
Como solo esta conectado el bit 3 los demás los colocaremos a 0, asi:
Iniciemos el programa: