Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Septiembre-Febrero
10
SISTEMAS MICROPROCESADOS I
INFORME 5
TECLADO
DOCENTE:
Ing. Electrónico.
Luis Oñate
ESTUDIANTES:
Fernando Pazmiño
Juan Suasnavas
Gustavo Caiza
15-Dic-2010
DESARROLLO
OBJETIVO: Utilizar el microcontrolador con teclados matricial.
Ejercicio 1.
Visualizar en un display LCD el valor ingresado por un teclado matricial.
ALGORITMO
Entrada:
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
Salida:
Visualizar en un LCD el valor de la posición de la matriz correspondiente a cada
pulsador
DIAGRAMA DE FLUJO
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
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
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
SIMULACION
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
Ejercicio 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
ALGORITMO
Entrada:
Ingreso de datos por medio de un teclado matricial
Proceso:
Configuro el LCD en el Puerto 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 Suma 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
2
Salida:
Visualizar en el LCD el resultado de cada operación
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
DIAGRAMA DE FLUJO
INICIO
Puerto C Teclado
Definir variables a y b
If A
Res= N1+N2 Res= N1-N2 Res= N1*N2 Res= N1/N2 Res= Log10 N1
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
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
intTostr(n1,sn1)
wend
lcd_out(1,10,sn1)
while (n2=0)
lcd_out(2,1,"valor 2:")
n2=keypad_released
n2f=n2
intTostr(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
intTostr(n1,sn1)
wend
lcd_out(1,10,sn1)
delay_ms(1000)
end sub
sub procedure displayres
lcd_cmd(lcd_clear)
2
lcd_out(1,1,sn1)
lcd_out_cp(op)
lcd_out_cp(sn2)
lcd_out_cp("=")
intTostr(resultado,sr)
lcd_out(2,1,sr)
delay_ms(1500)
lcd_cmd(lcd_clear)
end sub
sub procedure displayresf
lcd_cmd(lcd_clear)
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
lcd_out(1,1,sn1)
lcd_out_cp(op)
lcd_out_cp("=")
floatTostr(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 operacio-")
lcd_out(2,1,"nes asignadas")
delay_ms(1000)
lcd_cmd(lcd_clear)
end select
2
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_released wordtostr(juanita,b)
wend
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
lcd_out(2,8,b)
delay_ms(1000)
operaciones
n1=0
n2=0
juanita=0
goto
lazo
end.
DIAGRAMA ESQUEMATICO
SIMULACIONES
2
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
Ejercicio 3.
Problema:
2
Elaborar un programa para mostrar los caracteres ingresados desde un teclado PS2
Descripción y funcionamiento a “alto nivel”
Un teclado PS/2 de 104 teclas para PC es un dispositivo razonablemente inteligente.
Esto quiere decir que él mismo se encarga de la parte hardware del rastreo de teclas,
evitar los insufribles rebotes y de trasmitirnos, mediante una trama perfectamente
establecida, de los resultados, de los resultados de nuestras manipulaciones sobre sus
teclas. El teclado PS/2 tiene un mapa de teclas a las que se las asigna un código, de
uno o dos bytes, para cada una de ellas y que son los códigos que nos va a trasmitir
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
para indicarnos que se está pulsando un tecla determinada. A estos códigos les vamos
a llamar códigos de rastreo de teclado. Más abajo se muestra una imagen de un
teclado estándar donde se muestra los códigos de rastreo de todas y cada una de las
Teclas:
El teclado PS/2 envía el código de rastreo asociado a una tecla al ser ésta pulsada,
tantas veces como sea necesario si se mantiene pulsada con una cadencia tal como
indique su tiempo de repetición, que es programable, y el mismo código de rastreo con
el prefijo del byte F0h al ser soltada, también conocido como break code.
Por ejemplo: Para conseguir la letra G Mayúscula debemos pulsar la tecla shift y
2
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
Conexionado eléctrico
El teclado PS/2 se conecta mediante cuatro hilos. Dos de ellos son para alimentación
Vcc a 5V y GND y otros dos para las señales Data y Clock. El pinout de los conectores
Midi-Din PS/2 tanto hembra, los del PC, como machos los del teclado, es tal como se
muestra en la imagen inferior
2
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
ALGORITMO
Entrada:
Ingresar los datos por medio de un teclado PS2
Proceso:
Configurar el LCD en el Puerto B
Configurar el teclado PS2 en el Puerto C
Deshabilito todas las interrupciones
Retardo para que estabilice el teclado
Configuro en Enter y backspace
Despliego datos en el LCD
Salida:
Visualizar en el LCD los datos ingresados por medio del teclado PS2
2
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
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
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
DIAGRAMA ESQUEMATICO
CONCLUSIONES
Aprendimos la utilización de los teclados matriciales como para poder realizar un
calculadora con las operaciones básicas
Ing. Electrónica
Sistemas Microprocesados I
UNIVERSIDAD POLITÉCNICA SALESIANA
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
BIBLIOGRAFIA
Datasheet PIC18F452
Sistemasmicroprocesadosi.nin.com
Ing. Electrónica
Sistemas Microprocesados I