INFORME5f

download INFORME5f

of 19

Transcript of INFORME5f

  • 8/8/2019 INFORME5f

    1/19

    15-Dic-2010

    SISTEMAS MICROPROCESADOS I

    INFORME 5TECLADO

    DOCENTE:

    Ing. Electrnico.

    Luis Oate

    ESTUDIANTES:

    Fernando PazmioJuan SuasnavasGustavo Caiza

    Septiembre-

    Febrero 11

    U N I V E R S I D A D P O L I T C N I C A S A L E S I A N A

  • 8/8/2019 INFORME5f

    2/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    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 BConfigura el Teclado en el Puerto C

    Leer el Ingreso del teclado matricialEscribir en el LCD el valor de la posicin del botn en la matriz colocado en el tecladomatricial

    Salida:Visualizar en un LCD el valor de la posicin de la matriz correspondiente a cada

    pulsador

    DIAGRAMA DE FLUJO

    Configurar PuertoB LCD

    Pue rto C Teclado

  • 8/8/2019 INFORME5f

    3/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    CODIGO

    program teclado1dim 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 truea=keypad_read

    wordtostr(a,b)lcd_out(1,1,b)wend

    end.

    DIAGRAMA ESQUEMATICO

  • 8/8/2019 INFORME5f

    4/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    SIMULACION

    FOTOS TOMADAS EN LA PRACTICA

  • 8/8/2019 INFORME5f

    5/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. ElectrnicaSistemas M icroprocesados I

    Ejercicio 2.Problema:

    Escribir un programa para realizar las siguientes operaciones suma, resta , multiplicacin,

    divisin y Log base 10 de dos nmeros o un nmero segn sea el caso.Para escoger la operacin utilizar la opcin case-select

    Operacin Smbolo de la operacin meros de la operacin

    Suma 1 2Resta 2 2

    Multiplicacin 3 2Divisin 4 2

    Log10 5 1

    El LCD debe mostrar el siguiente mensaje ingrese el nmero de la operacin a realizar:Al ingresar por ejemplo el numero 1En el LCD aparece el mensaje ingrese N1Luego de ingresar el nmero aparece el mensaje ingrese el N2

    Luego aparece el mensaje 3+2=5

    ALGORITMO

    Entrada:Ingreso de datos por medio de un teclado matricial

    Proceso:Configuro el LCD en e l Puerto BConfiguro la entrada del teclado matricial en el Puerto C

    Comparo el valor 1 Ingresado para determinar que operacin debe realizarRealizar la operac in de Suma si es 1Realizar la operacin de Resta si es 2Realizar la operacin de Multiplicacin si es 3Realizar la operacin de Divisin si es 4

    Realizar la operacin de Log10 si es 5Desplegar en el LCD el resultado de cada operacin

    Salida:Visualizar en el LCD el resultado de cada operacin

  • 8/8/2019 INFORME5f

    6/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    DIAGRAMA DE FLUJO

    INICIO

    Configurar Puerto B LCD

    Puerto C Teclado

    Definir variables a y b

    Leer datos del teclado

    A=keypad_read

    If A

    A=1

    Ingresar N1 y N 2

    Res= N1+N2

    Resultado=R

    A=2

    Ingresar N1 y N2

    Res= N1-N2

    Resultado=R

    A=3

    Ingresar N1 y N2

    Res= N1*N2

    Resultado=R

    A=4

    Ingresar N1 y N2

    Res= N1/N2

    Resultado=R

    A=5

    Ingresar N1

    Res= Log10 N1

    Resultado=R

    Visualizar en el LCD Resultado

  • 8/8/2019 INFORME5f

    7/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. ElectrnicaSistemas M icroprocesados I

    CODIGO

    program calculadoratekladodim x1 as byte

    dim juan ita, j as bytedim n1,n2,resultado as integerdim 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 leerwhile (n1=0)

    lcd_out(1,1, "valor 1:")n1=keypad_releasedn1f=n1

    intTostr(n1,sn1)wend

    lcd_out(1,10,sn1)while (n2=0)lcd_out(2,1, "valor 2:")

    n2=keypad_releasedn2f=n2intTostr(n2,sn2)

    wendlcd_out(2,10,sn2)

    delay_ms(1000)end subsub procedure juanwhile (n1=0)lcd_out(1,1, "valor 1:")

    n1=keypad_releasedn1f=n1

    intTostr(n1,sn1)wendlcd_out(1,10,sn1)delay_ms(1000)

    end subsub 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 subsub procedure displayresf

    lcd_cmd(lcd_clear)lcd_out(1,1,sn1)

  • 8/8/2019 INFORME5f

    8/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. ElectrnicaSistemas M icroprocesados I

    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 operacionesselect case juanita

    case 1lcd_cmd(lcd_clear)leer op="+"resultado=n1+n2displayres

    case 2lcd_cmd(lcd_clear)leer op="-"

    resultado=n1-n2displayrescase 3

    lcd_cmd(lcd_clear)leer op="*"

    resultado=n1*n2displayrescase 4

    lcd_cmd(lcd_clear)leer op="/"resultado=n1f/n2f

    displayrescase 5lcd_cmd(lcd_clear)juan op="log10"

    resf=log10(n1f)displayresfcase else

    lcd_cmd(lcd_clear)lcd_out(1,1, "No hay operac io-")lcd_out(2,1, "nes asignadas")

    delay_ms(1000)lcd_cmd(lcd_clear)

    end selectend submain:

    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)

    wendlcd_out(2,8,b)

  • 8/8/2019 INFORME5f

    9/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    delay_ms(1000)operaciones

    n1=0n2=0juanita=0gotolazo

    end.

    DIAGRAMA ESQUEMATICO

    SIMULACIONES

  • 8/8/2019 INFORME5f

    10/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

  • 8/8/2019 INFORME5f

    11/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

  • 8/8/2019 INFORME5f

    12/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    FOTOGRAFIA TOMADAS EN LA PRACTICA

  • 8/8/2019 INFORME5f

    13/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    Ejercicio 3.

    Problema:

    Elaborar un programa para mostrar los caractere s ingresados desde un teclado PS2

    Descripcin y funcionamie nto 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 perfectamenteestablecida, 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 cdigo, de

    uno o dos bytes, para cada una de ellas y que son los cdigos que nos va a trasmitir

    para indicarnos que se est pulsando un tecla determinada. A estos cdigos les vamos

    a llamar cdigos de rastreo de teclado . Ms abajo se muestra una imagen de un

    teclado e stndar donde se muestra los cdigos de rastreo de todas y cada una de las

    Teclas:

  • 8/8/2019 INFORME5f

    14/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    El teclado PS/2 enva el cdigo 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 repeticin, que es programable, y el mismo cdigo de rastreo

    con el prefijo del byte F0h al ser soltada, tambi n conocido como break code.

    Por ejemplo: Para conseguir la letra G Mayscula 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 recib ir:

    1h, 3 4h , f0h ,f0h ,1 2h.

    Nuestro cometido va a ser recibir e implementar esta secuencia de bytes a actuar en

    consecuencia

    El teclado PS/2 tambin admite comandos. Dispone de funciones Build-in que

    podemos disparar mediante el envi del comando correspondiente. Abajo muestra

  • 8/8/2019 INFORME5f

    15/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    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.

    Conexionado elctricoEl teclado PS/2 se conecta mediante cuatro hilos. Dos de ellos son para alimentacin

    Vcc a 5V y GND y otros dos para las seales 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

    Ke yboard 6 pin (PS /2)

    (6p Midi-Din m ale at cable 7 Ke yboa rd)

    1-2

    3-4

    5-6

    (6p Mini-Din Female (PS /2) at PC )2-1

    4-3

    6-5

  • 8/8/2019 INFORME5f

    16/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    ALGORITMO

    Entrada:Ingresar los da tos por med io de un tecla do P S2

    Proceso:Configurar el LCD en el Puerto B

    Configurar el teclado PS2 en el Puerto C

    Deshabilito todas las interrupciones

    Retardo para que e stabilice el teclado

    Configuro en Enter y backspace

    Despliego datos en el LCD

    Salida:Visualiza r en el LCD los datos ingresados por me dio del tecla do P S2

  • 8/8/2019 INFORME5f

    17/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    DIAGRAMA DE FLUJO

    CODIGO

    program practicateclado2

    dim

    keydata as bytespecial as bytedown as bytetxt as string[20]main:

    INTCON = 0 ' deshabilita todas la interrupcioneslcd_config(portb,3,2,1,0,portb,4,6,5) 'Conf igura lcdPs2_Config(PortC,1,0) 'inicia teclado ps/2

    en el puerto c'clock=portc.1

  • 8/8/2019 INFORME5f

    18/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. Electrnica

    'data= portc.2delay_ms(100) 'retardo para que finalice de

    estabilizar tecladotxt= " "while trueif Ps2_Key_Read(keydata, special, down) 0 thenif (down = 1) and (keydata = 16)0 then 'backspace

    lcd_Cmd(LCD_move_cursor_left)else if((down=1) and (keydata=13)) 0 then 'enter

    else if((down=1) and (special=0)and (keydata0)) 0 thenlcd_chr_CP(keydata)end ifend if

    end ifend if

    delay_ms(10) ' abtirebotewend

    end. DIAGRAMA ESQUEMATICO

    CONCLUSIONES Aprendimos la utilizacin de los teclados matriciales como para poder realizar un

    calculadora con las operaciones bsicas

    Conocimos la programacin para poder habilitar el ingreso de datos a travs deteclado PS2 en el cual solo utilizamos los pines de Clock y data para poder ingresar y

    visualizar los datos en el LCD

  • 8/8/2019 INFORME5f

    19/19

    UIVERSIDAD POLITCICA SALESIAA

    Ing. ElectrnicaSistemas M icroprocesados I

    Debemos darnos cuenta de la configuracin del Teclado PS2 que vayamos a conectarpara conectar los pines que deben ser conectados al microcontrolador (Clock y data)

    pin RC0 y RC1 respectivamente

    Bibliografa: Ayuda del Programa Microbasic. Ayuda del Programa Proteus 7.6. Para las simulaciones. Hojas de

    Practicas

    Hojas guas de Prcticas de Laboratorio, Ing. Luis Oate, UPS 2010-2011Internet:

    Autor: Ariel Palazzesi, MikroBasic - Primera Parte, enlace:http: //www.neoteo.com/mikrobasic-primera-parte .neo , fecha de

    consulta: lunes, 18 de noviembre de 2010

    Microchip, Datasheet PIC16F877A, enlace:http: //ww1.microchip.com/downloads/en/devicedoc/3092c.pdf ,

    fecha de consulta: lunes, 18 de octubre de 2010

    Microchip, Datasheet PIC18f452, enlace:http: //ww1.microchip.com/downloads/en/devicedoc/3092c.pdf ,

    fecha de consulta: lunes, 18 de octubre de 2010