0% encontró este documento útil (0 votos)
43 vistas23 páginas

Clase Modulo LCD y Teclado

El documento describe un módulo alfanumérico LCD de matriz de puntos, que utiliza un controlador HD44780 para mostrar caracteres en diferentes formatos. Se detalla la conexión del LCD, incluyendo la asignación de pines y comandos para su operación, así como la estructura de memoria del controlador. Además, se explican los comandos básicos para manipular la visualización y el comportamiento del display.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas23 páginas

Clase Modulo LCD y Teclado

El documento describe un módulo alfanumérico LCD de matriz de puntos, que utiliza un controlador HD44780 para mostrar caracteres en diferentes formatos. Se detalla la conexión del LCD, incluyendo la asignación de pines y comandos para su operación, así como la estructura de memoria del controlador. Además, se explican los comandos básicos para manipular la visualización y el comportamiento del display.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

- Pantalla LCD de matriz de punto.

- Teclado matricial.
Microcontrolador PIC18F4550

Prof.: Ing. Yoel Pire


[email protected]
2025
Modulo alfanumérico LCD de matriz de puntos 2

Display alfanumérico de matriz de punto

Es un dispositivo de interfaz humana formado por una pantalla de cristal liquido o LCD (Liquid Crystal Display)Sobre la que se puede
mostrar mensajes formados por distintos caracteres: letras, números, símbolos, o Caracteres especiales. Se encuentran en distintos
formatos, por ejemplo, 2x8, 2x16, 4x16, 4x20, etc

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 3

Display alfanumérico de matriz de punto

• Estos dispositivos vienen gobernado por un controlador que normalmente va incorporado sobre la misma placa de circuito.

• El controlador se encarga de polarizar los Puntos que generan el carácter, desplazar la pantalla y el cursor.

• El usuario simplemente envía los datos y comandos que permitan mostrar mensajes.

• El controlador mas habitual es el Hitachi HD44780

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 4

Conexión

El numero de pines de un LCD es de 16 (si tiene retroiluminación)

PIN LCD Símbolo Descripción

1 Vss Tierra GND

2 Sdd Alimentación Positiva (+5Vdc)

3 Vo Contraste
4 Rs Selección del registro de control/datos
RS=0 Seleccion registro de control
RS=1 Seleccion registro de datos

5 R/W Señal de lectura/escritura:


R/W=0 Escritura (Write)
R/W=1 Lentura (Read)

6 EN Habilitación del modulo


EN=0 deshabilitado
EN=1 habilitado

7-14 D0-D7 Bus de dato bidireccional

15 LED Anodo (+5Vdc)

16 LED Catodo (GND) (resistencia 330)

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 5

Conexión con un bus de 4 líneas de datos

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 6

Controlador HD44780
Un modulo LCD basado en el controlador HD44780 dispone de:
• Memorias interna.
• Registro de control.
• Contador de dirección.

• DDRAM (Display Data Ram) : Es la memoria encargada de almacenar los caracteres que se mostraran, tanto de la parte visible (16
caracter) como de la parte virtual (no visible). Generalmente tiene un tamaño de 40 byte por línea.

• CGRAM (Character Genarador Ram): Almacena los caracteres definidos por el usuario.

• CGROM (Character Genarador Rom): Es el área donde están almacenados todo el juego de caracteres que puede mostrar la LCD

• AC (Address Counter): Sirve para direccionar tanto la DDRAM como La CGRAN.

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 7

Direcciones DDRAM para un LCD 16x2

Posición del
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … 40
Display
Línea 1 80H 81H 82H 83H 84H 85H 86H 87H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH … BFH

Línea 2 C0H C1H C2H C3H C4H C5H C6H C7H C8H C9H CAH CBH CCH CDH CEH CFH … F9H

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 8

Comandos de un modulo LCD basado en el controlador HD44780


