Klaviatuuri skaneerimine

Kõige lihtsam viis teha klaviatuuri, on panna nupp otse mikrokontrolleri väljaviigu külge.  Selline lahendus nõuab mikrokontrollerilt nii mitu väljaviiku kui mitu nuppu on kasutusel. Kui nuppude arv on suur, siis ei ole selline lahendus mõeldav.

Antud õppemaketil on kasutatud skaneeritavat klaviatuuri, kus on kasutatud andmesiini ning lisaks sellele on vajalikud veel kaks mikrokontrolleri väljaviiku. Selline lahendus lubab kasutada maksimaalselt kuusteist nuppu.

Klaviatuuri skaneerimisel tuleb andmesiini kaudu väljastada kood kus üks väljaviikudest on „0“ ja ülejäänud „1“.

 

Kuna PC1 ja PC2 on konstantselt „1", siis tekib olukord, kus vajutades nuppu KL11, muutub PC2 nulliks ja vajutades nuppu KL12, muutub PC1 nulliks. Vajutades kõiki ülejäänud nuppe, jäävad PC1 ja PC2 endiselt üheks ning antud juhul on võimalik tuvastada ainult nuppude KL11 ja KL12 vajutust.

Kui KL11 ega KL12 polnud vajutatud, siis tuleb andmesiinil nulli nihutada ühe võrra, et saaks kontrollida järgmist rida.

 

Nüüd on võimalik tekitada null sisendisse PC1 ainult klahvi KL10 vajutades. Klahvi KL10 vastas pole teist nuppu, aga lihtsuse huvides ja programmi koodi universaalsuse huvides on mõttekas endale ette kujutada, et seal siiski on nupp, mis pole kunagi vajutatud ehk siis kontrollitakse ikkagi nii PC1 kui PC2 sisendit.

Selliselt nulli andmesiinil nihutades ja kaht sisendit kontrollides on võimalik kindlaks teha, milline nuppudest on vajutatud.