Adaptacion LCD Display a PIC

7
SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD 1 O B J E T I V O Desplegar un letrero en la pantalla de cristal liquido (LCD). I N T R O D U C C I O N Una LCD estándar es una pantalla de cristal líquido con una matriz de 16, 32, 40 u 80 caracteres de 5x7 pixeles, contando, además, con un microcontrolador (generalmente el Hitachi 44780) que lo gobierna. Normalmente cada línea contiene entre 8 y 80 caracteres, y suelen ser capaces de mostrar caracteres ASCII, japoneses, griegos...; o símbolos matemáticos. Su bus de conexión puede ser de 4 u 8 bits. El consumo de este tipo de módulos es muy bajo (7’5mW), y, gracias a su sencillo manejo, son ideales para dispositivos que requieren una visualización pequeña o media. Expondremos el uso de una librería, la LCD.LIB, preparada para una pantalla de cristal líquido con dos líneas de 16 caracteres y una conexión de 8 bits. ADAPTACIÓN DE UNA PANTALLA LCD. El módulo LCD que vamos a trabajar tiene 14 patillas, cuya descripción se hace en la figura que sigue a este párrafo. Su alimentación es de +5 V, y la regulación del contraste se realiza dividiendo esos +5V mediante un potenciometro de 10 k. Para el módulo de 8 bits requeriremos 11 líneas (uno de 4 bits necesitaría sólo 7). De ellas hay tres de control, que son EN (habilitación), I/D (Instrucción/Datos) y R/W (Lectura/Escritura). En un modo de 4 bits usaríamos sólo las líneas DB4-DB7 de datos. La activación de la línea EN (habilitación) es la que permite a la LCD leer el resto de líneas, es decir, si la desactivamos no reaccionará ante los cambios en el resto de líneas. La línea R/W se conectará a masa, para ahorrar una línea, en todos los casos en los que no sea necesario el modo de lectura.

Transcript of Adaptacion LCD Display a PIC

Page 1: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

1

O B J E T I V O Desplegar un letrero en la pantalla de cristal liquido (LCD).

I N T R O D U C C I O N

Una LCD estándar es una pantalla de cristal líquido con una matriz de 16, 32, 40 u 80

caracteres de 5x7 pixeles, contando, además, con un microcontrolador (generalmente el Hitachi 44780) que lo gobierna. Normalmente cada línea contiene entre 8 y 80 caracteres, y suelen ser capaces de mostrar caracteres ASCII, japoneses, griegos...; o símbolos matemáticos. Su bus de conexión puede ser de 4 u 8 bits.

El consumo de este tipo de módulos es muy bajo (7’5mW), y, gracias a su sencillo manejo,

son ideales para dispositivos que requieren una visualización pequeña o media. Expondremos el uso de una librería, la LCD.LIB, preparada para una pantalla de cristal líquido con dos líneas de 16 caracteres y una conexión de 8 bits.

ADAPTACIÓN DE UNA PANTALLA LCD. El módulo LCD que vamos a trabajar tiene 14 patillas, cuya descripción se hace en la

figura que sigue a este párrafo. Su alimentación es de +5 V, y la regulación del contraste se realiza dividiendo esos +5V mediante un potenciometro de 10 k. Para el módulo de 8 bits requeriremos 11 líneas (uno de 4 bits necesitaría sólo 7). De ellas hay tres de control, que son EN (habilitación), I/D (Instrucción/Datos) y R/W (Lectura/Escritura). En un modo de 4 bits usaríamos sólo las líneas DB4-DB7 de datos.

La activación de la línea EN (habilitación) es la que permite a la LCD leer el resto de líneas, es decir, si la desactivamos no reaccionará ante los cambios en el resto de líneas. La línea R/W se conectará a masa, para ahorrar una línea, en todos los casos en los que no sea necesario el modo de lectura.

Page 2: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

2

Pin Nombre del pin Función del pin

01 Vss Masa 02 Vdd + 5 V 03 Vo ó Vee Ajuste de contraste 04 I/D ó RS Selección de modo 05 R/W Lectura / Escritura 06 E ó EN Validación (1) / Deshabilitación (0) 07 DB0 Línea de datos (bit de menos peso) 08 DB1 Línea de datos 09 DB2 Línea de datos 10 DB3 Línea de datos 11 DB4 Línea de datos 12 DB5 Línea de datos 13 DB6 Línea de datos 14 DB7 Línea de datos (bit de mas peso)

