Skip to content

gmtii/lcd_hd44780_openwrt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interface serial TTL->PIC->HD44780 para incorporar una pantalla a un router OpenWrt.

Este ejemplo está hecho para un display de 16x2 y el script a ejecutar en el router de ejemplo es lcd.sh

Inicia mostrando dos mensajes fijos mientras el router va arrancando.

Hasta que un script no envíe el carácter 0x1A por la consola /dev/ttyS0 no se activa la representación en pantalla.

Una activada, debe anteponerse un carácter especial antes de lo que queramos representar para señalar la línea del display que queremos utilizar, o borrar la pantalla por ejemlo.

Estos caracteres especiales para realizar funciones con el display vienen datos según el siguiente else if:

	if (buffer[j] == 0x15) 
            LCD_WriteByte(COMMAND, 0x80);
    else if (buffer[j] == 0x16)
            LCD_WriteByte(COMMAND, 0xC0);
    else if (buffer[j] == 0x1B) 
            LCD_WriteByte(COMMAND, 0x01);
    else if (buffer[j] == 0x13) 
            LCD_WriteByte(DATA, ' ');
    else if (buffer[j] == 0x1A) 
            preparado=1;
    else if (preparado)
            LCD_WriteByte(DATA, buffer[j]);

0x15 = seleciona linea 0 del display 0x16 = seleciona linea 1 del display 0x1B = clear 0x13 = interpreta un return como un espacio (evita saltos en log de arranque) 0x1A = pone preparado a 1 e inicia la representación en el display

Pueden incoporarse más líneas o comandos según nuestro display.

Configuración:

Compilar con MPLAB y ajustar la velocidad de puerto que queremos usar en el serial.c según al fórmula indicada. Tal cual está configurada para 10 Mhz con 115200 bps= (Velocidad efetiva es la frecuencia dle cristobal x 4 PLL):

p.e.: SPBRGH:SPBRG=(FOSC/baudrate)/4-1 para un cristal de 10 Mhz da:

10.000.000x4/115200-1=86 que es el valor por defecto.

El conexionada de la pantalla es como sigue:

/* Display tipo HD44780 conectado al puerto C del PIC según la siguiente correspondencia:

Pin 6, RC4 -> Display D4 Pin 5, RC5 -> Display D5 Pin 8, RC6 -> Display D6 Pin 9, RC7 -> Display D7

Pin 15, RC1 -> Display LCD_RS Pin 14, RC2 -> Display LCD_RW (también puede ir a GND) Pin 7 , RC3 -> Display LCD_EN */

About

Codigo PIC para poner un HD7780 en OpenWrt

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published