Anda di halaman 1dari 22

Carlos Canto Q.

MICROCONTROLADORES
Mdulo LCD HD44780 de Hitachi
y el c 8051
Mdulo LCD HD44780 de Hitachi
y el c 8051
Mdulo LCD HD44780 de Hitachi
Mdulo LCD HD44780 de Hitachi
Controlador
del LCD
HD44780
Controlador
del LCD
HD44780
Manejador
Del LCD
Manejador
Del LCD
Manejador
Del LCD
Manejador
Del LCD
D
i
s
p
l
a
y

L
C
D
D
i
s
p
l
a
y

L
C
D
D0-D7
D0-D7
E
R / W
RS
VDD
Vo
Vss
Carlos Canto Q.
MICROCONTROLADORES
Caractersticas principales del mdulo
16 caracteres por 2 lneas ( hay de ms caracteres y de ms lneas)
Encendido/apagado del display
Parpadeo del cursor
Desplazamiento izquierdo/derecho
Regreso del cursor al inicio
Reconoce ASCII estndar
Soporta 132 caracteres alfanumricos y 32 de control
Display de matriz de puntos de 5X7 5X10
Carlos Canto Q.
MICROCONTROLADORES
Lneas de Control
Lneas de Control
Son las siguientes: EN, R/W, RS.
EN:
Cuando esta lnea pasa de 1 a 0, el controlador del LCD lee el resto de
lneas, ya sean de control o de datos.
R/W (1/0):
Cuando esta lnea est a cero se escribe sobre el LCD.
Cuando est a 1, se lee el LCD, es especialmente til para leer si ha
finalizado la ltima orden indicada.
RS:
Seleccin de Registro. Cuando RS est en bajo el dato es tratado como
una orden o comando sobre el LCD (limpiar la pantalla, posicionar el
cursor..etc.)
Si est en alto, el dato que se enva es texto a mostraren el display.
El HD44780 puede transferir datos, ya sea en dos operaciones El HD44780 puede transferir datos, ya sea en dos operaciones
de 4 bits o en una sola de 8, lo que le permite conectarse con de 4 bits o en una sola de 8, lo que le permite conectarse con Ps Ps
de 4 de 4 8 bits. 8 bits.
Para interfases de datos de 4 bits: Para interfases de datos de 4 bits:
solamente 4 l solamente 4 l neas del bus son usadas para transferir (de DB4 a neas del bus son usadas para transferir (de DB4 a
DB7). Las l DB7). Las l neas del bus de DB0 a DB3 est neas del bus de DB0 a DB3 est n deshabilitadas. n deshabilitadas.
La transferencia de un dato entre el HD44780 y el La transferencia de un dato entre el HD44780 y el P P se completa se completa
cuando se hayan transferido dos veces datos de 4 bits. cuando se hayan transferido dos veces datos de 4 bits.
Primero se transfieren los 4 bits m Primero se transfieren los 4 bits m s altos (DB4 a DB7) y despu s altos (DB4 a DB7) y despu s s
los 4 bits m los 4 bits m s bajos (de DB0 a DB3). s bajos (de DB0 a DB3).
La bandera de ocupado (BF) debe ser checada (con una instrucci La bandera de ocupado (BF) debe ser checada (con una instrucci n) n)
despu despu s de que los dos datos de 4 bits hayan sido transferidos. s de que los dos datos de 4 bits hayan sido transferidos.
Interfases con un Procesador
Interfases con un Procesador
Carlos Canto Q.
MICROCONTROLADORES
CONEXIN DE UN MDULO LCD A UN 8051
Carlos Canto Q.
MICROCONTROLADORES
INTERFASE DE 8 BITS INTERFASE DE 8 BITS
Mdulo LCD de 2X16
Puerto 1
P3.0
P3.1
RS
E R/ W
Interfase de 8 bits
DB0-DB7
C 8051
Pin 3
Vcc
Potencimetro
de 10K
Circuito de contraste
Por si se desea leer la bandera BF
Por si se desea leer la bandera BF
P3.2
Secuencia de las seales de control del LCD
Carlos Canto Q.
MICROCONTROLADORES
Donde:
RS (Register Select) = 0 selecciona el registro
de instruccin (IR)
1 selecciona el registro de
datos (DR)
E (Enable): habilita el mdulo LCD
R/W (Read/Write)
RS R/W E Operacin
0 0 Escritura de cdigo de operacin
0 1 Lectura de bandera de ocupado (BF)
1 0 Escritura de de dato
1 1 Lectura de dato
RS
R/ W
E
DATO
D0-D7
Diagrama de tiempo de una operacin
de escritura
CONEXIN DE UN MDULO LCD A UN 8051
Carlos Canto Q.
MICROCONTROLADORES
INTERFASE DE 4 BITS INTERFASE DE 4 BITS
R/ W
Mdulo LCD de 2X16
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
RS
E
C 8051
DB4
DB5
DB6
DB7
Pin 3
Vcc
Potencimetro
de 10K
Circuito de contraste
Por si se desea leer la bandera BF
Por si se desea leer la bandera BF
P3.2
V0
Carlos Canto Q.
MICROCONTROLADORES
4 bits altos 4 bits bajos
D7-D4
RS
R/W
E
Dato de 8 bits
Operaci Operaci n de escritura en interfase de 4 bits n de escritura en interfase de 4 bits
Ejemplo de transferencias de 4 bits Ejemplo de transferencias de 4 bits
Carlos Canto Q.
MICROCONTROLADORES
Ejemplo de la secuencia de la Ejemplo de la secuencia de la temporizaci temporizaci n n de una de una
transferencias de 4 bits transferencias de 4 bits
Carlos Canto Q.
MICROCONTROLADORES
Busy
CONEXIN DE UN MDULO LCD A UN 8051
Carlos Canto Q.
MICROCONTROLADORES
Despus de aplicada la potencia de alimentacin , el
mdulo LCD requiere al menos 10ms para auto
inicializarse
Por lo tanto el procesador tiene que esperar al
menos 10ms antes de poder realizar alguna operacin
de escritura o lectura al LCD
Para usar el mdulo LCD el microcontrolador debe
realizar dos tipos bsicos de tareas:
Escritura de controles o comandos
Escritura de datos (caracteres a desplegar)
Carlos Canto Q.
MICROCONTROLADORES
Descripcin de los controles o comandos para configurar
el mdulo LCD HD44780
Descripci Descripci n de los controles o comandos para configurar n de los controles o comandos para configurar
el m el m dulo LCD HD44780 dulo LCD HD44780
1 0 0 0 0 0 0 0 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
CLEAR DISPLAY CLEAR DISPLAY
Borra el mdulo LCD y coloca el cursor en la primera posicin (direccin 0).
Pone el bit I/D 1 por defecto.
Cdigo:
Tiempo de ejecucin: 1.64 ms
X 1 0 0 0 0 0 0 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
Cdigo:
Tiempo de ejecucin: 1.64 ms
HOME HOME
Coloca el cursor en la posicin de inicio ( direccin 0) y hace que el display
comience a desplazarse desde la posicin original. El contenido de la memoria
RAM de datos de visualizacin (DDRAM) permanece invariable . La direccin de
la memoria RAM de datos para la visualizacin (DDRAM) es puesta a 0.
Carlos Canto Q.
MICROCONTROLADORES
S I/D 1 0 0 0 0 0 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
ENTRY MODE SET ENTRY MODE SET
Establece la direcci Establece la direcci n de movimiento del cursor y especifica si la n de movimiento del cursor y especifica si la
visualizaci visualizaci n se va desplazando a la siguiente posici n se va desplazando a la siguiente posici n de la pantalla n de la pantalla
o no. Estas operaciones se ejecutan durante la lectura o escritu o no. Estas operaciones se ejecutan durante la lectura o escritura de la ra de la
DDRAM o CGRAM. Para visualizar normalmente poner el bit S a DDRAM o CGRAM. Para visualizar normalmente poner el bit S a 0 0 .
Cdigo:
Tiempo de ejecucin: 40s
I/D=1 Incrementa la direccin del cursor
I/D=0 Decrementa la direccin del cursor
S=1 Desplaza la visualizacin cada vez que se escribe un dato
Carlos Canto Q.
MICROCONTROLADORES
B C D 1 0 0 0 0 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
DISPLAY ON/OFF CONTROL DISPLAY ON/OFF CONTROL
Activa o desactiva poniendo en ON/OFF tanto al display (D) como Activa o desactiva poniendo en ON/OFF tanto al display (D) como el el
cursor (C) y se establece si este cursor (C) y se establece si este ltimo debe o no parpadear (B) ltimo debe o no parpadear (B).
Cdigo:
Tiempo de ejecucin: 40s
D=1 Pantalla activa (ON)
C=1 Cursor activo (ON)
B=1 parpadeo
Carlos Canto Q.
MICROCONTROLADORES
x x R/L S/C 1 0 0 0 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
CURSOR OR DISPLAY SHIFT CURSOR OR DISPLAY SHIFT
Mueve el cursor y desplaza el display sin cambiar el contenido d Mueve el cursor y desplaza el display sin cambiar el contenido de la e la
memoria de datos de visualizaci memoria de datos de visualizaci n DDRAM n DDRAM.
Cdigo:
Tiempo de ejecucin: 40s
S/C=1 Se desplaza la visualizacin
S/C=0 Se desplaza el cursor
R/L =1 Desplazamiento a la derecha
R/L=0 Desplazamiento a la izquierda
Carlos Canto Q.
MICROCONTROLADORES
x x F N DL 1 0 0 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
FUNCTION SET FUNCTION SET
Establece el tama Establece el tama o de interfase con el bus de datos (DL), n o de interfase con el bus de datos (DL), n mero de mero de
l l neas del display (N) y tipo de car neas del display (N) y tipo de car cter cter (F).
Cdigo:
Tiempo de ejecucin: 40s
DL=1 Trabaja con bus de datos de 8 bits
DL=0 Trabaja con bus de datos de 4 bits
N=1 La presentacin se hace en 2 lneas
N=0 La presentacin se hace en 1 lnea
F=1 Caracteres de 5X10 puntos
F=0 Caracteres de 5X7 puntos
Carlos Canto Q.
MICROCONTROLADORES
1 0 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
DDRAM ADDRES SET DDRAM ADDRES SET
Establece la direcci Establece la direcci n de la memoria de datos DDRAM a partir de la n de la memoria de datos DDRAM a partir de la
cual se almacenan los datos a visualizar cual se almacenan los datos a visualizar.
Cdigo:
Tiempo de ejecucin: 40s
x x F N DL 1 BF 1 0
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS
READ BUSY FLAG AND ADDRESS READ BUSY FLAG AND ADDRESS
Lectura de la bandera busy (BF) e indica la ltima direccin empleada de la
DDRAM o CGRAM.
Cdigo:
Tiempo de ejecucin: 1s
Direccin de memoria de datos DDRAM
Direccin de DDRAM o CGRAM
Carlos Canto Q.
MICROCONTROLADORES
Carlos Canto Q.
MICROCONTROLADORES
La Memoria RAM de Datos del Display
DDRAM
La Memoria RAM de Datos del Display
La Memoria RAM de Datos del Display
DDRAM
DDRAM
Carlos Canto Q.
MICROCONTROLADORES
EJEMPLO DE DISPLAY DE 16 CARACTERES
POR 2 LNEAS
EJEMPLO DE DISPLAY DE 16 CARACTERES EJEMPLO DE DISPLAY DE 16 CARACTERES
POR 2 L POR 2 L NEAS NEAS
MAPA DE MEMORIA DE LA DDRAM Y SUS
POSICIONES EN EL DISPLAY VIRTUAL
MAPA DE MEMORIA DE LA DDRAM Y SUS MAPA DE MEMORIA DE LA DDRAM Y SUS
POSICIONES EN EL DISPLAY VIRTUAL POSICIONES EN EL DISPLAY VIRTUAL
Carlos Canto Q.
MICROCONTROLADORES
POSICIN DEL DISPLAY REAL
RESPECTO AL VIRTUAL
CUANDO SE INICIALIZA EL
LCD
POSICIN DEL DISPLAY REAL
RESPECTO AL VIRTUAL
CUANDO SE INICIALIZA EL
LCD
DISPLAY VIRTUAL Y DISPLAY REAL DISPLAY VIRTUAL Y DISPLAY REAL DISPLAY VIRTUAL Y DISPLAY REAL
POSICIN DEL DISPLAY REAL
RESPECTO AL VIRTUAL
CUANDO SE REALIZA UN
DESPLAZAMIENTO HACIA LA
DERECHA
POSICIN DEL DISPLAY REAL
RESPECTO AL VIRTUAL
CUANDO SE REALIZA UN
DESPLAZAMIENTO HACIA LA
DERECHA
Carlos Canto Q.
MICROCONTROLADORES
Asignaci Asignaci n de terminales para un m n de terminales para un m dulo LCD de 2X16 dulo LCD de 2X16
caracteres caracteres
Asignacin de pines
en distribucin vertical
Asignacin de pines en distribucin horizontal
Carlos Canto Q.
MICROCONTROLADORES
INICIALIZACI
INICIALIZACI

