Hola, te adjunto el programa con la parte de la visualización.
Ten en cuenta que esta se podrá realizar de tantas maneras como personas lo realicen. Por mi parte, aunque la macro resulte larga (evidentemente se puede simplificar bastante) he preferido realizarla de este modo para que entiendas todos los pasos. Funciona de la siguiente forma:
He supuesto como salida solo 12 leds (podrás poner los que quieras, solo tienes que cambiar en el bloque de cálculo el dividendo según el numero de leds usados). Estos los he colocado en el puerto B y en los 4 pines mas altos del puerto C. ¿Porque? Simple, dijimos que íbamos a utilizar el pic16F887 que tiene 40 pines y todas las salidas usadas se encuentran a un lado del pic. Ahora bien si te resulta el pic grande lo puedes cambiar por uno de 28 pines (pic16F882) y que también tiene esas líneas en el mismo lado. De esta forma conseguimos tener a un lado las salidas y a otro las entradas. Con esto a la hora de realizar el pcb se puede optimizar evitando las posibles influencias (interferencias) entre las entradas y las salidas.
Cuando pases a simular el proyecto, para que puedas seguirlo bien, te aconsejo que selecciones una velocidad de 2Hz. En la ventana que se te habrá abierto puedes visualizar los valores de todas las variables: Mínimo, Máximo, Escala, Niveles, etc.
Una vez que actives el interruptor de calibración gira un poco el potenciometro inferior (valor mínimo) y despues lo validas accionado el pulsador (recuerda mantenerlo pulsado hasta que pase por el bloque de comprobación de validación). A continuación gira el potenciometro superior hasta un valor cercano al máximo y lo validas.
Con esto en la ventana después de un poco de tiempo se te actualizaran todos los valores de los niveles, escala, rango, etc. Ahora puedes ir girando despacio el potenciometro inferior para que pases por cada uno de los valores de los respectivos niveles. Según lo vayas realizando verás como los respectivos leds se iran iluminando uno a uno gasta llegar al máximo. Puedes hacer lo mismo en forma descendente y los leds se iran apagando segun el nivel en que se encuentre.
Como ves, he supuesto que los leds se vayan iluminado en forma de columna, pero si solo quieres que se ilumine el del nivel activo puedes intentar modificar la macro de visualizacion y si no me lo indicas y lo corregimos.
Por otra parte no has indicado que pasaria si el nivel baja del nivel minimo, ni tampoco como se produce el llenado de los tanques si es de forma manual o automática mediante activación de electrovalvulas o similar.
En el adjunto para simulación he colocado una nueva salida (pin C3) que se activa cuando el nivel del tanque baja del nivel 1 (para que haga la función de alarma). Debería ser cuando baje del minimo pero esto ya se puede corregir después.
Ademas de esto hay alguna cosa mas que realizar que será para la proxima entrega.
Como ves son bastantes las condiciones y variables que te puedes encontrar dentro del desarrollo fisico del proyecto.
F.