You are on page 1of 19

Septiembre-

Febrero 11

SISTEMAS MICROPROCESADOS I
INFORME 5
TECLADO

DOCENTE:
Ing. Electrónico.
Luis Oñate

ESTUDIANTES:
• Fernando Pazmiño
• Juan Suasnavas
• Gustavo Caiza
15-Dic-2010

U N IV E RS I D A D P O LI TÉ C N I C A S A LE SI AN A
UIVERSIDAD POLITÉCICA SALESIAA

DESARROLLO
 OBJETIVO: Utilizar e l microcontrolador con teclados matrici al.

Ejercicio 1.
Visualizar en un display LCD el valor ingresado por un teclado matricial.

ALGORITMO

Entrad a:
Ingresar datos por medio de un teclado matricial

Proceso:
Configurar la salida del LCD en el Puerto B
Configura el Teclado en el Puerto C
Leer el Ingreso del teclado matricial
Escribir en el LCD el valor de la posición del botón en la matriz colocado en el teclado
matricial

Salid a:
Visualizar en un LCD el valor de la posición de la matriz correspondiente a cada
pulsador

DIAGRAMA DE FLUJO

Config urar Puerto


B LCD
Pue rto C Teclado

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

CODIGO

program teclado1
dim a as byte
dim b as string[6]
main:
lcd_config(portb,7,6,5,4,portb,0,1,2)
lcd_cmd(lcd_cursor_off)
keypad_ init(portc)
while true
a=keypad_read
wordtostr(a,b)
lcd_out(1,1,b)
wend
end.

DIAGRAMA ESQUEMATICO

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

SIMULACION

FOTOS TOMADAS EN LA PRACTICA

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

Eje rcicio 2.
Problema:
Escribir un programa para realizar las siguientes operaciones suma, resta, multiplicación,
división y Log base 10 de dos números o un número según sea el caso.
Para escoger la operación utilizar la opción case-select

Operación Símbolo de la operación úmeros de la operación


Suma 1 2
Re sta 2 2
M ultiplic ac ión 3 2
D iv is ión 4 2
Log10 5 1

El LCD debe mostrar el siguiente mensaje ingrese el número de la operación a realizar:


Al ingresar por ejemplo el numero 1
En el LCD aparece el mensaje ingrese N1
Luego de ingresar el número aparece el mensaje ingrese el N2
Luego aparece el mensaje 3+2=5

ALGORITMO

Entrada:
Ingreso de datos por medio de un teclado matricial

Proce so :
Configuro el LCD en el P uerto B
Configuro la entrada del teclado matricial en el Puerto C
Comparo el valor 1 Ingresado para determinar que operación debe realizar
Realizar la operación de S uma si es 1
Realizar la operación de Resta si es 2
Realizar la operación de Multiplicación si es 3
Realizar la operación de División si es 4
Realizar la operación de Log10 si es 5
Desplegar en el LCD el resultado de cada operación

Salid a:
Visualizar en el LCD el resultado de cada operación

Ing. Electrónica
Sistemas M icroprocesad os I
UIVERSIDAD POLITÉCICA SALESIAA

DIAGRAMA DE FLUJO

INICIO

Config urar Puerto B LCD

Puerto C Teclado

Definir variables a y b

Leer datos del teclado


A=keypad_read

If A

A=1 A=2 A=3 A=4 A=5

Ingresar N1 y N 2 Ingresar N1 y N2 Ing resar N1 y N2 I ngresar N1 y N2 Ingresar N1

Res= N1+N2 Res= N1-N 2 R es= N1*N2 Res= N1/N2 Res= Log10 N1

Resultado=R Resultado=R Resultado=R Resultado=R Resultado=R

Visualizar en el LCD Resultado

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

CODIGO

