Klávesnice jsou široce používaná vstupní zařízení používaná v různých elektronikách a vestavěných projektech. Používají se k přijímání vstupů ve formě čísel a albabetů a jejich vkládání do systému pro další zpracování. V tomto tutoriálu budeme propojovat maticovou klávesnici 4x4 s mikrokontrolérem 8051.
Maticová klávesnice 4X4
Než propojíme klávesnici s mikrokontrolérem, musíme nejprve pochopit, jak to funguje. Maticová klávesnice se skládá ze sady tlačítek, které jsou vzájemně propojeny. Stejně jako v našem případě používáme maticovou klávesnici 4X4, ve které jsou v každé ze čtyř řádků 4 tlačítka. A svorky tlačítek jsou připojeny podle schématu. V první řadě je jeden terminál všech 4 tlačítek propojen dohromady a další terminál 4 tlačítek představuje každý ze 4 sloupců, pro každou řadu totéž. Takže dostáváme 8 terminálů pro připojení s mikrokontrolérem.
Propojovací klávesnice s mikrokontrolérem 8051 (AT89S52)
Nejprve musíme propojit LCD modul pro zobrazení dat, která budou přenášena přes KEYPAD, proto před propojením KEYPAD projděte článek „LCD Interfacing with 8051 Microcontroller“.
Jak je znázorněno ve výše uvedeném schématu zapojení, k rozhraní klávesnice musíme připojit 8 svorek klávesnice k libovolnému portu (8 pinů) mikrokontroléru. Stejně jako jsme připojili terminály klávesnice k portu 1 na 8051. Kdykoli je stisknuto jakékoli tlačítko, musíme zjistit jeho polohu, což znamená odpovídající ŘÁDEK A SLOUPEC č. Jakmile získáme umístění tlačítka, můžeme znak odpovídajícím způsobem vytisknout.
Otázkou nyní je, jak zjistit umístění stisknutého tlačítka? Vysvětlím to v následujících krocích a také chci, abyste se podívali na kód:
1. Nejprve jsme provedli všechny řádky na logickou úroveň 0 a všechny sloupce na logickou úroveň 1.
2. Kdykoli stiskneme tlačítko, sloupec a řádek odpovídající tomuto tlačítku se zkrátí a způsobí, že se odpovídající sloupec připojí k logické úrovni 0. Protože se tento sloupec připojí (zkratuje) k řádku, který je na logické úrovni 0. Takže dostaneme sloupec č. Viz funkce main ().
3. Nyní musíme najít řádek číslo, takže jsme vytvořili čtyři funkce odpovídající každému sloupci. Stejně jako při stisknutí libovolného tlačítka ve sloupci jedna, voláme funkci row_finder1 (), abychom našli řádek č.
4. Ve funkci row_finder1 () jsme obrátili logické úrovně, což znamená, že nyní jsou všechny řádky 1 a sloupce 0. Nyní by řádek stisknutého tlačítka měl být 0, protože se připojil (zkratoval) ke sloupci, jehož tlačítko je stisknuto a všechny sloupce mají logiku 0. Takže jsme prohledali všechny řádky na 0.
5. Takže kdykoli najdeme řádek na logice 0, znamená to, že je to řádek stisknutého tlačítka. Takže nyní máme sloupec č. (Dostal se v kroku 2) a řádek č. A můžeme vytisknout č. tohoto tlačítka pomocí funkce lcd_data.
Stejný postup následuje při každém stisknutí tlačítka a my pomocí while (1) neustále kontrolujeme, zda je tlačítko stisknuto nebo ne.