3
Lectura de un teclado matricial 4x4 con el PIC16F877A  Descripción: Tutorial para leer un teclado matricial 4x4 conectado al pue rto B y visualizar en un display 7 segmento conectado al puerto A.  Diagrama de conexión Materiales  1 Display 7 segmentos 1 Resistencia de ! "#ms 1 Resistencia de 1!$ "#ms 1 Resistencia de 1!! "#ms 1 %us# Button normalmente a&ierto 1 'apacitor electrol( tico de 47!u) a 1*v + 'apacitor cer,mico ++p) 1 'rystal cuarzo 4-z 1 -icrocontr olador %/'1*)077 %rogramador % /' 2B -ini %/' Introducción 3l microcontrol ador %/'1*)077 cuenta con divers os puertos de entradasali da denominados como A5 B5 '5 D y 3. 3l puerto ' tiene 0 l(neas  &idirecci onales disponi &les 6R'!5 R'15 R' n5 #asta R'75 8ue pueden ser usa das independi entemente . 3l TR/2 ' es el r egistro de c ontrol asoci ado al puerto '5 un 1 en el Bit 9x del registro TR/2 ' indica 8ue ser, usado como entrada la l(nea asociada del %uerto. n ! en el &it 9x de TR/2 indica 8ue ser, usado como salida.  %odemos escri&ir de tres ;ormas so&re el TR/2 9x:  set_tris_x !x!a"# $$ Con%iguracion en &exadecimal set_tris_x !'!!!!1!1!"# $$ Con%iguracion en (inario set_tris_x 1!"# $$ Con%iguiracion en Decimal  

Teclado Matricial 4x4 Con El PIC16F877A

Embed Size (px)

Citation preview

7/22/2019 Teclado Matricial 4x4 Con El PIC16F877A

http://slidepdf.com/reader/full/teclado-matricial-4x4-con-el-pic16f877a 1/3

Lectura de un teclado matricial 4x4 con el PIC16F877A

 

Descripción: Tutorial para leer un teclado matricial 4x4 conectado al puerto B y visualizar en un

display 7 segmento conectado al puerto A.

 

Diagrama de conexión

Materiales 

1 Display 7 segmentos

1 Resistencia de ! "#ms

1 Resistencia de 1!$ "#ms

1 Resistencia de 1!! "#ms

1 %us# Button normalmente a&ierto

1 'apacitor electrol(tico de 47!u) a 1*v

+ 'apacitor cer,mico ++p)

1 'rystal cuarzo 4-z

1 -icrocontrolador %/'1*)077

%rogramador %/' 2B -ini%/'

Introducción

3l microcontrolador %/'1*)077 cuenta con diversos puertos de entradasalida denominados como A5 B5 '5 D y 3. 3l puerto ' tiene 0 l(neas &idireccionales disponi&les 6R'!5 R'15 R'n5 #asta R'75 8ue pueden ser usadas independientemente. 3l TR/2 ' es el registro de control asociado

al puerto '5 un 1 en el Bit 9x del registro TR/2 ' indica 8ue ser, usado como entrada la l(nea asociada del %uerto. n ! en el &it 9x de TR/2indica 8ue ser, usado como salida.

 

%odemos escri&ir de tres ;ormas so&re el TR/2 9x:

 

set_tris_x !x!a"# $$ Con%iguracion en &exadecimal

set_tris_x !'!!!!1!1!"# $$ Con%iguracion en (inario

set_tris_x 1!"# $$ Con%iguiracion en Decimal

 

7/22/2019 Teclado Matricial 4x4 Con El PIC16F877A

http://slidepdf.com/reader/full/teclado-matricial-4x4-con-el-pic16f877a 2/3

Despues de #a&er con;igurado el TR/2 pasamos al registro de control %"RT 9x5 este controla la salida o lectura del puerto asociado al registro

TR/25 en este registro se escri&e de igual manera 8ue en el TR/2 pero al escri&ir un 1 indicamos un nivel alto en la salida asociada del %uerto y un! indica 8ue el pin esta en nivel &a<o.

 

out)ut_x !x!a"# $$ (it 1 * + en ni,el alto- los dem.s en 'a/o

out)ut_x !'!!!!1!1!"# $$ (it 1 * + en ni,el alto- los dem.s en 'a/o

out)ut_x 1!"# $$ (it 1 * + en ni,el alto- los dem.s en 'a/o

 0eclado Matricial 4x4

 

