Sie sind auf Seite 1von 13

1

Tema: Uso de pantalla matricial LCD y teclado


matricial con eliminacin de rebote.
Utilizar las pantallas matriciales LCD combinadas con teclados
para el diseo de interfases de usuario avanzadas.
Conocer y dominar las tcnicas de multiplea!e de m"ltiples
teclas.
#acer uso de perifricos eternos con re$uerimientos cr%ticos de
temporizacin.
Controlar perifricos eternos inteli&entes' realizando las
operaciones de bus por medio de soft(are.
Utilizar tcnicas de pro&ramacin estructurada en pro&ramas de
m"ltiples mdulos de cdi&o fuente.
#acer uso de macros para el diseo de estructuras de cdi&o
repetitivas.
Computadora personal con puerto paralelo' sistema operativo
)indo(s *+' soft(are ,+L-. y )in+ic/00.
Tar!eta de entrenamiento C+1+2C/33 41.0 51.
+ro&ramador 6T1C-.10+27 48.
9uente de poder de 184 con borne redondo de :mm.
Cable de cinta plana de 8/ pines con conector para breadboard.
.readboard.
Display LCD de 1; caracteres por 8 columnas <basado en #D==3/0>.
/ resistencias limitadoras de ??0 .
Teclado matricial de ==.
+otencimetro de 1@ .
Cable UT+ cate&or%a :.
Microcontroladores. Gua 3
9acultad: 2n&enier%a
6scuela: 6lectrnica
-si&natura: ,icrocontroladores
Lu&ar de e!ecucin: Laboratorio de
microprocesadores' 6dif. ? 6lectrnica.
Ab!etivo &eneral
Ab!etivos espec%ficos
,ateriales y e$uipo
8
1. Construya el circuito $ue se le presenta en la fi&ura 1. DicBo
circuito se conectarC a la tar!eta de entrenamiento con el
dia&rama de pines $ue aparece en la fi&ura 8.
9i&ura 1 D Dia&rama de conein para el circuito en la breadboard.
Figura 2 Organizacin de los pines de I/O de la tarjeta entrenadora.
Microcontroladores. Gua 3
+rocedimiento
?
+in 9uncin +in 9uncin
1 E7D / D1
8 4CC F D8
? 4o 10 D?
= 5G 11 D=
: 5H) 18 D:
; 6 1? D;
3 D0 1= D3
Tabla 1 D Ar&anizacin de los pines en la pantalla LCD.
8. Una vez ensamblado el circuito' conecte el cable plano a la
tar!eta entrenadora. Golicite a su instructor de laboratorio $ue
verifi$ue su circuito <el circuito se encenderC mCs adelante>.
?. - continuacin e!ecute el pro&rama ,+L-.. 5epita los pasos de la
&u%a I1 para crear un nuevo proyecto con el +2C1;9/33.
=. -&re&ue un nuevo arcBivo de cdi&o fuente llamado J+rincipal.asmK
<no olvide a&re&ar la etensin .asm cuando lo &uarde>. L copie el
si&uiente pro&rama en el arcBivo.
;Programa de ejemplo para utilizacin de display LCD basado en HD44780 y
;teclado matricial con eliminacion de rebote
list p!"#877 ;De#inicin del microcontrolador a usar
$include %p!"#877&inc' ;Cabecera (ue de#ine los registros del )C*
;+its de con#iguracin del )C*
c#g! e(u ,CP,-.. / ,D0+*1,-.. / ,234,056+L0,-.. / ,CPD,-.. / ,L7P,-5
c#g8 e(u ,+-D05,-.. / ,P2340,-5 / ,2D4,-.. / ,94,-:C
,,con#ig c#g! / c#g8
;Declaracion de #unciones e;ternas<
e;tern =nicializar,LCD
e;tern 0scribir,Dato,LCD
e;tern 0scribir,Cmd,LCD
;Declaracion de #unciones compartidas<
global 3etardo
;Declaracion de constantes
:el.ila0 e(u 0;!0 ;:eleccion de #ila 0 del teclado >3+0?
:el.ila! e(u 0;!D ;:eleccion de #ila ! del teclado >3+!?
:el.ila8 e(u 0;!+ ;:eleccion de #ila 8 del teclado >3+8?
:el.ila@ e(u 0;0. ;:eleccion de #ila @ del teclado >3+4?
;Declaracion de datos en memoria
)is,7ariables udata
Conteo3etardo res ! ;7ariable (ue guarda el conteo de retardo
Microcontroladores. Gua 3
=
7alor.ila0 res ! ;7ariables (ue almacenan el estado anterior de todo
7alor.ila! res ! ;el teclado
7alor.ila8 res !
7alor.ila@ res !
;Declaracion de macro para reAisar teclas indiAiduales
;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
;0sta macro genera codigo automatico para la reAision de una tecla
;indiAidual&
;6rgumentos<
; B .uncion< 0s la #uncion (ue se llama cuando se presiona la tecla&
; B 7alor< es el argumento con el (ue se llama la #uncion&
; B +it< es el numero de bit dentro del puerto con (ue se lee toda la
; #ila >P-346?&
; B 7alor.ila< 0s la Aariable con el Aalor anterior de toda la #ila&
3eAisar4ecla macro .uncionC 7alorC +itC 7alor.ila
moAlD 7alor ;Carga el Aalor con (ue se llama la #uncion
bt#ss P-346C +it ;7eri#ica si la tecla esta presionada
goto EF@ ;:i esta presionadaC salta al #inal
bt#ss 7alor.ilaC +it ;7eri#icia si estuAo presionada antes
call .uncion ;:i #ue asiC recien se solto y enAia el carac&
endm
P3-1! code ;La seccin GP3-1!G de#ine a la pHgina 0 en el arcIiAo &LJ3
;
;3utina principal
;BBBBBBBBBBBBBBBB
;0sta rutina se encuentra en la direccion 0;00000 >Aector de arran(ue?
clr# P-34+ ;:e coloca el Aalor de los puertos a 0 antes de
clr# P-34C ;establecerlos como salida
clr# P-340
bs# :464*:C 3P0 ;:e selecciona el banco !
moAlD 0;0" ;:e establecen los canales del 6DC en modo digital
moAD# 6DC-5!
moAlD 0;0. ;P-346 se encarga de leer las #ilas del teclado
moAD# 43=:6
moAlD 0;.. ;3+0C 3+!C 3+8 y 3+4 >5ota< se omite 3+@? controlan
moAD# 43=:+ ;las #ilas del teclado >se dejan todos abiertas?
bc# -P4=-5,301C 5-4,3+P* ;6ctiAa los pullBups del puerto +
moAlD 0;.. ;4odo el P-34C se usa para datos desdeKIacia la LCD
moAD# 43=:C ;>inicialmente como entrada?
clr# 43=:0 ;P-340 se usa para las lineas de control de la LCD
bc# :464*:C 3P0 ;:elecciona el banco 0 nueAamente
Microcontroladores. Gua 3
:
call =nicializar,LCD ;Procede a inicializar la LCD
moAlD 0;0.
moAD# 7alor.ila0
moAD# 7alor.ila!
moAD# 7alor.ila8
moAD# 7alor.ila@
3utina<
;:e procede a rastrear el teclado
;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
bs# :464*:C 3P0 ;6ctiAa la #ila 0
moAlD :el.ila0
moAD# 43=:+
bc# :464*:C 3P0
;Procede a reAisar las teclas de la #ila mediante macros<
3eAisar4ecla 0scribir,Dato,LCDC L0LC 0C 7alor.ila0
3eAisar4ecla 0scribir,Dato,LCDC L!LC !C 7alor.ila0
3eAisar4ecla 0scribir,Dato,LCDC L8LC 8C 7alor.ila0
3eAisar4ecla 0scribir,Dato,LCDC L@LC @C 7alor.ila0
moA# P-346C D ;4oma el dato de la #ila completa y lo guarda
moAD# 7alor.ila0
bs# :464*:C 3P0 ;6ctiAa la #ila !
moAlD :el.ila!
moAD# 43=:+
bc# :464*:C 3P0
;3eAisa las teclas de la #ila mediante macros<
3eAisar4ecla 0scribir,Dato,LCDC L4LC 0C 7alor.ila!
3eAisar4ecla 0scribir,Dato,LCDC LMLC !C 7alor.ila!
3eAisar4ecla 0scribir,Dato,LCDC L"LC 8C 7alor.ila!
3eAisar4ecla 0scribir,Dato,LCDC L7LC @C 7alor.ila!
moA# P-346C D ;4oma el dato de la #ila completa y lo guarda
moAD# 7alor.ila!
bs# :464*:C 3P0 ;6ctiAa la #ila 8
moAlD :el.ila8
moAD# 43=:+
bc# :464*:C 3P0
;3eAisa las teclas de la #ila mediante macros<
3eAisar4ecla 0scribir,Dato,LCDC L8LC 0C 7alor.ila8
3eAisar4ecla 0scribir,Dato,LCDC LNLC !C 7alor.ila8
3eAisar4ecla 0scribir,Dato,LCDC LFLC 8C 7alor.ila8
3eAisar4ecla 0scribir,Dato,LCDC LBLC @C 7alor.ila8
moA# P-346C D ;4oma el dato de la #ila completa y lo guarda
Microcontroladores. Gua 3
;
moAD# 7alor.ila8
bs# :464*:C 3P0 ;6ctiAa la #ila @
moAlD :el.ila@
moAD# 43=:+
bc# :464*:C 3P0
;3eAisa las teclas de la #ila mediante macros<
3eAisar4ecla 0scribir,Dato,LCDC LLC 0C 7alor.ila@
3eAisar4ecla 0scribir,Cmd,LCDC 0;80C !C 7alor.ila@
3eAisar4ecla 0scribir,Cmd,LCDC 0;C0C 8C 7alor.ila@
3eAisar4ecla 0scribir,Cmd,LCDC 0;0!C @C 7alor.ila@
moA# P-346C D ;4oma el dato de la #ila completa y lo guarda
moAD# 7alor.ila@
moAlD dL!0L ;1enera un retardo de !0ms entre rastreos
call 3etardo
goto 3utina ;3epite el proceso de #orma continua
;
;3utina de retardo Aariable
;BBBBBBBBBBBBBBBBBBBBBBBBBB
;0sta rutina genera un retardo segun la cantidad de milisegundos indicada
;en el acumulador& :i el acumulador Aale 0C el retardo es de 8M"ms&
3etardo<
moAD# Conteo3etardo ;1uarda la cuenta de milisegundos en memoria
5ueAo,3etardo<
moAlD dL8M0L
3etardo,!ms<
addlD BdL!L ;3esta uno a la cuenta en el acumulador B ! clocO
bt#ss :464*:C P ;7eri#ica si la cuenta llego a cero B ! clocO
goto 3etardo,!ms ;Continua iterando mientras no termina B 8 clocO
;Calculo para el retardo interno<
;4 4 ; 5umero de iteraciones ; =ntrucciones por iteracion
; BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
; #recuencia de oscilador
;4 4 ; 8M0 ; 4
; BBBBBBBBBBB
; 4)Hz
;4 !ms
dec#sz Conteo3etardoC # ;Decrementa la cuenta de milisegundos
goto 5ueAo,3etardo ;)ientras no sea ceroC repite
return ;Cuando llega a ceroC retorna
end
Listado 1 D Cdi&o fuente del pro&rama a implementar.
Microcontroladores. Gua 3
3
:. -&re&ue un se&undo arcBivo de cdi&o fuente llamado JLCD.asmK y
copie el si&uiente pro&rama.
;)odulo para manejo de pantalla LCD
list p!"#877 ;De#inicin del microcontrolador a usar
$include %p!"#877&inc' ;Cabecera (ue de#ine los registros del )C*
;Declaracion de #unciones e;ternas<
e;tern 3etardo
;Declaracion de #unciones compartidas<
global =nicializar,LCD
global 0scribir,Dato,LCD
global 0scribir,Cmd,LCD
P4-,C43L e(u P-340 ;:e establece el puerto de control como puerrto 0
P4-,D64-: e(u P-34C ;:e establece el puerto de datos como P-34C
P4-,D=3 e(u 43=:C ;:e establece el puerto de direccion como 43=:C
LCD,0 e(u 0 ;Pin de Iabilitacion de la LCD en 300
LCD,32 e(u ! ;Pin de escritura de la LCD en 30!
LCD,3: e(u 8 ;Pin de seleccion de registro de la LCD en 308
P3-10 code
;
;3utina de inicializacion de la LCD
;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
=nicializar,LCD<
bc# P4-,C43LC LCD,0 ;-peracion de lecturaKescritura desactiAada
bc# P4-,C43LC LCD,3: ;6ccede registro de comando
bc# P4-,C43LC LCD,32 ;0stablece operacion de escritura
moAlD dL80L ;0spera 80ms a (ue la LCD inicialice internamente
call 3etardo
bs# :464*:C 3P0 ;Cambia el puerto de datos a salida
clr# P4-,D=3
bc# :464*:C 3P0
moAlD 0;@0 ;0stablece la inter#ase de la LCD a 8 bits
moAD# P4-,D64-:
bs# P4-,C43LC LCD,0 ;Pulsa el pin de Iabilitacion para enAiarlo
bc# P4-,C43LC LCD,0
moAlD dLML ;0spera Mms a (ue la LCD procese el comando
call 3etardo
bs# P4-,C43LC LCD,0 ;Pulsa de nueAo el pin de Iabilitacion para
bc# P4-,C43LC LCD,0 ;enAiar el comando nueAamente
moAlD dL!L ;0spera aIora !ms a (ue la LCD lo procese
call 3etardo
Microcontroladores. Gua 3
/
bs# P4-,C43LC LCD,0 ;Pulsa el pin de Iabilitacion por tercera Aez
bc# P4-,C43LC LCD,0
;6 partir de este momento la inter#ase de datos esta inicializada a
;modo de 8 bits y es posible usar transacciones normales de bus para
;terminar de con#igurar la LCD&
moAlD 0;@C ;0stablece el modo de display a 8 lineas y
call 0scribir,Cmd,LCD ;#uente de M;!0
moAlD 0;0. ;0nciende el displayC el cursor y el parpadeo
call 0scribir,Cmd,LCD
moAlD 0;0! ;Limpia el display
call 0scribir,Cmd,LCD
moAlD 0;" ;0stablece (ue el cursor incrementara Iacia la
call 0scribir,Cmd,LCD ;derecIa y (ue se moAera solo el cursor >no la
;pantalla? al escribir caracteres&
return
;
;3utina de escritura de caracteres a la LCD
;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
;0sta #uncion enAia el caracter pasado en el acumulador a la pantalla LCD
0scribir,Dato,LCD<
moAD# P4-,D64-: ;Coloca el dato recibido en el acumulador en el
;latcI del puerto >aun si esta como entrada?
call 0sperar,LCD ;0spera a (ue la LCD termine la ultima operacion
bs# P4-,C43LC LCD,3: ;6ccede registro de datos
bc# P4-,C43LC LCD,32 ;0stablece operacion de escritura
bs# :464*:C 3P0 ;Cambia el puerto de datos a salida
clr# P4-,D=3
bc# :464*:C 3P0
bs# P4-,C43LC LCD,0 ;Pulsa el pin de Iabilitacion para enAiar el dato
bc# P4-,C43LC LCD,0
return
;
;3utina de escritura de comandos a la LCD
;BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
;0sta #uncion enAia el comando pasado en el acumulador a la pantalla LCD
0scribir,Cmd,LCD<
Microcontroladores. Gua 3
F
moAD# P4-,D64-: ;Coloca el dato recibido en el acumulador en el
;latcI del puerto >aun si esta como entrada?
call 0sperar,LCD ;0spera a (ue la LCD termine la ultima operacion
bc# P4-,C43LC LCD,3: ;6ccede registro de comando
bc# P4-,C43LC LCD,32 ;0stablece operacion de escritura
bs# :464*:C 3P0 ;Cambia el puerto de datos a salida
clr# P4-,D=3
bc# :464*:C 3P0
bs# P4-,C43LC LCD,0 ;Pulsa el pin de Iabilitacion para enAiar el dato
bc# P4-,C43LC LCD,0
return
;
;3utina de espera de la LCD
;BBBBBBBBBBBBBBBBBBBBBBBBBB
;0sta #uncion Aeri#ica el estado de la LCD Iasta (ue la misma termina la
;operacion
0sperar,LCD<
bs# :464*:C 3P0 ;Cambia el puerto de datos a entrada
moAlD 0;..
moAD# P4-,D=3
bc# :464*:C 3P0
bc# P-340C LCD,3: ;6ccede registro de comando
bs# P-340C LCD,32 ;0stablece operacion de lectura
bs# P-340C LCD,0 ;Habilita la transaccion sobre la LCD
Ciclo0speraLCD<
bt#ss P4-,D64-:C 7 ;7eri#ica si la LCD ya termino la operacion
goto .inCiclo0spera ;:e mantiene repitiendo mientras no termine
bc# P-340C LCD,0 ;4ermina la transaccion en la LCD
bs# P-340C LCD,0 ;=nicia otra transaccion inmediatamente
goto Ciclo0speraLCD ;3epite el proceso de espera
.inCiclo0spera<
bc# P-340C LCD,0 ;4ermina la transaccion sobre la LCD
return
end
Listado 8 D Cdi&o fuente de la librer%a a implementar.
;. -&re&ue el arcBivo de de &uin de enlace <linMer script>'
si&uiendo los pasos realizados en la Eu%a I1.
Microcontroladores. Gua 3
10
3. Compile el pro&rama y verifi$ue $ue no se &eneren errores.
/. +repare el pro&ramador conectando primero la cincBa plana al
"ltimo conector del etremo' a continuacin conecte el pro&ramador
al puerto paralelo de su +C. +repare la tar!eta conectando el
cable de poder a la misma y lue&o conectando la cincBa $ue viene
del pro&ramador al conector amarillo. 9inalmente encienda la
fuente.
F. 6!ecute a continuacin el pro&rama )in+ic/00. -se&"rese de $ue
estC ele&ido el pro&ramador J6TT1LA) 4++ 2CG+K en el puerto
paralelo correcto. 6!ecute la rutina de deteccin automCtica de
dispositivo para $ue el soft(are $uede confi&urado.
10. Car&ue el arcBivo .Be &enerado al compilar el pro&rama y
descCr&uelo en el +2C. Una vez terminado' corrobore $ue el
pro&rama fue pro&ramado correctamente con la rutina de
comprobacin del )in+ic/00.
11. -!uste el potencimetro de tal forma $ue se visualice
correctamente la ima&en de la pantalla. 6l contraste correcto se
da cuando desaparecen los cuadros ne&ros de fondo al reducirlo
desde su valor mCimo <el "nico cuadro visible debe ser el cursor
parpadeante>.
18. +resione las teclas superiores del teclado. NOue ocurre al
presionarlasP
1?. -Bora presione las 8 teclas centrales de la "ltima fila. NOue
accin toma el cursorP N- $ue se debeP
1=. +resione la tecla en el etremo inferior derecBo del teclado.
NOu sucedeP NOu parte del pro&rama realiza a cabo ese procesoP
1:. Con la ayuda de la tabla de los aneos y las indicaciones de su
instructor' ,odifi$ue su pro&rama para $ue al inicio muestre un
mensa!e de saludo en la primera fila' mientras el cursor $ueda en
la se&unda fila. 5ecompile el pro&rama y Ba&a las pruebas
si&uiendo los procedimientos de las prCcticas anteriores.
1;. 9inalmente modifi$ue el pro&rama para $ue el cursor de!e de
parpadear y se $uede fi!o.
13. Una vez terminadas las modificaciones al pro&rama y verificado
todo funcionamiento' muestre sus resultados al instructor.
5ecuerde borrar el pro&rama del microcontrolador al finalizar.
Microcontroladores. Gua 3
11
1/. -pa&ue la tar!eta de entrenamiento' desconecte el pro&ramador de
la tar!eta y la +C' y apa&ue su computadora. De!e todo en orden en
su puesto de traba!o y entre&ue los materiales a su instructor.
NGe puede usar este sistema para interfases de comandos de
usuarioP 6pli$ue. NOu otras aplicaciones podr%a dCrseleP
NCuCl es el traba!o de los macros en este pro&ramaP NGerC
posible usar los otros macros para otro tipo de tareasP
NDe $ue manera podr%a implementarse la repeticin automCtica de
teclas <$ue la tecla se repita al mantenerla presionada> en este
sistemaP NOu cambios ser%an necesarios de Bacer en el cdi&o
para lo&rarloP
2nvesti&ue otras 8 tecnolo&%as de pantalla LCD $ue eisten en el
mercado. NOue diferencias tienen con las vistas en la prCctica y
cuales son sus venta!as y desventa!asP
2nvesti&ue la sintais y funcionamiento de los macros en el
len&ua!e ensamblador para +2C.
#o!a tcnica del microcontrolador +2C1;9/33-:
Bttp:HH((1.microcBip.comHdo(nloadsHenHDeviceDocH?F:/8b.pdf
+alacios' 6nri$ue 1 5emiro' 9ernando y Lpez' Lucas.
,icrocontrolador +2C1;9/=: Desarrollo de proyectos. Ge&unda
edicin. Coedicin -lfaome&a 5-1,-.
#o!a tcnica del controlador LCD #D==3/0:
Bttp:HH(((.sparMfun.comHdatasBeetsHLCDH#D==3/0.pdf
Microcontroladores. Gua 3
-nClisis de resultados
2nvesti&acin complementaria
5eferencias biblio&rCficas
18
,apa de comandos de la LCD.
Microcontroladores. Gua 3
-neos
1?
EVALUACION
% 1-4 5-7 8-10 Nota
CONOCIMIENTO 25 Explica
deficienteente
co opera la
t!cnica de
ultiplexaje de
teclado
Explica
parcialente la
t!cnica
encionada.
Explica
claraente co
opera la t!cnica
de ultiplexaje de
teclado.
APLICACIN
DEL
CONOCIMIENTO
25 "o cre el
prograa
correctaente #
posee uc$os
errores.
%re el prograa #
se copila& pero
no funciona #a en
el dispositi'o.
El prograa
creado se copila
# funciona
correctaente en
el dispositi'o.
25 El circuito arado
presenta
pro(leas # no
opera.
El circuito
ensa(lado
presenta algunos
pro(leas.
El circuito
ensa(lado
funciona
correctaente.
2) "o $izo las
odificaciones de
los pasos *5 # *+
o las isas no
son correctas.
,izo las
odificaciones
pero los resultados
difieren de lo
esperado.
,izo las
odificaciones #
producen los
resultados
correctos.
ACTITUD 2.5 Es un o(ser'ador
pasi'o.
-articipa
ocasionalente o
lo $ace
constanteente
pero sin
coordinarse con su
copa.ero.
-articipa
propositi'a e
integralente en
toda la pr/ctica.
2.5 Es ordenado pero
no $ace un uso
adecuado de los
recursos.
,ace un uso
adecuado de lo
recursos& respeta
las pautas de
seguridad& pero es
desordenado.
,ace un anejo
responsa(le #
adecuado de los
recursos confore
a pautas de
seguridad e
$igiene.
TOTAL *))
Alumno:
Microcontroladores. Gua 3
Hoja de cotejo:
!ocente: "ec#a: $L:
0u1a 23 4so de pantalla atricial 5%6 # teclado atricial con eliinacin de
re(ote.
%ue&to No:

Das könnte Ihnen auch gefallen