UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L INGENIERÍA MECATRÓNICA

15
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L INGENIERÍA MECATRÓNICA Microprocesadores y Microcontroladores Integrantes: Chano Diego Garcés Juan Medina Ismael Jiménez Arturo Curso: Séptimo “B” Departamento: Energía y Mecánica Docente: Ing. Pilatágsi Período Académico: Abril 2015 - Agosto 2015

Transcript of UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L INGENIERÍA MECATRÓNICA

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L

INGENIERÍA MECATRÓNICA

Microprocesadores y Microcontroladores

Integrantes:

Chano Diego

Garcés Juan

Medina Ismael

Jiménez Arturo

Curso:

Séptimo “B”

Departamento:

Energía y Mecánica

Docente:

Ing. Pilatágsi

Período Académico:

Abril 2015 - Agosto 2015

TEMA

Manejo de un teclado 3x3 y 3x4 mediante el pic 16F628A y un LCD

OBJETIVOS

Objetivo general

Realizar un circuito para proyectar los números en una LCD al momento de

pulsar un teclado de 3x3 y un teclado de 3x4 realizado con pulsadores.

Objetivos específicos

Realizar el circuito correspondiente al teclado de 3x3 y 3x4.

Proyectar en una LCD los números al momento de pulsar cada uno de los

pulsadores del teclado.

Verificar el correcto funcionamiento del circuito realizado.

MATERIALES

12 pulsadores

3 resistencias 330Ω

1 resistencia de 10Ω

potenciómetro 10k

Cables

Pic16F628A

LCD

Protoboard

Fuente de 5V

MARCO TEORICO

1. PIC 16F628A

El PIC16F628A utiliza un procesador con arquitectura Harvard,

consiguiendo mayor rendimiento en el procesamiento de las

instrucciones, esta arquitectura a diferencia de la Von Neumann, utiliza

dos bloques de memorias independientes, una contiene instrucciones y la

otra sólo datos, cada una con su respectivo sistema de buses de acceso,

8 líneas para los datos y 14 líneas para las instrucciones, con lo que es

posible realizar operaciones de acceso lectura o escritura

simultáneamente en las 2 memorias, a esto se conoce como paralelismo.

Figura 1

Fig. 1 Configuración de pines del pic 16F628 A

El CPU del Microcontrolador 16F6XX emplea una avanzada arquitectura

RISC (computador con juego de instrucciones reducido) con un set de 35

instrucciones poderosas pertenecientes a la gama media de la familia de

los micros controladores PIC, la mayoría de instrucciones se ejecuta en

un ciclo de instrucción a excepción de los saltos que requieren de 2 ciclos.

Características especiales del Microcontrolador:

Opciones de oscilador externo e interno:

Precisión de fábrica del oscilador interno de 4 MHz calibrada a ±

1%

Oscilador de 48 kHz y de bajo consumo interno.

Modo de ahorro de energía en modo sueño.

Resistencias programables PULL-UPS del PORTB.

Multiplexado del pin RESET/ Entrada-pin.

Temporizador Watchdog con oscilador independiente para un

funcionamiento fiable.

2. MANEJO DE UN MÓDULO LCD

Los módulos LCD (Display de Cristal Líquido), son utilizados para mostrar

mensajes que indican al operario el estado de la máquina, o para dar

instrucciones de manejo, mostrar valores, etc. El LCD permite la

comunicación entre las máquinas y los humanos, este puede mostrar

cualquier carácter ASCII, y consumen mucho menos que los displays de

7 segmentos, existen de varias presentaciones por ejemplo de 2 líneas

por 8 caracteres, 2x16, 2x20, 4x20, 4x40, etc. Sin back light (14 pines) o

con backlight (16 pines, iluminado de pantalla), el LCD más popular es el

2x16, 2 líneas de 16 caracteres cada una.

Fig. 2 Representación real del LCD

Tabla 1 Funcionalidad de los pines en el LCD

LA DECLARACIÓN LCDOUT. Sirve para mostrar items en una pantalla

de cristal líquido, se utiliza escribiendo: LCDOUT, luego escribiendo $FE,

y seguido por el comando a utilizar, el siguiente cuadro muestra los

comandos más utilizados:

Tabla 2 Comandos utilizados en el manejo del LCD

3. Teclado

Fig. 3 Configuración del teclado 4x4

En la figura se muestra un teclado como una matriz de 4x4 teclas

configuradas en 4 columnas y 4 renglones. Cuando se oprime una tecla

se hace una conexión entre renglones y columnas

PROCEDIMIENTO

CIRCUITO N°1

1. Armar el circuito de teclado 3x3 e impresión de datos numéricos en lcd.

2. Programación para el PIC 16F628A.

#include <16f628a.h>

#fuses XT,NOWDT

#use delay (clock=4M)

#include <lcd.c>

int x;

void main()

set_tris_b(0x00);

output_b(0x00);

set_tris_a(0b11111000);

lcd_init();

while (TRUE)

lcd_gotoxy(6,1);

lcd_putc("TECLA");

output_a(254);

if (input(PIN_A3)==0)

