lunes, 24 de noviembre de 2008

LCD + TECLADO + PIC16F877

Teclado matricial 2 X 2 + LCD(16*2)

DESCRIPCION:

Este programa maneja un lcd de 16*2 y teclado matricial con el pic16f877.Este sencillo ejemplo del uso del teclado matricial + lcd se puede extender a un manejo de Teclado matricial de 4*4,5*5, etc.Dependiendo de que tecla se precione aparece un numero distinto en el LCD.Para el LCD se utiliza todo el puerto C para enviar el dato y los 2 pines menos significativos del puerto B para el RS Y EL E.

Nota: retrado calculado para un cristal de 20 Mhz

FUNCIONAMIENTO:

Cuando se presiona un pulsador se conecta una fila con una columna, teniendo en cuenta este hecho es muy fácil averiguar que tecla fue pulsada. También podemos ver la conexion típica con el puerto D del µC PIC.

Las resistencias de 2k2 son necesarias para poder compartir el puerto del pic independientemente del teclado y por ejemplo poder conectar un LCD al mismo tiempo. Durante la fase de lectura del teclado 2 pines del puerta D es configurada como entrada y los otros como salida.


MATERIALES:

- PIC16F877A
- Resistencias de 4.7K,2.2k
- Cristal de 20MHZ
- Push Botton
- Fuente de DC de 5 volts
- Protoboard
- LCD
- Capacitores

RUTINAS IMPORTANTES DEL PROGRAMA:
;-----------------------------------------------
call inicialcd ;CONFIGURA EL LCD(INICIALIZA EL LCD)
call letrero ;imprime el letrero de bienvenida
call delay ;retardo de tiempo
call delay ;retardo de tiempo
call limpia ;limpia el lcd

;-----------------------------------------------
Rutina del teclado


Le:
MOVLW B'00000100' ;ponemos a 1 el pin3 del puerto d
MOVWF PORTD
BTFSC PORTD,0 ;checamos si el pin0 del puerto d esta en 1
GOTO LE ;si es asi escribimos el num. 1 si no checamos el siguiente pin
BTFSC PORTD,1 ;checamos si el pin1 del puerto d esta en 1
GOTO LE1 ;si es asi escribimos el num. 2 si no checamos el siguiente pin
MOVLW B'00001000' ;ponemos a 1 el pin4 del puerto d
MOVWF PORTD
BTFSC PORTD,0 ;checamos si el pin0 del puerto d esta en 1
GOTO LE2 ;si es asi escribimos el num. 3 si no checamos el siguiente pin
BTFSC PORTD,1 ;checamos si el pin1 del puerto d esta en 1
GOTO LE3 ;si es asi escribimos el num. 4 si no checamos el siguiente pin

goto Le
;--------------------------------------------------------------

DIAGRAMA:



Puede descargar el programa completo en la seccion de Desgargas de este blog.

3 comentarios:

Anónimo dijo...

definitivamente el programa es un exito puesto que si visuliza el texto y otros textos en la pantalla, pero no se si tu me puedas ayudar con un programa para controlar un aire acondicionado accionado por temperatura, mostrando en la pantalla lcd la temperatura actual, rango minimo de desactivacion del aire y rango maximo de activación con la posibilidad de graduar la temperatura con unos pulsadores y la opción del rbo/int que tiene el pic16f876a, lo que pasa es que ya lo he intentado lo unico que me muestrar bien es es el termometro o la temperatura actual, bueno para este proyecto se necesita de vref+ y el sensor de temperatura LM35.

la verdad esta super bien el programa de el teclado.

muchas gracias por su atención y espero me colabores, si puedes este es mi correo en caso de que alla solución: bitara_17@hotmail.com

alexix dijo...

Muchas gracias por toda vuestra documentación, estoy venga mirar pero no encuentro el programa enssambler del LCD+TECLADO+PIC16F877.
Como se busca?

Anónimo dijo...

muy buena informacion pero no encuentro el archivo para descargar el "LCD + TECLADO + PIC16F877" como le hago para descargarlo?