Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
64 vistas13 páginas

PRACTICA 8 LCD

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 13

NGENIERÍA EN MECATRÓNICA

Curso: OPTATIVA (Control de Procesos con Microcontroladores) INSTRUMENTO


PRACTICA 8 MÓDULO LCD

Instrucciones para el alumno:


1. Lea cuidadosamente el formato y lleve a cabo la práctica (programación y
simulación).
2. Muestre el correcto funcionamiento de la práctica.
3. Realizar y entregar un reporte de la práctica, sea breve y conciso, y mostrar el
programa realizado en MPLAB y la simulación en Proteus.
4. Anexar los archivos con extensión *.asm y *.HEX. para la programación del PIC en
MPLAB.
5. Anexar el programa con extensión *.pdsprj para la simulación en Proteus

OBJETIVOS.
Al término de la sesión, el alumno será capaz de configurar y utilizar el módulo LCD

Equipo Requerido:
1. Computadora con el software requerido (MPLAB y Proteus 8 Demo)..

Experimento.
Construir los siguientes diagramas en Proteus para probar cada una de las actividades a
desarrollar en el experimento.
esarrollar en el experimento.

1. Realizar un programa para el PIC16F para que en la pantalla LCD se visualice en la


primera línea tu nombre y en la segunda tus apellidos:

2. Realizar un programa para el PIC16F para que en la pantalla LCD 2x16 se visualicen
tres mensajes (cualesquiera) alternadamente en la línea superior.

3. Implementar un pulsador conectado al pin RA0 para que cada vez que se presione se
incremente un contador de 0 a F que se visualice en toda la primera línea de la
pantalla.
PROGRAMA 2 LINEAS
INCLUIR EL PIC16F877A Y EL ARCHIVO
QUE CONTIENE LAS ETIQUETAS DE
LOS REGISTROS INTERNOS

SE DECLARAN LOS REGISTROS 8


REGISTROS AUXILIARES DE LA
MEMORIA RAM
PONEMOS EL VECTOR DE INICIO Y EL
VECTOR DE INTERRUPCIÓN SOBRE
FLUJO DEL TIMER.

ESTAS INTRUCCIONES TIENEN LA FUNCION DE GUARDAR


TEMPORALMENTE W Y EL REGISTRO STATUS
POSTERIORMENTE SE LLAMARÁ A LA ETIQUETA DECREMENTAR_AUXILIAR
SE REGRESA Y SE EJECUTAN LAS SIGUIENTES INSTRUCCIONES Y SE
LIMPIA LA BANDERA DE INTERRUPCIÓN.
SELECCIONAMAOS BANCO 1
SELECCIONAMOS COMO CANALES
DIGITALES EL PUERTOE
COLOCAMOS COMO SALIDAS A TRISE Y
TRISB
MOVEMOS EL VALOR 00000111 A
OPTION_REG TRABAJAR CON EL
PRESCALAR 1:256 DEL TEMPORIZADOR

LIMPIAMOS LA VARIBLES
MOVEMOS EL VALOR 00000101 AL
REGISTRO DATO_4, Y ESE VALOR DE 5 ES
PARA DISTINGUIR LOS DATOS DE
COMANDO Y LOS DATOS DEL MENSAJE

MOVEMOS EL VALOR DE DATO_2 A W ,


