16-toonsoort Keypad decoderen met een AVR MCU (4 / 7 stap)

Stap 4: Gebruik 74C922 om te verminderen van i/o-eisen


De MM74C922N is een 16-sleutel-encoder die alle de internals te nemen van de output van een 16-key switch die wij enkel uit de vorige stap zagen, het coderen op slechts vier uitgangen met behulp van een waarheidstabel bevat. Dit is een zegen, want het geeft je meer I/O te beheersen of te controleren van andere dingen om te gaan kopen een groter (in de zin van meer pinouts voor I/O) zonder microcontroller.

De 74C 922 16-Key Encoder

Vanuit het gegevensblad, de MM74C922 een externe klok kunt gebruiken voor het scannen van de synchrone toetsenblok heeft interne pull-ups en heeft een interne ontdendering circuit! Zowel de scanfrequentie en ontdendering tijd kan worden geconfigureerd via een externe klok of condensator. Het houdt ook de laatste toets ingedrukt op de uitgangen, zelfs nadat zij belangrijke is depressief, zijn in het geval uw MCU heeft dadelijk en moet de waarde weer ophalen (ten minste voor de volgende ToetsIndrukken (KeyPress)). Het voert ook van 3V naar 15V zodat het integreert goed in TTL en CMOS ontwerpen.

De rijen van het toetsenblok zijn verbonden door middel van haar interne pull-up weerstanden wanneer geen toets is ingedrukt. Wanneer een toets wordt ingedrukt de chip gaat door het debounce mechanisme en wanneer dat een time-out, de gecodeerde gegevens is vergrendeld en de DA pin (gegevens beschikbaar) gaat hoog. De DA pin blijft hoog (logische 1) tot de toets wordt losgelaten, dan zakt het naar een logische 0. Er is ook een OE pin (uitgang ingeschakeld) die de inverse van de DA-pin is.

De pinout van de 74C922N wordt weergegeven in een schema heb ik hieronder opgenomen dat alleen dit IC toont. Ik heb ook een schema van de Eagle, hoewel de rijen en kolommen van het toetsenbord apparaat het circuit moeilijk te interpreteren, gemaakt zodat ik ook mijn handgeschreven schema die ik gemaakt heb toen ik voor het eerst begon te spelen met het toetsenbord en de 74C922. Een van die zal hopelijk verbindingsproblemen, opruimen als u om het even welk.

Bouwen van het Circuit

Zet in uw 74C922 in uw breadboard, sluiten ergens, maar waar u bent niet te krap. Als u niet bekend met IC's bent, neem een moment om wonder op uw nieuwe glanzende chip en merk op dat de benen zijn uitlopend uit wanneer ze uit de fabriek komen. Het kan helpen met het krijgen van het in het breadboard als leg je het op zijn kant met haar benen plat op de tafel, en met een zacht rollende beweging iets buigen ze naar binnen. Bij het plaatsen van uw IC-notitie dat er een streep of divot aan de ene kant is. Dit geeft aan waar de pin een wordt.

Sluit de 0.1uF condensatoren naar pinnen 6 en 7 en neem ze mee naar de grond. Zie hieronder. Als u gebruikmaakt van tantaal condensatoren herinneren dat ze bent gepolariseerde dus zet de positieve kant (meestal het lange been) zich het dichtst bij de pin en de korte poot in de terminal van de grond.
N.B.
Hebt om rond te spelen met de condensatoren voor uw installatie. Heb ik 1uF gevonden op de oscillator en 10uF aan 15uF (ik had 3 parallel) geeft me de beste responsieve scan met de minste ontdendering. Het uitzoeken voor je setup vermaak zitten annuleerteken.

Een volgende keer uw voedingscomponenten. In dit stadium heb niet mijn boord aangedreven. Het is gewoon makkelijker te doen deze nu dan nadat u verbinding hebt alle inputs en outputs. Vcc (hoogste juiste pin) verbinden met 5V, de bodem verlaten stift op grond, alsmede de OE-pin op grond. Wij zullen niet zorg over het ditmaal. Zie hieronder.

Nu sluit de uitgangen van uw gegevens aan uw AVR. Op onderstaande foto heb ik gegevens uit (DO) A verbonden met PD2, DOB voor PD3, DOC naar PD4 en DOD aan PD5. Nu zou een goed moment om de beschikbare Data pin (één rechtsonder de OE u liep aan de grond op het recht) verbinden met uw microcontroller. Ik koos de PD6. Mooi aaneengesloten blok I/O. Als we weten konden dat het dezelfde twee getallen na elkaar waren niet ingevoerd kunnen we vertrekken uit de beschikbare gegevens en poll alleen de gegevens uit de pinnen. Dat zou onze eerder nodig acht I/O lijnen verlagen tot slechts vier! Voor de volledigheid, ik ben met inbegrip van het want dat is de pincode die ik zal dienst met een pin wijzigen-interrupt. Het is mooier dan polling en laat uw computer doen van andere dingen in plaats van het wachten in de lusjes van de pin staat polling.

Ten slotte Verbind uw input draden. De linksboven vier pinnen Ga naar rijen één, twee, drie en vier. De twee pinnen tussen de condensator en de grond op de bodem verlaten verbinden kolom met vier en drie. Aan de andere kant, het lezen van het bodemrecht, sluit de pinnen aan kolom twee en één. Let op de volgorde! Sluit uw toetsenbord als u een kabel voor het aangebracht en brand uw microcontroller!

Gerelateerde Artikelen

Het gebruik van een 74HC595 Shift Register met een AVR ATtiny13

Het gebruik van een 74HC595 Shift Register met een AVR ATtiny13

