Sei sulla pagina 1di 31

MODULOS LCD

MANEJO:
Display de cristal lquido, utilizados para mostrar
mensajes.

Permite la comunicacin entre las mquinas y los
humanos, pudiendo mostrar cualquier caracter
ASCII.

Consumen mucho menos que un display de 7
segmentos.
MODULOS LCD
MANEJO:

Existen de diferentes tipos.

- 2 lneas por 8 caracteres.
- 2 por 16.
- 2 por 20.
- 4 por 20.
- Sin backlight (14 pines).
- Con backlight (16 pines).
1 Vss Tierra de alimentacin GND.
2 Vdd Alimentacin de +5V. C.D.
3 Vo Ajuste del contraste del cristal lquido (0 a +5V)
4 RS
Seleccin del registro control/datos.
RS=0 reg. Control
RS=1 reg. Datos
5 R/W
Lectura / escritura en el LCD.
R/W=0 escritura (Write)
R/W=1 lectura (Read)
6 E/W
Habilitacin.
E=0 mdulo desconectado.
E=1 mdulo conectado.
7 D0 Bit menos significativo. (bus de datos direccional)
8 D1
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7 Bit ms significativo. (bus de datos direccional)
15 A
Alimentacin del backlight.
`+3,5V o +5V C.D. (segn especificacin tcnica.)
16 K Tierra GND del backlight
FUNCION DE CADA PIN DEL LCD
MODULOS LCD
MANEJO:

Para poder mostrar tems en una pantalla de cristal
lquido se puede utilizar la declaracin LCDOUT.

Se utiliza:

LCDOUT $FE, seguido por el comando a utilizar.
Comando Operacin
$FE,1 Limpia el visor del LCD
$FE,2 Vuelve al inicio (comienzo de la primera lnea)
$FE,$0C Apagar el cursor
$FE,$0E Sybrayado del curso activo
$FE,$0F Parpadeo del curso activo
$FE,$10 Mover el cursor una posicin a la izquierda
$FE,$14 Mover el cursor una posicin a la derecha
$FE,$80 Mueve el cursor al comienzo de la primera lnea
$FE,$C0 Mueve el cursor al comienzo de la segunda lnea
$FE,$94 Mueve el cursor al comienzo de la tercera lnea
$FE,$D4 Mueve el cursor al comienzo de la cuarta lnea
COMANDOS MAS UTILIZADOS
MODULOS LCD
Conexin con bus de 4 u 8 bits.

Tiempo de demora diferente.

8 bits todo al mismo tiempo.

La ventaja de conexin a 4 bits es los pocos cables
que se deben conectar.

Ver figura

MODULOS LCD
Algunos LCD`s no requieren de ningn PAUSE al
inicio, pero otros necesitan unos pocos
milisegundos para estar listos.

Si queremos que las palabras salgan centradas en
el LCD:
-Dando espacios antes de cada palabra.
LCDOUT $FE, 1, Hola y
LCDOUT $FE,$C0, Prueba
No recomendable por uso de espacio en el PIC.


MODULOS LCD
-O asignando el lugar donde se quiere que aparezca cada
palabra.

LCDOUT $FE, 1,
LCDOUT $FE, $86, Hola
LCDOUT $FE,$C4, Prueba
La primera instruccin limpia la pantalla y coloca el cursor
al comienzo.
La segunda pasa el cursor a la 7ma casilla de la primera
lnea y escribe.
La ltima pasa a la casilla 5 de la 2da lnea y escribe.

MODULOS LCD

Existe un cursor que aunque no se ve, esta presente, e
indica donde aparecer la siguiente letra.

Para entender el funcionamiento del LCD y las funciones
de cada comando, haremos primeramente visible el
cursor, y luego usaremos PAUSES para seguir el
funcionamiento.

Ejemplo:

MODULOS LCD

Se pueden declarar constantes a las instrucciones
utilizadas para limpiar lneas y para pasar a la segunda
lnea.

Por ejemplo $FE se puede definir como jc CON $CO se
puede definir como seglin CON y para escribir en el
programa tendremos:

LCDOUT jc, seglin, PALABRA.


MODULOS LCD

El LCD tiene una memoria RAM por lo que una vez que se
le enva texto, este permanece en pantalla y el PIC puede
ser empleado para otras tareas o puede ser desconectado.

Para configurar los pines del PIC hacia el LCD se debe
utilizar:

DEFINE LCD_DREG PORTB ; define pines del LCD B4 a B7.
DEFINE LCD_DBIT 4 ; empezando desde el puerto B4 hasta el B7.
DEFINE LCD_RSREG PORTB ; define el puerto B para conectar el bit RS.
DEFINE LCD_RSBIT 3 ; este es el puerto B3.
DEFINE LCD_EREG PORTB ; define el puerto B para conectar el bit Enable.
DEFINE LCD_EBIT 2 ; este es el puerto B2.
MODULOS LCD