QUE INICIALMENTE VALE 0 , DESPUES
MANDAMOS A LLAMAR A LA TABLA Y
REGRESA CON EL VALOR CARGADO EN W
Y LO QUE VALE W SE CARGA EN EL
REGISTRO DATO_1 Y SE HACE LA
COMPARACIÓN, SI LO QUE VALE W ES
IGUAL A 0 EL BIT Z DEL REGISTRO STATUS
SALTA A LA ETIQUETA DE GOTO FIN , Y SI NO EL BIT Z DEL REGISTRO
STATUS VALE 0 Y SALTA A LA INTRUCCION CALL ENVIAR ,
DESPUES SE REGRESA E INCREMENTAMOS EL VALOR DE DATO_2 EN 1 Y
VOLVEMOS A REGRESAR A LA ETIQUETA MAIN
PARTE DEL PROGRAMA QUE NOS SIRVE PARA
ENVIAR UN COMANDO O UN CARÁCTER DEL
MENSAJE
LA PRIMERA INSTRUCCIÓN ES PARA
DESABILITAR LA PANTALLA, DESPUES PONE EL
LCD EN MODO LECTURA.
SE PONE EL PIN RE0 EN CERO VAMOS A INDICAR
A TRABAJAR EN COMANDOS A LA PANTALLA LCD
SELECCIONAMOS EL BANCO 1 Y EL PUERTO E
VA ATRABAJAR COMO
SALIDAS DIGITALES
SELECCIONAMOS EL BANCO 0 Y
HABILITAMOS LA PANTALLA Y ESPERAMOS
A QUE SE DESOCUPE LA PANTALLA LCD, Y
DESABILITA EL MODULO LCD Y EL
DATO_1 SE VA A W Y LO QUE VALE W SE VA AL
PUERTO B
SE HACE LA COMPARACION Y
DEPENDIENDO DE VALOR OBTENIDO ESTE VA A
COMANDO O SE BRINCA A LA INSTRUCCIÓN
BSF PORTE, RE0 Y DESPUES
INCREMENTA EN UNO A DATO_4 Y LO QUE SE
ESTA ENVIANDO ES UN CARÁCTER DEL
MENSAJE
LLAMAMOS AL DELAY Y REGRESAMOS

SI W ES UN COMANDO, SE DIRIGE A ESTA


SUBRUTINA, HABILITAMOS Y
DESABILITAMOS LA PANTALLA LCD Y LE
DAMOS UN TIEMPO.ESTA
SUBRUTINA VERIFICA QUE EL MENSAJE
QUE SE ENVIO ESTUVO EN
LA LINEA SUPERIOR O INFERIOR, Y
COMO ESTA EN LA PRIMERA LINEA
VERIFICA EL VALOR DEL BIT 0, Y AHORA
EL VALOR DE W ES D EN HEXADECIMAL Y
SE VA A DATO_4 E INCREMENTA DATO_2
Y DATO_5 EN 1.
REGRESA A MAIN

ESTA SUBRUTINA DE DELAY ESTA


CONFIGURADA PARA .33 SEGUNDOS

DECREMENTA EÑ VALOR DE DATO_3


EN UNO Y REGRESAMA DE DONDE SE LLAMO

TABLA DE COMANDO Y CARACTERES PARA EL


LCD
LAS PRIMERAS CINCO LINEAS SOON LOS
COMANDOS
• LIMPIAR DISPLAY: CLEAR DISPLAY
• MODO DE ENTRADA: ENTRY MODE SET
CONTROL DEL DISPLAY ON / OFF
• ESTABLECER FUNCIÓN: FUNCTION
SET
• ESCRIBIR
• PRIMER ELEMENTO DEL MENSAJE RENGLON
0X05 DE LA TABLA
LAS DEMAS INSTRUCCIONES SOLO LOS
CARACTERES QUE MOSTRARA EL LCD
ELECCIONAMAOS BANCO 1
SELECCIONAMOS COMO CANALES
DIGITALES EL PUERTOE
COLOCAMOS COMO SALIDAS A TRISE Y
TRISB
MOVEMOS EL VALOR 00000111 A
OPTION_REG TRABAJAR CON EL
PRESCALAR 1:256 DEL TEMPORIZADOR

MOVEMOS EL VALOR DE DATO_2 A W , QUE


