Tässä opetusohjelmassa aiomme liittää 4x4-näppäimistön (16 näppäintä) ATMEGA32A-mikrokontrolleriin. Tiedämme, että näppäimistö on yksi tärkeimmistä elektroniikkaprojekteissa käytetyistä syöttölaitteista. Näppäimistö on yksi helpoimmista tavoista antaa komentoja tai ohjeita sähköiselle järjestelmälle.
Tarvittavat komponentit
Laitteisto: ATMEGA32, virtalähde (5v), AVR-ISP-OHJELMOINTI, JHD_162ALCD (16 * 2LCD), 100uF kondensaattori, 100nF kondensaattori, 10KΩ vastus (8 kpl).
Ohjelmisto: Atmel studio 6.1 tai Atmel studio 6.2, progisp tai flash magic.
Piirikaavio ja selitys työstä
Piirissä ATMEGA32: n PORTB on kytketty dataportin LCD-näyttöön. Tässä on syytä muistaa poistaa JTAG-tiedonsiirto PORTC tai ATMEGA -laitteesta vaihtamalla sulaketavuja, jos halutaan käyttää PORTC: ta normaalina tiedonsiirtoporttina. 16x2 LCD -näytössä on kaikkiaan 16 nastaa, jos taustavaloa on, jos taustavaloa ei ole, on 14 nastaa. Voidaan kytkeä päälle tai jättää taustavalon nastat. Nyt 14 nastat on 8 data nastat (7-14 tai D0-D7), 2 virtalähde nastat (1 & 2 tai VSS ja VDD tai GND ja + 5V), 3 rd pin kontrastin säätö (VEE-ohjaimet kuinka paksu merkkien pitäisi olla kuvassa) ja 3 ohjaintappia (RS & RW & E).
Piirissä voit havaita, että olen ottanut vain kaksi ohjaustappia, mikä antaa joustavuuden, kontrastibittiä ja READ / WRITE -toimintoa ei käytetä usein, jotta ne voidaan oikosuljettaa maahan. Tämä asettaa LCD-näytön suurimmalle kontrastille ja lukutilaan. Meidän on vain hallittava ENABLE- ja RS-nastoja merkkien ja tietojen lähettämiseksi vastaavasti.
LCD-liitännät ovat alla:
PIN1 tai VSS maahan
PIN2- tai VDD- tai VCC-jännite + 5 V: n tehoon
PIN3 tai VEE maahan (antaa parhaan kontrastin aloittelijalle)
PIN4 tai RS (Rekisterivalinta) - PD6 uC: lle
PIN5 tai RW (luku / kirjoitus) maahan (asettaa LCD-näytön lukutilaan helpottamaan viestintää käyttäjälle)
PIN6 tai E (käytössä) - u5: n PD5
UC: n PIN7 tai D0 - PB0
U8: n PIN8 tai D1 - PB1
U9: n PIN9 tai D2 - PB2
U10: n PIN10 tai D3 - PB3
UC: n PIN11 tai D4 - PB4
U12: n PIN12 tai D5 - PB5
PIN13 tai D6 - PB6 uC: stä
UC: n PIN14 tai D7 - PB7
Piirissä näet, että olemme käyttäneet 8-bittistä tiedonsiirtoa (D0-D7), mutta tämä ei ole pakollista, voimme käyttää 4-bittistä tiedonsiirtoa (D4-D7), mutta 4-bittisellä viestintäohjelmalla tulee vähän monimutkainen. Joten pelkästään yllä olevan taulukon havainnoinnista yhdistämme 10 LCD-nastaa ohjaimeen, jossa 8 nastaa on datanastoja ja 2 nastaa ohjausta varten.
Puhutaan nyt näppäimistöstä, näppäimistö on vain multipleksoituja näppäimiä. Painikkeet on kytketty multipleksoidussa muodossa ohjausjärjestelmän nastan käytön vähentämiseksi.
Otetaan huomioon, että meillä on 4x4-näppäimistö, tässä näppäimistössä on 16 painiketta, normaalissa tapauksessa tarvitsemme 16 ohjaintappia 16 painikkeen liittämiseen, mutta tämä ei ole hyvä ohjausjärjestelmän kannalta. Tätä tapin käyttöä voidaan vähentää yhdistämällä painikkeet multipleksimuodossa.
Esimerkiksi, jos meillä on 16 painiketta ja haluamme liittää sen ohjaimeen näppäimistön muodostamiseksi, nämä näppäimet on järjestetty kuvan mukaisesti:
Nämä painikkeet on yhdistetty tavallisilla sarakkeilla kuvan osoittamalla tavalla:
Kuten kuvassa on esitetty, jokaisen neljän painikkeen merkitsemättömiä päitä vedetään kolonnin muodostamiseksi, joten meillä on 16 saraketta neljä saraketta.
Jos unohdamme yllä olevat sarakkeiden yhteydet ja yhdistimme jokaisen neljän painikkeen yhteiset merkityt päät rivin muodostamiseksi:
Kuten kuvassa on esitetty, meillä on 16 avainta varten neljä riviä kuvan osoittamalla tavalla.
Nyt kun heidät nähdään yhdessä, saamme jotain alla olevasta piiristä:
Tässä olemme liittäneet 16 avainta multipleksoidussa muodossa, jotta ohjaimen nastakäyttö vähenisi. Verrattuna ensimmäiseen kytkettyjen 16 avaimen tapaukseen tarvitsimme 16 nastaa ohjaimeen, mutta nyt multipleksoinnin jälkeen tarvitsemme vain 8 nastaista ohjainta 16 avaimen liittämiseen.
Normaalisti tämä on näppäimistön sisällä:
Kuten yllä olevassa kuvassa on esitetty, yllä olevassa näppäimistössä on 16 näppäintä ja kukin näistä näppäimistä edustaa painiketta multipleksoidun painikkeen kokoonpanossa. Ja myös 8-napaisia liitäntöjä, kuten yllä olevassa kuvassa on esitetty, symboloivat multipleksoitua yhteyttä.
Nyt työskentelemässä:
Tässä näppäimistössä on neljä saraketta ja neljä riviä, painikkeen painamisen tunnistamiseksi käytämme ristiviittausmenetelmää. Yhdistämme ensin kaikki sarakkeet tai kaikki rivit vcc: hen, joten jos rivit on kytketty yhteiseen vcc: hen, otamme sarakkeet ohjaimen tuloiksi.
Nyt, jos painetaan yhtä painiketta kuvan osoittamalla tavalla:
Sen jälkeen virta kulkee piirin läpi alla olevan kuvan mukaisesti:
Joten meillä on C1 korkea painikkeen painamista varten. Juuri tällä hetkellä aiomme siirtää teho- ja syöttöportteja, ts. Virrata sarakkeet ja ottaa rivit tuloina, Tällöin tapahtuu virtavirta alla olevan kuvan mukaisesti:
Joten rivillä meillä on R1 korkea.
Tällä hetkellä meillä on C1 korkea ensimmäisessä tapauksessa ja R1 korkea toisessa tapauksessa, joten meillä on painikkeen matriisipaikka, joten numero "yksi".
Jos painetaan toista painiketta, sarakkeena on C1, mutta yhteisen sarakkeen korkea logiikka on 'R2'. Joten meillä on C1 ja R2, joten meillä on toisen painikkeen matriisipaikka.
Näin aiomme kirjoittaa ohjelman, yhdistämme kahdeksan näppäimistön nastaa ohjaimen kahdeksaan nastaan. Ja aluksi virtansa neljä ohjaimen nastaa neljän rivin näppäimistön virran saamiseksi, tällä hetkellä muut neljä nastaa otetaan tuloina. Kun painiketta painetaan, vastaavaa saraketappia vedetään ylöspäin ja niin, että ohjaimen tappi vedetään ylös, tämä tunnistetaan muuttamaan tulo tehoksi ja teho tuloksi, joten meillä on rivejä tuloina.
Tällöin saamme käyttäjän painaman painikkeen. Tämä matriisiosoite on suunnattu vastaavaan numeroon, ja tämä numero näkyy nestekidenäytössä.
Näppäimistön käyttö avr-mikrokontrollerin kanssa selitetään vaihe vaiheelta alla olevassa C-koodissa. Voit myös tarkistaa, että näppäimistö on yhteydessä 8051-mikrokontrolleriin.