Biblioteca de C para controlador de pantalla LCD HD44780 (1 / 4 paso)

Paso 1: Cómo imprimir los caracteres especiales

SpecialCharacters.c

Mirar por encima del siguiente código y vamos a revisar

Arriba es una captura de pantalla del ejemplo de código en la pantalla:

Observe la línea a través de los caracteres de 5 x 10. Mi pantalla es una ERM2004-1

En la especificación de la a continuación detalle del personaje, podría explicar esta línea. Pero no puedo decir con certeza como documentación es limitada.

 #include #include "hd44780_4bit_lib.h"/* * This code example uses 5 x 10 character and one line * to display the special characters show in table 4, ROM Code A00 * in the hd44780 specification. * Note using the 5 x 10 characters you can only write to one line on * the display. * */void main() { WDTCTL = WDTPW | WDTHOLD; // Disable watchdog timer // according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED); // set up data length, number of lines and font // Note 1 line and 5 x 10 characters hd44780_init(N_1LINE, FONT_10); // if needed set up the cursor and blink // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR); // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK); // set Increment direction and cursor direction hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); // refer to table 4 ROM Code AOO // on how to convert upper 4 bits and // lower 4 bits to formulate the below characters hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); // this character and the next // character takes up the full // 10 dots in height to print the // decending j and g hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB);} 

Vamos a romper el código y analizarlo línea por línea:

 // according to spec give the display 10ms to come up to voltage __delay_cycles(10000 * CPUSPEED); // set up data length, number of lines and font // Note 1 line and 5 x 10 characters hd44780_init(N_1LINE, FONT_10); 

La función __delay_cycles() detiene a 10 milisegundos para dar el voltaje de la pantalla para llegar a rango de operación. Mira el archivo hd44780_4bit_lib.h. Hay algunos CPU velocidad constantes relacionadas definidas para su uso con la función __delay_cycles().
Nota: la función __delay_cycles() sólo puede tener constantes como un argumento por lo que se puede utilizar una variable con esta función.

La función hd44780_init() inicializa la pantalla y se pueden pasar argumentos para establecer el número de líneas y tamaño de fuente. Esta función también ajusta la interfaz de hd44780 con operación de 4 bits en lugar de operación de 8 bits. Compruebe la especificación para más detalles.

 // if needed set up the cursor and blink // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR); // hd44780_send_command(HD44780_CMD_DISPLAY_ON_CURSOR_BLINK); // set Increment direction and cursor direction hd44780_send_command(HD44780_CMD_INCREMENT); hd44780_send_command(HD44780_CMD_MOVE_CURSOR_RIGHT); 

La función hd44780_send_command() se utiliza para enviar comandos a la interfaz de hd44780. El hd44780 puede aceptar comandos y datos. Cambiando algunos bits de la interfaz MPU puede enviar datos o instrucciones.
En este siguiente ejemplo, si tenemos un comentario o de las dos líneas podemos mostrar un cursor y parpadea el cursor.

Si te interesa ver la referencia a la bit Selector de registro RS, RS y RW, leer escribir poco para obtener más información.

Una de las cosas interesantes que puedes hacer con la interfaz de hd44780 es determinar si desea escribir los datos de izquierda a derecha o de derecha a izquierda. Estos dos comandos determinan estos valores. Podemos incrementar o disminuir el sentido de movimiento del cursor y mover el cursor a la izquierda o la derecha cuando los datos se envían a la pantalla.

 // refer to table 4 ROM Code AOO // on how to convert upper 4 bits and // lower 4 bits to formulate the below characters hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xEF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); hd44780_write_special_char(0xFF); 