Habitualmente el puerto A del micro es utilizado para manejar las líneas de control (en la

LCD.LIB PORTA.2 se conectará a EN, y habilitará la LCD, PORTA.1 manejará la lectura/escritura, y, finalmente, la PORTA.0 se encargará de la selección de modo), mientras la puerta B es utilizada para datos.

La secuencia de escritura debe seguir los siguientes pasos: 1) Línea I/D a 0 o a 1, según se trate de comandos o datos 2) Línea R/W a 0 (1 en caso de escritura) 3) Línea EN a 1 (se habilita la LCD) 4) Escritura de datos en el bus DB. 5) Línea EN a 0 (deshabilitación de la LCD) La misma secuencia en un módulo de 4 bits cambiaría: 1) Línea I/D a 0 o a 1, según se trate de comandos o datos 2) Línea R/W a 0 (1 en caso de escritura) 3) Línea EN a 1 (se habilita la LCD) 4) Escritura en los 4 bits de mayor peso del DB de la LCD. 5) Línea EN = 0 6) Línea EN = 1 7) Escribir de nuevo los 4 bits de menor peso 8) Línea EN = 0 (deshabilitación de la LCD).

Las dos secuencias de 4 bits se concatenarían dentro del LCD para formar 8 bits. Al resetear una LCD o encenderla ésta se queda a la espera de instrucciones. Usualmente

se suele empezar encendiendo la pantalla, colocando el cursor y configurando la escritura de derecha a izquierda.

La LCD contiene una RAM propia en la que almacena los datos, que se denomina

DDRAM. Independientemente del número de caracteres visibles, la DDRAM contará con 80 posiciones. Los caracteres no visibles se visualizarán provocando un desplazamiento.

Page 3: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

3

La utilización de la LCD es lenta. Una escritura o lectura puede tardar entre 40 y 120 µsegundos; otras instrucciones pueden llegar a los 5 ms. Para lograr que el PIC no necesite esperar tiene una instrucción de 1µseg que lee la dirección del contador y una bandera interior de ocupado. Cuando la bandera de ocupado (BF) está a 1, la LCD no puede leer ni escribir.

D I A G R A M A E S Q U E M A T I C O

C Ó D I G O F U E N T E

;*****************Programa para desplegar un letrero en un LCD************ ;************************************************************************* LIST P=16F877 include<p16f877.inc> PCL EQU 0x02 ESTADO EQU 0x03 PUERTOB EQU 0x06 PUERTOD EQU 0X08 PCLATH EQU 0X0A RDELAY EQU 0x21 CONTA0 EQU 0x22

Page 4: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

4

CONTA1 EQU 0x23 CONTA2 EQU 0x24 Letra EQU 0x25 Flinea EQU 0x26 ;Constantes para el programa ;*************************** Linea1LCD EQU 0x80 Linea2LCD EQU 0xC0 ClrLCD EQU 0x01 CasaLCD EQU 0x02 IncLCD EQU 0x07 ;* IZQUIERDA DecLCD EQU 0x05 ;* DERECHA OnLCD EQU 0x0C OfLCD EQU 0x08 OnCursor EQU 0x0E OffCursor EQU 0x0C BlinkCursor EQU 0x0F IzqLCD EQU 0x18 DerLCD EQU 0x1C IzqCursor EQU 0x10 DerCursor EQU 0x14 FuncionLCD EQU 0x38 RS EQU 6 ;Comandos o Caracteres, pin 6 del puerto D RW EQU 5 ;Escritura al LCD E EQU 7 ;Habilitacion para el LCD, pin 7 del

;puerto D W EQU 0 ;Registro W F EQU 1 ;Registro de trabajo ORG 0 goto INICIAR ORG 5 ;PROGRAMA PRINCIPAL ;****************** INICIAR call Port_LCD call Ini_LCD ;Inicializa el LCD rb1 movlw Linea1LCD ;Poner señal para empezar a mandar

;datos 0x80 call Comando_LCD movlw 0x0f ;w=15 para 15 datos movwf Flinea ;registro Flinea=15 clrf Letra ;registro que va a moverse sobre la tabla rb2 movf Letra,W ;Muestra el mensaje call Mensaje call Caracter_LCD ;Manda el caracter al LCD call delay ;Lo muestra por un tiempo de ---- incf Letra,F ; F=1 en el registro si F= 0 en W decfsz Flinea,F goto rb2 goto segundaL

Page 5: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

5

; Inician las subrutinas ;*********************** Mensaje addwf PCL,1 ;Mensaje a desplejar en el LCD retlw A’D’ retlw A’E’ retlw A’S’ retlw A’P’ retlw A’L’ retlw A’E’ retlw A’G’ retlw A’A’ retlw A’D’ retlw A’O’ retlw A’R’ retlw A’ ’ retlw A’L’ retlw A’C’ retlw A’D’ retlw A’ ’ Mensaje2 addwf PCL,1 ;Mensaje a desplejar en el LCD retlw 0x20 ; retlw 0x50 ;P retlw 0x52 ;R retlw 0x41 ;A retlw 0x43 ;C retlw 0x54 ;T retlw 0x49 ;I retlw 0x43 ;C retlw 0x41 ;A retlw 0x20 ; retlw 0x20 ; retlw 0x54 ;T retlw 0x52 ;R retlw 0x45 ;E retlw 0x53 ;S retlw 0x20 ; segundaL movlw Linea2LCD call Comando_LCD movlw 0x0F movwf Flinea clrf Letra rt2 movf Letra,w call Mensaje2 call Caracter_LCD call delay incf Letra,F decfsz Flinea,F goto rt2 parar goto parar

Page 6: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

6

Port_LCD bsf ESTADO,5 ;Configura los Puertos del PIC clrf PUERTOD ;configura al puerdo D como salidas clrf PUERTOB ;configura al puerdo B como salidas bcf ESTADO,5 bcf PUERTOD,E ;E equ 7 enable del LCD return Ini_LCD call retardo ;Inicializa el LCD ; bsf PUERTOA,RW ;poner a 1 el bit 1 del puerto D movlw FuncionLCD ;w<-0X38 call Comando_LCD call retardo movlw FuncionLCD ;0X38 call Comando_LCD call retardo movlw FuncionLCD ;0X38 call Comando_LCD call retardo movlw FuncionLCD ;0X38 call Comando_LCD movlw OnLCD ;0x0c call Comando_LCD movlw ClrLCD ;0x01 call Comando_LCD movlw DecLCD ;0x05 call Comando_LCD movlw CasaLCD ;0x02 call Comando_LCD return Comando_LCD bcf PUERTOD,RS ;Manda un comando al LCD RS equ 0 bcf PUERTOD,E ; Entrada de habilitación movwf PUERTOB call Habilita_LCD return Caracter_LCD bsf PUERTOD,RS ;Manda un caracter o dato al LCD bcf PUERTOD,E movwf PUERTOB call Habilita_LCD return ;RETARDO DE 255 MICRO SEG Habilita_LCD bsf PUERTOD,E ;Habilita el LCD movlw 0xFF movwf RDELAY t1 decfsz RDELAY,F goto t1 bcf PUERTOD,E return retardo movlw 0x01 ;Retardo movwf CONTA0 ret2 movlw 0x64 movwf CONTA1

Page 7: Adaptacion LCD Display a PIC

SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 3 EXHIBIDOR DE LETRERO EN UNA LCD

7

ret1 movlw 0x64 movwf CONTA2 ret0 decfsz CONTA2,F goto ret0 decfsz CONTA1,F goto ret1 decfsz CONTA0,F goto ret2 return delay movlw 0xFF ;Retardo movwf CONTA0 re2 movlw 0xFF movwf CONTA1 re1 movlw 0x03 movwf CONTA2 re0 decfsz CONTA2,F goto re0 decfsz CONTA1,F goto re1 decfsz CONTA0,F goto re2 return end

Para el desarrollo de esta práctica necesitamos de los siguientes materiales:

1 fuente variable de DC. 1 microcontrolador PIC16F877. 1 cristal de 4 Mhz. 2 capacitores 33 pf. 2 capacitores 0.1 µf a 25V. 2 capacitores 1 µf a 25V. 1 LCD.

1 protoboard 1 resistencias de 10 kΩ. 1 push button. 1 Potenciómetro de 10 kΩ. Cable. Pinzas.

C O M E N T A R I O S

Esta práctica resulto un poco mas complicada respecto a las anteriores pero esta es mucho muy útil debido a la ventaja de poder desplegar cualquier información que deseemos.