PIC16F877A en een 4x4 Keypad

L

Legatus

Guest
Ik heb een vraag voor alle briljante geesten van EDA boord:

Hoe kan ik de interface een 4x4 toetsenbord met een PIC16F877A?

Oh, en ik gebruik CCS compiler.

Bedankt

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Probeer h ** p: / / w * w.ccsinfo.com / forum / voor voorbeelden.Vervang de * natuurlijk.Het principe zal hetzelfde zijn voor de meeste Pics, alleen de PIN-opdrachten.

 
Ik deed dit een voor een met behulp van 8052 Ke * l compiler.Dit is voor een 3x4, maar geeft het algemene idee.Moet gemakkelijk kunnen worden aangepast voor een PIC.

/ / Lees Keypad en keert Digit Prijs

unsigned char GETKEY (void) / / Get indrukken
(
sbit C3 = 0xA4; / / P2.4
sbit C2 = 0xA5; / / P2.5
sbit C1 = 0xA6; / / P2.6
SFR P2 = 0xA0; / / Port 2 Lower knabbelen aansluiting

unsigned char Digit, KeyRead;

C1 = 0; C2 = 1; C3 = 1; / / Kolom 1 Op
KeyRead = (P2 & 0x0F);
if (KeyRead == 14) Digit = 1; / / Lees Rijen en Vertalen
if (KeyRead == 13) Digit = 4;
if (KeyRead == 11) Digit = 7;
if (KeyRead == 7) Digit = 10; / / Afzeggen Key

C1 = 1; C2 = 0; C3 = 1; / / Kolom 2 Op
KeyRead = (P2 & 0x0F);
if (KeyRead == 14) Digit = 2;
if (KeyRead == 13) Digit = 5;
if (KeyRead == 11) Digit = 8;
if (KeyRead == 7) Digit = 0;

C1 = 1; C2 = 1; C3 = 0; / / Kolom 3 Op
KeyRead = (P2 & 0x0F);
if (KeyRead == 14) Digit = 3;
if (KeyRead == 13) Digit = 6;
if (KeyRead == 11) Digit = 9;
if (KeyRead == 7) Digit = 11; / / Call Key

C1 = 0; C2 = 0; C3 = 0;
while ((P2 & 0x0F)! = 0x0F) () / / Waits voor Key Release
Sounder = 0;
return Digit;
)

 
Thanks, gaf * me * een idee.Ik zal proberen om het te converteren naar PIC

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />** <- Bewerken

 

Welcome to EDABoard.com

Sponsor

Back
Top