Šioje pamokoje ketiname susieti 4x4 (16 klavišų) klaviatūrą su ATMEGA32A mikrovaldikliu. Mes žinome, kad klaviatūra yra vienas iš svarbiausių įvesties įrenginių, naudojamų elektronikos projektuose. Klaviatūra yra vienas iš paprasčiausių būdų pateikti komandas ar nurodymus elektroninei sistemai.
Būtini komponentai
Aparatūra: ATMEGA32, maitinimo šaltinis (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensatorius, 100nF kondensatorius, 10KΩ rezistorius (8 vnt.).
Programinė įranga: „ Atmel studio 6.1“ arba „Atmel studio 6.2“, „progisp“ arba „flash magic“.
Grandinės schema ir darbo paaiškinimas
ATMEGA32 PORTB grandinėje yra prijungtas prie duomenų prievado LCD. Čia reikia nepamiršti išjungti JTAG ryšio PORTC ar ATMEGA, pakeičiant saugiklių baitus, jei norite naudoti PORTC kaip įprastą ryšio prievadą. 16x2 skystųjų kristalų skystųjų kristalų ekrane yra 16 kontaktų, jei yra užpakalinė lemputė, jei nėra užpakalinės šviesos, bus 14 kontaktų. Galima maitinti arba palikti galinio apšvietimo kaiščius. Dabar 14 kaiščių yra 8 duomenų kaiščiai (7-14 arba D0-D7), 2 elektros tiekimo kaiščių (1 & 2 arba Vss & VDD arba GND & + 5V), 3 -oji kaištis kontrasto valdymas (V formos,-kontroliuoja, kaip storio simboliai turėtų būti ir 3 valdymo kaiščiai (RS & RW & E).
Grandinėje galite pastebėti, kad aš paėmiau tik du valdymo kaiščius, tai suteikia lankstumo, kontrasto bitai ir READ / WRITE nėra dažnai naudojami, todėl juos galima sutrumpinti. Tai padidina LCD kontrasto ir skaitymo režimą. Mes tiesiog turime valdyti ENABLE ir RS smeigtukus, kad galėtume atitinkamai siųsti simbolius ir duomenis.
LCD jungtys pateikiamos žemiau:
PIN1 arba VSS į žemę
PIN2 arba VDD arba VCC iki + 5v maitinimo
PIN3 arba VEE į žemę (suteikia maksimalų kontrastą pradedantiesiems)
PIN4 arba RS (registracijos pasirinkimas) į uC PD6
PIN5 arba RW (skaitymas / rašymas) į žemę (įjungus skystųjų kristalų ekraną skaitymo režimu, palengvinamas ryšys vartotojui)
PIN6 arba E (įjungti) į uC PD5
PIN7 arba D0 - PB0 iš uC
UC PIN8 arba D1 – PB1
PIN9 arba D2 – PB2 iš uC
U10 PIN10 arba D3 – PB3
PIN11 arba D4 – PB4 iš uC
U12 PIN12 arba D5 – PB5
U13 PIN13 arba D6 – PB6
UC PIN14 arba D7 - PB7
Grandinėje galite pamatyti, kad mes naudojome 8 bitų ryšį (D0-D7), tačiau tai nėra privaloma, mes galime naudoti 4 bitų ryšį (D4-D7), tačiau su 4 bitų ryšio programa tampa šiek tiek sudėtinga. Taigi, vien stebint aukščiau pateiktą lentelę, mes sujungiame 10 LCD kontaktų su valdikliu, kuriame 8 kontaktai yra duomenų kaiščiai ir 2 valdikliai.
Dabar pakalbėkime apie klaviatūrą, klaviatūra yra ne daugiau kaip multipleksuoti klavišai. Mygtukai yra prijungti multipleksuota forma, kad būtų sumažintas valdymo sistemos kaiščių naudojimas.
Turėkime omenyje, kad turime 4x4 klaviatūrą, šioje klaviatūroje turime 16 mygtukų, įprastais atvejais reikia 16 valdiklių kaiščių, kad galėtume sąsajauti 16 mygtukų, tačiau tai nėra gerai valdymo sistemos požiūriu. Šį kaiščių naudojimą galima sumažinti sujungus mygtukus multiplekso forma.
Pavyzdžiui, manome, kad turime 16 mygtukų ir norime jį prijungti prie valdiklio, kad suformuotumėte klaviatūrą, šie klavišai yra išdėstyti taip, kaip parodyta paveikslėlyje:
Šiuos mygtukus jungia bendri stulpeliai, kaip parodyta paveikslėlyje:
Kaip parodyta paveikslėlyje, nepažymėti kiekvieno keturių mygtukų galai traukiami, kad būtų suformuota stulpelis, taigi 16 klavišų turime keturis stulpelius.
Jei pamiršime aukščiau esančius stulpelių sujungimus ir sujungėme bendrus pažymėtus kiekvieno keturių mygtukų galus, sudarydami eilutę:
Kaip parodyta paveikslėlyje, 16 raktų turėsime keturias eilutes, kaip parodyta paveiksle.
Dabar, kai jie abu matomi kartu, gauname kažką panašaus į žemiau pateiktą grandinę:
Čia mes sujungėme 16 raktų multipleksuota forma, kad sumažintume valdiklio kaiščių naudojimą. Palyginus su pirmuoju prijungtų 16 raktų atveju, valdiklyje reikėjo 16 kaiščių, tačiau dabar, kai sutankinama, reikia tiesiog 8 valdiklio kaiščių, kad būtų galima sujungti 16 raktų.
Paprastai tai pateikiama klaviatūroje:
Kaip parodyta aukščiau esančiame paveikslėlyje, aukščiau esančioje klaviatūroje yra 16 klavišų ir kiekvienas iš šių klavišų reiškia multipleksuoto mygtuko konfigūracijos mygtuką. Taip pat yra 8 kontaktų jungtys, kaip parodyta aukščiau esančiame paveiksle, simbolizuojančiame multipleksuotą ryšį.
Dabar dirbate:
Klaviatūra turi keturis stulpelius ir keturias eilutes. Norėdami identifikuoti paspaustą mygtuką, mes naudosime kryžminį nuorodų metodą. Pirmiausia mes sujungsime visus stulpelius arba visas eilutes su „vcc“, taigi, jei eilutės yra sujungtos su bendru vcc, stulpelius laikysime valdiklio įėjimais.
Dabar, jei paspaudžiamas vienas mygtukas, kaip parodyta paveikslėlyje:
Po to srovė teka per grandinę, kaip parodyta žemiau esančiame paveikslėlyje:
Taigi, mes turime C1 aukštą, norint paspausti mygtuką. Šiuo metu mes pakeisime maitinimo ir įvesties prievadus, tai yra, mes įjungsime stulpelius ir imsime eiles kaip įvestį, Tokiu būdu bus energijos srautas, kaip parodyta žemiau esančiame paveikslėlyje:
Taigi eilėje turime aukštą R1.
Šiuo metu mes turime C1 aukštą pirmuoju atveju ir R1 aukštą antru atveju, taigi mes turime mygtuko matricos padėtį, taigi skaičių "vienas".
Jei paspausite antrąjį mygtuką, mes turėsime C1 kaip stulpelį, tačiau didelė logika, kurią gauname bendrame stulpelyje, bus „R2“. Taigi mes turėsime C1 ir R2, taigi turėsime antrojo mygtuko matricos padėtį.
Taip rašysime programą, aštuonis klaviatūros kaiščius sujungsime su aštuoniais valdiklio kaiščiais. Pirmiausia mes maitiname keturis valdiklio kaiščius, kad maitintumėte keturias eilutes klaviatūros, šiuo metu kiti keturi kaiščiai laikomi įėjimais. Paspaudus mygtuką, atitinkamas stulpelio kaištis ištrauktas ir valdiklio kaištis bus ištrauktas, tai bus atpažinta, kad įvestis pasikeistų į maitinimą ir įvesties galia, taigi mes turėsime eilutes kaip įvestis.
Tokiu būdu gauname vartotojo paspaustą mygtuką. Šis matricos adresas yra nukreiptas į atitinkamą skaičių ir šis skaičius rodomas LCD.
Klaviatūros sąsajos su AVR mikrovaldikliu darbas žingsnis po žingsnio paaiškinamas toliau pateiktu C kodu. Taip pat galite patikrinti: klaviatūros sąsaja su 8051 mikrovaldikliu.