als je hebt gespeeld met microcontrollers en elektronica dan u waarschijnlijk gezien hebt LED dot matrix displays en andere projecten die daar gebruik van shift registers zoals 7-segment displays en meer. Dit instructable gaat over een snelle intro a
Hoe om te lezen binair getal/Hexuitdraai draaischijf schakelen met een AVR Microcontroller

Hoe om te lezen binair getal/Hexuitdraai draaischijf schakelen met een AVR Microcontroller

dit instructable zal u tonen hoe om te lezen het nummer op een binaire pushwheel of draaischijf schakelaar met behulp van LED's of een AVR microcontroller (ik gebruik een ATmega328p maar dit kan worden aangepast voor elke AVR of waarschijnlijk een an
Controle om het even wat met een AVR-pin

Controle om het even wat met een AVR-pin

dit instructable toont hoe de controle van een groep van led met een microprocessor uitgang.De micro die mij zal zitten using is een Atmel Attiny2313.Stap 1: Onderdelen en Tools Parts:Attiny2313 (kreeg 5 gratis monsters van Atmel)20 pins aansluitingW
AVR fuse basics: een avr met een externe klok

AVR fuse basics: een avr met een externe klok

zekeringen zijn de moeilijkste onderwerpen die ik tegenkwam terwijl leren over programmeren microcontrollers. Zelfs na zoeken en uitgebreid lezen, ik nog steeds kon niet in geslaagd om te wissen mijn concepten over hen. Maar toen begon ik te leren ov
Rijden een Stepper Motor met een Microprocessor AVR

Rijden een Stepper Motor met een Microprocessor AVR

Got sommige scavenged stepper motors van printers/schijf schijven/etc ligggen?Sommige sonderen met een ohmeter, gevolgd door enkele eenvoudige stuurprogramma-code op uw microprocessor en u zult worden intensivering in stijl.Stap 1: Maak kennis met St
Het gebruik van de Dragon Rider 500 met uw AVR Dragon

Het gebruik van de Dragon Rider 500 met uw AVR Dragon

dit instructable is een spoedcursus in het gebruik van enkele van de kenmerken van de Dragon Rider 500 van Ecros technologieën. Wees u ervan bewust dat er een zeer gedetailleerde handleiding beschikbaar op de website Ecros is.De Dragon Rider is een i
Hoe te lezen veel schakelaars met een MCU-Pin

Hoe te lezen veel schakelaars met een MCU-Pin

hebben u ooit geweest chugging weg op een project(en) en het project houdt groeit en groeit, terwijl u er meer dingen aan toevoegen (wij noemen dat een Feaping-Creaturism)?  Op een recente project, ik was het bouwen van een frequentie meter en een vi
Hoe u een 16 x 2 LCD met behulp van een AVR ATtiny2313

Hoe u een 16 x 2 LCD met behulp van een AVR ATtiny2313

als je gewoon bent om in microcontrollers er is een hoop te weten zoals u waarschijnlijk heb ontdekt. Er is een heleboel goede online tutorials voor de Atmel AVR en kansen zijn dat u een paar van die inmiddels heb zien. Ik onlangs heb in microcontrol
Macht van uw Arduino/AVR met een batterij Hand-Cranked

Macht van uw Arduino/AVR met een batterij Hand-Cranked

als u ooit hebt willen macht uw Arduino of AVR uit een batterij voor het testen van de ontwikkeling (batterijen hebben verschillende macht levering kwaliteiten dan, zeg, getransformeerde AC of zelfs een gereglementeerde muur wrat in DC) testen maar w
Mijn reactie op de WS2811 met een ding van AVR

Mijn reactie op de WS2811 met een ding van AVR

eerst af - wil zeggenGoed op je Alan Burlison.Dit is niet bedoeld om te worden opzakcapaciteit u op geen enkele manier.  Uw code deed wat het moest doen.  Groot succes.  Mijn eerste reactie in een forum commentaar was eigenlijk gericht op de mensen d
Met behulp van een Dot Matrix LED met een Arduino en Shift Register

Met behulp van een Dot Matrix LED met een Arduino en Shift Register

de Siemens DLO7135 Dot matrix LED is een verbazingwekkend stukje opto-elektronica. Het is gefactureerd als een 5 x 7 Dot Matrix intelligente Display (r) met geheugen/Decoder/Driver. Samen met dat het geheugen, het heeft een 96-ASCII karakterdisplay s
Bouw een AVR Xmega Prototyping Board!

Bouw een AVR Xmega Prototyping Board!

De AVR ATXmega -chip is een nieuwere aanbod in Atmel's AVR lijn.  De Xmega wordt gefactureerd als een hybride 8/16-bit MCU, wat betekent dat u uw normale ontwikkelomgeving voor programma Xmegas (in vergelijking met AVR32 en Atmel's ARM lijn) kunt geb
Fiets achterlicht met een twist

Fiets achterlicht met een twist

laten we eerlijk zijn. Achterlichten zijn saai.In het beste ze gaan ' knipperen blink - kijk naar mij! Ik ben knipperen - woohoo' de allertijden. En ze zijn altijd rood. Zeer creatief. We kunnen beter doen dan dat, misschien niet veel, maar nog steed
3D afgedrukt 'Centrifugaal puzzel Box' - opgelost met een spin...

3D afgedrukt 'Centrifugaal puzzel Box' - opgelost met een spin...

Voor dit project heb ik besloten om te verkennen van de wereld en het gebruik van 3D-printing verder nadat mijn verkenning van de 3D iPhone gevallen markt waar ik ontworpen afgedrukt, gemaakt en nu verkopen de "TriStand iPhonegeval - 3D gedrukte iPho