x=1;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

if (input(PIN_A4)==0)

x=2;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

if(input(PIN_A6)==0)

x=3;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

output_a(253);

if(input(PIN_A3)==0)

x=4;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

if(input(PIN_A4)==0)

x=5;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

if(input(PIN_A6)==0)

x=6;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

output_a(251);

if(input(PIN_A3)==0)

x=7;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

if(input(PIN_A4)==0)

x=8;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

if(input(PIN_A6)==0)

x=9;

lcd_gotoxy(8,2);

printf(lcd_putc,"%d",x);

3. Implementar el circuito en protoboard

CIRCUITO N°2

1. Armar el circuito de teclado 3x3 e impresión de datos en lcd.

2. Programación para el PIC

#include <16f628a.h>

#fuses XT,NOWDT

#use delay (clock=4M)

#include <lcd.c>

int x;

void main()

set_tris_b(0x00);

output_b(0x00);

set_tris_a(0b11111000);

lcd_init();

while(TRUE)

lcd_gotoxy(6,1);

lcd_putc("TECLA");

output_a(254);

if(input(PIN_A3)==0)

x=1;

lcd_gotoxy(8,2);

lcd_putc("1");

if(input(PIN_A4)==0)

x=2;

lcd_gotoxy(8,2);

lcd_putc("2");

if(input(PIN_A6)==0)

x=3;

lcd_gotoxy(8,2);

lcd_putc("3");

output_a(253);

if(input(PIN_A3)==0)

x=4;

lcd_gotoxy(8,2);

lcd_putc("4");

if(input(PIN_A4)==0)

x=5;

lcd_gotoxy(8,2);

lcd_putc("5");

if(input(PIN_A6)==0)

x=6;

lcd_gotoxy(8,2);

lcd_putc("6");

output_a(251);

if(input(PIN_A3)==0)

x=7;

lcd_gotoxy(8,2);

lcd_putc("7");

if(input(PIN_A4)==0)

x=8;

lcd_gotoxy(8,2);

lcd_putc("8");

if(input(PIN_A6)==0)

x=9;

lcd_gotoxy(8,2);

lcd_putc("9");

3. Implementar el circuito en Protoboard

CIRCUITO N°3

1. Armar el circuito de teclado 4x3 e impresión de datos numéricos en lcd.

2. Programación del PIC

#include <16f628a.h>

#fuses XT,NOWDT

#use delay (clock=4M)

#include <lcd.c>

int x;

int32 y=0;

void antirebote(void)

while(input(PIN_A4)==0)

while(input(PIN_A6)==0)

while(input(PIN_A7)==0)

delay_ms(30);

y=(y*10)+x;

lcd_gotoxy(8,2);

printf(lcd_putc,"%lu",y);

return;

void main()

set_tris_b(0x00);

output_b(0x00);

set_tris_a(0b11111000);

lcd_init();

while(TRUE)

lcd_gotoxy(6,1);

lcd_putc("TECLA");

output_a(254);

if(input(PIN_A4)==0)

x=1;

antirebote();

if(input(PIN_A6)==0)

x=2;

antirebote();

if(input(PIN_A7)==0)

x=3;

antirebote();

output_a(253);

if(input(PIN_A4)==0)

x=4;

antirebote();

if(input(PIN_A6)==0)

x=5;

antirebote();

if(input(PIN_A7)==0)

x=6;

antirebote();

output_a(251);

if(input(PIN_A4)==0)

x=7;

antirebote();

if(input(PIN_A6)==0)

x=8;

antirebote();

if(input(PIN_A7)==0)

x=9;

antirebote();

output_a(247);

if(input(PIN_A4)==0)

x=0;

antirebote();

if(input(PIN_A6)==0)

x=0;

antirebote();

if(input(PIN_A7)==0)

x=0;

y=0;

lcd_gotoxy(6,2);

lcd_putc(" ");

antirebote();

3. Implementar el circuito en protoboard

ANÁLISIS DE RESULTADOS:

La impresión es distinta si se realiza mediante datos numéricos o como

string, ya que al ser string aparecen líneas al final del dato.

Mediante la implementación del teclado se logra tener un numero grande

de pulsadores utilizando menos número de puertos.

CONCLUSIONES

Debido a las distintas capacidades de control que posee el pic 16F628A

es necesario cambiar la configuración de sus pines, es decir cambiar la

palabra 3F59 a la palabra de configuración 3F18 para poder modificar su

comportamiento logrando adaptarlo para interactuar con teclados tanto de

3x3 y de 3x4.

RECOMENDACIONES

En el proceso de simulación, al representar los caracteres en el LCD se

genera un parpadeo cuando se utiliza un teclado, de debido a esto es

aconsejable armar un teclado con pulsadores tanto en la simulación como

en la práctica

BIBLIOGRAFIA

Microchip. (2012). Recuperado el 18 de junio de 2015, de Características

de Microcontroladores:

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en0102

12

Carlos A. Reyes, “Microcontroladores PIC y programación en basic”,

Tercera Edición, Volumen 1, Microchip, 2008, 79-89.