PIC16F877A a 4x4 Klávesnice

L

Legatus

Guest
Mám otázku pro všechny, brilantní mysl představenstva EDA:

Jak mohu rozhraní klávesnice 4x4 s PIC16F877A?

Ach, a já jsem s použitím CCS kompilátor.

Díky

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Zkuste h ** p: / / w * w.ccsinfo.com / forum / pro příklady.Nahradit * samozřejmě.Princip bude stejný pro většinu Pics, prostě změnit pin úkoly.

 
Udělal jsem to jeden pro použití 8052 Kč * l překladač.Tahle je pro 3x4, ale dává obecnou představu.By měly být snadno přizpůsobitelné pro PIC.

/ / Čtení klávesnice a vrací Digit Hodnota

unsigned char GetKey (void) / / Get stisknutí tlačítka
(
sbit C3 = 0xA4; / / P2.4
sbit C2 = 0xA5; / / P2.5
sbit C1 = 0xA6; / / P2.6
SFR P2 = 0xA0; / / Port 2 Dolní okusovat připojení

unsigned char Digit, KeyRead;

C1 = 0; C2 = 1; C3 = 1; / / sloupci 1 On
KeyRead = (P2 & 0x0F);
if (KeyRead == 14) digit = 1; / / čtení řádky a Přeložit
if (KeyRead == 13) Digit = 4;
if (KeyRead == 11) Digit = 7;
if (KeyRead == 7) Digit = 10; / / Zrušit Key

C1 = 1; C2 = 0; C3 = 1; / / sloupec 2 Na
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; / / sloupec 3 On
KeyRead = (P2 & 0x0F);
if (KeyRead == 14) Digit = 3;
if (KeyRead == 13) Digit = 6;
if (KeyRead == 11) Digit = 9;
if (KeyRead == 7) Digit = 11; / / Volat

C1 = 0; C2 = 0; C3 = 0;
while ((P2 & 0x0F)! = 0x0F) () / / Waits za klíč k verzi
Sounder = 0;
návrat Digit;
)

 
Díky, dal mi * * nápad.Pokusím se převést do PIC

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

 

Welcome to EDABoard.com

Sponsor

Back
Top