Sunteți pe pagina 1din 12

186 MICROCONTROI.,{DOR PIC16F84.

DESARROLLO DE PRO}ECTOS
'li
display se visualizaran las cantidades:5,4,3,2, I,0,5,4,3,..' Si ffi la entada *. 1..:ff
cantidad mayor de 9 o un 0 se elrcendeni tinicamente el punto decimal. '
-ti$ .ffi
-_.,is;$i
Retard a lZ.nsrn: Si el bit 0 del puerto de entrada es "0" l6gico por el displffi
visr:alizard un
"ootudo,
desce,ndente (g,8,7,6, 5,4,3,2, !,0, 9,
")
con una cadenciatd$
0,5 s aproximadamente, Si es "l" por el display se visualizard un contador ascexdente''iff
L,7,3; 5, 6,7,8, 9, 0, 1, 2, ..) con una cadencia de 0,5 s.
','fx$
Retardo 13.asm: Por la barra de LEDs conectada al puerto de salida se visudi2f;
un juegos de luces con la secuencia que el lector dete,rrrine. La velocidad del movimientii
r"rl njuau por ia lectura de las tes lineas conectadas al puerto A" de manera qli6;$
visuaiice cada pesici6n durante un tiempa:
CAPITT]LO T3
LCN
Si
PORTA):O,
cada poslcton
(Apagado).
Si
pORTA):1, cada posici6n
aproximadamente.
Si (PORTA):2, cada pcrsicion
aproximadarnente.
y asi sucesivamente hasta...
Si
pORTA):7, cada posicion
aproximadamente.
se rrisualiza
se visualiza
se visualiza &rante
se visualiza dwante
0x100ms_0
2 x 100 nls-
7x100ms=
Pulsador 01.asm: Por el display apuece.ra las veces que se activa el puisaCiffi
conectado al pin RA4. Cuando llegue a 10 la cuenta se reseteard y comenzar| de nuffi
Debe haber un pequeflo tiempo de terrporizaci6n que evite ei efecto rebote del pulsadoi$fi
(IIay que aseguruse que el intem4tor que est6 en paraleio con el pulsador no rq$
cenado).
Pulsador-02.asm: Mientas se manlenga activado el pulsador del pin Ma, en"e$
diqplay contar6 de 0 a 9 continuamente, mantenidndose 200 ms en cada valor. Cuando$
deje de estar pulsador permanecer6 el ultimo valor visualizadb. (Asegurarse que.!
rntemrptor que estS en paralelo con el pulsador no est6 cerado)"
mantenga activado un pulsador del pin R:{4. el display contar6 de I a 6 continuanrepjrffi
mantenidndose un instante en cada valor. Cuando deje de estar pulsador permanecuA e1.j
riltimo valor visralizado. En este caso no es imFortante el terra de los rebotes. (ttuy qoej
asegurarse que el intemrptor que est6 en paralelo con el pulsador no est6 cenado).
'i",lg
.$
W$IJALIZADOR LCD
Figura l3-L4specto de ury m6clulo LM0I6L
188 MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS
Distintos fabricantes ofrecen multitud de versiones de visualizadores de cristai
liquido. El modelo utilizado en este libro es el LM016L, que es un m6dulo LCD de dri$
lineas de 16 caracteres
gsds rrna. Su f6cil manejo 1o hace ideal para dispositivos que
necesitan una capacidad de lisualizaci6n pequefia o media. Las caracteristicas genqalsff
cie un m6dulo LM016L son:
.
Consumo nnuy reducido, del orden de 7
,5
mW.
r
Pantalla de caracteres ASCII, adem6s de los caracteres
caracteres griegcs y sirnboios matemfticos.
G
Desplazamiento de los caracteres hacia la izquierda o a la derecha.
l
Memoria de 40 caracteres por hnea de pantalla, visuaiizandose 16
trinea.
.
Movirnionto del cursor y carnbio de su aspecto.
r
Pennite que el usuario pilede programar ocho caracteres.
c
Fueden ser gobemados de dos formas pnncipaies:
I
c Conexi6n con bus de 4 bits.
o Ccnexi6n con bus de 8 bits.
:
I-o
$rc
a continuacion se explica se refiere a1 modelo LM016L y con
vaiaciones es tarnbidn vdiido para cualquier otro.
T3.2 PATILLAJT
13-5. Las Lineas del bus datos son tiestacios y pas'an a estado de alta impedan.tu
"o*6o,61,ffiS:;r,.l
LCD no esle habilitado.
C LMu16L C
111312 1110 s I 7 6 5 1 3 2 i
Figura I3-2 Patillaje del LCD LM0I6L
Japoneses
E1m6drrloLM016Ltienei4pinesdescritosenlafigurai3-2ytabla',-'.'e1;:':.
conecta fiicihnente a cualquier sistema microcontolador, tal como se muesta en U ngura'$ffif+;{ 3,3
'
DDRAM
CAPITULO 13: LCD 189
'
La alimentacion es de + 5V. I-a regulacion de contmste se reahtza mediante ei
*iitaie
obtenido
al dividir los 5 V con una resistencia ajustable de l0 k y apiicrinelo al pin
T:=a-' i
--,ir--t-c----1..
F-,-1--,-- , r:.: r- :r alr
tJ!,'"*"-1":*:"t:ix1t"?i;-t*ry::"*:ni:::-:g*i'resistenciaajustabre
[f*6oo6ta
Vrc a masa fijando el mdximo contaste pennanentemente.
:D80....D87
.ii
Data Bus 7 .. ..14 Bus de Datos.
tr
t-t Enable 6
E:0, LCD no habilitado.
E:1, LCD habiiitacio.
'-': ' il
..'.''
::+
,RAff ReadMrite 5
R/W:0, escribe en LCD.
R/W:l, lee del tr CD.
.RS
Register Select 4
R/S:0, Modo Comando.
RIS:I' Modo Car6cter.
Vrc
Liquid Crystal driving
Voltage
3
Tension paraajustar el
confraste.
jvoo
Power SuWly Voltage 2
Tensi6n de alimentaci6n,
+5V
Vss Groand 1 Masa.
Tabla I3-l Funcion de los pines en Lffi LML\6L
ffin::r'
' El LM016L posee rma zona de memoria RAM llamada DDRAM
@an'Displ,
isptry
It Yry
donde se almacT-.]ot caracteres que sepuedbn rgprese,rtar. Tienc una.capacidad
':i;frrffift,8O
bytes, 40 por cada linea, de ios cuales s6lo 32 se pueden visualizar alavez (16
idisos ASCII de los caracteres
en pantalla y existe una coffespondencia enfe las filas de ia pantalla y las
b
4
q
,
: :',
5i,,,ffi;::i.rr_i,
p 0,"\ici ones consecutivas de mgmoria.
, 1ilgffi*;;;'t': ,' ,
-
00 01 02 03 a4 05 06 07 08 09 OA OB OC ooiorjor 10 11 12
40 41 12 43 44 45 46 47 48 4e 4A 4B 4C aoi+=l+r 50 51 52
l'.G$:g*i.l,1
;S,ftIiFE.', La DDRAM tiene un tamafio de 80 bytes (40 en cada fila), de los cuales se visualizan 32
rr.
,Fl
'intre
I3-3 DDRAlvt
W
ffi
)lo4lbslbblb/l
<-FILA O
<_FILA 1
F- (o lO'<l C) C\
-
O
88888888 vss
',gur,
190 MICROCON]ROLADOR PIC16F84. DESARROLLO DE PROYECTOS
I
De las 80 posibles, ias dos direcciones m6s importantes de la DDRAI\4 son:
o
Direcci6n 00h, que es el comienzo de la primera linea.
r
Direcci6n 40h, que es el coiffiierwo de la segunda linea.
Cada vez que se escribe un dato en la DDRAM autornAticamente
siguiente posici6n, donde se realizar6La escritura del proxirno caricter.
. ..:...;__.i
se apunta a:l[i
CAPITIILO 13: I-CD 191
CARACTERES DEFINIDOS EN LA CGROM
f.Ulttpto,
para visualizar el carScter "A" el LCD debe recibir por su bus de datos el c6digo
llidtto,
octer Generatar RAITqI) -
caracteres de usuaria, ilo incluidos en su
una zona de RAN{ denominada CGRAM
ffimrs,',MODCIS
DE FUNCIONAMIENT0
pjii:ri:-i1":.:.-ii'.-: .
il".+ii-.
":
_-
[f,rfi.,
Tambidn
permite definir ocho nusvos
$#6iA
ioterna.
Estos caracteres se guardan en
:!;-;-.-1- =:-
i*',-
:
El LM016t, tiene fes modos de funcionamiento principales:
i:. :l:1,,;
-i..,-'-
,
{. i !r. .:r,-. -a!._'
!1r,,-.'
, -uI LrYruIUl-,.Lltrug uE5 IIIULIUI' u$ IUIIUTUIIAU.UCrrLU Urlrt"lualltrS.
.'.''..'.'.).I1. .:
#";"
i:.rj-. Modo Comando. Cuando por el bus de datos el LCD recibe insfrucciones como
fil i:'-
ffi,:1.
:
"Borrar Dispiay", "Mover Cursot'', "Desplazar a izquierda", etc' Pard'tabajar en
ffi:#:-'
ffi.,*.']-:.
modo comando, el pin RS debe estar a "0". EI pin RIW tambi6n debe ser "0" para
$=lt-
' indicar que se estii realizando una operaci6n de escrihra. Una operaci6n en este
ei . t ,:r.
15;';;'' ,, ilrodo tarda un mixirno de i,64 ms.
Modo Carrlcter 0 Dato" Cuando por el bus de datos ei visualizaCor LCD recibe
Irn cardcter a escribr en la DDRAM. Es decir, cuando se envia altcD el caracter
ASCII avisualrzar. Para trabajar en este modo, el pin RS debe estar a"I". El pin
R/W debe ser "0" para indicar que est6 reaiizando una operasi6n'de escritura.
Tambidn se le puede llamar "modo carActerl? o "modo registro]'. Una operacion
en este modo tarda un m6ximo de 40 ps.
Modo trecfura del
"Basy
Flag" o LCD Ocupada, En el bit 7 del bus de dato el
LCD informa al micro{ront"olador de que est6 ocupado, (este bit es denominado
Busy FIag). Para ello se lee el bus de dato con RS:0 y R/W:l, ti el bit 7 del bus
de datos es "1" indica que la pantalla LCD est6 ocupadareaL:v:ando operaciones
urtemas
)i
no puede aceptar nuevas insfucciones ni datos. I{ay que esperar a que
el Bus1, FIag valga "0" para enviarle la sigurente insfrucci6n o caricter.
HyV
FloS que sdlo sirve para comprobar si el conftolador ha terminado de realizar la
+nstuccion que se Ie ha enviado y asi poder enviar mds.
:
xxxxO101
xxxxl 001
xxxx1010
xxxxl 01 1
rc<xx1i01
i
(6)
x:rxxl 1 10
xxxxl 1 1 1
Figura I3-4 Caracteres definidos dentro de Ia tabla CGRCM (cortesia de I{itachr)
t92 MTCROCONTROLADOR
prC16F84.
DE$ARROLLO DEpROy-tgCTOS
Pam un contol sencillo, se pueden reafizu pausas despu6s de cada instruccion6i
envio de datos para no tener que leer el regisim de estado, con ello se evita el modo,ctst
lectura de1 Busy Flag. La principal ventaja de esto es que se logra ahonar un pin
&,li
microcontrolador porque ia linea R./W no es necesaria y se puede conectar directanrffi
nfi
mas4 tal como se ilusira en la figura 13-5. La detecci6n del Busy Flag se susti#
entonces por un pequeflo retardo antes de realszar cualquier nueva operaciOn cottiffi
dicnlarr T f"T) Fctc rctqrAn rlpha cm mot,n. ,lo 1 Al nn oi +.oL-;.
^-
*^,.1^
^^-^-r-r-;Hi
display LCD. Este reiardo debe ser mayor de 1,64 ms si tabaja en modo comando'ffi
mayor de 40 ps si traba3a en modo daic.
T3"6 CCMANDCS DE CSNTRCIL
Los comandos que admits el mdduio LM015L se re$rmon en la tabla fiA.
Tabla I3-2 Comandos delvisualizador LCD LMAI6L
CAPiTUIO 13: LCD iqg
La informaci6n visuaiizada s0 cespiaza aj r.:irojibb un nufiv*
ca#rcter. La pantalla se ciesplaza en el seniida incii:ii.ds pci nl bir
I/D cuando el cwsor llega al fiio de la pantalia.
lncremento automdtico de la posici6n del cursor. La posicion de
ta DDR-.4M se incrernenta autometicamente tras cada iectura o
escritura elamisma,
Decremento de la posicion dei cursor. Se decrernenta ei punte: *
de ia DDRAh{
Displqt Control (0 0 0 0 1 D C B). Conh'ol de ia pantalla:
o B
:
0. Blink oFF, no hay efecto de parpadeo detr cursor.
o B
:
l. Blink CN, efecto de paqpadeo con un cqrsor reotanguia,r
o C - 0. Cursor OFF, el cwsor no se visll aliz:a"
c C = 1. Cursor ON
,
el cursoi es visualizadc.
o D = 0. Dispiay OFF, el dispia,v se apaga.
'f-- { n. 7
^1?
r t.
o -D
:
L Displey Ohi, ei dispiay se enciende.
Cursor and Display Shifi (0 0 0 1 SIC R/t x x). Conkol de los desplazamrentos
del cursor y de la pantalla:
c RL
-
0. Left.A la izquierda.
:
c R/L
-
l. Right. A la derecha.
c SIC - 0. El efecto de desplazamiento se aplioa s61o sobre el cursor sin
alterar el contenido de la DDRAhiL'
c S/C
*
1. El efecto de desplazanriento se.aplica sobre todo el displa;.r"
Functiorc Set (0 0 I DL N F x x). Caracteristicas de ccnh'ol hardware:
o' F
-
0. Font, Caracteres de 5 xl puntos.
c F
:
1. Font. Caracteres de 5 x 10 puntos.
c J.[: 0. Number Line. Pantalia de 1 linea.
c N: 1. Number Line. Pantalla de 2 lineas.
o DL: 0. Data Length. Comunicaci6n con 4 bits" Indica al display LC*
: ,.
que solamente se
yan
a utilizar ias lineas DB7, Dts6, nE5 y
:
DB4 para enviarie los datos
,v $ie
se hard envianCo pnm*.o *i
nibble alto, y a continuacion ei nibbie bajo ciel dara
o DL
:
1. Data Length. comunicaci6n con 8 bits.
Set CGfu4M ACdress. Se Ya & escribir sobre la ciirecsion CGRAI'f sefialaCa.
Set DDKAM ACdress (1 d d d d d d d). Esta inshucciSn se utiiiza para rnoiificar
el puntero a la DDR.Ah4. Asf por ejemplo, si la direccion es !a
gEh
sE escd-brd en
ei cenJro de ia pnmera iinea.
Read Buty Flag. Lee el BF urdicando si huy una cperacidn intema en csrso y iee,
,ad.em6s,
el contenido de la direccion DDRAh{ apurtada
CilNEXION DE LCD MEDIANTE 4 BITS
forrna de conectar el LCD aI Puerto ts iel
y
'su:
Iecfrra del Busy
fl"S
por io que talnbidn sg
o S: 1.
c -ilD -
1.
c VD=O.
RS
Clear Display 0 0 0 U 0 0 0,; 0: 0 I
Returu I{ome 0 0 0 0 0 0, 0i q
1
.t
*-
EnW Mode Set 0 0 0
-0
0 0 0
i
1
.,1* q
Display Control 0 0 0 0 U 0 i D;"-
:C
IJ
Cursor and displaV Shifr 0 0 0 0 0 1 stc RIL
* *:
Fwnction Set 0
o
0 0 i DL N' F
* *
Set CGLAM Address 0 0 0
I
I CGRAM Address
Ser DDRAM Address 0 0
1
I DDRAM Address
Read Busy FIag 0 i EF DDRAMAddress
WriteMM
1
I 0 Write Dats
Read RAM
t
,t I Read Data
pantalla
.i
no se desplaza
1.94 MMOCONTROLADOR PIC16FS4. DESARROLLO DE PRO)'ECTOS
.. I
',,--i:.. .
-,'
=.-,,,',"--'
-"::ahotrfa
Ia:linea R/W gue se conecta
:'1.'
."r utiliia,,el ,minimo posible de pines
. t'',
d,isplay LCD
a masa. La principal ventaja de este
(6 linesa) del rnicroconfrolador para
circuito es
el confrol
g
+7;,
c1
22p
Figura 13-5 Conacibn del m6dulo LCD al PIC16F84A mediante bus de 4 linecs
;
13.8 LreReRin DE suBRUTtNAS
La libreria LCD_4Bff.INC contiene las subrutinas de conhol que permiten realizar
ias tareas basicas de confiol de un m6dulo LCD conectado segun el circuito de ia figura
r3-5.
Aunque esta libreria est6 suficientemente documentada, se destacan algunas de su
subruhnas principales. Otas sentn comentadas miis adelante.
'
'T,CD_Iiricializd'. Iniciaiiza el m6dulo LCD para su conecto firncionamiento.
Configura fimciones del LCD, produce un reset por software, borra la memoria.
DDRA-N4 y enciende la pantalla. Es necesario ejecutar esta zubrutina ai principio
de los programas que vayan a utiiizar ia visualizaci6n mediante LCD. El
fabricante especifica que paftl garantizar una correcta inicializaci6n debe
rcahzffse como indica Ia figrra L3-6.
o
"LCD Cwhctet''. Visualtza en la posici6n actuatr del crlrsor ei
dato contenido en el registro W.
codigo ASCII del
*:m::
N(oto$Cr)tr,lrC)
6Ad)mC0CImm
onCIoonoo vss
lr n
lg
e
RAO RBO/INT
RA1 RB1
w RB2
RA3 RB3
RA4ffOCKI RB4
RB5
RB6
F (\t RB7
OOro
aaa
oo
n
CAP1TLO 13: LCD 195
Power 0N
Retardo mayor de 15 rns.
RS RA/V
00
DB7 DB6 DBs DB4
0011
Retardo mayor de 4.1 ms.
RS R/W
00
DB7 Dq6 DB5 DB4
0011
Retardo mayor de 100 ps.
RS RYW
00
DB7 DB6 DBs DB4
0 0 1
'-'fi
RS R^/v
00
DB7 DB6 DBs DB4
0:' 0 1 0
RS RA/V
00
00
DB7 DB6 DBs DB4
001_0
NF*:.*
Fin lnicializacion para bus de 4 bits
Figura I3-6 Proceso de inicializaci6n det LM0I6L pora conexi1n co
,n
bus de 4 lmeas
. "LCD-Bona". Borra toda la pantalla y pone el cursor a principio de la linea 1.
|
'T-CD_Linea1". Envia el cunor al principio de la linea 1. l
.'LCD-Linea2'.
Enviaelcursoralprincipiod.luti*u 2.'
.
"LcDJosicionlineal". Envia el cursor a la posici6n de la linea I indicada por
-flil). Por ejemplo, si (IilftOx08, al ejecutar esta subrutina el cursor se ird al cenho
de la iinea en ula pantalla de 16 caructeres.
e "LcD_Posicionlinea2".Igual que el anterior para lalrrreal.
. "LcD-LineaEr8lanco". Visual tzavnalinea en bianco.
"LcD-DosEspaciosBlanco". Visualiza dos espacios en blanco.
Esta h-breria ha sido diseffada para que firncione correctamenle con el circuito de la
figura 13-10, donde a las lineas del bus de datos'se hat conectado ohos disposifivos. Por
N=0, Pantalla LCD de 1 linea;
N=1, Pantalla LCD de 2 lineas.
F=0, Caracteres de 5x7 puntos.
F=1, Caracteres de 5x10 puntos.
. al.';:..:,!,.:El::--"jil -'...'.
''.liiS.i[trl' -L'Ji.1 :...
--'
.l
, :'ii_i$"d$n r;11i1+,t,' .- -
CAPITULO 13: LCD zLI
f,Cn-O3.asm,: Prograrna ejemplo para cornprender la utilizaci6n de las subrutrnfi
p*Iuvisualizaci6n de datos nurnedcos. Para ello se van a utilizar suc"sivam"nte
ffi
este orden ias zubrutinas: "LCT)-ByteCompleto", "LCD_DosEspu.iosgtuo.os'1ffi{
--
ULCID_Byteu,
"LCD_DosEspaciosBlancos" y
"LCD_Nibble" para dos nfmero, qor ,.re[i:.E1ffi.] rcn_o
SF;i;:.,,
LCD 07.asm: Igual que el anterior, pero se incrementa mientas se mantenga
ffi$rcsionuAo
el puilador una cuenta cada 200ms.
I Primera Linea: "CE 206"
Mensaje 05,asm: En la primera iinea de la pantalla aparecerf ul mensaje fijo. En
Mensaje-06.asm: En la pantralla se visualizanln varios mensajes diferentes. EI paso
de uno a oho se realiza ai actuar.sobre el pulsador conectado a la linea RA4. En pantalla
apmecer6 por ejemplo:
. :'
Mensaje 2 " (primera linea).
"COSLADA Modema." (segunda iinea).
Mensaje-07.asm: En la pantalla se visuaiizar6 un mensaje iargo (de mas de 16
caracteres) que se va deqpiazando a lo largo de la pantalia. Se utiiizani la subrutina
LCD_MersajeMovimiento de la libreria LCD_MENS.INC.
lVlensaje-08.asm: Programa para el juego
de ia
Quiniela:
A1 presionar sobre el
pulsador conectado al pin RA4 en la pantalla aparecer6 ripidamente
ulu,
'Xu,
n2u.
Cirando suelta el pulsador, pennanece el signo seleccionado.
Mensaje_09.asm: En pantalia visualiza "Celrado" o "Abierto" segrxl si
pulsador esl6 presionado o no.
':':i:-i:
,_1J)4e
,
"lrLilr_rj06lq)rcrostslrlcos.
y "LUD_Nibble" pan dos ntmeos quc *6fif; LCD_o9$E- Miettas se tlmkrlC& gsionado el pulsador c@ec.bdo al ph RAa
.
E'laFirdda li*aunarroero c@elf,'bble albno cero.
pmei@Dlo:
lDl-
'ffi
ir"**e
., conbdor y vixualiza o la pa[hlla en tes ftEatoe: deci.al,
.
E'lasstmdlrinea*omooo*aoiun .rto;gJ;;.i6i;;;
ffiTt
*.:"**,
Y1
rIt
4MHz
Fiiura I3-l A Circuito pctt'c,t la realizacifin de las prdcticas de este capitulo y prcxiwTos
LCD-04.asm: La pantalla visualiza un coniador descendente desde 59 hasta 0
vuelve a repetir ia cuerrta ininterrunpidarnente. En cada valor estard unos 500 ms.
LCD-0S.asm: Cada vez que presiona el pulsador conectado al pln R{4
incrementa un contador que se vrnraliza en el cento de la primera linea de la pantalla.
LCD_$6.asm: Igual que el anterior pero cuand"o ilegue
ejempio 6) se rssetea y comietrzade nueva ia cuenta.
Asi por ejemplo, para los nfmeros "1D" y
"0D" se visualizaria (donde
"+" oi.oJ:'ffiffi,,--5 ,
. SesundaLinea: "11001110"
significar espacio en blanco):
I"e "#"
vrene;[i+il#;5tffij,'..
,,: * Segunda Linea: "1 100i I 10"
'. .::'.ii..:.'.r-1fi,ii*Fii5u..::i:: -.
\D##rD##D' (pri'era ltocs). .drei
.It{eYje-m.t:T^En*eaa1&.
s
yisualiza
ln^mnsaje dE Emoo dE 16 cltacins
rr0D##IWD"
(Segundalinea). ,1:'1-!.iftffi;i1.':$auauu
s!
::::, Mensaje_02.asm. Repetir el anterior utiiizando 1a subrutina LCD_Mensaje de la
:;iibreria
LCD MEN.INC.
tc1
LMO16L
S5
RB6
54
RBO
t I
S6
RB7
I
D
RBl
IX
LS1
I Ohm,
B
Q1
8D135fi/9
lcz
Plc16F84A
+
c2
22p 22p
: :-i. .;-.:-f"iJ4i; , . L.
.. 1. ,,:ift-;;.1
",.t-
.
',
;,i.t' iB.1:;::-".:
-
,.;-i_il;-.:.:,. .-
-..,,'fi,:.
,.F;:...-:: :
';i;,;fr11'.r. .:',''-
'r;'ihr::.,;'
'
R1 R2
100 10k

S-ar putea să vă placă și