Comando RS RW E 7 6 5 4 3 2 1 0 ejecución
Clear Display 0 0 1 0 0 0 0 0 0 0 1 1.64ms
Cursor home 0 0 1 0 0 0 0 0 0 1 X 1.64ms
Entry mode set 0 0 1 0 0 0 0 0 1 I/D S 40μs
Display on/off 0 0 1 0 0 0 0 1 D C B 40μs
Cursor/Display 0 0 1 0 0 0 1 S/C R/L X X 40μs
Funtion set 0 0 1 0 0 1 DL N F X X 40μs
Set CGRAM address 0 0 1 0 1 Dirección de la CGRAM 40μs
Set DDRAM address 0 0 1 1 L Dirección de la DDRAM 40μs
Read busy Flag / AC 0 1 1 BF Contador de dirección -

Read data 1 1 1 Dato de la CGRAM o DDRAM 40μs


Write data 1 0 1 Dato de la CGRAM o DDRAM 40μs

Set DDRAM address: Escribe la dirección de la DDRAM

L=0 Cursor a partir de la dirección 80h de la DDRAM (Línea 1)


L=1 Cursor a partir de la dirección C0h de la DDRAM (Línea 2)

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 9

Comandos de un modulo LCD basado en el controlador HD44780


Comando RS RW E 7 6 5 4 3 2 1 0 ejecución
Clear Display 0 0 1 0 0 0 0 0 0 0 1 1.64ms
Cursor home 0 0 1 0 0 0 0 0 0 1 X 1.64ms
Entry mode set 0 0 1 0 0 0 0 0 1 I/D S 40μs
Display on/off 0 0 1 0 0 0 0 1 D C B 40μs
Cursor/Display 0 0 1 0 0 0 1 S/C R/L X X 40μs
Funtion set 0 0 1 0 0 1 DL N F X X 40μs
Set CGRAM address 0 0 1 0 1 Dirección de la CGRAM 40μs
Set DDRAM address 0 0 1 1 L Dirección de la DDRAM 40μs
Read busy Flag / AC 0 1 1 BF Contador de dirección -

Read data 1 1 1 Dato de la CGRAM o DDRAM 40μs


Write data 1 0 1 Dato de la CGRAM o DDRAM 40μs

Clear Display: Borra el módulo LCD y coloca el cursor en la primera posición(dirección 80h).

Cursor home: Coloca el cursor en la posición de inicio (dirección 80h)

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 10

Comandos de un modulo LCD basado en el controlador HD44780


Comando RS RW E 7 6 5 4 3 2 1 0 ejecución
Clear Display 0 0 1 0 0 0 0 0 0 0 1 1.64ms
Cursor home 0 0 1 0 0 0 0 0 0 1 X 1.64ms
Entry mode set 0 0 1 0 0 0 0 0 1 I/D S 40μs
Display on/off 0 0 1 0 0 0 0 1 D C B 40μs
Cursor/Display 0 0 1 0 0 0 1 S/C R/L X X 40μs
Funtion set 0 0 1 0 0 1 DL N F X X 40μs
Set CGRAM address 0 0 1 0 1 Dirección de la CGRAM 40μs
Set DDRAM address 0 0 1 1 L Dirección de la DDRAM 40μs
Read busy Flag / AC 0 1 1 BF Contador de dirección -

Read data 1 1 1 Dato de la CGRAM o DDRAM 40μs


Write data 1 0 1 Dato de la CGRAM o DDRAM 40μs

Funtion Set: Establece el tamaño de la interfaz con el bus de datos (DL), número de
líneas del display (N) y tipo de carácter (F)

DL=0 interfaz 4 bit


DL=1 interfaz 8 bit

N=0 1 línea
N=1 2 línea

F=0 5x8 punto


F=1 5x10 punto
Prof. Yoel Pire
Modulo alfanumérico LCD de matriz de puntos 11

Comandos de un modulo LCD basado en el controlador HD44780