program calculadorateklado
dim x1 as byte
dim juanita, j as byte
dim n1,n2,resultado as integer
dim n1f,n2f,resf as float
dim op as string[6]
dim sn1 as String[6]
dim sn2 as String[6]
dim sr as String[12]
dim b as string[6]
sub procedure leer
while (n1=0)
lcd_out(1,1, "valor 1:")
n1=keypad_released
n1f=n1
intT ostr(n1,sn1)
wend
lcd_out(1,10,sn1)
while (n2=0)
lcd_out(2,1, "valor 2:")
n2=keypad_released
n2f=n2
intT ostr(n2,sn2)
wend
lcd_out(2,10,sn2)
delay_ms(1000)
end sub
sub procedure juan
while (n1=0)
lcd_out(1,1, "valor 1:")
n1=keypad_released
n1f=n1
intT ostr(n1,sn1)
wend
lcd_out(1,10,sn1)
delay_ms(1000)
end sub
sub procedure displayres
lcd_cmd(lcd_clear)
lcd_out(1,1,sn1)
lcd_out_cp(op)
lcd_out_cp(sn2)
lcd_out_cp("=")
intT ostr(resultado,sr)
lcd_out(2,1,sr)
delay_ms(1500)
lcd_cmd(lcd_clear)
end sub
sub procedure displayresf
lcd_cmd(lcd_clear)
lcd_out(1,1,sn1)
Ing. Electrónica
Sistemas M icroprocesad os I
UIVERSIDAD POLITÉCICA SALESIAA

lcd_out_cp(op)
lcd_out_cp("=")
floatT ostr(resf,sr)
lcd_out(2,1,sr)
delay_ms(800)
lcd_cmd(lcd_clear)
end sub
sub procedure operaciones
select case juanita
case 1
lcd_cmd(lcd_clear)
leer op="+"
resultado=n1+n2
displayres
case 2
lcd_cmd(lcd_clear)
leer op="-"
resultado=n1-n2
displayres
case 3
lcd_cmd(lcd_clear)
leer op="*"
resultado=n1*n2
displayres
case 4
lcd_cmd(lcd_clear)
leer op="/"
resultado=n1f/n2f
displayres
case 5
lcd_cmd(lcd_clear)
juan op="log10"
resf=log10(n1f)
displayresf
case else
lcd_cmd(lcd_clear)
lcd_out(1,1, "No hay operac io-")
lcd_out(2,1, "nes asignadas")
delay_ms(1000)
lcd_cmd(lcd_clear)
end select
end sub
main:
lcd_config(portb,7,6,5,4,portb,0,1,2)
lcd_cmd(lcd_cursor_off)
keypad_init(portc)
lazo:
while (juanita=0)
lcd_out(1,1, "Ingrese su")
lcd_out(2,1, "opcion: ")
juanita=keypad_releas ed wordtostr(juanita,b)
wend
lcd_out(2,8,b)
Ing. Electrónica
Sistemas M icroprocesad os I
UIVERSIDAD POLITÉCICA SALESIAA

delay_ms(1000)
operaciones
n1=0
n2=0
juanita=0
goto
lazo
end.

DIAGRAMA ESQUEMATICO

SIMULACIONES

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

FOTOGRAFIA TOMADAS EN LA PRACTICA

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

Eje rcicio 3.
Pro blema:

Elaborar un programa para mostrar los caractere s ingre sados desde un teclado PS2
De scrip ción y fun cion amie nto a “ alto nivel”
Un teclad o PS/2 de 104 te clas para PC es un dispositivo razonable mente inteligente.
Esto quie re de cir que él mismo se encarga de la parte hardware de l rastre o de te clas,
evitar los insufribles rebote s y de trasmitirnos, me diante una trama pe rfe ctamente
estable cida, de los re sultados, de los resultados de nue stras manipulaciones sobre sus
te clas. El te clado PS/2 tiene un mapa de teclas a las que se las asigna un cód igo, de
uno o dos bytes, para cada una de ellas y que son los códigos que nos va a trasmitir
para indicarnos que se está pulsando un te cla determinada. A estos códigos les vamos
a llamar có digos d e rastreo d e te clado . Más abajo se mue stra una imagen de un
te clado e stándar donde se mue stra los códigos de rastre o de todas y cada una de las
Te clas:

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

El te clado PS/2 envía e l cód igo de rastreo asoci ado a una tecla al ser é sta pulsada,
tantas ve ce s como sea ne ce sario si se mantiene pulsada con una cade ncia tal como
indique su tie mpo de repetición, que es programable , y el mismo código de rastreo
con el pre fijo del byte F0h al ser soltada, tambié n conocido como break cod e.
Po r ejem plo: Para conseguir la letra G Mayúscu la debemos pulsar la tecla sh ift y
mientras la mantenemos pulsada, pulsada, pulsar la tecla G, soltar l a tecla G y soltar la
te cla shift. Esa secuencia de pulsacione s nos va a hace r que el teclado trasmita la
siguiente se cuencia de Bytes:
Pulsar Shift-> 12h
Pulsar “G” -> 34h
Soltar “G” -> F0h 34h
Y soltar Shift -> F0h 12h
O escribiendo solo los byte s que vamos a re cibir:
1h , 34h , f 0h ,f 0h ,12h .

