Report E Pract 4

  • Uploaded by: GAma ChGo
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Report E Pract 4 as PDF for free.

More details

  • Words: 1,674
  • Pages: 19
Loading documents preview...
Actividades prácticas. Parte 1. Verificar el funcionamiento de los programas propuestos. Ejemplo 1. Simulación en proteus:

Fig1. Circuito simulado en proteus. 

Explique el funcionamiento del programa al oprimir cada uno de los interruptores.

Al oprimir el botón A0 se limpia la LCD mediante la instrucción lcd_putc(`\f`), se manda imprimir a la lcd mediante printf(lcd_putc, “micro-electronik “), se hace una pausa de 2 segundos y se vuelve a limpiar la lcd mediante lcd_putc(`\`f`) posteriormente se imprime de nuevo Presiona un boton.

Fig2. Mensaje al oprimir el botón A0. Al oprimir el botón A1 se limpia la lcd mediante la instrucción lcd_putc(`\f``) y mediante un ciclo For se inicializa una variable en 17 que será la posición donde se imprimirá el mensaje a visualizar en la lcd, mediante la instrucción lcd_gotoxy(i,1) se ira moviendo el mensaje hacia la izquierda.

Fig3. Mensaje recorriéndose de derecha a izquierda.

Al oprimir el botón A2 se borra el lcd y nuevamente se utiliza un ciclo For para ir recorriendo el mensaje de izquierda a derecha mediante la instrucción que posiciona el cursor lcd_gotoxy(i,1) y la que manda imprimir en pantalla que es printf(lcd_putc,”recorriendo a la derecha”).

Fig4. Recorriendo mensaje a la derecha. 

Menciona cual es la manera de recorrer un texto a la derecha o izquierda.

Se puede recorrer mediante la instrucción gotoxy(i,i) que nos indica la posición del cursor en la lcd, variando las coordenadas y las impresiones en la lcd mediante Printf(lcd_putc,” “) se puede hacer el recorrido hacia la derecha o izquierda. Ejemplo2. Simulación en proteus:

Fig5. Simulación en proteus teclado matricial.

Ejemplo3: Este progreama utiliza las librerías lcd.c y Kbd.c para poder utilizar la pantalla LCD y la matriz de 4X3. Mediante la instrucción kbd_getch( ); se obtiene el valor de la tecla que se selecciona, ese valor se imprime en la lcd mediante la instrucción printf(lcd_putc, “tecla=%c,k); Simulación en proteus:

Fig6. Circuito matriz-lcd.

Fig7. Despliegue de la tecla seleccionada. Ejemplo4: Este programa despliega en el lcd una leyenda diferente dependiendo el valor que tome la variable K, esta variable guarda el dato del valor de la tecla seleccionada en el teclado matricial. Simulación proteus:

Fig8. Mensajes dependiendo la tecla.

A) Utilizando el Circuito de la figura 4.3 y el elemento actuador del circuito 4.3 (relevador), proponga un programa que inicie con el mensaje “Contraseña” y obtenga 3 dígitos de contraseña mediante el teclado, visualizando en un LCD uno a uno de los caracteres, al obtener los tres dígitos visualizar la contraseña y esperar un segundo para mostrar el mensaje “acceso” recorriéndolo a la derecha y activar el relevador durante 2 segundo, el caso de ser incorrecto que aparezca “denegado” recorriendo el texto a la derecha durante 2 segundos, al finalizar que aparezca el texto “Contraseña”. Código:

Para tener una contraseña fija se guardan los dígitos de esta en memoria rom como lo muestra la línea 11 del código, se utilizaron las librerías lcd.c y kbd.c que corresponden a las funciones de la pantalla LCd y al teclado matricial, el valor del teclado matricial se obtiene utilizando la instrucción kbd_getch( ); que se asigna a la variable K. Mediante la instrucción lcd_gotoxy(i,i) se imprimen los dígitos ingresados en el teclado sobre la segunda línea del LCD. Se leen los valores de la contraseña definida en la memoria rom mediante la instrucción read_eeprom(i); y se comparan con los datos ingresados mediante el teclado, si los datos son iguales se despliega de izquierda a derecha la palabra acceso y se pone en alto el pin c4 que seria el que active el relevador, de lo contrario se despliega la palabra denegado de izquierda a derecha.

Simulación:

Fig9. Circuito teclado-LCD.

Fig10. Mensajes de acceso.

B) Se requiere un tablero digital implementado en un LCD. El sistema deberá mostrar la puntuación de para juegos de hockey, en ambas porterías existen sensores denominado A y B que detectan cuando se anota un gol por lo que automáticamente se marcara el puntaje y tiene un botón para reiniciar la cuenta. Código:

Nuevamente se utilizo la función lcd.c para poder habilitar la pantalla LCD. Se utilizo la instrucción printf(lcd_putc,” “); para desplegar información en la pantalla. Se pregunto por el botón que se apretaba y dependiendo este se incrementaba un contador que era el marcador y se mandaba imprimir a la pantalla LCD.

Simulación en proteus:

Fig11. Marcador local-visitante

C) Utilizando un LCD, teclado matricial, implemente programa que realice las función como un horno de microondas del 0 a la 9 definidas por el usuario donde la función 0 debe durar un tiempo 100seg y las opciones restantes deben ser definidas por el programador. En el LCD se debe iniciar con la leyenda Selecciona, posteriormente al oprimir la tecla debe aparecer cual oprimió, luego la función (por ejemplo 0 es igual descongelar) y deben de visualizar el tiempo que lleva al llegar a cero debe aparecer finalizado y encender un led para posteriormente volver a seleccionar, las opciones * y # deben marcar “no validas Código: Para este código se utilizo las librerias lcd.c y kbd.c para poder habilitar las funciones de la pantalla LCD así como el teclado matricial, para obtener el valor de la tecla seleccionada se utilizo la instrucción kbd_getch( );. Para entrara a cada función del teclado se utilizo un Switch y cada caso correspondía a un digito del teclado matricial. Dentro de cada caso se mando imprimir la función que correspondía (descongelar, pollo, etc) posteriormente un contador va decrementando el valor inicial y se desplegaba continuamente en la pantalla LCD hasta que llega a cero. Al finalizar el tiempo aparece un mensaje de “finalizado” y se manda a alto el pin C0. Para los botones “#” y “*” se despliega en la pantalla LCD un mensaje de “no valido” por un periodo de dos segundos.

Simulación en proteus:

Fig12. Circuito teclado-LCD.

Fig13. Selección de dígitos.

D) Utilizando un LCD, teclado matricial, implemente programa que realice las función como un horno de microondas donde con el teclado numérico definir el tiempo de funcionamiento En el LCD se debe iniciar con la leyenda Selecciona tiempo , posteriormente pedir el tiempo en segundo el valor máximo debe ser 5 minutos, al iniciar deben de visualizar el tiempo que lleva al llegar a cero debe aparecer finalizado y encender un led para posteriormente volver a seleccionar tiempo, las opciones * y # deben marcar ser usar para iniciar la cuenta o para reiniciar y pedir el y tiempo de nuevo.

Código:

Simulación en proteus:

Fig14. Circuito horno de microondas.

Fig15. Ingresando valores.

Cuestionario A) Menciona los diferentes formatos para expresar un carácter en un LCD con el compilador de C. El formato es %nt, donde n es opcional y pude ser:  1-9: para especificar cuantos caracteres se deben especificar.  01-09: para indicar la cantidad de ceros a la izquierda.  1.1-9.9 para coma flotante. T puede indicar:  C carácter.  S cadena o carácter.  U entero sin signo.  d entero con signo.  Lu entero largo sin signo.  Ld entero largo con signo.  X entero hexadecimal.  Lx entero largo hexadecimal.  F flotante con truncado.  G flotante con redondeo.  E flotante en formato exponencial.  W entero sin signo con decimales insertados. B) En el caso del archivo de manejo de LCD como de teclado, ¿Que modificaciones se tienen que realizar para utilizar un puerto diferente al B o D? Se puede trabajar con otros puertos, por ejemplo el PortC, modificando el fichero lcd.c. Modificando las siguientes sentencias se puede trabajar con otro puerto (A,C,etc).

#if defined use_portb_lcd #locate lcd = getenv(“sfr: PORTB”) #define set_tris_lcd(x) set_tris_b(x) #else #locate lcd = getenv(“sfr: PORTD”) #define set_tris_lcd(x) set_tris_d(x) #endif

C) ¿Por qué en la instrucción #rom tiene el valor 0x2100 Porque la dirección de la memoria EEPROM comienza desde la dirección 0x2100 y termina hasta la dirección 0x21FF

D) Que modificación se tendrían que realizar para manejar el teclado en puerto B y LCD en el puerto C Para utilizar el puerto B es necesario eliminar el comentario de la siguiente línea el archivo LCD.C. #define use_port_kbd TRUE Para poder utilizar la pantalla LCD con el puerto C necesitas modificar las sentencias en el fichero lcd.c como se indico en la pregunta del inciso b

E) Que modificación se tendrían que realizar para manejar el teclado en puerto C y LCD en el puerto D, si se desea utilizar un pic16f887 La pantalla LCD por defecto utiliza el puerto D, para poder utilizar el teclado en el puerto C debes modificar las siguientes sentencias en el fichero kbd.c #if defined use_portb_lcd #define set_tris_lcd(x) set_tris_b(x) #else #define set_tris_lcd(x) set_tris_d(x) #endif

Conclusiones: Garcia Barajas Luis Alberto. Esta práctica es de gran ayuda ya que el uso de una pantalla LCD o un teclado matricial son elementos que en un proyecto son de gran utilidad. La práctica nos lleva de la mano en el uso e implementación tanto de una pantalla LCD como un teclado matricial, nos muestra cuales son sus principales funciones y nos ayuda a comprender como es la adquisición de datos o el despliegue de ellos. Es evidente que el uso de estos elementos es mucho más sencillo en lenguaje C que en lenguaje ensamblador ya que te ahorras toda la programación de la inicialización en el caso de la pantalla LCD como en la obtención de los datos en el teclado marcial.

Chávez González Gamaliel Al manipular una LCD y un teclado matricial hemos hecho un gran avance, la simplificación al manejar estos dispositivos es bastante útil, el controlar una compleja LCD por medio de ensamblador es algo tardado, pero controlarla por medio de micro C, es sencillo y el teclado matricial también, por lo cual podremos utilizar estos elementos con gran sencillez, el manipular esto para poder elegir el puerto que necesitamos es bastante sencillo de igual forma, solo necesitamos cambiar una línea de la librería .C.

INSTITUTO POLITÉCNICO NACIONAL

UPIITA

MICRICONTROLADORES AVANZADOS

PRACTICA 4 LCD Y TECLADO MATRICIAL

ALUMNOS:  GARCÍA BARAJAS LUIS ALBERTO.  CHÁVEZ GONZÁLEZ GAMALIEL.

GRUPO: 4MV2

Related Documents


More Documents from "Siaw Ming Chian"

Report E Pract 4
February 2021 1
February 2021 0
January 2021 0
February 2021 0
January 2021 0