Sunteți pe pagina 1din 17

MARZO JULIO 2010

UNIVERSIDAD POLITCNICA SALESIANA


SISTEMAS MICROPROCESADOS 1

INFORME PRCTICA #05 TEMA: Teclados.

DAVID ESPIN ANDRS MOGRO

QUITO - ECUADOR

PRCTICA 05 OBJETIVO: Utilizar el microcontrolador con teclado matricial y PS2. 1. Visualizar en un display LCD el valor ingresado por un teclado matricial. Entradas: El puerto C que se configurara para el teclado matricial. Procesos: Configuro el LCD en el puerto B Leo la posicin del teclado Salidas: La salida del puerto B hacia el LCD. 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.

DIAGRAMA DE FLUJOS.

INICIO

Configuro el puerto C como entrada y el puerto B como salida

Pulso en el teclado

NO

SI

Muestro en el LCD

ESQUEMTICO.

FOTOS.

2. Escribir un programa para realizar las siguientes operaciones suma, resta, multiplicacin, divisin, logaritmo base 10. Para escoger la operacin utilizar la operacin case-select. Operacin Suma Resta Multiplicacin Divisin Logo10 Smbolo para la operacin 1 2 3 4 5 Nmeros de la operacin 2 2 2 2 1

El LCD debe mostrar el siguiente mensaje ingrese el nmero de la operacin a realizar: Al ingresar el nmero por ejemplo 1 En el LCD aparece el mensaje ingrese N1=2 Luego de ingresar el nmero aparece el mensaje ingrese el N2=3 Luego aparece el mensaje 3+2=5

Entradas: El puerto C que se configurara para el teclado matricial. Procesos: Configuro el LCD en el puerto B Selecciono la operacin a realizarse Suma, resta, multiplicacin, divisin, o logaritmo base 10 Ingreso los datos

Salidas: La salida del puerto B hacia el LCD para visualizar el resultado de la operacin.

CDIGO.
program calculadora

dim x1 as byte dim luis,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 david 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(3000) lcd_cmd(lcd_clear) end sub

sub procedure operaciones select case luis 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) david 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(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 (luis=0) lcd_out(1,1,"Ingrese su") lcd_out(2,1,"opcion: ") luis=keypad_released wordtostr(luis,b) wend

lcd_out(2,8,b) delay_ms(500) operaciones n1=0 n2=0 luis=0 goto lazo end.

DIAGRAMA DE FLUJO

ESQUEMTICO.

FOTOS.

5.3 Elaborar un programa para mostrar los caracteres ingresados desde un


teclado PS-2

Entradas: Los datos que se van a guardar en el microcontrolador.


Ingresar los valores del teclado Ps_2 a travs del puerto c

Procesos: Habilitar el display mediante el puerto B como salida. Configurar la LCD mediante el puerto B y la lectura del teclado a travs del comando Ps2_Config(portC,1,0) Enviar datos al puerto B para posteriormente enviarlos hacia el display. Salidas: Salida del puerto B hacia el display alfanumrico.

CDIGO
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) Ps2_Config(PortC,1,0) en el puerto c

'Configura lcd 'inicia teclado ps/2

'clock=portc.1 'data= portc.2 delay_ms(100) estabilizar teclado txt= " " 'retardo para que finalice de

while true if Ps2_Key_Read(keydata, special, down) <> 0 then if (down = 1) and (keydata = 16)<>0 then lcd_Cmd(LCD_move_cursor_left) 'backspace

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) wend end.

'abtirebote

DIAGRAMA DE FLUJO

INICIO

CONFIGURAR LCD COMO SALIDA

DECLARAR VARIABLES Y DESHABILITAR INTERRUPCIONES

LEER LOS DATOS DEL TECLADO Y ENVIARLOS AL PUERTO B.

VISUALIZAR EN EL LCD

ESQUEMTICO Y SIMULACIN

FOTOS

BIBLIOGRAFA
MICROCONTROLADORES PIC. Diseo prctico de aplicaciones SEGUNDA PARTE: PIC 16F87X PIC 18FXXXX. Segunda edicin. Segundo Angulo, Susana Romero, Mc Graw Hill. Espaa. Hojas guas de la prctica. Ayuda del software Mikrobasic.

S-ar putea să vă placă și