Nothing Special   »   [go: up one dir, main page]

Control LCD

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Serie/i2C LCD y Reloj

Conexionado del módulo LCD para ser controlado por conexión serie:

El PICAXE-18 puede ser el entrenador de


sistemas PICAXE-18x.

La conexión de salida del PICAXE-18 (output7)


tiene que ser directa sin pasar por el Darligton
ULN2803.

Instrucciones para el control del LCD(comandos de control):


A continuación se describen las instrucciones de control del módulo LCD. Cada código deberá
ser enviado al módulo usando la subrutina wrins. Estas instrucciones se pueden usar para hacer
los mensajes más interesantes: scroll, parpadeo, etc.
Los comandos de control tienen prefijado el código (254).

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)

Nota: “ventana” es la posición donde se mostrará el carácter

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:

Los comandos de escritura en el módulo LCD tienen prefijado el código (253).


Se debe dejar un período de espera de 1000 ms (pause 1000) entre 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

Programa TEST del Módulo LCD:


inicio:
pause 500 ‘espera para la inicialización del LCD
bucle:
serout 7,N2400, (254,128) ‘mueve cursor al principio de la primera línea
serout 7,N2400, (“Hola”) ‘presenta texto en pantalla LCD
end

Programación de mensajes predefinidos dentro del módulo LCD:

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

Visualización de mensajes predefinidos:

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

Visualización de mensajes predefinidos combinado con variables:

Es posible la combinación de la visualización de mensajes predefinidos con textos


alfanuméricos almacenados en variables. Las variables se declaran precedidas del símbolo #,
por ejemplo: #b1.

Veamos un ejemplo de combinación de ambos métodos de visualización. Visualizaremos el


resultado alcanzado por dos jugadores de los que se les ha definido un mensaje previo
“player1=” como mensaje (1) y “player2=” como mensaje (2). Las variables que indican la
puntuación alcanzada por cada jugador se almacenarán en b1 y b2 respectivamente. El código
del programa quedaría de la siguiente forma:

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

Visualización de caracteres especiales:

La aplicación Programming Editor contiene un wizard (asistente) que permite la creación de


caracteres definidos por el propio usuario. Veamos como se utiliza:

1. Seleccionar el wizard en el menú:


PICAXE → Wizards → Axe033 Serial
LCD.
2. Aparecerá un editor de caracteres de
forma que se dibujará el carácter a crear
mediante el clic en la casilla
correspondiente. También deberemos
indicarle el pin de salida (en este módulo
es el 7) y la dirección de la CGRAM.
3. Por último hacer clic en Copy preload
data para copiar el código generado en el
portapapeles de Windows (también lo
pega directamente sobre la pantalla de
edición del código).

Funcionamiento del reloj/alarma:

El módulo LCD controlado por i2C se puede


utilizar como reloj/alarma pero deberemos
añadirle:
• Una pila de Litio de 3V.
• DS1307 (C.I. reloj en tiempo real).

Instrucciones de montaje:

1. Colocar el DS1307 en el zócalo de 8 pines destinado para su conexión. Tener


cuidado con la disposición del mismo.
2. Colocar la pila de litio de 3V en su alojamiento con la cara positiva hacia arriba.

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

Input/output Power conexiones:

Main header (V+, 0V):

Se conectará la alimentación principal del módulo (5-6V DC).


Si se desea conectarlo a 4,5V se debe colocar un puente en J2
(power). Este puente cortocircuita el diodo de protección de
tensión D1, dado que como tiene una caída de tensión de 0,7V
que podría poner la pantalla muy oscura con una tensión
inferior a 4,5V.

Main header (SDA and SCL):

É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.

Main header (OUT):

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.

Pulse Output (PLS):

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.

Clock Jumper (CLK):

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.

Resonador Tuning (RST):

Entrada para calibración del oscilador interno.

5/10
Serie/i2C LCD y Reloj

Programación de la hora del módulo LCD:


Para configurar la hora del reloj del módulo se deberá utilizar un pequeño programa que se
cargará a un PICAXE. A continuación se muestra la estructura del programa. Una vez se envié
el programa al módulo la pila de litio mantendrá la hora exacta durante 10 años. En el ejemplo
se configurará el reloj para las 22:00 del 25/11/01. La carga se efectuará con la instrucción de
escritura (253), seguida por la dirección de memoria del reloj (0), la fecha y la hora (”25/11/01
22.00 “):

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.

Ajuste de la alarma a un tiempo específico:

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

Ajuste de la alarma en un intervalo de tiempo:

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

Para configurar la alarma cada 30 segundos:

inicio:
pause 500

ajuste:
serout 7,N2400, (253,9,”00:00:30 ”)
pause 1000
end

Para configurar la alarma cada 2 horas:

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:

Crear un programa para poner en hora el reloj y que muestre la hora.

Práctica 2:

Crear un programa que visualice la temperatura en el LCD

‘**************************
‘***** Termómetro **********
‘**************************

inicio:
readtemp 1,b1
pause 500
serout 7,N2400, (254,128)
serout 7,N2400, ("Temperatura:",#b1," C")
goto inicio

10/10

También podría gustarte