Post on 15-Jun-2015
description
transcript
Universidad Politécnica Salesiana
Ingeniería Electrónica
Sistemas Microprocesados
INFORME DE LABORATORIO V
UTILIZACIÓN DE DECLARACIONES CON MICROCONTROLADOR ATMEGA16
Integrantes:
Juan Villacís S.
Gabriela Chicaiza
Darío Valarezo
Ing. Luis Oñate
Periodo
Sept./2009-feb/2010
Tema: Teclados
Objetivo: Utilizar el microcontrolador con teclados matricial y PS2
Elementos:Rp1 es un pack de resistencias de 10 Kohms
Desarrollo de las Prácticas del laboratorio de Sistemas Microprocesador.
Ejercicio 1
Visualizar en un display LCD el valor ingresado por el teclado matricial.
Desarrollo del ejercicio
Determinar:
Entradas:
Datos por teclado
Salidas:
Display LCD
Procesos:
o Definir variables
o Configuro mi LCD
o Configuro mi teclado
o Lee mis datos por teclado
o Displiega datos en el LCD
Diagrama de Flujo
INICIO
Configuro teclado.LCD
Defino variables A, B
Ingreso datos por teclado
Leo A=keypad_read
Visualizo # en el LCD
Fin
Codificación:
Esquemático
Simulación
2.- Escribir un programa para realizar las siguientes operaciones: suma resta ,
multiplicación ,división ,potencia de tres ,raíz cuadrada ,seno , tangente ,
logaritmo base 10, de los números o un números según sea el caso, Para
escoger al operador utilizar la opción case-select
Operación Simbología para operación Números de la Operación.
Suma 1 2
Resta 2 2
Multiplicación 3 2
División 4 2
Potencia 5 1
Raíz cuadrada 6 1
Seno 7 1
Tangente 8 1
Log10 9 1
El LCD debe mostrar el siguiente mensaje ingrese el número de la operación a
realizar:
Al ingresar el número por ejemplo 1
En e l LCD aparece el mensaje ingrese N1=2
Luego de ingresar el número aparece el mensaje ingrese el N2=3
Luego aparece el mensaje 3+2=5
Desarrollo del ejercicio
Determinar:
Entradas: Selección de Operacion por teclado
Ingresar dos Número o Uno para realizar operaciones
Salidas: resultado de la Operación en el LCD.
Procesos:
o Definir variables para las Operaciones.
o Configuro mi LCD
o Configuro mi teclado
o Lee mis datos por teclado
o Selección de Opcion
o Operación a Realizar Suma Resta Multimplicación Ver Tabla.
o Displiega datos en el LCD
o Repeticion Ciclica del Programa.
Diagrama de Flujo
Calculadora.
Codificación:
program Practica5_2calculadora dim a,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(500) end sub sub procedure leer1 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(500) 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("=") intTostr(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) lcd_out_cp(op) lcd_out_cp(sn2) lcd_out_cp("=") floatTostr(resf,sr) lcd_out(2,1,sr) delay_ms(1500) lcd_cmd(lcd_clear) end sub sub procedure displayresf1 lcd_cmd(lcd_clear) lcd_out(1,1,op) lcd_out_cp(" de") lcd_out_cp(sn1) lcd_out_cp("=") floatTostr(resf,sr) lcd_out(2,1,sr) delay_ms(1500)
lcd_cmd(lcd_clear) end sub sub procedure operaciones select case a 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="/" resf=n1f/n2f displayresf case 5 lcd_cmd(lcd_clear) leer op="^" resf=1.0 for j=1 to n2 resf=resf*n1f next j displayresf case 6 lcd_cmd(lcd_clear) leer1 op="raiz" resf=sqrt(n1) displayresf1 case else lcd_cmd(lcd_clear) lcd_out(1,1,"No hay operacio-") lcd_out(2,1,"nes asignadas") delay_ms(500) 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 (a=0) lcd_out(1,1,"Ingrese su") lcd_out(2,1,"opcion: ") a=keypad_released wordtostr(a,b) wend lcd_out(2,8,b) delay_ms(500) operaciones n1=0 n2=0 a=0 goto lazo end.
Esquemático
Simulación
Ejercicio 3.-
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 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
mientras la mantenemos pulsada, pulsada, pulsar la tecla G, soltar la tecla G y soltar la
tecla shift. Esa secuencia de pulsaciones nos va a hacer que el teclado trasmita la
siguiente secuencia de Bytes:
Pulsar Shift-> 12h
Pulsar “G” -> 34h
Soltar “G” -> F0h 34h
Y soltar Shift -> F0h 12h
O escribiendo solo los bytes que vamos a recibir:
1h, 34h , f0h ,f0h ,12h.
Nuestro cometido va a ser recibir e implementar esta secuencia de bytes a actuar en
consecuencia
El teclado PS/2 también admite comandos. Dispone de funciones Build-in que
podemos disparar mediante el envió del comando correspondiente. Abajo muestra una
tabla con los comandos disponibles que podemos enviar a nuestro teclado. (Nosotros,
en este proyecto no vamos a utilizarlos, pero ahí quedan por si alguno de mis
amables visitantes desea ampliar la funcionalidad.
COMMANDº Hex Value
Set/reset Status Indicators ED
Echo EE
Invalid command EF
Select Alternate Scan Codes F0
Invalid Command F1
Read ID F2
Set Typematic rate/Delay F3
Enable F4
Default Disable F5
Set Default F6
Set All keys
Typematic
Make/Break
Make
Typematic/Make/break
F7 F8 F9 FA
Set Key Type
Typematic
Make/break
Make
FB FC FF
Resend FE
Reset FF
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
Keyboard 6 pin (PS/2)
(6p Midi-Din male at cable7 Keyboard)
1-2
3-4
5-6
(6p Mini-Din Female (PS/2) at PC)
2-1
4-3
6-5
Pin Name Dir. Description 1 DATA <<<<>>>> Key Data
2 N7c Not connected
3 GND ------ Gnd
4 Vcc >>>> Power, +5 Vdc
5 CLK >>>>> Clock
6 N7c Not connected
Determinar:
Entradas:
datos por Teclado PS/2
Salidas:
Mostrar letras en el LCD.
Procesos:
Declarar mis variables
Deshabilito todas las interupciones
Configuro el LCd
Inicio teclado PS/2 en el puerto C
Clock=portc.1
Data =portC.0
Retardo para que estabilice el teclado
Configuto en Enter y backspace
Despligo datos en el LCD
Diagrama de Flujo
INICIO
Defino mis variables kD, S, D, Txt
Txt =“ “
Configuro LCD
Configurar Puertos
Var<>0
Var=16
Move Cursor
Var<>0
Var=<>0
0
enter
Dato LCD
Retardo 10 ms
Codificación:
Conclusiones:
Es necesario conocer y entender la configuración interna del teclado q vamos a
utilizar porque es necesario ubicar de manera correcta cada una de sus teclas
para manejar datos reales y visibles.
La configuración del teclado debe ser correcta porque podemos obtener datos
equívocos al momento de ejecutar y simular los datos.
Recomendaciones:
Tener un teclado fácil de configurarlo
Se necesita un PIC de mayor capacidad para poder cargar todas las
aplicaciones de la calculadora porque el pic16f877A tiene muy poca memoria
Obtener el Crack del programa para poder copilar el programa.