I denne opplæringen skal vi grensesnitt et 4x4 (16 nøkkel) tastatur med ATMEGA32A mikrokontroller. Vi vet at tastaturet er en av de viktigste inngangsenhetene som brukes i elektronikkprosjekter. Tastatur er en av de enkleste måtene å gi kommandoer eller instruksjoner til et elektronisk system.
Komponenter kreves
Maskinvare: ATMEGA32, strømforsyning (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensator, 100nF kondensator, 10KΩ motstand (8 stk).
Programvare: Atmel studio 6.1 eller Atmel studio 6.2, progisp eller flash magi.
Kretsdiagram og arbeidsforklaring
I kretsen er PORTB på ATMEGA32 koblet til dataport LCD. Her bør man huske å deaktivere JTAG-kommunikasjonen i PORTC ot ATMEGA ved å endre sikringsbyte, hvis man vil bruke PORTC som en vanlig kommunikasjonsport. I 16x2 LCD er det 16 pinner overalt hvis det er baklys, hvis det ikke er noe bakgrunnslys, vil det være 14 pinner. Man kan drive eller la baklysetappene ligge. Nå i de 14 pinnene er det 8 datapinner (7-14 eller D0-D7), 2 strømforsyningspinner (1 & 2 eller VSS & VDD eller GND & + 5V), 3. pin for kontrastkontroll (VEE-styrer hvor tykke tegnene skal være vist), og 3 kontrollpinner (RS & RW & E).
I kretsen kan du observere at jeg bare har tatt to kontrollpinner, dette gir fleksibiliteten, kontrastbiten og LES / SKRIV brukes ikke ofte slik at de kan kortsluttes til bakken. Dette setter LCD i høyest kontrast og lesemodus. Vi trenger bare å kontrollere ENABLE- og RS-pinner for å sende tegn og data tilsvarende.
Tilkoblingene som gjøres for LCD er gitt nedenfor:
PIN1 eller VSS til bakken
PIN2 eller VDD eller VCC til + 5v strøm
PIN3 eller VEE til jord (gir maksimal kontrast best for en nybegynner)
PIN4 eller RS (Register Selection) til PD6 i uC
PIN5 eller RW (lese / skrive) til bakken (setter LCD i lesemodus letter kommunikasjonen for brukeren)
PIN6 eller E (Aktiver) til PD5 på uC
PIN7 eller D0 til PB0 av uC
PIN8 eller D1 til PB1 av uC
PIN9 eller D2 til PB2 av uC
PIN10 eller D3 til PB3 av uC
PIN11 eller D4 til PB4 i uC
PIN12 eller D5 til PB5 av uC
PIN13 eller D6 til PB6 av uC
PIN14 eller D7 til PB7 av uC
I kretsen kan du se at vi har brukt 8bit kommunikasjon (D0-D7) men dette er ikke obligatorisk, vi kan bruke 4bit kommunikasjon (D4-D7) men med 4 bit kommunikasjonsprogram blir det litt komplisert. Så fra bare observasjon av tabellen ovenfor kobler vi 10 pins LCD til kontrolleren der 8 pins er datapinner og 2 pins for kontroll.
La oss nå snakke om tastaturet, tastaturet er ikke annet enn multipleksede taster. Knapper er koblet i en multiplekset form for å redusere pin-bruken av kontrollsystemet.
Tenk på at vi har et 4x4-tastatur, i dette tastaturet har vi 16 knapper, i normale tilfeller trenger vi 16 kontrollpinner for å grensesnitt 16 knapper, men dette er ikke bra i kontrollsystemets synspunkt. Denne pin-bruken kan reduseres ved å koble til knappene i multiplex-form.
Tenk for eksempel på at vi har 16 knapper, og vi vil feste den til en kontroller for å danne et tastatur. Disse tastene er ordnet som vist i figuren:
Disse knappene er forbundet med vanlige kolonner som vist på figuren:
Som vist i figuren blir ikke markerte ender av hver fire knapper dratt for å komme for å danne en kolonne, og så for 16 nøkler har vi fire kolonner.
Hvis vi glemmer kolonneforbindelsene ovenfor, og koblet felles markerte ender av hver fire knapper sammen for å danne en rad:
Som vist i figuren, for 16 taster vil vi ha fire rader som vist på figuren.
Nå når de begge sees sammen, får vi noe som kretsen nedenfor:
Her har vi koblet 16 nøkler i multiplekset form for å redusere pin-bruken av kontrolleren. Sammenlignet med det første tilfellet av tilkoblede 16 nøkler, trengte vi 16 pins på kontrolleren, men nå etter multiplexing trenger vi bare 8 pins kontroller for å koble til 16 nøkler.
Normalt er dette det som presenteres i et tastatur:
Som vist i figuren ovenfor er det 16 taster på tastaturet ovenfor, og hver av disse tastene representerer en knapp i den multipleksede knappekonfigurasjonen. Og det er også 8-pin-tilkoblinger som vist i figuren ovenfor som symboliserer multiplekset tilkobling.
Nå for å jobbe:
Tastaturet her har fire kolonner og fire rader, for identifisering av knappen som trykkes, skal vi bruke kryssreferansemetode. Her først skal vi enten koble alle kolonner eller alle rader til vcc, så hvis rader er koblet til vanlig vcc, skal vi ta kolonnene som innganger til kontrolleren.
Nå hvis knappen en trykkes på som vist i figuren:
Deretter strømmer en strøm gjennom kretsen som vist i figuren nedenfor:
Så vi har C1 høy, for et knappetrykk. Akkurat nå skal vi skifte strøm- og inngangsportene det vil si, vi skal drive kolonnene og ta rader som innganger, Ved det vil det være en strømflyt som vist i figuren nedenfor:
Så for raden har vi R1 høy.
Fra nå av har vi C1 høyt i første tilfelle og R1 høyt i andre tilfelle, så vi har matriseposisjon på knappen, derav tallet "en".
Hvis den andre knappen trykkes, vil vi ha C1 som kolonne, men den høye logikken vi får i vanlig kolonne vil være 'R2'. Så vi vil ha C1 og R2, derfor vil vi ha matriseposisjonen til den andre knappen.
Slik skal vi skrive programmet, vi skal koble åtte pinner på tastaturet til åtte pinner med kontrolleren. Og til å begynne med driver vi fire pinner med kontroller for å drive fire rader med tastaturet, på dette tidspunktet blir de andre fire pinnene tatt som innganger. Når knappen trykkes tilsvarende kolonnepinne trukket opp, og slik at kontrollpinnen blir trukket opp, vil dette bli gjenkjent for å endre inngangen til strøm og strøm til inngang, så vi vil ha rader som innganger.
Ved dette får vi trykk på knappen av brukeren. Denne matrise-adressene er rettet mot tilsvarende tall, og dette tallet vises på LCD-skjermen.
Arbeid med tastaturgrensesnitt med AVR-mikrokontroller forklares trinn for trinn i C-koden gitt nedenfor. Du kan også sjekke: tastaturgrensesnitt med 8051 mikrokontroller.