Klaviatūros yra plačiai naudojami įvesties įrenginiai, naudojami įvairioje elektronikoje ir įterptiniuose projektuose. Jie naudojami įvedant duomenis skaičiais ir albabetais ir juos tiekiant į sistemą tolesniam apdorojimui. Šioje pamokoje ketiname susieti 4x4 matricos klaviatūrą su 8051 mikrovaldikliu.
4X4 „Matrix“ klaviatūra
Prieš sąveikaudami klaviatūrą su mikrovaldikliu, pirmiausia turime suprasti, kaip ji veikia. Matricos klaviatūra susideda iš tarpusavyje sujungtų mygtukų rinkinio. Kaip ir mūsų atveju, mes naudojame 4X4 matricos klaviatūrą, kurioje kiekvienoje iš keturių eilučių yra 4 mygtukai. O mygtukų gnybtai yra sujungti pagal schemą. Pirmoje eilėje vienas iš visų 4 mygtukų terminalas yra sujungtas, o kitas 4 mygtukų terminalas rodo kiekvieną iš 4 stulpelių, tas pats pasakytina ir apie kiekvieną eilutę. Taigi mes gauname 8 terminalus, kad galėtume prisijungti prie mikrovaldiklio.
Sąsajos klaviatūra su 8051 mikrovaldikliu (AT89S52)
Pirmiausia turime susieti LCD modulį, kad būtų rodomi duomenys, kurie bus perduodami per KEYPAD, todėl prieš sąsają su KEYPAD, perskaitykite straipsnį „LCD sąsaja su 8051 mikrovaldikliu“.
Kaip parodyta aukščiau esančioje grandinės schemoje, kad galėtume sąsajauti klaviatūrą, turime prijungti 8 klaviatūros terminalus prie bet kurio mikrovaldiklio prievado (8 kontaktų). Kaip ir mes prijungėme klaviatūros gnybtus prie 8051 prievado 1. Kai tik paspaudžiate bet kurį mygtuką, turime gauti mygtuko vietą, tai reiškia atitinkamą EILUTĖS SKILTĮ Nr. Gavę mygtuko vietą, galime atitinkamai atspausdinti simbolį.
Dabar kyla klausimas, kaip gauti paspausto mygtuko vietą? Aš tai paaiškinsiu atlikdamas toliau nurodytus veiksmus ir noriu, kad pažiūrėtumėte į kodą:
1. Pirmiausia mes padarėme visas eilutes iki 0 logikos lygio ir visus stulpelius iki 1 logikos lygio.
2. Kai tik paspaudžiame mygtuką, stulpelį ir eilutę, atitinkantį tą mygtuką, sutrumpėja ir atitinkamas stulpelis tampa loginiu lygiu. Kadangi tas stulpelis sujungiamas (sutrumpinamas) su 0 logikos lygmens eilute. Taigi gauname stulpelis Nr. Žr. Pagrindinę () funkciją.
3. Dabar turime rasti eilutę Nr., Todėl sukūrėme keturias funkcijas, atitinkančias kiekvieną stulpelį. Kaip ir paspaudus bet kurį pirmojo stulpelio mygtuką, mes iškviečiame funkciją row_finder1 (), norėdami rasti eilutę Nr.
4. Funkcijoje row_finder1 () mes pakeitėme logikos lygius, tai reiškia, kad dabar visos eilutės yra 1, o stulpeliai yra 0. Dabar paspausto mygtuko eilutė turėtų būti 0, nes ji sujungta (sutrumpinta) su stulpeliu, kurio mygtukas yra paspaustas. ir visi stulpeliai yra 0 logikos. Taigi visas eilutes nuskenavome 0.
5. Taigi, kai eilutėje randame logiką 0, tai reiškia paspausto mygtuko eilutę. Taigi dabar turime stulpelio nr (pateko į 2 veiksmą) ir eilutės Nr., Ir mes galime atspausdinti Nr. mygtuko, naudodami lcd_data funkciją.
Ta pati procedūra atliekama kiekvieną kartą paspaudus mygtuką ir mes naudojame (1), norėdami nuolat tikrinti, ar mygtukas paspaustas, ar ne.