Comando RS RW E 7 6 5 4 3 2 1 0 ejecución
Clear Display 0 0 1 0 0 0 0 0 0 0 1 1.64ms
Cursor home 0 0 1 0 0 0 0 0 0 1 X 1.64ms
Entry mode set 0 0 1 0 0 0 0 0 1 I/D S 40μs
Display on/off 0 0 1 0 0 0 0 1 D C B 40μs
Cursor/Display 0 0 1 0 0 0 1 S/C R/L X X 40μs
Funtion set 0 0 1 0 0 1 DL N F X X 40μs
Set CGRAM address 0 0 1 0 1 Dirección de la CGRAM 40μs
Set DDRAM address 0 0 1 1 L Dirección de la DDRAM 40μs
Read busy Flag / AC 0 1 1 BF Contador de dirección -

Read data 1 1 1 Dato de la CGRAM o DDRAM 40μs


Write data 1 0 1 Dato de la CGRAM o DDRAM 40μs

Display on/off: Enciende o apaga el display (D), Cursor encendido/apagado (C), destello del
cursor (blink) (B).

D=0 Display Apagado


D=1 Display encendido

C=0 Cursor Apagado


C=1 Cursor encendido

B=0 Cursor parpadeo Apagado


B=1 Cursor parpadeo encendido
Prof. Yoel Pire
Modulo alfanumérico LCD de matriz de puntos 12

Comandos de un modulo LCD basado en el controlador HD44780


Comando RS RW E 7 6 5 4 3 2 1 0 ejecución
Clear Display 0 0 1 0 0 0 0 0 0 0 1 1.64ms
Cursor home 0 0 1 0 0 0 0 0 0 1 X 1.64ms
Entry mode set 0 0 1 0 0 0 0 0 1 I/D S 40μs
Display on/off 0 0 1 0 0 0 0 1 D C B 40μs
Cursor/Display 0 0 1 0 0 0 1 S/C R/L X X 40μs
Funtion set 0 0 1 0 0 1 DL N F X X 40μs
Set CGRAM address 0 0 1 0 1 Dirección de la CGRAM 40μs
Set DDRAM address 0 0 1 1 L Dirección de la DDRAM 40μs
Read busy Flag / AC 0 1 1 BF Contador de dirección -

Read data 1 1 1 Dato de la CGRAM o DDRAM 40μs


Write data 1 0 1 Dato de la CGRAM o DDRAM 40μs

Entry mode set: Incrementar/Decrementar dirección (I/D); Habilitar corrimiento de pantalla


(S)

I/D=0 Disminuye dirección


I/D=1 Incrementa dirección

S=0 sin corrimiento de pantalla


S=1 con corrimiento de pantalla

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 13

Comandos de un modulo LCD basado en el controlador HD44780


Comando RS RW E 7 6 5 4 3 2 1 0 ejecución
Clear Display 0 0 1 0 0 0 0 0 0 0 1 1.64ms
Cursor home 0 0 1 0 0 0 0 0 0 1 X 1.64ms
Entry mode set 0 0 1 0 0 0 0 0 1 I/D S 40μs
Display on/off 0 0 1 0 0 0 0 1 D C B 40μs
Cursor/Display 0 0 1 0 0 0 1 S/C R/L X X 40μs
Funtion set 0 0 1 0 0 1 DL N F X X 40μs
Set CGRAM address 0 0 1 0 1 Dirección de la CGRAM 40μs
Set DDRAM address 0 0 1 1 L Dirección de la DDRAM 40μs
Read busy Flag / AC 0 1 1 BF Contador de dirección -

Read data 1 1 1 Dato de la CGRAM o DDRAM 40μs


Write data 1 0 1 Dato de la CGRAM o DDRAM 40μs

Cursor/display shift: Selecciona entre desplazamiento de pantalla o de cursor (S/C),


selecciona la dirección de desplazamiento (R/L). El contenido de la DDRAM permanece intacto.

S/C=0 Mover cursor.


S/C=1 Mover pantalla.

R/L=0 Mover izquierda.


