Större elektroniska kringutrustning som gränssnitt till Microcontroller 8051

Prova Vårt Instrument För Att Eliminera Problem





Gränssnitt är ett av de viktiga begreppen i mikrokontroller 8051 eftersom mikrokontrollern är en CPU som kan utföra viss operation på en data och ger utdata. Men för att utföra operationen behöver vi en inmatningsenhet för att mata in data och i sin tur visar utmatningsenheten resultaten av operationen. Här använder vi tangentbord och LCD-skärm som in- och utmatningsenheter tillsammans med mikrokontrollern.

Microcontroller 8051 Kringutrustning

Microcontroller 8051 Kringutrustning



Gränssnitt är processen för att ansluta enheter tillsammans så att de kan utbyta informationen och det visar sig vara lättare att skriva programmen. Det finns olika typer av in- och utmatningsenheter som för våra krav såsom lysdioder, LCD-skärmar, 7-segment, knappsats, motorer och andra enheter.


Här ges några viktiga moduler gränssnitt med mikrokontroller 8051.



1. LED-gränssnitt till mikrokontroller:

Beskrivning:

Lysdioder används oftast i många applikationer för att indikera utdata. De hittar ett stort antal applikationer som indikatorer under testet för att kontrollera giltigheten av resultaten i olika stadier. De är väldigt billiga och lätt tillgängliga i olika former, färger och storlekar.

Ljusdiod

Ljusdiod

Principen för drift av lysdioder är väldigt enkelt. Enkel lysdioder servar också som en grundläggande visningsenhet. På- och av-tillståndet uttrycker all information om en enhet. De vanliga tillgängliga lysdioderna har ett spänningsfall på 1,7 v, vilket betyder att när vi applicerar över 1,7 V leder dioden. Dioden behöver 10 mA ström för att lysa med full intensitet.


Följande krets beskriver 'hur man lyser lysdioderna'.

Lysdioder kan anslutas till mikrokontrollern i antingen gemensam anod eller vanlig katodkonfiguration. Här är lysdioderna anslutna i gemensam anodkonfiguration eftersom den gemensamma katodkonfigurationen förbrukar mer ström.

Kretsschema

LED-gränssnitt till mikrokontroller

LED-gränssnitt till mikrokontroller

Källkod:

#omfatta
ogiltigt huvud ()
{
osignerad int i
medan (1)
{
P0 = 0x00
för (i = 0i<30000i++)
P0 = 0xff
för (i = 0i<30000i++)
}
}

2. Gränssnittskrets med 7 segment

Beskrivning:
En skärm med sju segment är den mest grundläggande elektroniska skärmen. Den består av åtta lysdioder som är associerade i sekvens för att visa siffror från 0 till 9 när korrekta kombinationer av lysdioder är påslagna. En 7-segmentsdisplay använder sju lysdioder för att visa siffror från 0 till 9 och den åttonde lysdioden används för punkt. Ett typiskt sju segment ser ut som visas i figuren nedan.

7-segment display

7-segment display

7-segmentsdisplayerna används i ett antal system för att visa den numeriska informationen. De kan visa en siffra i taget. Således beror antalet använda segment på antalet siffror som ska visas. Här visas siffrorna 0 till 9 kontinuerligt vid en fördefinierad tidsfördröjning.

7-segmentsdisplayerna finns i två konfigurationer som är vanliga anoder och vanliga katoder. Här används vanlig anodkonfiguration eftersom utgångsströmmen från mikrokontrollern inte är tillräcklig för att driva lysdioderna. 7-segmentsdisplayen fungerar på negativ logik, vi måste ge logik 0 till motsvarande stift för att göra på LED-glöd.

7-segment skärmkonfigurationer

7-segment skärmkonfigurationer

Följande tabell visar de hex-värden som används för att visa de olika siffrorna.

7-segment display tabell

7-segment display tabell

Kretsschema

7-segment skärmgränssnitt