Los 4 bits de datos slo se pueden configurar en los 4 bits
ms bajos, o en los ms altos.

Si se desea hacer una comunicacin de 8 bits con el LCD se
la realiza desde un solo puerto.

Se debe definir en PBP si se utiliza un bus de 8 bits o si se
utiliza un LCD de 4 lneas.


DEFINE LCD_BITS 8 ; define comunicacin a 8 bits con el LCD.
DEFINE LCD_LINES 4 ; define un LCD de 4 lneas.
CARACTER POR CARACTER EN LCD

Para enviar caracter por caracter se puede utilizar la
declaracin LOOKUP, con intervalos de 400ms.

Por ejemplo:

LOOKUP a,[PRUEBA],muestra
LCDOUT, muestra

DESPLAZAMIENTO DE TEXTO

El LCD dispone en cada una de las lneas 40 posiciones de
memoria, de las cules nicamente 16 son visibles.

Realizar un programa que desplace desde un casillero
fuera del LCD, no visible, una palabra hacia la izquierda,
obteniendo un texto en movimiento, una vez que termina
de mostrarse, recorrer 16 posiciones en blanco y volver
a aparecer.

LCDOUT $FE,$7 ; configura para desplazamiento izquierdo.
LCDOUT $FE,$90 ; ubica el cursor en la casilla 17.
CONTADOR DE PULSOS

COUNT portb.0,1000,variable.

Cuenta pulsos a travs del puerto B0 en un periodo de 1
segundo y lo guarda en una variable previamente creada,
variable WORD.

Cuenta el nmero de pulsos que entran en un pin en un
determinado tiempo.
D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
R
A
0
/
A
N
0
2
R
A
1
/
A
N
1
3
R
A
2
/
A
N
2
/
V
R
E
F
-
/
C
V
R
E
F
4
R
A
4
/
T
0
C
K
I
/
C
1
O
U
T
6
R
A
5
/
A
N
4
/
S
S
/
C
2
O
U
T
7
R
E
0
/
A
N
5
/
R
D
8
R
E
1
/
A
N
6
/
W
R
9
R
E
2
/
A
N
7
/
C
S
1
0
O
S
C
1
/
C
L
K
I
N
1
3
O
S
C
2
/
C
L
K
O
U
T
1
4
R
C
1
/
T
1
O
S
I
/
C
C
P
2
1
6
R
C
2
/
C
C
P
1
1
7
R
C
3
/
S
C
K
/
S
C
L
1
8
R
D
0
/
P
S
P
0
1
9
R
D
1
/
P
S
P
1
2
0
R
B
7
/
P
G
D
4
0
R
B
6
/
P
G
C
3
9
R
B
5
3
8
R
B
4
3
7
R
B
3
/
P
G
M
3
6
R
B
2
3
5
R
B
1
3
4
R
B
0
/
I
N
T
3
3
R
D
7
/
P
S
P
7
3
0
R
D
6
/
P
S
P
6
2
9
R
D
5
/
P
S
P
5
2
8
R
D
4
/
P
S
P
4
2
7
R
D
3
/
P
S
P
3
2
2
R
D
2
/
P
S
P
2
2
1
R
C
7
/
R
X
/
D
T
2
6
R
C
6
/
T
X
/
C
K
2
5
R
C
5
/
S
D
O
2
4
R
C
4
/
S
D
I
/
S
D
A
2
3
R
A
3
/
A
N
3
/
V
R
E
F
+
5
R
C
0
/
T
1
O
S
O
/
T
1
C
K
I
1
5
M
C
L
R
/
V
p
p
/
T
H
V
1
R
4
DC
7
Q
3
G
N
D
1
V
C
C
8
TR
2
TH
6
CV
5
5V
10K
10K
1K
10uF/25V
330
330
330
CONTADOR DE PULSOS

Como proyecto contar el nmero de pulsos que ingresan
por un pin en un determinado periodo, se visualiza en el
LCD, si la cantidad supera 120 Hz, se enciende una alarma
ROJA, si baja de 100Hz, se enciende la alarma VERDE, si
esta entre esos valores no se enciende ningn indicador.


T=1,1*R*C

F=1/T=1,44/((R1+2R2)*C)

CONTADOR DE PULSOS

La instruccin DEC muestra el nmero de la variable en
decimal.

Tambin se puede expresar como #.

LCDOUT $FE, $C5, DEC variable, Hz.
LCDOUT $FE, $C5, # variable, Hz.
LCDOUT $FE, $C5, HEX variable, Hz.
LCDOUT $FE, $C5, BIN variable, Hz.
LCDOUT $FE, $C5, variable, Hz.

