Вы находитесь на странице: 1из 13

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

Defino variables A, B

Configuro teclado.LCD

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 F7
Make/Break F8
Make F9
Typematic/Make/break FA
Set Key Type
Typematic FB
Make/break FC
Make 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

Configuro LCD

Configurar Puertos

Txt =“ “

Var<>0

Var=16

Var<>0
Move Cursor

enter
Var=<>0
0

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.

Вам также может понравиться