7-segment skärmgränssnitt

Källkod:

#omfatta
sbit a = P3 ^ 0
ogiltigt huvud ()
{
osignerad röd n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
osignerad int i, j
a = 1
medan (1)
{
för (i = 0i<10i++)
{
P2 = n [i]
för (j = 0j<60000j++)
}
}
}

3. LCD-gränssnitt till mikrokontroller

LCD står för display med flytande kristaller som kan visa tecken per rad. Här kan 16 till 2 LCD-skärmar visa 16 tecken per rad och det finns två rader. I denna LCD-skärm visas varje tecken i matrisen 5 * 7 pixlar.

LCD skärm

LCD skärm

LCD är en mycket viktig enhet som används för nästan alla automatiserade enheter som tvättmaskiner, en autonom robot, kraftstyrsystem och andra enheter. Detta uppnås genom att visa deras status på små skärmmoduler som 7-sju segmentskärmar, flersegment-lysdioder etc. Skälen är att LCD-skärmar är prisvärda, lätt programmerbara och de har inga begränsningar för att visa specialtecken.

Den består av två register, såsom kommando / instruktionsregister och dataregister.

Kommandot / instruktionsregistret lagrar kommandot som ges till LCD-skärmen. Ett kommando är en instruktion som ges till LCD-skärmen som utför en uppsättning fördefinierade uppgifter som att initialisera, rensa skärmen, ställa in markören och att styra displayen etc.

Dataregistret lagrar data som ska visas på LCD. Data är ett ASCII-värde för de tecken som ska visas på LCD-skärmen.

LCD-styrningen styrs av två kommandon. När RS = 0, R / W = 1 läser den data och när RS = 1, R / W = 0, skriver den (skriver ut) data.

LCD använder följande kommandokoder:

LCD-skärmkommandon

LCD-skärmkommandon

Kretsschema:

LCD-gränssnitt till mikrokontroller

LCD-gränssnitt till mikrokontroller

Källkod:

#omfatta
#define kam P0

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

ogiltig lcd_initi ()
ogiltigt lcd_dat (osignerad karaktär)
ogiltigt lcd_cmd (osignerad karaktär)
ogiltig fördröjning (osignerad int)
ogiltig visning (osignerade tecken *, osignerade tecken r)
ogiltigt huvud ()
{

lcd_initi ()
lcd_cmd (0x80)
fördröjning (100)
display (“EDGEFX TECHLNGS”, 15)
lcd_cmd (0xc0)
display (“KITS & SOLTIONS”, 15)
medan (1)
}

ogiltig visning (osignerade tecken *, osignerade tecken r)
{
osignerad int w
för (w = 0w{

lcd_dat (s [w])
}
}

ogiltig lcd_initi ()
{
lcd_cmd (0x01)
fördröjning (100)
lcd_cmd (0x38)
fördröjning (100)
lcd_cmd (0x06)
fördröjning (100)
lcd_cmd (0x0c)
fördröjning (100)
}
ogiltigt lcd_dat (osignerad char dat)
{
kam = det
rs = 1
rw = 0

i = 1
fördröjning (100)
in = 0
}
ogiltigt lcd_cmd (osignerad char cmd)
{
kom = cmd
rs = 0
rw = 0

i = 1
fördröjning (100)
in = 0
}
tomrumsfördröjning (osignerad int n)
{

osignerad int a
för (a = 0a}

4. Gränssnittskrets för stegmotor

Typer av stegmotorer-1

Unipolär stegmotor

TILL stegmotor är en av de mest använda motorerna för exakt vinkelrörelse. Fördelen med att använda en stegmotor är att motorns vinkelposition kan styras utan någon återkopplingsmekanism. Stegmotorerna används ofta i industriella och kommersiella applikationer. De används ofta som i drivsystem som robotar, tvättmaskiner etc.

Typer av stegmotorer-2

Bipolär stegmotor

Stegmotorer kan vara unipolära eller bipolära och här använder vi unipolär stegmotor. Den enpoliga stegmotorn består av sex ledningar varav fyra är anslutna till motorns spole och två är vanliga ledningar. Varje gemensam ledning är ansluten till en spänningskälla och återstående ledningar är anslutna till mikrokontrollern.

Kretsschema:

Stegmotorgränssnittskrets

Stegmotorgränssnittskrets

Källkod:

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

ogiltig fördröjning ()

ogiltigt huvud ()
{

medan (1)
{

a = 0
b = 1
c = 1
d = 1
dröjsmål()
a = 1
b = 0
c = 1
d = 1
dröjsmål()
a = 1
b = 1
c = 0
d = 1
dröjsmål()
a = 1
b = 1
c = 1
d = 0

}
}

ogiltig fördröjning ()
{

osignerad char i, j, k
för (i = 0i<6i++)
för (j = 0j<255j++)
för (k = 0k<255k++)

}

5. Gränssnitt för matrisens knappsats till 8051

Beskrivning:

Matrittangentbord

Matrittangentbord

Knappsatsen är en mycket använd inmatningsenhet med många applikationer som telefon, dator, bankomat, elektroniskt lås etc. En knappsats används för att ta inmatning från användaren för vidare bearbetning. Här är en matrisstangentbord på 4 med 3 som består av växlar ordnade i rader och kolumner gränssnitt till mikrokontrollern . En 16 med 2 LCD är också gränssnitt för att visa utgången.

Gränssnittskonceptet för knappsatsen är väldigt enkelt. Varje antal knappsatser tilldelas två unika parametrar som är rad och kolumn (R, C). Därför identifieras numret varje gång en knapp trycks in genom att detektera rad- och kolumnnumren på knappsatsen.

Knappsatsens interna diagram

Knappsatsens interna diagram

Inledningsvis är alla rader inställda på noll ('0') av styrenheten och kolumner skannas för att kontrollera om någon knapp trycks in. Om ingen tangent trycks in blir alla kolumner höga ('1').

Kretsschema

Matrix knappsats gränssnitt till 8051

Matrix knappsats gränssnitt till 8051

Källkod:

#omfatta
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit vid = 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
ogiltig lcd_initi ()
ogiltigt lcd_dat (osignerad karaktär)
ogiltigt lcd_cmd (osignerad karaktär)
ogiltig fördröjning (osignerad int)
ogiltig visning (osignerade tecken *, osignerade tecken r)

ogiltigt huvud ()
{
lcd_initi ()
lcd_cmd (0x80)
fördröjning (100)
display (“0987654321”, 10)
medan (1)
}

ogiltig visning (osignerade tecken *, osignerade tecken r)
{

osignerad int w
för (w = 0w{

lcd_dat (s [w])
}
}
ogiltig lcd_initi ()
{
lcd_cmd (0x01)
fördröjning (100)
lcd_cmd (0x38)
fördröjning (100)
lcd_cmd (0x06)
fördröjning (100)
lcd_cmd (0x0c)
fördröjning (100)
}

ogiltigt lcd_dat (osignerad char dat)
{
kam = det
rs = 1
rw = 0

i = 1
fördröjning (100)
in = 0
}
ogiltigt lcd_cmd (osignerad char cmd)
{
kom = cmd
rs = 0
rw = 0

i = 1
fördröjning (100)
in = 0

}
tomrumsfördröjning (osignerad int n)
{

osignerad int a
för (a = 0a}
}

Vi hoppas att vi har kunnat ge riklig kunskap om de grundläggande men ändå viktiga gränssnittskretsarna för mikrokontroller 8051 . Det här är de mest grundläggande kretsarna som krävs i alla inbäddade systemapplikationer och vi hoppas att vi har gett dig en bra version.

Ytterligare frågor eller feedback relaterade till detta ämne är välkomna att nämnas i kommentarsektionen nedan.

Fotokrediter