leer teclado matricial 4x4 con el pic16f877a

4
Leer un teclado matricial 4x4 con el PIC16F877A  Descripción: T utorial 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 normalme nte 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 microcontr olador %/'1*)07 7 cuenta con diversos puertos de entradasalida denomi nados 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 u n 1 en el Bit 9x del registr o 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%guracion en &exadecimal set_tris_x !'!!!!1!1!"# $$ Con%guracion en (inario set_tris_x 1!"# $$ Con%guiracion en Decimal  

Upload: primitivocarrillosilgado

Post on 17-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

7/23/2019 Leer Teclado Matricial 4x4 Con El PIC16F877A

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

Leer un teclado matricial 4x4 con el PIC16F877A

 

Descripción: Tutorial para leer un teclado matricial 4x4 conectado al puerto B yvisualizar 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. 3lpuerto ' tiene 0 l(neas &idireccionales disponi&les 6R'!5 R'15 R'n5 #asta R'75 8ue pueden ser usadasindependientemente. 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/2 indica 8ue ser, usadocomo salida.

 

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

 set_tris_x !x!a"# $$ Con%guracion en &exadecimalset_tris_x !'!!!!1!1!"# $$ Con%guracion en (inarioset_tris_x 1!"# $$ Con%guiracion en Decimal

 

7/23/2019 Leer Teclado Matricial 4x4 Con El PIC16F877A

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

Despues de #a&er con<gurado el TR/2 pasamos al registro de control %"RT 9x5 este controla la salida o lectura delpuerto asociado al registro TR/25 en este registro se escri&e de igual manera 8ue en el TR/2 pero al escri&ir un 1indicamos 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/oout)ut_x !'!!!!1!1!"# $$ (it 1 * + en ni,el alto- los dem.s en 'a/oout)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 <las 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 deun puerto para leer las <las y otras 4 l(neas para las columnas5 de este modo se pueden leer 1* teclas utilizandosolamente 0 entradas 6un solo puerto de un microcontrolador.

3l ;uncionamiento &,sico del teclado matricial consiste en rastrear la unión entre una <la y una columna5 medianteun algoritmo 8ue desci;ra cual tecla ;ue presionada.

Codigo en C CC_PC2 34114 " $5 l siguiente código es li're )ara uso )ersonal * es orecido sin ninguna garanta Mini9o'ot sereser,a todos los derec:os * no se :ace res)onsa'le )or el uso ;ue a este codigo se le d< Puedesmodi%carlo- co)iarlo- distri'uirlo- solo te )edimos ;ue mantengas este enca'e=ado )ara res)etar losderec:os de autor Att> Mini9o'ot 5$ ?include @16877: $$Arc:i,o de de%niciones del MCB ?FB D(BE $$De'ugger Mode Desacti,ado?FB L3P $$LoG3oltage Programming Desacti,ado?FB (92B0 $$(roGnout 9eset Desacti,ado?FB CPD $$Data Memor* Code Protection Desacti,ado?FB P90C0 $$Program Memor* 2rite Protected Desacti,ado?FB PB0 $$PoGer B) 0imer Acti,ado?FB 2D0 $$2atc:Dog0imer Desacti,ado?FB H0 $$scillator @ 4 M:=?FB 290 $$Flas: Program Memor* 2rite Desacti,ado ?use dela*clocJ4!!!!!!" $$Frecuencia del cristal )ara el c.lculo de los retardos ?de%ne use_)ort'_J'd 09B $$&a'ilitamos la lectura del 0eclado )or el Puerto (?include @K(D4x4c $$Li'reria )ara el mane/o del teclado ?de%ne Bno !'11111!!1?de%ne Dos !'1!1!!1!!?de%ne 0res !'!!11!!!!

?de%ne CarA !'!!!!1!!!?de%ne Cuatro !'!!!11!!1?de%ne Cinco !'!!!1!!1!?de%ne eis !'!!!!!!1!?de%ne Car( !'!!!!!!11?de%ne iete !'!1111!!!?de%ne c:o !'!!!!!!!!?de%ne ue,e !'!!!11!!!?de%ne CarC !'!1!!!11!?de%ne Asterisco !'!!11!11!?de%ne Cero !'11!!!!!!?de%ne umeral !'!!!!1!!1?de%ne CarD !'!!1!!!!1

7/23/2019 Leer Teclado Matricial 4x4 Con El PIC16F877A

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

 ,oid Con%gura" $$Con%gura el microcontrolador )ara el :ardGare  J'd_init"# $$Funcion )ara iniciali=ar el uso del teclado  )ort_'_)ullu)s09B"# $$&a'ilita las 9esistecias Pullu) del Puerto (  out)ut_c!x!!"# $$Lim)ia el )uerto C  set_tris_c!x!!"# $$Puerto C como salidas,oid main" $$Programa )rinci)alc:ar C# $$Declaracion de la 3aria'le NCO de ti)o c:ar

Con%gura"# $$Llama ala uncion Con%guraG:ile09B"   C J'd_getc"# $$scanea * regresa el ,alor de la tecla )resionada- si ninguna tecla es )resionadaregresa un ,alor nulo Q  sGitc: C " $$elecciona * saca el ,alor de la tecla )resionada 

case R!R>  out)ut_cCero"#  'reaJ#  case R1R>  out)ut_cBno"#  'reaJ#  case RSR>  out)ut_cDos"#  'reaJ#  case R+R>  out)ut_c0res"#

  'reaJ#  case RAR>  out)ut_cCarA"# 'reaJ#  case R4R>  out)ut_cCuatro"# 'reaJ#  case RTR>  out)ut_cCinco"# 'reaJ#  case R6R>  out)ut_ceis"# 'reaJ#  case R(R>  out)ut_cCar("# 'reaJ#  case R7R>  out)ut_ciete"# 'reaJ#  case R8R>  out)ut_cc:o"# 'reaJ#  case RUR>  out)ut_cue,e"# 'reaJ#  case RCR>

  out)ut_cCarC"# 'reaJ#  case R5R>  out)ut_cAsterisco"# 'reaJ#  case R?R>  out)ut_cumeral"# 'reaJ#  case RDR>  out)ut_cCarD"# 'reaJ#  deault>  'reaJ#  $$Fin Programa )rinci)al

 

Detalles del Codigo en C #DEFINE ID CADA

De<ne es una directiva 8ue se utiliza simplemente para reemplazar el /denti<cador 9/D con 9'AD3@A

 ?de%ne D !'!!11!11! out)ut_cCarA" s lo mismo ;ue out)ut_c!'!!!!1!!!" )ort_'_)ullu)s " 

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

 

/em)lo> port&pullups6TR3C a&ilita

7/23/2019 Leer Teclado Matricial 4x4 Con El PIC16F877A

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

 port&pullups6)A23C  Desa&ilita