cambio automático en el teclado, presione en lcd usando fujitsu F2MC-16LX MB90385 Series

1

Estamos usando la pantalla LCD y el teclado en nuestra MCU y me preguntaba cómo puedo inicializar mi pantalla LCD para que cada vez que se presione una tecla, la pantalla se desplace hacia la derecha automáticamente y llene la pantalla LCD al ingresar más caracteres, al principio A pesar de que hice esto asignando la dirección individual para cada entrada, es decir, en la primera entrada se colocará en 0x80 ya que es la dirección del primer carácter en la pantalla LCD y así sucesivamente.

pero luego me informaron que puedo hacerlo simplemente cambiando la inicialización de la pantalla LCD.

pero no estoy seguro de qué parte de la inicialización debo cambiar. Me doy cuenta de que esto es básico pero todavía soy nuevo en esto.

aquí está mi código de inicialización en C:

instCtrl(0x28); //function set: 4bit; dual-line
    instCtrl(0x08); //display off
    instCtrl(0x01); //display clear
    instCtrl(0x06); //entry mode: increment; shift off
    instCtrl(0x0F); //display on; cursor on; blink off

void instCtrl(unsigned char inst)
{
    int x;

    IO_PDR2.byte = inst>>4; //shift right
    IO_PDR2.bit.P24 = 0;    //set RS to 0 (instruction register)
    IO_PDR5.bit.P53 = 0;    //set RW to 0 (write mode)
    IO_PDR5.bit.P52 = 1;    //set E to 1 (initial state)
    delay(8000);            //delay
    IO_PDR5.bit.P52 = 0;    //set E to 0 (H-L: final state) 
    IO_PDR2.byte = inst;    //transfer lower 4bit
    IO_PDR2.bit.P24 = 0;    //set RS to 0 (instruction register)
    IO_PDR5.bit.P52 = 1;    //set E to 1 (initial state)
    delay(8000);            //delay
    IO_PDR5.bit.P52 = 0;    //set E to 0 (H-L: final state) 

}
    
pregunta magicianiam

1 respuesta

1

El método normal de usar el tipo lcd de HD44780 es desplazar el cursor hacia la derecha después de cada carácter ingresado.

Instruction     RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Entry mode set  0   0   0   0   0   0   0   1   I/D S
  

Establece la dirección de movimiento del cursor (I / D), especifica cambiar la visualización (S). Estas operaciones se realizan durante la lectura / escritura de datos.

Bit Settings
I/D 0 = Decrement cursor position   1 = Increment cursor position
S   0 = No display shift            1 = Display shift

Su entrada de 0x06 (0b110) lo establece en Cursor Shift Right (Incremento). Si lo cambia a 0x07 (0b111), debe configurarlo para que cambie la visualización a la derecha mientras el cursor permanece en el mismo lugar. Creo que esto es lo que quieres (los caracteres se completan de izquierda a derecha). Entonces, como 0 , 10 , a10 , etc. Mueve a la izquierda (0x05) y debería ser 0 , 01 , 01a , etc.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas