0% encontró este documento útil (0 votos)
37 vistas12 páginas

Manejo de Pantalla LCD 16x2 en PIC

Este documento describe cómo manejar una pantalla LCD de 16x2 caracteres utilizando un PIC. Inicializa la pantalla LCD y muestra el mensaje 'HOLA CCTL' al presionar un botón.

Cargado por

juandachent000
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
37 vistas12 páginas

Manejo de Pantalla LCD 16x2 en PIC

Este documento describe cómo manejar una pantalla LCD de 16x2 caracteres utilizando un PIC. Inicializa la pantalla LCD y muestra el mensaje 'HOLA CCTL' al presionar un botón.

Cargado por

juandachent000
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 DOCX, PDF, TXT o lee en línea desde Scribd

MEC Laboratorio 3ro “A, B”

Centro de Capacitación Técnica de Luque


Laboratorio de Electrónica
Práctica Nº
MANEJO DE PANTALLA DE CRISTAL LIQUIDO (LCD).
Total de puntos: 8

OBJETIVOS:
 Manejar un display de 16x2 caracteres.
 Utilizar dicho display para la impresión de mensajes alfanuméricos.

EQUIPOS Y MATERIALES NECESARIOS


1 Entrenador básico de PIC.
2 Display de 16x2 caracteres.

PROCEDIMIENTO (4p)
a) La secuencia a implementarse será:

 Al activar SW2 se deberá imprimir el mensaje:

“HOLA” (primera línea)


“CCTL” (segunda línea)

Observación: se adjunta diagrama de conexión para lcd 16x2, así como también las funciones
principales en lenguaje ensamblador para el manejo del mismo.

CCTL
MEC Laboratorio 3ro “A, B”

FUNCION DE INICIALIZACION Y RUTINAS DE LCD

#DEFINE RS PORTC,2 ;puertos utilizados en control de display


#DEFINE EN PORTC,1
#DEFINE D4 PORTA,0
#DEFINE D5 PORTA,1
#DEFINE D6 PORTA,2
#DEFINE D7 PORTA,3

CALL INI_LCD ;rutina de inicialización de lcd

INI_LCD:
MOVLW 03H
MOVWF PORTA
CALL STROBE
CALL DELAYP1
MOVLW 02H
MOVWF PORTA
CALL STROBE
MOVLW 02H
MOVWF PORTA
CALL STROBE
MOVLW 08H
MOVWF PORTA
CALL STROBE
MOVLW 0H
MOVWF PORTA
CALL STROBE
MOVLW 0CH
MOVWF PORTA
CALL STROBE
MOVLW 0H
MOVWF PORTA
CALL STROBE
MOVLW 6H
MOVWF PORTA
CALL CLOCK
CALL STROBE
CALL DELAYP1
CALL CLRDISP
CALL DELAYP1
CALL CURUP
RETURN

CALL MENS1

MENS1:
CALL CLRDISP
CALL DELAYP1
CALL HH
CALL DELAYP1
CALL OO
CALL DELAYP1
CALL LL
CALL DELAYP1
CALL AA
CALL DELAYP1

CCTL
MEC Laboratorio 3ro “A, B”

CALL CURDOWN
CALL DELAYP1
CALL CC
CALL DELAYP1
CALL CC
CALL DELAYP1
CALL TT
CALL DELAYP1
CALL LL
CALL DELAYP1
BCF EN
BCF RS
RETURN

HH BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 8H
MOVWF PORTA
CALL CLOCK
RETURN

OO BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 0FH
MOVWF PORTA
CALL CLOCK
RETURN

LL BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 0CH
MOVWF PORTA
CALL CLOCK
RETURN

AA BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 1H
MOVWF PORTA
CALL CLOCK
RETURN

CC BSF RS
BCF EN
MOVLW 4H

CCTL
MEC Laboratorio 3ro “A, B”

MOVWF PORTA
CALL CLOCK
MOVLW 3H
MOVWF PORTA
CALL CLOCK
RETURN

TT BSF RS
BCF EN
MOVLW 5H
MOVWF PORTA
CALL CLOCK
MOVLW 4H
MOVWF PORTA
CALL CLOCK
RETURN

LL BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 0CH
MOVWF PORTA
CALL CLOCK
RETURN

CURUP CLRF PORTC


MOVLW 08H ;cursor arriba, izquierda
MOVWF PORTA
CALL CLOCK
MOVLW 00H
MOVWF PORTA
CALL CLOCK
RETURN

CURDOWN CLRF PORTC


MOVLW 0CH ;cursor abajo, izquierda
MOVWF PORTA
CALL CLOCK
MOVLW 00H
MOVWF PORTA
CALL CLOCK
RETURN

CLRDISP CLRF PORTC;borrar display


MOVLW 00H
MOVWF PORTA
CALL CLOCK
MOVLW 01H
MOVWF PORTA
CALL CLOCK
CALL DELAYP1
RETURN

CLOCK BSF EN ;RETARDO ENTRE NIBBLES DE UN CARACTER


CALL RET125

CCTL
MEC Laboratorio 3ro “A, B”

BCF EN
CALL RET125
RETURN

RET125 MOVLW D'31'


MOVWF CONT1
ACA NOP
DECFSZ CONT1,1
GOTO ACA
RETURN

STROBE BSF EN ;HABILITA Y DESABILITA DISPLAY DURANTE INICIO DE LCD


NOP
NOP
BCF EN
RETURN

DELAYP1 MOVLW D'100' ;DELAY DE 100ms


MOVWF CONT2
ACA1 MOVLW D'250'
MOVWF CONT1
ACA2 NOP
DECFSZ CONT1,1
GOTO ACA2
DECFSZ CONT2,1
GOTO ACA1
RETURN

TAREA INDIVIDUAL (para el informe):


Redactar una descripción del software implementado, acompañado de un diagrama de flujo, así
como también el circuito implementado, también una breve descripción de los inconvenientes
encontrados a la hora de su implementación. (4 puntos)

CCTL
MEC Laboratorio 3ro “A, B”

DESCRIPCIÓN DEL SOFTWARE

Esta práctica consistía en hacer funcionar una pantalla LCD 2x16 . tuvimos que
hacer que imprimir en la pantalla ‘HOLA CCTL’.
Para inicializar la pantalla se necesita hacer una subrutina, de acuerdo a la hoja
de especificaciones del fabricante.
Se define las conexiones en RS, EN, D4, D5, D6 y D7 para los puertos C2, C1,
A0, A1, A2 y A3 respectivamente. Utilizando un bus de 4 bits.
Seguidamente se realiza la respectiva inicialización de display. Este
proceso lleva dentro otras subrutinas ( STROBE, DELAYP1, CLRDISP,
CLOCK, CURUP)
Luego del inicio se envían los caracteres que se deben imprimir, a través de los
puertos conectados al LCD. Los caracteres que queremos se exportan
mediante la codificación ASCII, ya sean en binario, hexadecimal o decimal.
El software termina en bucle sin fin, una vez impresos los caracteres.

INCONVENIENTES
Ningún inconveniente durante la practica

CCTL
MEC Laboratorio 3ro “A, B”

DIAGRAMA DE FLUJO

CCTL
MEC Laboratorio 3ro “A, B”

Código
ORG 0000
GOTO INICIO

INICIO MOVLW 0FH


MOVWF ADCON1
MOVLW 07H
MOVWF CMCON
MOVLW B'00000000'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
CLRF PORTC
CLRF PORTA
CLRF PORTB

#DEFINE RS PORTC,2 ;puertos utilizados en control de display


#DEFINE EN PORTC,1
#DEFINE D4 PORTA,0
#DEFINE D5 PORTA,1
#DEFINE D6 PORTA,2
#DEFINE D7 PORTA,3

CALL INI_LCD ;rutina de inicialización de lcd


GOTO REDMI
INI_LCD
MOVLW 03H
MOVWF PORTA
CALL STROBE
CALL DELAYP1

CCTL
MEC Laboratorio 3ro “A, B”

MOVLW 02H
MOVWF PORTA
CALL STROBE
MOVLW 02H
MOVWF PORTA
CALL STROBE
MOVLW 08H
MOVWF PORTA
CALL STROBE
MOVLW 0H
MOVWF PORTA
CALL STROBE
MOVLW 0CH
MOVWF PORTA
CALL STROBE
MOVLW 0H
MOVWF PORTA
CALL STROBE
MOVLW 6H
MOVWF PORTA
CALL CLOCK
CALL STROBE
CALL DELAYP1
CALL CLRDISP
CALL DELAYP1
CALL CURUP
RETURN

REDMI
CALL MENS1
GOTO REDMI1
MENS1
CALL CLRDISP
CALL DELAYP1
CALL HH
CALL DELAYP1
CALL OO
CALL DELAYP1
CALL LL
CALL DELAYP1
CALL AA
CALL DELAYP1
CALL CURDOWN
CALL DELAYP1
CALL CC
CALL DELAYP1
CALL CC
CALL DELAYP1
CALL TT
CALL DELAYP1
CALL L1
CALL DELAYP1
BCF EN
BCF RS
RETURN

REDMI1

CCTL
MEC Laboratorio 3ro “A, B”

FIN NOP
GOTO FIN

HH BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 8H
MOVWF PORTA
CALL CLOCK
RETURN

OO BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 0FH
MOVWF PORTA
CALL CLOCK
RETURN

LL BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 0CH
MOVWF PORTA
CALL CLOCK
RETURN

AA BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 1H
MOVWF PORTA
CALL CLOCK
RETURN

CC BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 3H
MOVWF PORTA
CALL CLOCK
RETURN

TT BSF RS
BCF EN

CCTL
MEC Laboratorio 3ro “A, B”

MOVLW 5H
MOVWF PORTA
CALL CLOCK
MOVLW 4H
MOVWF PORTA
CALL CLOCK
RETURN

L1 BSF RS
BCF EN
MOVLW 4H
MOVWF PORTA
CALL CLOCK
MOVLW 0CH
MOVWF PORTA
CALL CLOCK
RETURN

CURUP CLRF PORTC


MOVLW 08H ;cursor arriba, izquierda
MOVWF PORTA
CALL CLOCK
MOVLW 00H
MOVWF PORTA
CALL CLOCK
RETURN

CURDOWN CLRF PORTC


MOVLW 0CH ;cursor abajo, izquierda
MOVWF PORTA
CALL CLOCK
MOVLW 00H
MOVWF PORTA
CALL CLOCK
RETURN

CLRDISP CLRF PORTC;borrar display


MOVLW 00H
MOVWF PORTA
CALL CLOCK
MOVLW 01H
MOVWF PORTA
CALL CLOCK
CALL DELAYP1
RETURN

CLOCKBSF EN ;RETARDO ENTRE NIBBLES


CALL RET125
BCF EN
CALL RET125
RETURN

RET125 MOVLW D'40'


MOVWF CONT1
ACA NOP
DECFSZ CONT1,1
GOTO ACA

CCTL
MEC Laboratorio 3ro “A, B”

RETURN

STROBE BSF EN ;HABILITA Y DESABILITA DISPLAY


NOP
BCF EN
RETURN

DELAYP1 MOVLW D'150' ;DELAY DE 100ms


MOVWF CONT2
ACA1 MOVLW D'250'
MOVWF CONT1
ACA2 NOP
DECFSZ CONT1,1
GOTO ACA2
DECFSZ CONT2,1
GOTO ACA1
RETURN
END

CCTL

También podría gustarte