Upload
psicop89
View
214
Download
0
Embed Size (px)
Citation preview
8/9/2019 INFORME_PRACTICA_5
1/16
1
FACULTAD DE INGENIERAS
CARRERAELECTRNICA
SISTEMAS MICROPROCESADOS I
INFORME PARACTICA N5
TECLADOS
INTEGRANTES:
LUIS HERNADEZ
JUAN DAVID HERRERA
8/9/2019 INFORME_PRACTICA_5
2/16
2
Prctica N 3
TEMA: Teclados
OBJETIVO:
Utilizar el microcontrolador con teclados matricial y PS2
Ejercicio N 1:
Visualizar en un display LCD el valor ingresado por un teclado matricial.
Algoritmo:
Entradas:
y
Valores ingresados por teclado (puerto C).
Procesos:
y Dimensiono la variable a como byte
y Dimensiono la variable b como String con un array de seis elementosy Configuro los registros internos del LCD
y Apago el cursor
y Inicializ el Puerto C para trabajar con el teclado
y Comparacin while true
y Lee la variable a
y La variable a se transforma a String la variable b
y Se despliega en la posicin indicada la variable b
Salidas:
y Escritura en el LCD (Puerto B)
Cdigo:
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.
8/9/2019 INFORME_PRACTICA_5
3/16
3
Di
d Flujo:
8/9/2019 INFORME_PRACTICA_5
4/16
4
Esqu ti o:
Foto
f s:
8/9/2019 INFORME_PRACTICA_5
5/16
5
8/9/2019 INFORME_PRACTICA_5
6/16
6
Ejercicio N 2:
Escribir un programa para realizar las siguientes operaciones: suma, resta, multiplicacin,
divisin, potencia de tres, raz cuadrada, seno, tangente, logaritmo base 10, de dos nmeros o
un nmero segn sea el caso. Para escoger la operacin utilizar la operacin case-select
Operacin: Smbolo para la operacin Nmeros de la operacin
Suma 1 2
Resta 2 2
Multiplicacin 3 2Divisin 4 2
Log10 5 1
Algoritmo:
Entradas:
y Seleccin de las operaciones por tecladoy Seleccin del valor numrico
Procesos:
y Definir variables para las Operaciones.
y Configuro mi LCD
y Configuro mi teclado
y Lee mis datos por teclado
y Seleccin de opciny Operacin a Realizar Suma, Resta, Multiplicacin, Divisin, Log10
y Desplegar los datos en el LCDy Repeticin del Programa.
Salidas:
y Resultados de la operaciones visualizados en el LCD
8/9/2019 INFORME_PRACTICA_5
7/16
7
Cdigo:
program calculadora
dim x1 as byte
dim l,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(1500)
end sub
sub procedure d
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(1500)
end sub
sub procedure displayres
lcd_cmd(lcd_clear)
8/9/2019 INFORME_PRACTICA_5
8/16
8
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(2000)
lcd_cmd(lcd_clear)
end sub
sub procedure displayresf
lcd_cmd(lcd_clear)
lcd_out(1,1,sn1)
lcd_out_cp(op)
'lcd_out_cp(sn2)
lcd_out_cp("=")
floatTostr(resf,sr)lcd_out(2,1,sr)
delay_ms(3000)
lcd_cmd(lcd_clear)
end sub
sub procedure operaciones
select case l
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*n2displayres
case 4
lcd_cmd(lcd_clear)
leer op="/"
resultado=n1f/n2f
displayres
case 5
8/9/2019 INFORME_PRACTICA_5
9/16
9
lcd_cmd(lcd_clear)
d 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(1500)
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 (l=0)
lcd_out(1,1,"Ingrese su")
lcd_out(2,1,"opcion: ")
l=keypad_released wordtostr(l,b)
wend
lcd_out(2,8,b)
delay_ms(500)
operaciones
n1=0
n2=0
l=0
goto
lazo
end.
8/9/2019 INFORME_PRACTICA_5
10/16
10
Di
d Flujo:
8/9/2019 INFORME_PRACTICA_5
11/16
11
Esqu
ti o:
Foto!
" #f# s:
8/9/2019 INFORME_PRACTICA_5
12/16
12
8/9/2019 INFORME_PRACTICA_5
13/16
13
Ejercicio N 3:
Elaborar un programa para mostrar los caracteres ingresados desde un teclado PS2
Algoritmo:
Entradas:
y Datos ingresados en el teclado PS2
Procesos:
y Apaga todas las interrupciones
y Configura el puerto B
y Inicializa Teclado PS/2 en PORTC Pin 0 = Data y Pin 1 = Clock
y Retardo de 100 msy Lazo
y Si se ha presionado una tecla
y Espacio en blanco
y Mueve cursor a la izquierda
Salidas:
y Caracteres mostrados en el LCD
Cdigo:
program tecgrandeluia16
dim
keydata as byte
special as byte
down as byte
txt as string[20]
main:
INTCON=0
lcd_Config(PORTB,7,6,5,4,PORTB,0,1,2)
Ps2_Config(PORTC, 1, 0)
delay_ms(100)
txt=" "
while true
if(Ps2_Key_Read(keydata,special,down))0 then
if((down=1)and (keydata=16))0 then
8/9/2019 INFORME_PRACTICA_5
14/16
14
Lc $ _Cmd(LCD_MOVE_CURSOR_LEFT)
e % se if ((down=1)and(keydata=13))0 then
e % se if ((down=1)and(s & ecial=0)and(keydata0))then
Lcd_Chr_CP(keydata)
end if
end if
end if
end if
delay_ms(10)
wend
end.
Di'
(
) ' 0 '
d1
flujo:
8/9/2019 INFORME_PRACTICA_5
15/16
15
Foto2
3 4f4 s:
8/9/2019 INFORME_PRACTICA_5
16/16
16
Conclusiones:
y Mikrobasic hace muy cmoda la programacin, ya que tiene un lenguaje del programa
ms entendible, y proporciona acceso muy rpido a la excelente ayuda incluida.
y El teclado matricial debe ser conectado de forma correcta debido a que si no se lo hace as
al presionar un botn este no mostrara el dgito presionado sino que mostrara cualquier
otro, por eso siempre debemos de tener en cuenta como es la conexin de filas y
columnas en el teclado.
y El teclado ps2 es muy inteligente ya que el mismo se encarga del rastreo de teclas y de
transmitirlas rpidamente, ya que las teclas estn asignadas a un cdigo de uno o dos
bytes para cada una los cuales se transmiten cada vez que pulsamos una tecla.
Recomendaciones:
y Tener mikrobasic instalado con el crack respectivo ya que si no se lo tiene saldr un error
al momento de compilar los programas.
y Para el programa de la calculadora es necesario tener un pic de mayor memoria que el16F877a.
y Revisar la configuracin de pines del teclado PS2 antes de realizar la practica.
Bibliografa:
y Apuntes tomados en clase.
y Hojas gua entregadas en Sistemas Microprocesados 1
y Microcontroladores "PIC": diseo prctico de aplicaciones. Segunda Parte : el PIC12F508 yPIC16F84A : lenguajes Emsamblador, C y PBASIC Microcontroladores"pic": Diseo prcticode aplicaciones, Jos Mara Angulo Usategui, Edicin 4, Editor McGraw-Hill, Interamericana
de Espaa.