Hay una tabla de la especificación, tabla 4 ROM código A00 que listas de caracteres y símbolos que son compatibles con el hd44780. Si usted siga arcoss la parte superior de la tabla para obtener la columna de símbolo que busca, (anota los cuatro bits superiores) y siga hasta la fila que contiene el símbolo que busca, escriba los 4 bits inferiores, de ese símbolo.
Ahora puede construir un símbolo completo de 8 bits, convertir este número binario a hex y este valor hexadecimal es lo que se puede enviar utilizando la función hd44780_write_special{char().

La función de hd44780_write_special_char() cambia los bits en la interfaz MPU RW y RS y envía el símbolo para el registro de pantalla (DDRAM) (DR).

Después de escribir al DR registro de la AC, contador de la dirección es incrementado o disminuye sobre la situación de incremento/decremento, ajustes del Cursor a la izquierda/Cursor derecha. Una vez que se establece la dirección inicial, el contador de dirección realiza un seguimiento de donde se escriben los caracteres y símbolos.

 // this character and the next<br>// character takes up the full // 10 dots in height to print the // decending j and g</p><p>hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7); hd44780_write_special_char(0xE7);</p><p>hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA); hd44780_write_special_char(0xEA);</p><p>hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); hd44780_write_special_char(0xEB); 

Esta siguiente sección de código también utiliza la función hd44780_write_special_char() para escribir caracteres en la pantalla. Dos de esos personajes son la minúscula 'g' y 'j'. Lo interesante a destacar es que estos dos personajes se extienden más y utilizan el patrón completo 10 puntos de la pauta de carácter de 5 x 10.
Así que cuando estos personajes la impresión debe cambiar la pantalla al llamar a la función hd44780_init() anterior. La limitación de la configuración de la pantalla a patrón de punto de 5 x 10 caracteres es perder una línea de la pantalla, ahora puede imprimir sólo en una línea en la pantalla.

Artículos Relacionados

Década contador 74LS93 - A clave para controladores de pantalla de 7 segmentos cuenta con Tutorial

Década contador 74LS93 - A clave para controladores de pantalla de 7 segmentos cuenta con Tutorial

Hola a todos!!!!!!Esta es mi Quinta de muchos tutoriales de bloque electrónico para mi próxima electrónica aprender Junta.  Este video muestra la década 74LS93 contador IC.  El propósito de este video es para enseñarte cómo crear el circuito, determi
Barato, rápido y fácil pantalla LCD reemplazo para Samsung Galaxy S3

Barato, rápido y fácil pantalla LCD reemplazo para Samsung Galaxy S3

Habían un incidente y mi teléfono golpeado en el ángulo perfecto para romper la pantalla LCD. Después de muchas búsquedas, decidí que podía sustituirlo yo mismo. Alimentación en la parte inferior fila iluminada y la luz todavía trabajaban. No tengo t
Arduino Temp/humedad con pantalla LCD y la interfaz Web

Arduino Temp/humedad con pantalla LCD y la interfaz Web

recientemente ayudó al cliente moverse de su oficina que incluyó la creación de una nueva sala de informática.Yo quería que ser capaces de controlar la temperatura y la humedad de la habitación tanto marcando una pantalla LCD en la habitación y tambi
Cómo hacer una chaqueta de emoticono con pantalla LCD

Cómo hacer una chaqueta de emoticono con pantalla LCD

Concepto:Me gustaría hacer una chaqueta que tiene una pequeña pantalla de LCD para crear subtextos para la interacción humana interpersonal. El usuario utilizaría un limitada "teclado" con botones y sensores de fuerza bajo las teclas de silicona
Mostrando la ubicación de GPS en una pantalla LCD de

Mostrando la ubicación de GPS en una pantalla LCD de

En este tutorial, será diseñar un receptor GPS para mostrar la latitud y longitud en una Pantalla de cristal líquido (LCD). GPS significa sistema de posicionamiento Global. Fue diseñado originalmente para aplicaciones militares y de inteligencia a la
Conectar una pantalla LCD con Arduino

Conectar una pantalla LCD con Arduino

en este instructable nos va a ver cómo conectar un LCD paralelo a un Arduino. La pantalla LCD que estoy usando utiliza la interfaz de HD44780 común.  Muchos LCDs tienen esto, usted puede decir generalmente por la interfaz de 16 pines. Sólo necesita 1
Forma fácil y más barato para corregir contraluz del LCD TV.

Forma fácil y más barato para corregir contraluz del LCD TV.

Requirement_TV LCDHerramientas para desmontar la pantalla LCDSMD LED no impermeable Flexible tiras de DC12V 5050Alambres, polvo y soldadorPaso 1: Desmontar el LCD TVDesarme completo LCD TV para sustituir luz de fondo utilizando herramientas.Paso 2: T
Termómetro de Arduino, pantalla LCD, termistor

Termómetro de Arduino, pantalla LCD, termistor

*** este proyecto ya no es compatible, el código de arduino es anticuado y ya no funciona, mi arduino se rompió por lo que no puedo arreglarlo, si usted tiene una sensación de solución me libre de PM! ***Su un proyecto de arduino, crear un medidor de
Controlador de pantalla táctil para la lámpara

Controlador de pantalla táctil para la lámpara

Hola chicos,Quiero compartir mi experiencia con AT89LV55 de ATMEL en controlar mi bombilla con touch screeen,la idea es simple, cambiar mi interruptor mecánico para tocar la pantalla para encender mi lámpara.Vamos a empezarPaso 1: Preparar la pieza p
Bomba defuseable de Arduino, perfecto para partidas de airsoft! (con temporizador, pantalla LCD, teclado, sonido y más!)

Bomba defuseable de Arduino, perfecto para partidas de airsoft! (con temporizador, pantalla LCD, teclado, sonido y más!)

HolaEsto es un proyecto que hice hace mucho tiempo, pero decidió subir de todos modos, no dude en preguntarme sobre ello!La bomba tiene varias características:-Entrada contraseña por teclado para armar la bombaCronómetro/cuenta atrás-Sonido-LEDs llam
Biblioteca de Arduino para Motor 28BYJ-48 paso a paso y controlador ULN2003

Biblioteca de Arduino para Motor 28BYJ-48 paso a paso y controlador ULN2003

El motor paso a paso 28BYJ-48 con el controlador ULN2003 ahora parece una configuración común. El motor y el controlador son fácilmente disponibles y baratos. Sin embargo, la biblioteca de motor de pasos de arduino estándar simplemente no funciona co
Pantalla LCD para menores $35 (reciclar viejos ordenadores portátiles)

Pantalla LCD para menores $35 (reciclar viejos ordenadores portátiles)

Hola Instructables he estado acechando alrededor y disfrutar del vasto conocimiento aquí. He decidido tratar de hacer mi instructable para ayudar a otros que están en este sitio. Así que con esto voy hacer un intento de hacer mi primer instructable.
Pantalla lcd chip hd44780 para modding de pc

Pantalla lcd chip hd44780 para modding de pc

con este instructables aprendes cómo una pequeña pantalla de carácter con un ordenador, que muestra información de la interfaz o lo que quierasLo que usted necesita:1. el chip de pantalla whit hd447802. 10kohmTrimmer3. resistencia de 100 ohm4. un vie
Android controlado pantalla LCD/LED - No Andriod para programación, No requiere de soldadura.

Android controlado pantalla LCD/LED - No Andriod para programación, No requiere de soldadura.

IntroductionEsta versión utiliza la plataforma Arduino para controlar un display de LCD/LED desde tu móvil Android.  Es una compilación de listo que requiere Android sin programación, sin soldadura y sin escribir código de Arduino, que no quiere.La e