LECTURA DE UN POTENCIOMETRO

La instruccin POT, sirve para leer el estado de un
potencimetro, o cualquier elemento resistivo (fotoceldas,
termistores, etc).

La ayuda de un condensador de 0,1uF est en que a mayor
resistencia el capacitor se demora ms tiempo en cargarse,
a menor resistencia se carga ms rpido. La variable nos
dar cero.

Se puede utilizar para variacin de luz o variacin la
velocidad de un motor.


D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
R
A
0
/
A
N
0
2
R
A
1
/
A
N
1
3
R
A
2
/
A
N
2
/
V
R
E
F
-
/
C
V
R
E
F
4
R
A
4
/
T
0
C
K
I
/
C
1
O
U
T
6
R
A
5
/
A
N
4
/
S
S
/
C
2
O
U
T
7
R
E
0
/
A
N
5
/
R
D
8
R
E
1
/
A
N
6
/
W
R
9
R
E
2
/
A
N
7
/
C
S
1
0
O
S
C
1
/
C
L
K
I
N
1
3
O
S
C
2
/
C
L
K
O
U
T
1
4
R
C
1
/
T
1
O
S
I
/
C
C
P
2
1
6
R
C
2
/
C
C
P
1
1
7
R
C
3
/
S
C
K
/
S
C
L
1
8
R
D
0
/
P
S
P
0
1
9
R
D
1
/
P
S
P
1
2
0
R
B
7
/
P
G
D
4
0
R
B
6
/
P
G
C
3
9
R
B
5
3
8
R
B
4
3
7
R
B
3
/
P
G
M
3
6
R
B
2
3
5
R
B
1
3
4
R
B
0
/
I
N
T
3
3
R
D
7
/
P
S
P
7
3
0
R
D
6
/
P
S
P
6
2
9
R
D
5
/
P
S
P
5
2
8
R
D
4
/
P
S
P
4
2
7
R
D
3
/
P
S
P
3
2
2
R
D
2
/
P
S
P
2
2
1
R
C
7
/
R
X
/
D
T
2
6
R
C
6
/
T
X
/
C
K
2
5
R
C
5
/
S
D
O
2
4
R
C
4
/
S
D
I
/
S
D
A
2
3
R
A
3
/
A
N
3
/
V
R
E
F
+
5
R
C
0
/
T
1
O
S
O
/
T
1
C
K
I
1
5
M
C
L
R
/
V
p
p
/
T
H
V
1
5V
10K
10K
0,1uF
TACOMETRO DIGITAL
El tren de pulsos no es generado por un 555, sino por el
giro de un motor.


La seal que llega desde el motor hacia los transistores, se
puede conectar al PIC y visualizarlo en el LCD.


La variable que utilicemos debe ser multiplicada por 60,
para que nos muestre el nmero de vueltas que dara en
un minuto.
TACOMETRO DIGITAL
Si se desea mayor precisin, se puede multiplicar por 30,
asegurando la declaracin COUNT para conteos durante
dos segundos, por ejemplo:

COUNT portb.0,2000,revoluciones ; contar pulsos
; en el puerto
; B0 durante 2
; segundos.
revoluciones = revoluciones * 30 ; multiplicar
; por 30 para
; tener 1
; minuto.
TACOMETRO DIGITAL
Lo ptimo es hacer que la declaracin COUNT cuente
durante un minuto.

COUNT portb.0,6000,revoluciones ; contar pulsos
; en el puerto
; B0 durante 60
; segundos.
Lo recomendable es contar pulsos de 2 a 5 segundos.
revoluciones = revoluciones * 12 ; multiplicar
; por 12 para
; tener RPM.
TACOMETRO DIGITAL
MATERIALES:
- 1 LCD 2x16.
- 1 resistencia de 100 ohmios.
- 1 resistencia de330 ohmios.
- 1 resistencia de 1K.
- 1 resistencia de 4,7K.
- 1 potencimetro de 10 K.
- 1 eje de giro independiente con un disco de plstico
negro.
- 1 optoacoplador ECG3100 con salida de transistor NPN.
EJERCICIOS

1. En la pantalla de un LCD haga que aparezca
intermitentemente la palabra 3eroElectrnica.

2. Con un LCD y tres pulsadores, P1, P2 y P3 haga un
teclado alfabtico que presente mensajes a su gusto en el
LCD de la siguiente manera: con P2 haga que aparezca el
alfabeto desde la A hasta la Z, con el pulsador P3 haga
desplazar el cursor hacia la derecha para seguir
escribiendo, y P1 hace que el cursor regrese hacia la
izquierda para corregir el texto.