Produkty Novinky Články Návody Kontakty

Popis

Klávesnici nazýváme maticovou proto, že jednotlivé klávesy jsou propojeny do matice tvořené čtyřmi řádky a sloupci. To umožňuje snadné vyčítaní kódu stisknuté klávesy. Kódy kláves budeme vyčítat přes datovou sběrnici paralelního portu. Samotný proces skenování klávesnice budeme řídit pomocí signálů /Select a /Strobe, které jsou dostupné na řídící sběrnici paralelního portu.
V implementaci ovladače, který vyčítání kódů kláves zajišťuje, nebudeme řešit jak rozeznat stisk více kláves. Budeme předpokládat, že uživatel bude mačkat vždy jen jednu klávesu. I tak bude zařízení maticové klávesnice dobře použitelné, např. pro potřeby různých zabezpečovacích zařízení.

Obsluha klávesnice

Základní princip obsluhy klávesnice je jednoduchý a využívá skutečnosti, že jednotlivé klávesy jsou zapojeny do průsečíků sloupců a řádků. Při stisku dané klávesy dojde k propojení vodiče daného řádku a sloupce.
Skenování klávesnice probíhá tak, že na vybraný řádek zapíšeme log. 0, zatímco na ostatní řádky log. 1. Pak vyčteme stav sloupců. Stisknutá klávesa na řádku s log. 0 způsobí, že na příslušném sloupci se objeví také log. 0. Dáme si tedy dohromady kombinaci zapsanou na řádky a kombinaci vyčtenou ze sloupců a máme kód stisknuté klávesy, tzv. scan kód.
Možná vás napadlo, co se stane když na daném řádku stiskneme více kláves. Nic zvláštního - na více sloupcích bude vyčtena log. 0, takže jsme schopni detekovat více stisknutých kláves na jednom sloupci. Problém ovšem nastává když je několik kláves stisknuto zaráz v pravostraném trojúhelníku, tj. dvě na jenom řádku a zároveň i na dvou sloupcích. Tehdy už může dojít k nejednoznačnosti vlivem posunu napětí a logická hodnota tak nemusí být určena správně. Proto budeme při implementaci ovladače předpokládat, že v jednom okamžiku je stisknuta jen jedna klávesa. Proto log. 0 na prvním skenovaném sloupci znamená ukončení skenování na vybraném řádku a přechod k vyhodnocení stisknuté klávesy.

Schéma

Na obrázku 1.23 je samotné schéma zapojení maticové klávesnice jako zařízení dostupného přes paralelní port. V tabulce 1.9 je seznam použitých součástek.
obrázek hwkit-klavesnice-schema
Obrázek 1.23 Klávesnice - schéma
Středobodem zapojení je maticová klávesnice o čtyřech řádcích a čtyřech sloupcích. Tlačítka samotná jsou zapojena mezi prusečíky řádků a sloupců, proto tedy maticová. Při stisku dané klávesy dojde k vyzkratování daného sloupce a řádku, čehož se využívá při detekci stisknuté klávesy.
Řádky klávesnice připojujeme přes konektor JP3 na výstupy integrovaného obvodu U2. Ten slouží pro oddělení datové sběrnice od řádků klávesnice a zároveň jako paměť poslední hodnoty zapsané na řádky klávesnice.
Sloupce klávesnice jsou připojeny přes konektor JP4 k integrovanému obvodu U4. Ten je zapojen tak, že strana B je vstupní (vstup DIR je na log. 0), zatímco strana A je výstupní. Při log. 0 na vstupu G obvodu U4 jsou výstupy A připojeny k datové sběrnici (jinak jsou ve stavu vysoké impedance - odpojeny). Tak je možné přes datovou sběrnici paralelního portu vyčíst stav sloupců přiopojených na vstupy na straně B. Pomocí odporové sítě RN2 je zároveň zajištěna výchozí hodnota log. 1 pro všechny sloupce a také pro nepřipojené vstupy na straně B.
/Strobe /Select Funkce
1 1 zápis dat na na řádky
1 -> 0 1 -> 0 podržení dat pro řádky
0 1 čtení dat ze sloupců
0 1 -> 0 ukončení čtení (odpojení sloupců od sběrnice)
0 0 klávesnice je neaktivní
Tabulka 1.8 Klávesnice - řízení
Přepínání mezi zapisováním hodnoty na řádky sběrnice a čtením sloupců sběrnice zajišťují hradla integrovaného obvodu U3. Ty kombinují logické urovně řídících signálů /Strobe a /Select, čímž ovládají vstup /LE u integrovaného obvodu U2, kterým se aktivuje zapamatování si poslední hodnoty, a vstup G u integrovaného obvodu U4, kterým se připojí výstupy U4 na straně A na datovou sběrnici, takže je možné číst stav sloupců klávesnice.
Stavy signálů /Strobe a /Select a jim odpovídající funkce jsou uvedeny v tabulce 1.8. Pokud jsou oba signály zároveň v log. 1, tak je stav datové sběrnice přenášen na řádky klávesnice. Na sestupné hraně obou signálů dojde k zapamatování si hodnoty pro řádky - U2 drží na svých výstupech poslední stav datové sběrnice.
Ovšem pokud je signál /Strobe v log. 0 a zároveň signál /Select v log. 1, je možné stav sloupců klávesnice vyčítat přes datovou sběrnici, jelikož jsou výstupy na straně A připojeny na datovou sběrnici paralelního portu. Přechodem signálu /Select z log. 1 do log. 0 dojde k odpojení U4 od datové sběrnice. Sběrnice je tak uvolněna např. pro zápis dat na řádky klávesnice.
Klávesnice je neaktivní, tzn. nelze psát nová data na řádky klávesnice a ani číst stav sloupců, jestliže jsou oba signály /Strobe a /Select v log. 0.