Nuestro come tido va a se r recibir e implementar esta se cuencia de bytes a actuar en


consecuencia
El te clado PS/2 también admite comandos. Dispone de funciones Build-in que
pode mos disparar mediante e l e nvió del comando correspondiente . Abajo muestra
Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

una tabla con los comandos disponibles que podemos enviar a nuestro teclado.
(Nosotros, en este proyecto no vamos a utilizarlos, pe ro ahí quedan por si alguno de
mis amables visitante s desea ampliar la funcionalidad.

Co ne xion ad o elé ctrico


El teclado PS/2 se conecta mediante cuatro hilos. Dos de e llos son para alimentación
Vcc a 5V y GND y otros dos para l as señales Data y Clock. El pinout de los cone ctores
Midi-Din PS/2 tanto hembra, los del PC, como machos los de l teclado, es tal como se
mue stra e n la imagen inferior

Ke yb oard 6 pin (PS/2)


(6p Midi-Din m ale at cable 7 Ke yb oard )
1-2
3-4
5-6
(6p Mini-Din Female (PS/2) at PC )
2-1
4-3
6-5

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

ALGORITMO

Entrad a:
Ingresar los da tos por medio de un tecla do P S2

Proceso:
Configurar e l LC D en el Puerto B
Configurar e l tec lado PS2 e n el Puerto C
De shabilito todas las interrupciones
Re tardo para que e stabilice e l teclado
Configuro e n Enter y backspace
De splie go datos en el LCD

Salid a:
Visualiza r e n e l L CD los datos ingresados por me dio del tecla do P S2

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

DIAGRAMA DE FLUJO

CODIGO

program practicateclado2
dim
keydata as byte
special as byte
down as byte
txt as string[20]
main:
INTCON = 0 ' deshabilita todas la interrupciones
lcd_config(portb,3,2,1,0,portb,4,6,5) 'Configura lcd
Ps2_Config(PortC,1,0) 'inicia teclado ps/2
‘en el puerto c
'clock=portc.1
Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

'data= portc.2
delay_ms(100) 'retardo para que finalice de
‘estabilizar teclado
txt= " "
while true
if Ps2_Key_Read(keydata, special, down) <> 0 then
if (down = 1) and (keydata = 16)<>0 then 'backspace
lcd_Cmd(LCD_move_cursor_left)
else if((down=1) and (keydata=13)) <>0 then 'enter
else if((down=1) and (special=0)and (keydata<>0)) <>0 then
lcd_chr_CP(keydata)
end if
end if
end if
end if
delay_ms(10) ' abtirebote
wend
end.

DIAGRAMA ESQUEMATICO

CONCLUSIONES
 Aprendimos la utilización de los teclados matriciales como para poder realizar un
calculadora con las operaciones básicas

 Conocimos la programación para poder habilitar el ingreso de datos a través de


teclado PS2 en el cual solo utilizamos los pines de Clock y data para poder ingresar y
visualizar los datos en el LCD

Ing. Electrónica
Sistem as Microprocesados I
UIVERSIDAD POLITÉCICA SALESIAA

 Debemos darnos cuenta de la configuración del Teclado PS2 que vayamos a conectar
para conectar los pines que deben ser conectados al microcontrolador (Clock y data)
pin RC0 y RC1 respectivamente

Bibliografía:
• Ayuda del Programa Microbasic.

• Ayuda del Programa Proteus 7.6. Para las simulaciones. Hojas de


Practicas

• Hojas guías de Prácticas de Laboratorio, Ing. Luis Oñate, UPS 2010-2011

Internet:
• Autor: Ariel Palazzesi, MikroBasic - Primera Parte, enlace:
http://www.neoteo.com/mikrobasic-primera-parte .neo, fecha de
consulta: lunes, 18 de noviembre de 2010
• Microchip, Datasheet PIC16F877A, enlace:
http://ww1.microchip.com/downloads/en/devicedoc/3092c.pdf ,
fecha de consulta: lunes, 18 de octubre de 2010
• Microchip, Datasheet PIC18f452, enlace:
http://ww1.microchip.com/downloads/en/devicedoc/3092c.pdf ,
fecha de consulta: lunes, 18 de octubre de 2010

Ing. Electrónica
Sistemas M icroprocesad os I