Klávesnice sú široko používané vstupné zariadenia používané v rôznych elektronických a zabudovaných projektoch. Používajú sa na prijímanie vstupov vo forme čísel a albabetov a ich vkladanie do systému na ďalšie spracovanie. V tomto výučbe sa chystáme prepojiť maticovú klávesnicu 4x4 s mikrokontrolérom 8051.
Maticová klávesnica 4X4
Pred prepojením klávesnice s mikrokontrolérom si najskôr musíme uvedomiť, ako to funguje. Maticová klávesnica sa skladá zo sady tlačidiel, ktoré sú vzájomne prepojené. Rovnako ako v našom prípade používame maticovú klávesnicu 4X4, v ktorej sú v každom zo štyroch riadkov 4 tlačidlá. A svorky tlačidiel sú spojené podľa schémy. V prvom rade je jedna svorka všetkých 4 tlačidiel spojená dohromady a ďalšia svorka 4 tlačidiel predstavuje každý zo 4 stĺpcov, to isté platí pre každý riadok. Takže máme 8 terminálov na pripojenie s mikrokontrolérom.
Prepojovacia klávesnica s mikrokontrolérom 8051 (AT89S52)
Najskôr musíme prepojiť modul LCD, aby sme zobrazili údaje, ktoré sa budú prenášať cez KEYPAD, takže pred pripojením KEYPAD si prečítajte článok „LCD prepojenie s mikrokontrolérom 8051“.
Ako je znázornené na schéme vyššie, na prepojenie klávesnice je potrebné pripojiť 8 svoriek klávesnice na ľubovoľný port (8 pinov) mikrokontroléra. Rovnako ako sme pripojili terminály klávesnice k portu 1 na serveri 8051. Po každom stlačení ľubovoľného tlačidla potrebujeme zistiť jeho polohu, čo znamená zodpovedajúci RIADOK A STĹPEC č. Po získaní umiestnenia tlačidla môžeme znak podľa toho vytlačiť.
Otázkou teraz je, ako zistiť polohu stlačeného tlačidla? Vysvetlím to v nasledujúcich krokoch a tiež chcem, aby ste sa pozreli na kód:
1. Najskôr sme vytvorili všetky riadky s logickou úrovňou 0 a všetky stĺpce s logickou úrovňou 1.
2. Kedykoľvek stlačíme tlačidlo, stĺpec a riadok zodpovedajúci tomuto tlačidlu sa skratujú a zodpovedajúci stĺpec sa nastaví na logickú úroveň 0. Pretože sa tento stĺpec pripojí (skratuje) k riadku, ktorý je na logickej úrovni 0. Takže dostaneme stĺpec č. Pozri funkciu main ().
3. Teraz musíme nájsť riadok č., Takže sme vytvorili štyri funkcie zodpovedajúce každému stĺpcu. Rovnako ako v prípade stlačenia ľubovoľného tlačidla v stĺpci jedna, aj my voláme funkciu row_finder1 (), aby sme našli riadok č.
4. Vo funkcii row_finder1 () sme obrátili logické úrovne, čo znamená, že všetky riadky sú teraz 1 a stĺpce sú 0. Teraz by riadok stlačeného tlačidla mal byť 0, pretože sa spojil (skratoval) so stĺpcom, ktorého tlačidlo je stlačené a všetky stĺpce majú logiku 0. Naskenovali sme teda všetky riadky, či neobsahuje 0.
5. Takže kedykoľvek nájdeme Riadok na logike 0, znamená to, že je to riadok stlačeného tlačidla. Takže teraz máme stĺpec č. (Dostal sa v kroku 2) a riadok č. A môžeme vytlačiť č. tohto tlačidla pomocou funkcie lcd_data.
Rovnaký postup nasleduje pri každom stlačení tlačidla a pri použití (1) neustále kontrolujeme, či je alebo nie je tlačidlo stlačené.