Un problema con el uso de dipsw y lcd en AVR [cerrado]

-3

¿por qué cuando enciendo otro interruptor el contenido no cambia?

Hay un problema con el uso de dipsw y lcd en el microcontrolador atmega16. El problema no es cambiar el contenido de lcd cuando enciendo otro interruptor.

Compilé mis códigos utilizando AVR codevision. y mis códigos son:

      a = PINB;

  switch(a){      

    case 1:
        lcd_clear();
        lcd_putsf("Switch 1");
    break;

    case 2:
        lcd_clear();
        lcd_putsf("Switch 2");
    break;

    case 4:
        lcd_clear();
        lcd_putsf("Switch 3");
    break;

    case 8:
        lcd_clear();
        lcd_putsf("Switch 4");
    break;

    case 16:
        lcd_clear();
        lcd_putsf("Switch 5");
    break;

    case 32:
        lcd_clear();
        lcd_putsf("Switch 6");
    break;

    case 64:
        lcd_clear();
        lcd_putsf("Switch 7");
    break;

    case 128:
        lcd_clear();
        lcd_putsf("Switch 8");
    break;

    default:
        lcd_clear();

  }

y lo hice en proteus:

cuando enciendo uno de los interruptores funciona bien, pero cuando lo apago, continúa mostrando el contenido y no lo borra, y luego cuando enciendo otro interruptor, el lcd no muestra nada.

    
pregunta Abolfazl Ebadi

1 respuesta

3

Su software desea uno, y solo uno, Bit alto para mostrar el mensaje "Cambiar N", pero sus interruptores activan las entradas Bajo cuando está "Encendido".

Tendrá que habilitar las extensiones en el puerto B para asegurarse de que las entradas estén altas cuando los interruptores estén apagados.

Encienda todos los interruptores para borrar la pantalla, luego apague uno de los interruptores para obtener el mensaje "Cambiar N" adecuado.

Corrección: Debido a que muestra la conexión común de los interruptores conectados a una flecha que apunta hacia abajo, pensé que estaban conectados a tierra; un vistazo más de cerca al esquema muestra que el interruptor común está en la fuente positiva. En ese caso, necesita desplegables en las entradas, no desplegables, y un interruptor "On" activará un bit de entrada Alto.

Desactivar todos los interruptores debería borrar la pantalla.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas