I denne vejledning skal vi interface et 4x4 (16 nøgle) tastatur med ATMEGA32A mikrocontroller. Vi ved, at tastaturet er et af de vigtigste inputenheder, der bruges i elektronikprojekter. Tastatur er en af de nemmeste måder at give kommandoer eller instruktioner til et elektronisk system.
Komponenter, der kræves
Hardware: ATMEGA32, strømforsyning (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensator, 100nF kondensator, 10KΩ modstand (8 stk.).
Software: Atmel studio 6.1 eller Atmel studio 6.2, progisp eller flash-magi.
Kredsløbsdiagram og arbejdsforklaring
I kredsløb er PORTB på ATMEGA32 forbundet til dataport LCD. Her skal man huske at deaktivere JTAG-kommunikationen i PORTC ot ATMEGA ved at ændre sikringsbyte, hvis man ønsker at bruge PORTC som en normal kommunikationsport. I 16x2 LCD er der overalt 16 ben, hvis der er baggrundslys, hvis der ikke er baggrundslys, vil der være 14 ben. Man kan tænde eller lade bagbelysningsstifterne stå. Nu i de 14 stifter er der 8 data stifter (7-14 eller D0-D7), 2 Strømforsyning stifter (1 & 2 eller VSS & VDD eller gnd & + 5V), 3 rd pin for kontraststyring (VEE-styringer, hvor tyk tegnene bør være vist) og 3 kontrolben (RS & RW & E).
I kredsløbet kan du bemærke, at jeg kun har taget to kontrolpinde, dette giver fleksibilitet, kontrastbit og LÆS / SKRIV bruges ikke ofte, så de kan kortsluttes til jorden. Dette sætter LCD i højeste kontrast og læsetilstand. Vi skal bare kontrollere ENABLE og RS-ben for at sende tegn og data i overensstemmelse hermed.
Forbindelserne, der foretages for LCD, er angivet nedenfor:
PIN1 eller VSS til jord
PIN2 eller VDD eller VCC til + 5v strøm
PIN3 eller VEE til jorden (giver maksimal kontrast bedst for en nybegynder)
PIN4 eller RS (Registrer valg) til PD6 i uC
PIN5 eller RW (læse / skrive) til jorden (sætter LCD i læsefunktion letter kommunikationen for brugeren)
PIN6 eller E (Aktivér) til PD5 i uC
PIN7 eller D0 til PB0 i uC
PIN8 eller D1 til PB1 i uC
PIN9 eller D2 til PB2 i uC
PIN10 eller D3 til PB3 af uC
PIN11 eller D4 til PB4 i uC
PIN12 eller D5 til PB5 af uC
PIN13 eller D6 til PB6 i uC
PIN14 eller D7 til PB7 i uC
I kredsløbet kan du se, at vi har brugt 8bit kommunikation (D0-D7), men dette er ikke obligatorisk, vi kan bruge 4bit kommunikation (D4-D7), men med 4 bit kommunikationsprogram bliver det lidt komplekst. Så fra blot observation af ovenstående tabel forbinder vi 10 ben på LCD til controller, hvor 8 ben er datapinde og 2 ben til kontrol.
Lad os nu tale om tastatur, tastatur er intet andet end multipleksede taster. Knapper tilsluttes i en multiplekset form for at reducere stifternes brug af kontrolsystemet.
Overvej, at vi har et 4x4-tastatur, i dette tastatur har vi 16 knapper, i normale tilfælde har vi brug for 16 controller-pins til interface 16-knapper, men dette er ikke godt i kontrolsystemets synspunkt. Denne pin-brug kan reduceres ved at forbinde knapperne i multiplex-form.
Overvej for eksempel, at vi har 16 knapper, og vi vil knytte den til en controller for at danne et tastatur, disse taster er arrangeret som vist i figuren:
Disse knapper er forbundet med almindelige kolonner som vist i figuren:
Som vist i figuren trækkes ikke-markerede ender af hver fire knapper for at komme for at danne en kolonne, og så for 16 nøgler har vi fire kolonner.
Hvis vi glemmer kolonneforbindelserne ovenfor og forbundne fælles markerede ender af hver fire knapper sammen for at danne en række:
Som vist i figur har vi for 16 nøgler fire rækker som vist i figuren.
Nu når de begge ses sammen, får vi noget i retning af nedenstående kredsløb:
Her har vi tilsluttet 16 nøgler i multiplekset form for at reducere pin-brug af controller. Sammenlignet med det første tilfælde af tilsluttede 16 nøgler, havde vi brug for 16-pin på controller, men nu efter multiplexing har vi brug for blot 8 ben til at forbinde 16 nøgler.
Normalt er dette det, der præsenteres inde i et tastatur:
Som vist i ovenstående figur er der 16 taster i ovenstående tastatur, og hver af disse taster repræsenterer en knap i den multipleksede knapkonfiguration. Og der er også 8-pin-forbindelser som vist i figuren ovenfor, der symboliserer multiplekset forbindelse.
Nu til arbejde:
Tastaturet her har fire kolonner og fire rækker, til identifikation af knappen, der trykkes, skal vi bruge krydsreferencemetode. Her først skal vi enten forbinde alle kolonner eller alle rækker til vcc, så hvis rækker er forbundet til almindelig vcc, skal vi tage kolonnerne som input til controller.
Hvis der nu trykkes på knap en som vist i figuren:
Derefter strømmer en strøm gennem kredsløbet som vist i nedenstående figur:
Så vi har C1 højt, for et tryk på en knap. I dette øjeblik vil vi skifte strøm- og inputporte, det vil sige, vi vil tænde kolonnerne og tage rækker som input, Dermed vil der være et strømflow som vist i nedenstående figur:
Så for rækken har vi R1 høj.
Fra nu af har vi C1 højt i første tilfælde og R1 højt i andet tilfælde, så vi har matrixposition på knappen, derfor nummeret "en".
Hvis der trykkes på den anden knap, har vi C1 som kolonne, men den høje logik, vi får i den fælles kolonne, er 'R2'. Så vi har C1 og R2, derfor vil vi have matrixposition for den anden knap.
Dette er, hvordan vi skal skrive programmet, vi skal forbinde otte ben på tastaturet til otte ben på controlleren. Og til start forsyner vi fire ben med controller til strømforsyning til fire rækker tastatur, på dette tidspunkt tages de andre fire ben som input. Når der trykkes på knappen, trækkes den tilsvarende kolonnestift op, og styreenhedens pin trækkes op, vil dette blive genkendt for at ændre indgangen til strøm og strøm til input, så vi har rækker som input.
Ved dette får vi knappen, der trykkes af brugeren. Denne matrixadresser er rettet mod det tilsvarende antal, og dette nummer vises på LCD.
Arbejdet med tastaturinterfacet med avr-mikrocontroller forklares trin for trin i C-koden angivet nedenfor. Du kan også kontrollere: tastaturgrænseflade med 8051 mikrokontroller.