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
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
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
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 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
Tabellen nedenfor viser de hexverdiene som brukes til å vise de forskjellige sifrene.
7-segment displaytabell
Kretsdiagram
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 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
Kretsdiagram:
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
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.
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
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
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
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
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
- Microcontroller 8051 Eksterne enheter av aninditadhikary
- 7-segmentvisning etter electronicsteacher
- 7-segment skjermkonfigurasjoner av læringshullet
- LCD-skjerm av bp.blogspot
- Unipolar & Bipolar Steppers av ingeniørgarasje
- Matrisetastatur av vetco
- Tastatur Internt diagram av bp.blogspot