INICIALMENTE VALE 0 , DESPUES
MANDAMOS A LLAMAR A LA TABLA Y
REGRESA CON EL VALOR CARGADO EN W Y
LO QUE VALE W SE CARGA EN EL REGISTRO
DATO_1 Y SE HACE LA COMPARACIÓN.
SI LO QUE VALE W ES IGUAL A 0 EL BIT Z
DEL
REGISTRO STATUS SALTA A LA ETIQUETA
DE
GOTO FIN , Y SI NO EL BIT Z DEL REGISTRO
STATUS VALE 0 Y SALTA A LA INTRUCCION
CALL ENVIAR , DESPUES SE REGRESA E
INCREMENTAMOS EL VALOR DE DATO_2 EN 1 Y VOLVEMOS A REGRESAR A
LA ETIQUETA MAIN
PARTE DEL PROGRAMA QUE NOS SIRVE PARA
ENVIAR UN COMANDO O UN CARÁCTER DEL
MENSAJE
LA PRIMERA INSTRUCCIÓN ES PARA
DESABILITAR LA PANTALLA, DESPUES PONE EL
LCD EN MODO LECTURA.
SE PONE EL PIN RE0 EN CERO VAMOS A
INDICAR A TRABAJAR EN COMANDOS A LA
PANTALLA LCD
SELECCIONAMOS EL BANCO 1 Y EL PUERTO E
VA ATRABAJAR COMO SALIDAS DIGITALES
SELECCIONAMOS EL BANCO 0 Y HABILITAMOS
LA PANTALLA Y ESPERAMOS A QUE SE
DESOCUPE LA PANTALLA LCD, Y DESABILITA EL
MODULO LCD Y EL DATO_1 SE VA A W Y LO QUE
VALE W SE VA AL PUERTO B
SE HACE LA COMPARACION Y DEPENDIENDO
DE VALOR OBTENIDO ESTE VA A COMANDO O
SE BRINCA A LA INSTRUCCIÓN BSF PORTE, RE0
Y DESPUES INCREMENTA EN UNO A DATO_4 Y
LO QUE SE ESTA ENVIANDO ES UN CARÁCTER
DEL MENSAJE
LLAMAMOS A DELAY Y REGRESAMOS
DAMOS UN TIEMPO EN ESTA SUBRUTINA
VERIFICA QUE EL MENSAJE QUE SE ENVIO
ESTUVO EN LA LINEA SUPERIOR O
INFERIOR, Y COMO ESTA EN LA PRIMERA
LINEA
VERIFICA EL VALOR DEL BIT 0, Y
DEPENDIENDO DEL VALOR SALTA A
MENSAJE_2 O MENSAJE_3
LA ETIQUETA MENSAJE_2 INCREMENTA EL
VALOR DE DATO_2 EN UNO Y EL VALOR DE
10 EN HEXADECIMAL SE MUEVE A DATO_4 E
INCREMENTA EL VALOR EN UNO DE DATO_5,
REGRESA A MAIN
LA ETIQUETA MENSAJE_2 INCREMENTA EL
VALOR DE DATO_2 EN UNO Y EL VALOR DE
10 EN HEXADECIMAL SE MUEVE A DATO_4 E
INCREMENTA EL VALOR EN UNO DE DATO_6
Y REGRESA A MAIN
ESTA SUBRUTINA DE DELAY ESTA
CONFIGURADA PARA 0.200 SEGUNDOS

RETARDO APROXIMADO DE 0.200


SEGUNDOS

DECREMENTA EÑ VALOR DE DATO_3 EN


