V zahtevnih mikrokontrolerskih projektih pogosta manjka kakšen V/I priključek, s katerim bi želeli realizirati neko dodatno funkcionalnost. Takrat smo prisiljeni uporabiti večji mikrokontroler ali serijsko/paralelne pretvornike, s katerimi povečamo število V/I vrat, ki jih nadzira mikrokontroler. Članek opisuje programsko rešitev, ki omogoča branje 3 tipk z dvema V/I priključkoma in komentira možne razširitve.
Vezje na sliki 1 prikazuje najenostavnejši primer v katerem se stanje tipk TP1, TP2 in TP3 nadzira z vhodoma P3.0 in P3.1. Tipki TP1 in TP2 imata svoje »vhode« na mikrokontrolerju, TP3 pa preko diod D1 in D2 sočasno aktivira oba vhoda. Tipka TP4 ima drugačno funkcijo, ki jo bomo opisali kasneje. Programsko rešitev smo testirali na MiniPin-u. Kratkostičnika J7 in J16 morata biti spojena. Diodi D1 in D2 nista sestavni del MiniPin-a in ju bomo najlažje dodali na MiniPin tako, da ju vtaknemo v 40-pin podnožje (IC5): anode diod se vtakne v kontakte 10 (P3.0) in 11 (P3.1) podnožja, obe katodi pa v priključek 12. Čeprav je tipka TP3 na MiniPin-u spojena na pin P3.2, se le-ta programsko ne bere in lahko predpostavimo, da ne obstaja. V samostojni izvedbi lahko kratkostičnike in LEDice izpustimo, pull-up upore vrednosti 470 Ohmov pa zamenjamo z vrednostmi 4,7 – 10 kOhmov.
Program
Program je napisan v programskem jeziku Bascom-8051, za odčitavanje vhodov P3.0 in P3.1 se uporablja Debounce ukaz:
Do
Debounce P3.0 , 0 , Tp1_deb , Sub
Debounce P3.1 , 0 , Tp2_deb , Sub
...
LoopEn Debounce odčitava več tipk 2009_SE167_32