n teclado matricial es un arreglo de &otones conectados en ;ilas y columnas5 de tal manera 8ue se pueden leer varios &otones con el m(nimo

n=mero de entradas re8ueridas. n teclado matricial 4>4 solamente ocupa 4 l(neas de un puerto para leer las ;ilas y otras 4 l(neas para lascolumnas5 de este modo se pueden leer 1* teclas utilizando solamente 0 entradas 6un solo puerto de un microcontrolador.

3l ;uncionamiento &,sico del teclado matricial consiste en rastrear la unión entre una ;ila y una columna5 mediante un algoritmo 8ue desci;ra cualtecla ;ue presionada.

Codigo en C CC_PC2 34114 "

 

$5 l siguiente código es li're )ara uso )ersonal * es o%recido sin ninguna garanta Minio'ot se reser,a todos los derec9os * no se 9ace

res)onsa'le )or el uso :ue a este codigo se le d; Puedes modi%icarlo- co)iarlo- distri'uirlo- solo te )edimos :ue mantengas este

enca'e<ado )ara res)etar los derec9os de autor Att= Minio'ot 5$

 

>include ?16%8779@ $$Arc9i,o de de%iniciones del MC

 

>F BD( $$De'ugger Mode E Desacti,ado

>F BL3P $$LoE3oltage Programming E Desacti,ado

>F B(2B0 $$(ronEout eset E Desacti,ado

>F BCPD $$Data Memor* Code Protection E Desacti,ado>F BP0C0 $$Program Memor* 2rite Protected E Desacti,ado

>F P0 $$Poer ) 0imer E Acti,ado

>F B2D0 $$2atc9Dog0imer E Desacti,ado

>F G0 $$scillator ?H 4 M9<

>F B20 $$Flas9 Program Memor* 2rite E Desacti,ado

 

>use dela*clocH4!!!!!!" $$Frecuencia del cristal )ara el c.lculo de los retardos

 

>de%ine use_)ort'_'d 0 $$&a'ilitamos la lectura del 0eclado )or el Puerto (

>include ?J(D4x4c@ $$Li'reria )ara el mane/o del teclado

 

>de%ine no !'11111!!1

>de%ine Dos !'1!1!!1!!

>de%ine 0res !'!!11!!!!

>de%ine CarA !'!!!!1!!!

>de%ine Cuatro !'!!!11!!1

>de%ine Cinco !'!!!1!!1!

>de%ine eis !'!!!!!!1!>de%ine Car( !'!!!!!!11

>de%ine iete !'!1111!!!

>de%ine c9o !'!!!!!!!!

>de%ine Bue,e !'!!!11!!!

>de%ine CarC !'!1!!!11!

>de%ine Asterisco !'!!11!11!

>de%ine Cero !'11!!!!!!

>de%ine Bumeral !'!!!!1!!1

>de%ine CarD !'!!1!!!!1

 

,oid Con%igura" K $$Con%igura el microcontrolador )ara el 9ardare

  'd_init"# $$Funcion )ara iniciali<ar el uso del teclado

7/22/2019 Teclado Matricial 4x4 Con El PIC16F877A

http://slidepdf.com/reader/full/teclado-matricial-4x4-con-el-pic16f877a 3/3

  )ort_'_)ullu)s0"# $$&a'ilita las esistecias PullEu) del Puerto (

  out)ut_c!x!!"# $$Lim)ia el )uerto C

  set_tris_c!x!!"# $$Puerto C como salidas

,oid main" K $$Programa )rinci)al

c9ar C# $$Declaracion de la 3aria'le CN de ti)o c9ar

Con%igura"# $$Llama ala %uncion Con%igura

9ile0" K

  C H 'd_getc"# $$scanea * regresa el ,alor de la tecla )resionada- si ninguna tecla es )resionada regresa un ,alor nulo O

  sitc9 C " K $$elecciona * saca el ,alor de la tecla )resionada 

case Q!Q=

  out)ut_cCero"#

  'rea#

  case Q1Q=

  out)ut_cno"#

  'rea#

  case QRQ=

  out)ut_cDos"#

  'rea#

  case Q+Q=

  out)ut_c0res"#

  'rea#

  case QAQ=

  out)ut_cCarA"# 'rea#

  case Q4Q=

  out)ut_cCuatro"# 'rea#

  case QSQ=  out)ut_cCinco"# 'rea#

  case Q6Q=

  out)ut_ceis"# 'rea#

  case Q(Q=

  out)ut_cCar("# 'rea#

  case Q7Q=

  out)ut_ciete"# 'rea#

  case Q8Q=

  out)ut_cc9o"# 'rea#

  case QTQ=

  out)ut_cBue,e"# 'rea#

  case QCQ=

  out)ut_cCarC"# 'rea#

  case Q5Q=

  out)ut_cAsterisco"# 'rea#

  case Q>Q=

  out)ut_cBumeral"# 'rea#

  case QDQ=

  out)ut_cCarD"# 'rea#

  de%ault=

  'rea#

 

$$Fin Programa )rinci)al

 

Detalles del Codigo en C

 

#DEFINE  ID CADBA

De;ine es una directiva 8ue se utiliza simplemente para reemplazar el /denti;icador 9/D con 9'AD3?A

 >de%ine D !'!!11!11!

 out)ut_cCarA" EE@ s lo mismo :ue EE@ out)ut_c!'!!!!1!!!"

 

)ort_'_)ullu)s " 

3sta ;unción #a&ilita o des#a&ilita las resistencias de %ull@up en las entradas del puerto B.

 

/em)lo=

 port&pullups6TR3 a&ilita port&pullups6)AC23  Desa&ilita