UNO Y REGRESAMA DE DONDE SE LLAMO
TABLA DE COMANDO Y CARACTERES
PARA EL LCD
LAS PRIMERAS CINCO LINEAS SOON
LOS COMANDOS
• LIMPIAR DISPLAY: CLEAR
DISPLAY
• MODO DE ENTRADA: ENTRY
MODE SET
• CONTROL DEL DISPLAY ON / OFF
• ESTABLECER FUNCIÓN:
FUNCTION SET
• ESCRIBIR
• PRIMER ELEMENTO DEL
MENSAJE RENGLON 0X05 DE LA TABLA
LAS DEMAS INSTRUCCIONES SOLO
LOS CARACTERES QUE MOSTRARA EL
LCD
CONTADOR
SELECCIONAMAOS BANCO 1
SELECCIONAMOS COMO CANALES
DIGITALES EL PUERTOE
COLOCAMOS COMO SALIDAS A TRISE Y
TRISB
COLOCAMOS COMO ENTRADA RC0
MOVEMOS EL VALOR 00000111 A
OPTION_REG TRABAJAR CON EL
PRESCALAR 1:256 DEL TEMPORIZADOR
LIMPIAMOS VARIABLES
MOVEMOS EL VALOR 00000101 AL
REGISTRO DATO_4, Y ESE VALOR DE 5 ES
PARA DISTINGUIR LOS DATOS DE COMANDO
Y LOS DATOS DEL MENSAJE
MOVEMOS EL VALOR DE DATO_2 A W , QUE
INICIALMENTE VALE 0 , DESPUES
MANDAMOS A LLAMAR A LA TABLA Y
REGRESA CON EL VALOR CARGADO EN W Y
LO QUE VALE W SE CARGA EN EL REGISTRO
DATO_1 Y SE HACE LA COMPARACIÓN, SI LO
QUE VALE W ES IGUAL A 0 EL BIT Z DEL
REGISTRO STATUS SALTA A LA ETIQUETA
DE GOTO FIN , Y SI NO EL BIT Z DEL
REGISTRO STATUS VALE 0 Y SALTA A LA
INTRUCCION CALL ENVIAR , DESPUES SE
REGRESA E INCREMENTAMOS EL VALOR DE
DATO_2 EN 1 Y VOLVEMOS A REGRESAR A
LA ETIQUETA MAIN
PARTE DEL PROGRAMA QUE NOS SIRVE
PARA ENVIAR UN COMANDO O UN
CARÁCTER DEL MENSAJE
LA PRIMERA INSTRUCCIÓN ES PARA
DESABILITAR LA PANTALLA, DESPUES
PONE EL LCD EN MODO LECTURA.
SE PONE EL PIN RE0 EN CERO VAMOS A
INDICAR A TRABAJAR EN COMANDOS A LA
PANTALLA LCD
SELECCIONAMOS EL BANCO 1 Y EL
PUERTO E VA ATRABAJAR COMO SALIDAS
DIGITALES
SELECCIONAMOS EL BANCO 0 Y
HABILITAMOS LA PANTALLA Y
ESPERAMOS A QUE SE DESOCUPE LA
PANTALLA LCD, Y DESABILITA EL MODULO
LCD Y EL DATO_1 SE VA A W Y LO QUE
VALE W SE VA AL PUERTO B
SE HACE LA COMPARACION Y
DEPENDIENDO DE VALOR OBTENIDO
ESTE VA A COMANDO O SE BRINCA A LA
INSTRUCCIÓN BSF PORTE, RE0 Y
DESPUES INCREMENTA EN UNO A
DATO_4 Y LO QUE SE ESTA ENVIANDO ES
UN CARÁCTER DEL MENSAJE
LLAMAMOS A DELAY Y DESPUES VAMOS
A LA ETIQUETA CERO DONDE SI EL PIN
RC0 ES 1 IRA A GOTO CERO , PERO SI ES
CERO REGRESARA DE DONDE LO
LLAMAMOS

ESPEREMOS Y VAMOS Y VAMOS A LA


ETIQUETA REPETTIR
RETARDO APROXIMADO DE 0.200 SEGUNDOS

DECREMENTA EÑ VALOR DE DATO_3 EN UNO


Y REGRESAMA DE DONDE SE LLAMO

TABLA DE COMANDO Y CARACTERES PARA EL


LCD
LAS PRIMERAS CINCO LINEAS SOON LOS
COMANDOS
• LIMPIAR DISPLAY: CLEAR DISPLAY
• MODO DE ENTRADA: ENTRY MODE SET
CONTROL DEL DISPLAY ON / OFF
• ESTABLECER FUNCIÓN: FUNCTION
SET
• ESCRIBIR
• PRIMER ELEMENTO DEL MENSAJE RENGLON 0X05 DE LA TABLA
LAS DEMAS INSTRUCCIONES SOLO LOS
CARACTERES QUE MOSTRARA EL LCD

También podría gustarte