Store elektroniske periferiutstyr som grensesnitt til mikrokontroller 8051

Prøv Instrumentet Vårt For Å Eliminere Problemer





Grensesnitt er et av de viktigste begrepene i mikrokontroller 8051 fordi mikrokontrolleren er en CPU som kan utføre en viss operasjon på data og gir utdata. For å utføre operasjonen trenger vi imidlertid en inndataenhet for å legge inn dataene, og i sin tur viser utdataenheten resultatene av operasjonen. Her bruker vi tastatur og LCD-skjerm som inngangs- og utdataenheter sammen med mikrokontrolleren.

Microcontroller 8051 Eksterne enheter

Microcontroller 8051 Eksterne enheter



Grensesnitt er prosessen med å koble enheter sammen slik at de kan utveksle informasjon, og det viser seg å være lettere å skrive programmene. Det er forskjellige typer inngangs- og utgangsenheter som for våre krav, for eksempel lysdioder, LCD-skjerm, 7-segment, tastatur, motorer og andre enheter.


Her er gitt noen viktige moduler grensesnittet med mikrokontroller 8051.



1. LED-grensesnitt til mikrokontroller:

Beskrivelse:

LED-er brukes ofte i mange applikasjoner for å indikere utdataene. De finner et stort utvalg av applikasjoner som indikatorer under testen for å kontrollere gyldigheten av resultatene på forskjellige stadier. De er veldig billige og lett tilgjengelige i en rekke former, farger og størrelser.

Lysdiode

Lysdiode

Prinsippet om drift av lysdioder er veldig enkelt. Enkle lysdioder serveres også som grunnleggende skjermenheter. På og av-tilstanden uttrykker fullstendig informasjon om en enhet. De vanlige tilgjengelige lysdiodene har et spenningsfall på 1,7 v som betyr at når vi bruker over 1,7 V, leder dioden. Dioden trenger 10 mA strøm for å lyse med full intensitet.


Følgende krets beskriver “hvordan lysdioder skal lyses”.

Lysdioder kan kobles til mikrokontrolleren i enten vanlig anode eller vanlig katodekonfigurasjon. Her kobles lysdiodene til i vanlig anodekonfigurasjon fordi den vanlige katodekonfigurasjonen bruker mer strøm.

Kretsdiagram

LED-grensesnitt til mikrokontroller

LED-grensesnitt til mikrokontroller

Kildekode:

#inkludere
ugyldig hoved ()
{
usignert int i
mens (1)
{
P0 = 0x00
for (i = 0i<30000i++)
P0 = 0xff
for (i = 0i<30000i++)
}
}

2. Grensesnittkrets med 7 segmenter

Beskrivelse:
Et display med syv segmenter er den mest grunnleggende elektroniske skjermen. Den består av åtte lysdioder som er assosiert på en sekvens måte for å vise sifre fra 0 til 9 når riktige kombinasjoner av lysdioder er slått på. En 7-segment skjerm bruker syv lysdioder for å vise sifre fra 0 til 9, og den 8. lysdioden brukes til punktum. Et typisk syv segment ser ut som vist i figuren nedenfor.

7-segment display

7-segment display

7-segment skjermene brukes i en rekke systemer for å vise den numeriske informasjonen. De kan vise ett siffer om gangen. Antall segmenter som brukes, avhenger således av antall sifre som skal vises. Her vises sifrene 0 til 9 kontinuerlig med en forhåndsdefinert tidsforsinkelse.

7-segment skjermene er tilgjengelige i to konfigurasjoner som er vanlig anode og vanlig katode. Her brukes vanlig anodekonfigurasjon fordi utgangsstrømmen til mikrokontrolleren ikke er tilstrekkelig til å kjøre lysdiodene. 7-segment displayet fungerer på negativ logikk, vi må gi logikk 0 til den tilsvarende pinnen for å lage på LED-glød.

7-segment skjermkonfigurasjoner

7-segment skjermkonfigurasjoner

Tabellen nedenfor viser de hexverdiene som brukes til å vise de forskjellige sifrene.

7-segment displaytabell

7-segment displaytabell

Kretsdiagram

7-segment skjermgrensesnitt

7-segment skjermgrensesnitt

Kildekode:

#inkludere
sbit a = P3 ^ 0
ugyldig hoved ()
{
usignert røye n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
usignert int i, j
a = 1
mens (1)
{
for (i = 0i<10i++)
{
P2 = n [i]
for (j = 0j<60000j++)
}
}
}

3. LCD-grensesnitt til mikrokontroller

LCD står for flytende krystalldisplay som kan vise tegnene per linje. Her kan 16 x 2 LCD-skjerm vise 16 tegn per linje, og det er to linjer. I denne LCD-skjermen vises hvert tegn i 5 * 7 piksler matrise.

LCD-skjerm

LCD-skjerm

LCD er veldig viktig enhet som brukes til nesten alle automatiserte enheter som vaskemaskiner, en autonom robot, kraftkontrollsystemer og andre enheter. Dette oppnås ved å vise status på små skjermmoduler som 7-syv segmentdisplayer, flersegment-lysdioder osv. Årsakene er at LCD-skjermene er rimelige, lett programmerbare og de har ingen begrensninger for å vise spesialtegn.

Den består av to registre som kommando / instruksjonsregister og dataregister.

Kommando- / instruksjonsregisteret lagrer kommandoinstruksjonene gitt til LCD-skjermen. En kommando er en instruksjon som blir gitt til LCD-skjermen som utfører et sett med forhåndsdefinerte oppgaver som initialisering, tømming av skjermen, innstilling av markørposisjon, kontroll av skjerm etc.

Dataregisteret lagrer dataene som skal vises på LCD. Dataene er en ASCII-verdi av tegnene som skal vises på LCD-skjermen.

Driften av LCD styres av to kommandoer. Når RS = 0, R / W = 1 leser den dataene, og når RS = 1, R / W = 0, skriver (skriver) den ut dataene.

LCD bruker følgende kommandokoder:

LCD-skjermkommandoer

LCD-skjermkommandoer

Kretsdiagram:

LCD-grensesnitt til mikrokontroller

LCD-grensesnitt til mikrokontroller

Kildekode:

#inkludere
#definer kam P0

sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit ved = P2 ^ 2

ugyldig lcd_initi ()
ugyldig lcd_dat (usignert røye)
ugyldig lcd_cmd (usignert røye)
ugyldig forsinkelse (usignert int)
ugyldig visning (usignerte tegn *, usignerte tegn)
ugyldig hoved ()
{

lcd_initi ()
lcd_cmd (0x80)
forsinkelse (100)
display (“EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
display (“KITS & SOLTIONS”, 15)
mens (1)
}

ugyldig visning (usignerte tegn *, usignerte tegn)
{
usignert int m
for (w = 0w{

lcd_dat (s [w])
}
}

ugyldig lcd_initi ()
{
lcd_cmd (0x01)
forsinkelse (100)
lcd_cmd (0x38)
forsinkelse (100)
lcd_cmd (0x06)
forsinkelse (100)
lcd_cmd (0x0c)
forsinkelse (100)
}
ugyldig lcd_dat (usignert char dat)
{
kam = det
rs = 1
rw = 0

i = 1
forsinkelse (100)
i = 0
}
ugyldig lcd_cmd (usignert char cmd)
{
kom = cmd
rs = 0
rw = 0

i = 1
forsinkelse (100)
i = 0
}
ugyldig forsinkelse (usignert int n)
{

usignert int a
for (a = 0a}

4. Grensesnittkrets for trinnmotor

Typer av trinnmotorer-1

Unipolar trinnmotor

TIL trinnmotor er en av de mest brukte motorene for presis vinkelbevegelse. Fordelen med å bruke en trinnmotor er at motorens vinkelposisjon kan styres uten noen tilbakemeldingsmekanisme. Stepper motorene er mye brukt i industrielle og kommersielle applikasjoner. De brukes også ofte som i drivsystemer som roboter, vaskemaskiner etc.

Typer av trinnmotorer-2

Bipolar trinnmotor

Stepper motorer kan være unipolare eller bipolare, og her bruker vi unipolare trinnmotor. Den unipolare trinnmotoren består av seks ledninger hvorav fire er koblet til motorens spole og to er vanlige ledninger. Hver felles ledning er koblet til en spenningskilde, og gjenværende ledninger er koblet til mikrokontrolleren.

Kretsdiagram:

Stepper motor grensesnittkrets

Stepper motor grensesnittkrets

Kildekode:

#inkludere
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

ugyldig forsinkelse ()

ugyldig hoved ()
{

mens (1)
{

a = 0
b = 1
c = 1
d = 1
forsinkelse()
a = 1
b = 0
c = 1
d = 1
forsinkelse()
a = 1
b = 1
c = 0
d = 1
forsinkelse()
a = 1
b = 1
c = 1
d = 0

}
}

ugyldig forsinkelse ()
{

usignert røye i, j, k
for (i = 0i<6i++)
for (j = 0j<255j++)
for (k = 0k<255k++)

}

5. Grensesnitt for matrisetastatur til 8051

Beskrivelse:

Matrisetastatur

Matrisetastatur

Tastatur er et mye brukt inndataenhet med mange applikasjoner som telefon, datamaskin, minibank, elektronisk lås osv. Et tastatur brukes til å ta input fra brukeren for videre behandling. Her er et matrisetastatur på 4 x 3 bestående av brytere arrangert i rader og kolonner grensesnitt til mikrokontrolleren . En 16 av 2 LCD er også grensesnitt for visning av utdata.

Grensesnittkonseptet med tastaturet er veldig enkelt. Hvert antall tastaturer tildeles to unike parametere som er rad og kolonne (R, C). Derfor identifiserer nummeret hver gang en tast trykkes ved å oppdage rad- og kolonnetallene på tastaturet.

Tastatur internt diagram

Tastatur internt diagram

I utgangspunktet er alle radene satt til null (‘0’) av kontrolleren, og kolonnene blir skannet for å sjekke om det trykkes på en hvilken som helst tast. Hvis det ikke trykkes på noen taster, vil utdataene fra alle kolonnene være høye (‘1’).

Kretsdiagram

Matrix tastatur grensesnitt til 8051

Matrix tastatur grensesnitt til 8051

Kildekode:

#inkludere
#definer kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit ved = P2 ^ 2
sbit c1 = P1 ^ 4
sbit c2 = P1 ^ 5
sbit c3 = P1 ^ 6
sbit r1 = P1 ^ 0
sbit r2 = P1 ^ 1
sbit r3 = P1 ^ 2
sbit r4 = P1 ^ 3
ugyldig lcd_initi ()
ugyldig lcd_dat (usignert røye)
ugyldig lcd_cmd (usignert røye)
ugyldig forsinkelse (usignert int)
ugyldig visning (usignerte tegn *, usignerte tegn)

ugyldig hoved ()
{
lcd_initi ()
lcd_cmd (0x80)
forsinkelse (100)
display (“0987654321”, 10)
mens (1)
}

ugyldig visning (usignerte tegn *, usignerte tegn)
{

usignert int m
for (w = 0w{

lcd_dat (s [w])
}
}
ugyldig lcd_initi ()
{
lcd_cmd (0x01)
forsinkelse (100)
lcd_cmd (0x38)
forsinkelse (100)
lcd_cmd (0x06)
forsinkelse (100)
lcd_cmd (0x0c)
forsinkelse (100)
}

ugyldig lcd_dat (usignert char dat)
{
kam = det
rs = 1
rw = 0

i = 1
forsinkelse (100)
i = 0
}
ugyldig lcd_cmd (usignert char cmd)
{
kom = cmd
rs = 0
rw = 0

i = 1
forsinkelse (100)
i = 0

}
ugyldig forsinkelse (usignert int n)
{

usignert int a
for (a = 0a}
}

Vi håper vi har vært i stand til å gi rikelig kunnskap om de grunnleggende, men viktige grensesnittkretsene til mikrokontroller 8051 . Dette er de mest grunnleggende kretsene som kreves i ethvert innebygd systemapplikasjon, og vi håper vi har gitt deg en god revisjon.

Ytterligere spørsmål eller tilbakemeldinger relatert til dette emnet kan nevnes i kommentarfeltet nedenfor.

Fotokreditt