R/L=1 Mover derecha.

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 14

Inicializar un modulo LCD basado en el controlador HD44780

Comando para la configuración típica de la LCD


Comando 7 6 5 4 3 2 1 0 HEX
CLEAR DISPLAY 0 0 0 0 0 0 0 1 01h
CURSOR HOME 0 0 0 0 0 0 1 X=0 02h
ENTRY MODE SET 0 0 0 0 0 1 I/D=1 S=0 06h
DISPLAY ON/OFF 0 0 0 0 1 D=1 C=0 B=0 0Ch
CURSOR/DISPLAY 0 0 0 1 S/C=0 R/L=1 X=0 X=0 14h
FUNTION SET 0 0 1 DL=0 N=1 F=0 X=0 X=0 28h

Orden de los comandos para configurar la LCD:


02h Cursor home
28h Funtion set
0Ch Display on/off
06h Entry mode set
14h Cursor/Display
01h Clear Display

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 15

Tabla de caracteres ASCII:

Los caracteres alfanuméricos del modulo están representados en formato ASCII

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 16

Rutina LCD con bus de dato de 4bit


;Rutina LCD con bus de dato de 4bit
Entrada: W
BSF EN
Salida: Escribe en la LCD
CALL RETARDO_1MS
BCF EN
CBLOCK
CALL RETARDO_3MS
DATO_LCD
ENDC
SWAPF DATO_LCD,F
MOVLW B'00001111'
#DEFINE RS PORTD,3
ANDWF BD,F
#DEFINE EN PORTD,2
MOVF DATO_LCD,W
#DEFINE BD PORTD
ANDLW B'11110000'
IORWF BD,F
LCD_CONTROL
NOP
BCF RS
NOP
GOTO LCD_ENVIAR
LCD_DATO
BSF EN
BSF RS
CALL RETARDO_1MS
LCD_ENVIAR
BCF EN
MOVWF DATO_LCD
CALL RETARDO_3MS
MOVLW B'00001111'
RETURN
ANDWF BD,F
MOVF DATO_LCD,W
ANDLW B'11110000'
IORWF BD,F
NOP
NOP

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 17

Rutina LCD con bus de dato de 4bit

CONFIGURAR_LCD CLEAR_DISPLAY
MOVLW 02H MOVLW 01H
CALL LCD_CONTROL CALL LCD_CONTROL
MOVLW 28H RETURN
CALL LCD_CONTROL
MOVLW 0CH LCD_LINEA_1
CALL LCD_CONTROL MOVLW 80H
MOVLW 06H CALL LCD_CONTROL
CALL LCD_CONTROL RETURN
MOVLW 14H
CALL LCD_CONTROL LCD_LINEA_2
MOVLW 01H MOVLW 0C0H
CALL LCD_CONTROL CALL LCD_CONTROL
RETURN RETURN

Prof. Yoel Pire


Modulo alfanumérico LCD de matriz de puntos 18

Otros tipos de módulos de visualización

Pantalla oled 128x64


Pantalla Lcd Nokia 5110 Grafica 84x48.

Pantalla Táctil TFT del Módulo de Visualización LCD.

Pantalla LCD 20x4 Hd44780 Fondo Azul

Display LCD 16x2 Color Azul I2C o SPI

Prof. Yoel Pire


Teclado matricial 19

Teclado matricial con el PIC18F4550 en el puerto B usando la interrupción RBI

Es un tipo de teclado que organiza las teclas en una matriz de filas y columnas.
Cada tecla está ubicada en la intersección de una fila y una columna específicas.
Este diseño es eficiente tanto en términos de hardware como de software, ya
que reduce la cantidad de conexiones necesarias entre las teclas y el
controlador. En lugar de necesitar un pin para cada tecla, un teclado matricial de
4x4 solo requiere 8 pines (4 para filas y 4 para columnas).

Escaneo de Teclas :
- El microcontrolador activa una fila a la vez y lee las columnas para detectar si
alguna tecla ha sido presionada.
- - Al encontrar una tecla presionada, el microcontrolador determina la
intersección de la fila y la columna activa, identificando así la tecla específica.

Pasos para gestionar un teclado por interrupciones


• RB0 a RB3 como salidas. (Filas)
• RB4 a RB7 como entradas. (Columnas)
• Se habilitan las resistencias Pull-up internas del puerto B
• Se habilitan las interrupciones por cambio de estado del puerto B (RBI)
• Esperar a que ocurra la interrupción.
• Dentro de la interrupción, leer la tecla presionada.

Prof. Yoel Pire


Teclado matricial 20

Rutina para el manejo del teclado


ULTIMA_TECLA
BTFSS PORTB,3
; RUTINA: TECLA_PRESIONADA la cual detecta la tecla presionada
GOTO NULL_TECLA
; ENTRADA: Teclado matricial por interrupción de RB4-RB7
BSF STATUS,C
; SALIDAS: Posición de la tecla presionada en la variable NTECLA y W
RLCF LATB,1
GOTO TEST_COLUMNAS
CBLOCK
NTECLA
NULL_TECLA
ENDC
CLRF NTECLA
CLRF LATB
TECLA_PRESIONADA
RETLW 00H
CLRF NTECLA
INCF NTECLA,1
SUELTA_TECLA
MOVLW B'00001110’
ESPERA1
MOVWF LATB
BTFSS PORTB,4 ; TECLA FILA 1
NOP
GOTO ESPERA1
ESPERA2
TEST_COLUMNAS
BTFSS PORTB,5 ; TECLA FILA 2
BTFSS PORTB,4
GOTO ESPERA2
GOTO SUELTA_TECLA
ESPERA3
INCF NTECLA,1
BTFSS PORTB,6 ; TECLA FILA 3
BTFSS PORTB,5
GOTO ESPERA3
GOTO SUELTA_TECLA
ESPERA4
INCF NTECLA,1
BTFSS PORTB,7 ; TECLA FILA 4
BTFSS PORTB,6
GOTO ESPERA4
GOTO SUELTA_TECLA
INCF NTECLA,1
BCF INTCON,RBIF ; BORRAMOS BANDERA DE INTERRUPCION.
CLRF LATB
; EN ESTE CASO NO SE USA TECLADO 3X4
CLRF PORTB ; DEJAMOS PUERTO PARA RECIBIR OTRA TECLA.
BTFSS PORTB,7
MOVF NTECLA,W
GOTO SUELTA_TECLA
RETURN
INCF NTECLA,1

Prof. Yoel Pire


Teclado matricial 21

Rutina para el manejo del teclado


Los saltos computados usan un valor como un índice para decidir a qué dirección
de memoria saltar. Son útiles en la implementación de sistemas de menú.

; Ejemplo de salto computado en un microcontrolador


MOVLW 0x03 ; Cargar un valor en el registro W
MOVWF INDEX ; Guardar el valor en un índice
CALL TABLE ; Llamar a la dirección computada

; Tabla de direcciones
TABLE
MOVF INDEX, W ; Mover el índice a W
ADDWF PCL, F ; Agregar W al contador de programa
RETLW 0x10 ; Retornar con literal 0x10
RETLW 0x20 ; Retornar con literal 0x20
RETLW 0x30 ; Retornar con literal 0x30
RETLW 0x40 ; Retornar con literal 0x40

Nota: Se recomienda ubicar las tablas en las primeras posiciones de memoria (menor a 127) para evitar un mal salto
computado.
Prof. Yoel Pire
Teclado matricial 22

Ejemplo:
Dado el siguiente circuito. Escriba un código para Configurar la pantalla LCD y mostrar la tecla presionada.

Prof. Yoel Pire


Teclado matricial 23

Ejemplo:
Dado el siguiente circuito. Escriba un código para Configurar la pantalla LCD y mostrar la tecla presionada.

Prof. Yoel Pire

También podría gustarte