N DEL LCD
N DEL LCD
EL LCD debe ser reinicializado para que
opere correctamente.
Esta operacin se puede realizar de
una de dos formas:
Por circuito interno
Por Programa
Carlos Canto Q.
MICROCONTROLADORES
INICIALIZACI INICIALIZACI N DEL LCD N DEL LCD
POR EL CIRCUITO INTERNO DE RESET
Los controladores de Hitachi se inicializarn de manera
automtica si durante el encendido conseguimos que la
tensin de alimentacin suba desde 0.2V hasta 4.5V en
un tiempo comprendido entra 0.1 y 10ms.
Igualmente el tiempo de desconexin debe ser como
mnimo de 1 mS antes de volver a conectar.
4.5 V
0.2 V
0.1 ms < trcc < 10ms
tOFF > 1ms
0.2 V 0.2 V
Carlos Canto Q.
MICROCONTROLADORES
INICIALIZACI INICIALIZACI N DEL LCD N DEL LCD
POR PROGRAMA
Si la conexi Si la conexi n de la alimentaci n de la alimentaci n no n no reune reune las las
condiciones que exige el m condiciones que exige el m dulo LCD,(que es lo m dulo LCD,(que es lo m s s
probable) habr probable) habr a que realizar la secuencia de inicializaci a que realizar la secuencia de inicializaci n n
por software. por software.
Esta consiste en enviar una serie de comandos de los Esta consiste en enviar una serie de comandos de los
descritos anteriormente y esperar un determinado tiempo. descritos anteriormente y esperar un determinado tiempo.
En cualquier caso, es importante enviar al LCD la primera En cualquier caso, es importante enviar al LCD la primera
instrucci instrucci n de trabajo despu n de trabajo despu s de que hayan transcurrido s de que hayan transcurrido
15 15 ms ms, para completar dicha secuencia de inicializaci , para completar dicha secuencia de inicializaci n. n.
PASOS PARA LA INICIALIZACIN DEL LCD EN MODO 8 BITS
Carlos Canto Q.
MICROCONTROLADORES
Carlos Canto Q.
MICROCONTROLADORES
PASOS PARA LA INICIALIZACIN POR PROGRAMA EN MODO 4 BITS
SIN CHEQUEO DE BF
Aplicar VCC
Espera > 15 ms
FUNCTION SET (Modo de 8 bits)
Espera > 4.1 ms
FUNCTION SET (Modo de 8 bits)
Espera >100 s
FUNCTION SET (Modo de 8 bits)
Espera > 4.1ms
FUNCTION SET (Modo 4 bits)
Espera > 40 s
FUNCTION SET (Modo 4 bits, una o dos lneas y la
fuente que se desee )
Espera > 40 s
Display OFF (Apagar pantalla, quitar cursor)
Espera > 40 s
DISPLAY CLEAR
Espera > 1.64ms
ENTRY MODE SET (Configurar desplazamiento de
pantalla/cursor )
Espera > 40 s.
La inicializacin ha sido completada.
Carlos Canto Q.
MICROCONTROLADORES
INICIALIZACIN POR INSTRUCCIN EN MODO 4 BITS
INICIALIZACIN POR INSTRUCCIN EN MODO 4 BITS
POWER ON
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 0
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 0
0 0 N F * *
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
1 0 0 0 0 0
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
0 0 0 I/D S 1
fin de
inicializacin
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0
0 0 0 0
0
0 1
Espera>15ms
Espera>4.1ms
Espera>100s
Espera>4.1ms
Espera>40s
Espera>1.64ms
Espera>40s
Espera>40s
Espera>40s
INICIALIZACIN DEL MDULO LCD HD44780 EN MODO 4 BITS SIN
CHEQUEO DE BF
MICROCONTROLADORES
DISPLAY LCD
Carlos Canto Q.
RsIR
RsIR
AFUNC_SET_8
AFUNC_SET_8
A CLEAR_LCD
A CLEAR_LCD
CARGA_LCD
CARGA_LCD
Power on
ESPERA 4.1 ms
ESPERA 4.1 ms
ESPERA 15ms
ESPERA 15ms
CARGA_LCD
CARGA_LCD
ESPERA 1.64 ms
ESPERA 1.64 ms
AFUNC_SET_8
AFUNC_SET_8
ESPERA 100s
ESPERA 100s
AFUNC_SET_8
AFUNC_SET_8
AFUNC_SET_4
AFUNC_SET_4
ESPERA 40 s
ESPERA 40 s
AFUNC_SET_4X2
AFUNC_SET_4X2
ESPERA 40 s
ESPERA 40 s
ADISPLAY_OFF
ADISPLAY_OFF
ESPERA 40 s
ESPERA 40 s
ESPERA 40 s
ESPERA 40 s
CARGA_LCD
CARGA_LCD
ESPERA 4.1 ms
ESPERA 4.1 ms
CARGA_LCD
CARGA_LCD
CARGA_LCD
CARGA_LCD
CARGA_LCD
CARGA_LCD
CARGA_LCD
CARGA_LCD
A ENTRY_MODE_SET
A ENTRY_MODE_SET
CARGA_LCD
CARGA_LCD
Fin de inicializacin
Fin de inicializacin
Carlos Canto Q.
MICROCONTROLADORES
Espera
15 ms
Espera
15 ms
Power on
Power on
Inicializar
LCD
Inicializar
LCD
Leer
Teclado
Leer
Teclado
Leer caracter de
Mensaje de la
memoria
Leer caracter de
Mensaje de la
memoria
Desplegar
caracter
Desplegar
caracter
Diagrama de flujo del programa principal
Diagrama de flujo del programa principal
El objetivo del programa es, que al oprimir
una tecla del teclado matricial, se despliegue
en el LCD el mensaje de 32 caracteres
correspondiente a la tecla oprimida
El objetivo del programa es, que al oprimir
una tecla del teclado matricial, se despliegue
en el LCD el mensaje de 32 caracteres
correspondiente a la tecla oprimida
Descripcin del programa:
Fin de
mensaje
=?
Fin de
mensaje
=?
no
si
Fin de
Lnea 1
=?
Fin de
Lnea 1
=?
Pasa_linea2
Pasa_linea2
si
no
INICIALIZACIN DEL MDULO LCD HD44780 EN MODO 4 BITS SIN
CHEQUEO DE BF
MICROCONTROLADORES
DISPLAY LCD
Carlos Canto Q.
ENTRY_MODE_SET EQU 04h ; No desplaza el display
FUNC_SET_8 EQU 30h ; Seleccin de bus de 8 bits
CLEAR_LCD EQU 01h ; limpia el display
FUNC_SET_4 EQU 20h ; Seleccin de bus de 4 bits
FUNC_SET_4x2 EQU 28h ; Seleccin de bus de 4 bits , 2 lneas, 5x7
DISPLAY_OFF EQU 08h ; Apaga el display y cursor
IR EQU 0h ; seleccin del registro de instruccin
DR EQU 1h ; seleccin del registro de datos
BUS EQU P1
Asignacin de smbolos a las cdigos de operacin del mdulo LCD
Carlos Canto Q.
MICROCONTROLADORES
Rutina generadora de retardos
(ESPERA)
R2 N0
R2 N0
R2=0
?
R2=0
?
Ret
Ret
R3 R3-1
R3 R3-1
R2 R2-1
R2 R2-1
R3=0
?
R3=0
?
ESPERA
ESPERA
PROGRAMA FUENTE
MOV R3,#N1
LCALL ESPERA
.
.
.
.
;Subrutina ESPERA
ESPERA_40:
DELAY: MOV R2,#N0
AQU: DJNZ R2,AQU
DJNZ R3,DELAY
RET
NO
NO
SI
SI
Antes de invocar a esta subrutina se debe
cargar R3 con el correspondiente N1
Antes de invocar a esta subrutina se debe Antes de invocar a esta subrutina se debe
cargar R3 con el correspondiente N1 cargar R3 con el correspondiente N1
Carlos Canto Q.
MICROCONTROLADORES
CLCULO DEL RETARDO GENERADO POR LA RUTINA DELAY
(>=40s)
C C LCULO DEL RETARDO GENERADO POR LA RUTINA DELAY LCULO DEL RETARDO GENERADO POR LA RUTINA DELAY
(>=40 (>=40 s) s)
2s R3 R3 24 DJNZ R3,DELAY
2S 1 24 RET
2s(R2xR3) R2xR3 24 DJNZ R2,AQUI AQU:
1S ( R3 ) R3 12 MOV R3,#N0 DELAY:
t ttotal total
# de ejecuciones # de ejecuciones # de T # de T Mnem Mnem nico nico Etiqueta Etiqueta
Si suponemos que ; fosc=12 Mhz T=(1/12)s
t tTOT TOT= [1R3+ = [1R3+2R2xR3 2R2xR3+2R3 +2] +2R3 +2] s s =[ =[2R2xR3 2R2xR3+3R3+2] +3R3+2] s s
R3(2R2+3) = R3(2R2+3) = t tTOT TOT- -2 ; 2R2+3=( 2 ; 2R2+3=(t tTot Tot- -2)/ 2)/R3 R3 R2 R2 = [( = [(t tTOT TOT- -2)/2R3] 2)/2R3]- -3/2 ; 3/2 ;
si si R3=1 R3=1 para para t tTOT TOT=50 =50 s s entonces calculamos entonces calculamos
N0=[(50 N0=[(50- -2)/2] 2)/2]- -1.5=22.5~23 tenemos que para conseguir un retardo 1.5=22.5~23 tenemos que para conseguir un retardo
> de 40 > de 40 s s R2=23 R2=23
Carlos Canto Q.
MICROCONTROLADORES
CLCULO PARA OBTENER EL RETARDO >= 4.1 mS C C LCULO PARA OBTENER EL RETARDO >= 4.1 LCULO PARA OBTENER EL RETARDO >= 4.1 mS mS
R2=[( R2=[(t tTOT TOT - -2)/2R3] 2)/2R3]- -3/2 ; ya que R2=23 3/2 ; ya que R2=23 para para t tTOT TOT=50 =50 s s
Despejando R3, tenemos que: Despejando R3, tenemos que:
R3=( R3=(t tTOT TOT- -2)/(2R2+3) ;sustituimos 2)/(2R2+3) ;sustituimos t tTOT TOT= 4.5 = 4.5 ms ms= 4500 = 4500 s s
y R2=23 y R2=23
Tenemos que: R3= 4498/[2(23)+3]=4498/49=91.8 ~92 Tenemos que: R3= 4498/[2(23)+3]=4498/49=91.8 ~92
Finalmente con: Finalmente con:
R2=23 R2=23 y y R3=92 R3=92 obtenemos un retardo > de 4.1 obtenemos un retardo > de 4.1 ms ms
Carlos Canto Q.
MICROCONTROLADORES
CLCULO PARA OBTENER EL RETARDO >= 100S C C LCULO PARA OBTENER EL RETARDO >= 100 LCULO PARA OBTENER EL RETARDO >= 100 S S
R3=( R3=(t tTOT TOT- -2)/(2R2+3) ;sustituimos 2)/(2R2+3) ;sustituimos t tTOT TOT=100 =100 s s
Tenemos que: R3= 98/49 =2 Tenemos que: R3= 98/49 =2
Finalmente con: Finalmente con:
R2=23 R2=23 y y R3=2 R3=2 obtenemos un retardo > de 100 obtenemos un retardo > de 100 s s
Carlos Canto Q.
MICROCONTROLADORES
CLCULO PARA OBTENER EL RETARDO >= 1.64mS C C LCULO PARA OBTENER EL RETARDO >= 1.64mS LCULO PARA OBTENER EL RETARDO >= 1.64mS
R3=( R3=(t tTOT TOT- -2)/(2R2+3) ;sustituimos 2)/(2R2+3) ;sustituimos t tTOT TOT=1,640 =1,640 s s
Tenemos que: R3=1638/49 =33.43~34 Tenemos que: R3=1638/49 =33.43~34
Finalmente con: Finalmente con:
R2=23 R2=23 y y R3=34 R3=34 obtenemos un retardo > de 1.64 obtenemos un retardo > de 1.64 m ms s
Carlos Canto Q.
MICROCONTROLADORES
CLCULO PARA OBTENER EL RETARDO >= 15 mS C C LCULO PARA OBTENER EL RETARDO >= 15 LCULO PARA OBTENER EL RETARDO >= 15 mS mS
Si cargamos R3 con 180 Si cargamos R3 con 180
Tenemos que : Tenemos que :
t tTOT TOT=[R3(2R2+3)+2] =[R3(2R2+3)+2] s s= 180(49) +2=8822 = 180(49) +2=8822 s s
t tTOT TOT=8.822ms =8.822ms
Por lo tanto si invocamos 2 veces esta subrutina Por lo tanto si invocamos 2 veces esta subrutina
obtenemos un retardo de obtenemos un retardo de 17.644 17.644 ms ms > 15ms > 15ms
Carlos Canto Q.
MICROCONTROLADORES
SUBRUTINA DE CARGA_LCD
(ESCRIBIR A REGISTROS IR Y DR)
RsC
RsC
EN 1
EN 1
BUS A
BUS A
EN 0
EN 0
Ret
Ret
CARGA_LCD
CARGA_LCD
SUBRUTINA CARGA_LCD
RS EQU P2.0
EN EQU P2.1
BUS EQU P0
CARGA_LCD: CLR EN ; poner EN a cero
MOV RS, C ; seleccin deregistro IR o DR
SETB EN ; poner en alto enable
MOV BUS, A ; escribe dato/instruccin alto al LCD
CLR EN ; bajar Enable
SWAP A ; intercambiar Ah y Al
SETB EN
MOV BUS, A ; escribe dato/instruccin bajo al LCD
CLR EN
RET
SUBRUTINA CARGA_LCD
RS EQU P2.0
EN EQU P2.1
BUS EQU P0
CARGA_LCD: CLR EN ; poner EN a cero
MOV RS, C ; seleccin deregistro IR o DR
SETB EN ; poner en alto enable
MOV BUS, A ; escribe dato/instruccin alto al LCD
CLR EN ; bajar Enable
SWAP A ; intercambiar Ah y Al
SETB EN
MOV BUS, A ; escribe dato/instruccin bajo al LCD
CLR EN
RET
EN LA BANDERA C SE CARGA LA SELECCIN DEL REGISTRO DEL LCD (
RS) Y EN EL REGISTRO A SE CARGA LA INSTRUCCIN O EL DATO A
ESCRIBIR AL REGISTRO SELECCIONADO
EN 1
EN 1
BUS A
BUS A
EN 0
EN 0
AH <--> AL
AH <--> AL
Carlos Canto Q.
MICROCONTROLADORES
LOCALIZACIN DE LOS MENSAJES EN LA MEMORIA EPROM
El rea de la memoria EPROM,
asignada a los mensajes, est
formada por 16 mensajes de 32
caracteres (bytes) cada uno,
ocupando un total de
16X32=512 bytes.
Se podra usar, por ejemplo, de
la direccin 400h a la 5FFh
El mensaje a desplegar en el
LCD, se selecciona dependiendo
de la tecla que se haya oprimido.
MENSAJE 1
MENSAJE 1
MENSAJE 0
MENSAJE 0
PROGRAMA
PROGRAMA
MENSAJE 15
MENSAJE 15
MENSAJE 8
MENSAJE 8
MENSAJE 7
MENSAJE 7
0000
0400H
041FH
0420H
04E0H
04FFH
043FH
0500H
051FH
05FFH
05E0H
DPTR400H
DPTR400H
DPTR500H
DPTR500H
8 mensajes
8 mensajes
Carlos Canto Q.
MICROPROCESADORES
DISPLAY LCD
UBICACIN DE LOS MENSAJES EN LA MEMORIA DEL
PROGRAMA
UBICACI UBICACI N DE LOS MENSAJES EN LA MEMORIA DEL N DE LOS MENSAJES EN LA MEMORIA DEL
PROGRAMA PROGRAMA
; Mensajes en ASCII a desplegar en el LCD
MENSAJES EQU 400H
ORG MENSAJES
MENSAJES: DB MENSAJE 1MENSAJE 2
DB MENSAJE 3 MENSAJE4
DB MENSAJE 5 MENSAJE6
.
.
.
DB MENSAJE15 MENSAJE16
Carlos Canto Q.
MICROCONTROLADORES
400+D0h
Distribucin de los mensajes en la memoria EPROM
Dptr400
Dptr500
400+00h
500+00h
0000
500+D0H
400+20h
400+40h
Para obtener la direccin donde empieza
un mensaje, se hace lo siguiente:
Si el valor de la tecla oprimida es
menor que 8, ( el mensaje est en el
primer segmento de mensajes)
entonces , se multiplica su valor por
20 y se le suma 400h que es el valor
del DPTR para esa regin. Por
ejemplo, si se oprime la tecla 3 la
parte baja de la direccin del
mensaje ser:
3x20H=60h por lo tanto la direccin
de inicio del mensaje 3 ser
=400h+60h=460h.
Si el valor de la tecla es igual o
mayor a 8, se le resta 8 y se
multiplica por 20h y se le suma 500h,
que es el valor asignado al Dptr para
esa regin.
Mensaje 15
Mensaje 15
Mensaje 14
Mensaje 14
Mensaje 13
Mensaje 13
Mensaje 12
Mensaje 12
Mensaje 11
Mensaje 11
Mensaje 10
Mensaje 10
Mensaje 9
Mensaje 9
Mensaje 8
Mensaje 8
Mensaje 7
Mensaje 7
Mensaje 6
Mensaje 6
Mensaje 5
Mensaje 5
Mensaje 4
Mensaje 4
Mensaje 3
Mensaje 3
Mensaje 2
Mensaje 2
Mensaje 1
Mensaje 1
Mensaje 0
Mensaje 0
programa
programa
Se carga al LCD el carcter a desplegar
Se carga al LCD el carcter a desplegar
Carlos Canto Q.
MICROCONTROLADORES
Subrutina para leer y desplegar los mensajes en el LCD: LEE_MSG
tecla >= 8?
tecla >= 8?
Dptr 500H
Dptr 500H
LEE_MSG
LEE_MSG
A A - 8
A A - 8
R2A
R2A
A @ A+Dptr
A @ A+Dptr
NO
A A*20H
A A*20H
Dptr 400H
Dptr 400H
NO
C1
C1
SI
CARGA_LCD
CARGA_LCD
RET
RET
R3=0h?
R3=0h?
A A+1
A A+1
ESPERA > 40 S
ESPERA > 40 S
R320H
R320H
R3R3-1
R3R3-1
R3=10h?
R3=10h?
R11
R11
NO
C0
C0
CARGA_LCD
CARGA_LCD
ESPERA > 40 S
ESPERA > 40 S
R11
R11
AC0H
AC0H
SI
AR2
AR2
R3 es el contador de
caracteres enviados
R3 es el contador de
caracteres enviados
Cambio de Lnea
Cambio de Lnea
Carlos Canto Q.
MICROCONTROLADORES
LEER_MSG:
; CHECAR SI LA TECLA OPRIMIDA ES >=A 8
JB ACC.3,GRUPO2
MOV DPTR,#400H
SJMP MULTI
GRUPO2: MOV DPTR,#500H
SUBB A,#8
MULTI: MOV B,#20H
MUL A,B
DE_NUEVO: MOV R2,A ; RESPALDA EL VALOR DE A
MOV R3,20H
; LEER CARCTER DEL MENSAJE
MOVC A,@A+DPTR
SETB C
LCALL CARGA_LCD
MOV R1,#01
LCALL DELAY
DEC R3
CJNE R3,#10H,FIN_LIN2
; CAMBIO A LNEA2 DEL LCD
MOV A,#0C0h
CLR C
LCALL CARGA_LCD
MOV R1.#01
LCALL DELAY
MOV A,R2
INC A
SJMP DE_NUEVO
FIN_LIN2: CJNE R3,#20H,SIG_CHR
SJMP OTRO:
RET

Anda mungkin juga menyukai