Tipkovnice so široko uporabljene vhodne naprave, ki se uporabljajo v različnih elektronikih in vdelanih projektih. Uporabljajo se za sprejemanje vnosov v obliki številk in albabetov ter jih vnašajo v sistem za nadaljnjo obdelavo. V tej vadnici bomo povezali matrično tipkovnico 4x4 z mikrokrmilnikom 8051.
Matrična tipkovnica 4X4
Preden tipkovnico povežemo z mikrokrmilnikom, moramo najprej razumeti, kako deluje. Matrična tipkovnica je sestavljena iz nabora potisnih gumbov, ki so med seboj povezani. Kot v našem primeru uporabljamo matrično tipkovnico 4X4, v kateri so po 4 tipke v vsaki od štirih vrstic. Terminali tipk so povezani v skladu s shemo. V prvi vrstici je en terminal vseh 4 tipk povezan skupaj, drugi terminal 4 tipk pa predstavlja vsakega od 4 stolpcev, enako velja za vsako vrstico. Tako dobimo 8 terminalov za povezavo z mikrokrmilnikom.
Povezava tipkovnice z mikrokrmilnikom 8051 (AT89S52)
Najprej moramo povezati modul LCD, da prikažemo podatke, ki bodo posredovani prek tipkovnice, zato preberite članek »Povezava LCD z mikrokrmilnikom 8051«, preden povežete tipko.
Kot je prikazano na zgornjem vezju, moramo za vmesnik tipkovnice povezati 8 terminalov tipkovnice na katera koli vrata (8 nožic) mikrokrmilnika. Tako kot smo na priključek 1 8051. priključili terminale tipkovnice. Kadarkoli pritisnemo kateri koli gumb, moramo dobiti lokacijo gumba, kar pomeni, da je vrstica v stolpcu št. Ko dobimo lokacijo gumba, lahko znak ustrezno natisnemo.
Zdaj je vprašanje, kako najti lokacijo pritisnjenega gumba? To bom razložil v spodnjih korakih in želel tudi, da si ogledate kodo:
1. Najprej smo naredili vse vrstice do stopnje logike 0 in vse stolpce do stopnje logike 1.
2. Kadar koli pritisnemo gumb, se stolpec in vrstica, ki ustreza temu gumbu, skrajša in ustrezni stolpec postavi na logično raven 0. Ker se ta stolpec poveže (skrajša) z vrstico, ki je na logični ravni 0. Tako dobimo stolpec št. Glejte glavno () funkcijo.
3. Zdaj moramo poiskati številko vrstice, zato smo ustvarili štiri funkcije, ki ustrezajo vsakemu stolpcu. Tako kot če pritisnete kateri koli gumb prvega stolpca, pokličemo funkcijo row_finder1 (), da poiščemo vrstico št.
4. V funkciji row_finder1 () smo spremenili logične ravni, kar pomeni, da so zdaj vse vrstice 1 in stolpci 0. Zdaj mora biti vrstica pritisnjenega gumba 0, ker se je povezala (skrajšala) s stolpcem, katerega gumb je pritisnjen in vsi stolpci imajo logiko 0. Torej smo pregledali vse vrstice za 0.
5. Torej, kadar koli najdemo vrstico na logiki 0, to pomeni, da je vrstica pritisnjenega gumba. Zdaj imamo stolpec št. (Dobljen v 2. koraku) in vrstico št. In lahko natisnemo št. tega gumba s funkcijo lcd_data.
Za vsak pritisk gumba sledi enak postopek, pri čemer (1) neprekinjeno preverjamo, ali je gumb pritisnjen ali ne.