Control LCD
Control LCD
Control LCD
Conexionado del módulo LCD para ser controlado por conexión serie:
Código Instrucción
1 Borrar display y poner cursor al principio de la primera línea
2 Mueve el cursor y muestra la ventana en principio de primera línea
4 Modo de escritura de derecha a izquierda
5 Escritura en modo scroll hacia la izquierda
6 Modo de escritura de izquierda a derecha
7 Escritura en modo scroll hacia la derecha
10 Apaga el display del LCD
12 Oculta el cursor
13 Cursor parpadea intermitentemente
14 Enciende el display y el cursor
16 Mueve el cursor una posición a la izquierda
20 Mueve el cursor una posición a la derecha
24 Scroll de la ventana una posición a la izquierda
28 Scroll de la ventana una posición a la derecha
128 Mueve el cursor al principio de la primera línea
192 Mueve el cursor al principio de la segunda línea
y Mueve en la línea 1, posición x (y = 128+x)
y Mueve en la línea 2, posición x (y = 192+x)
Caracteres:
Código Instrucción
0 Time (fecha/hora)
1-7 Mensajes predefinidos
8-128 ASCII caracteres (ver anexo A)
129-252 Caracteres varios (dependen del tipo de LCD)
253 Comando especial: escritura en memoria
254 Comando especial: comando carácter
255 Reservado para futuros usos
1/10
Serie/i2C LCD y Reloj
Comandos de escritura:
Código Instrucción
0 Set clock time
1-7 Set mensajes predefinidos 1-7
8 Set alarma (date/time)
9 Set alarma (intervalo)
10 Turn alarma off
El módulo admite la programación de hasta 7 mensajes (1..7) de 16 caracteres cada uno. Estos
mensajes quedarán almacenados aunque se desconecte el módulo LCD.
Los mensajes se defines de la forma (1), (2),…(7).
Los mensajes 1, 3, 5 y 7 se muestran en la línea 1 del display.
Los mensajes 2, 4 y 6 s muestran en la línea 2 del display.
La carga del mensaje en el módulo se realiza mediante el comando (253), seguido de la
dirección de memoria y el propio mensaje.
Ejemplo:
inicio:
pause 500
bucle:
serout 7,N2400, (253,1,”Jugador1= “)
pause 1000
serout 7,N2400, (253,1,”Jugador2= “)
pause 500
goto bucle
Se pueden visualizar los mensajes que previamente fueron definidos solo basta con enviar su
código del mensaje (1)..(7).
Si se van a visualizar más de un mensaje es necesario hacer una pausa de 10ms (pause 10) entre
mensaje y mensaje con el fin de poder hacer la carga de la memoria interna del LCD.
2/10
Serie/i2C LCD y Reloj
Ejemplo:
inicio:
pause 500
bucle:
serout 7,N2400, (1)
pause 10
serout 7,N2400, (2)
pause 500
goto bucle
inicio:
pause 500
bucle:
serout 7,N2400, (1)
pause 10
serout 7,N2400, (254,137,#b1,” “)
serout 7,N2400, (2)
pause 10
serout 7,N2400, (254,201,#b2,” “)
let b1 = b1 + 1
let b2 = b2 + 1
pause 500
goto bucle
Nota:
Notar que los mensajes con código (1 o 2) son los primero que se visualizan. Posteriormente se
produce un retardo de 10 ms (pause 10). Por último se visualizará el resultado almacenado en
las variables (#b1 o #b2). El valor a visualizar, almacenado en las variables, deberá hacerse en
una posición determinada (posterior al mensaje, 9 caracteres). Para #b1 será: (254,137) o sea
128+9 y para #b2: (254,201) resultado de 192+9.
También se le añaden dos espacios con el fin de que en la siguiente escritura sobrescriba la cifra
antior con espacios para no ser visualizados (caso de que la cifra anterior tenga más dígitos que
la actual).
3/10
Serie/i2C LCD y Reloj
Instrucciones de montaje:
Nota:
La pila de litio conserva el reloj DS1307 funcionando cuando el suministro de energía principal
no está conectado. Esto garantiza el tiempo preciso dentro del módulo. La pila de litio no da
energía a la pantalla de cristal líquido o a la salida de pulsos. La duración de la pila está
estimada en 10 años.
4/10
Serie/i2C LCD y Reloj
Éstas son las conexiones del modo de trabajo del i2C. Solo pueden usarse cuando un puente ha
sido soldado en J1 para colocar el módulo en modo i2C.
Salida de la alarma. Cuando se acciona pone a nivel alto la salida OUT durante 5 segundos.
Puede conectarse cualquier dispositivo cuyo consumo no supere los 20mA.
La salida PLS entrega una onda cuadrada de 1 Hz (1 pulso por segundo) cuando el reloj
opcional DS1307 está conectado. Unas resistencias de 330 Ω están conectados en la placa para
permitir a un LED conectarlo directamente y producir una señal intermitente. La corriente de
salida máxima es de 20 mA.
Si se elige esta opción el módulo se pone en funcionamiento como reloj (CLK). Durante este
modo las instrucciones no pueden ser enviadas por conexión serie. La salidad de pulsos y
alarma funcionan con noralidad. En la pantalla del LCD se mostrará en tiempo en todo
momento, cuando la alimentación principal está conectada.
LCD Backlight (LCD) (El LCD del modulo no tiene luz de fondo):
Si el LCD dispone de luz de fondo se puede ajustar la iluminación. Se debe soldar los
conexiones “A” y “K” del LCD a la placa y añadir una resistencia en RB del valor indicado en
el Datasheet del fabricante del LCD.
5/10
Serie/i2C LCD y Reloj
inicio:
pause 500
ajuste:
serout 7,N2400, (253,0,”25/11/01 22:00 ”)
pause 1000
end
Nota:
La fecha y la hora se deben configurar exactamente como se muestra, usando el formato de hora
de 24 horas: dd/mm/aa hh:mm. Los mensajes de escritura siempre deben ser de 16 caracteres de
longitud, por ello se le debe agregar a la configuración dos espacios en blanco para llegar a los
16 caracteres. Tener en cuenta que después de cada orden de escritura se debe producir un
lapsus muerto de 1000 ms (pause 1000). El último serout muestra la fecha y hora para
comprobar que se ha configurado correctamente.
Para configurar la fecha y hora de forma exacta hacer la carga del proigrama con un minuto de
anterioridad y posteriormente resetear el PICAXE justo en el momento que se cumpla el
minuto.
Visualización de la hora:
El mensaje de Time será actualizado con la fecha/hora cada vez que se use. El mensaje se
visualizará usando el código de caracteres 0. La fecha/hora se visualizará en la segunda línea del
LCD.
El siguiente programa visualiza el mensaje 1 en la primera línea y la fecha/hora en la segunda
línea. La pantalla se actualizará cada 0,5 segundos.
inicio:
pause 500
ajuste:
serout 7,N2400, (1)
pause 10
serout 7,N2400, (0)
pause 500
goto ajuste
6/10
Serie/i2C LCD y Reloj
Programación de la alarma:
El pin de salida de la alarma se acciona (nivel alto durante 5 segundos) cuando se alcanzo el
tiempo prefijado para el disparo de la misma. La alarma puede estar configurada para mostrar
continuamente fecha/hora (código de escritura 8), o bien puede repetir la presentación
fecha/hora cada cierto tiempo (código de escritura 9).
La duración de la alarma debe estar programado en el módulo usando un pequeño programa
corriendo en un PICAXE-18 con el programa que se especifica mas adelante en el ejemplo.
Para programar el reloj registro de la alarma para las 07:30 de cada día (código de escritura 8),
usar el siguiente programa. Este programa carga la instrucción de escritura (253), seguida par la
dirección de la alarma (8) y del tiempo (“00/00/00 07:30”)
inicio:
pause 500
ajuste:
serout 7,N2400, (253,8,”00/00/00 07:30 ”)
pause 1000
end
Nota:
La fecha y la hora deben configurarse exactamente como se muestra. Se le deben añadir dos
espacios al final del texto para garantizar que el mensaje tiene 16 caracteres. También debe
tenerse en cuenta que se debe añadir un tiempo de retardo después de una orden de escritura de
1000 ms (pause 1000).
Ejemplo:
Para activar el despertador el primer día de todos los meses de todos los meses a medianoche
inicio:
pause 500
ajuste:
serout 7,N2400, (253,8,”01/00/00 00:00 ”)
pause 1000
end
7/10
Serie/i2C LCD y Reloj
Para configurar la alarma para accionarse durante un intervalo de tiempo, en lugar de un tiempo
exacto, usar el código de escritura 9 en lugar de 9. Por ejemplo, para disparar la alarma cada
diez minutos (usando código de escritura 9):
inicio:
pause 500
ajuste:
serout 7,N2400, (253,9,”00:10:00 ”)
pause 1000
end
inicio:
pause 500
ajuste:
serout 7,N2400, (253,9,”00:00:30 ”)
pause 1000
end
inicio:
pause 500
ajuste:
serout 7,N2400, (253,9,”02:00:00 ”)
pause 1000
end
Nota:
El intervalo de disparo de la alarma es configurado por el número de horas (00 a 23), minutos
(00 a 59) y segundos (00 a 59). El intervalo práctico menor es de 10 segundos, debido a los 5
segundos de duración de la salida de la alarma. Comprobar que la longitud de los textos debe
ser de 16 caracteres por lo que se le agregarán 8 espacios en blanco.
Ajuste del paro de la alarma:
Para desactivar cualquier tipo de alarma enviar el comando 10. Este comando no requiere
rellenar de espacios en blanco hasta los 16 caracteres.
inicio:
pause 500
ajuste:
serout 7,N2400, (253,10)
pause 1000
end
8/10
Serie/i2C LCD y Reloj
Anexo A:
Cuadro de caracteres memorizados en la CGRAM del módulo LCD
9/10
Serie/i2C LCD y Reloj
Anexo B:
Prácticas para el manejo del módulo LCD
Práctica 1:
Práctica 2:
‘**************************
‘***** Termómetro **********
‘**************************
inicio:
readtemp 1,b1
pause 500
serout 7,N2400, (254,128)
serout 7,N2400, ("Temperatura:",#b1," C")
goto inicio
10/10