The loginiai vartai yra skaitmeninės elektronikos pagrindas. Dėl šios priežasties jie yra labai svarbūs, ir jei norite pradėti su jais dirbti, turėtumėte žinoti, kas jie yra, kaip jie sudaryti ir atliekami. Taigi galite naudoti rinkoje esančias lustų serijas, turinčias tokio tipo duris, kad galėtumėte pradėti kurti savo projektus, veikiančius pagal šią logiką.
Šios durys derinamos su kitomis Elektroniniai komponentai, ir net su lėkštėmis kaip Arduino, jie gali suteikti daug žaidimo kūrėjams kaip pats matai.
Kas yra logikos vartai?
The loginiai vartai jie yra pagrindiniai skaitmeninės logikos elementai skaitmeninėms elektroninėms grandinėms įgyvendinti. Šie vartai suteikia žemos (0) arba aukštos (1) įtampos signalus savo išėjime, priklausomai nuo jų įėjimų būsenos. Paprastai jie turi vieną išėjimą ir du įėjimus, tačiau gali būti ir daugiau nei 2 įėjimai. Be to, yra ypatumų, tokių kaip invertuojantys vartai arba NE, jis turi tik vieną įėjimą ir vieną išėjimą.
Dėl šių Būlio įvesties ir išvesties galite gauti elementarios dvejetainės logikos operacijos, pvz., sudėtis, daugyba, neigimas ir kt.
Kaip jie įgyvendinami?
Loginiai vartai gali būti įgyvendinami ne tik vienu būdu. Tiesą sakant, todėl yra įvairių logiškos šeimos. Kiekviena iš šių šeimų vartus įgyvendins vienu būdu, naudodama skirtingus elektroninius komponentus.
Pagal ejemploJei lustui naudojamas TTL, vartai bus sudaryti iš bipolinių tranzistorių, o CMOS logika pagrįsta tik MOSFET tranzistoriais. Be šių dviejų šeimų, kurios dažniausiai yra populiariausios, yra ir kitų, tokių kaip BiCMOS (sujungia dvipolius ir CMOS tranzistorius), RTL (rezistoriai ir bipoliniai tranzistoriai), DTL (diodai ir tranzistoriai), ECL, IIL ir kt.
Nėra vienos šeimos geresnės už kitą, tai priklausys nuo prašymo. Tačiau, CMOS Tai viena iš labiausiai naudojamų pažangiose grandinėse, tokiose kaip CPU, MCU, GPU, atmintis ir kt. Kitoms paprastesnėms grandinėms taip pat įprasta rasti TTL.
programos
Šių loginių vartų taikymo sritis yra begalė. Su šiomis esminėmis „plytėmis“ galite statyti daugybė skaitmeninių grandinių. Nuo paprasto sumatoriaus iki sudėtingo procesoriaus, per daugybę kitų grandinių, kurias galite įsivaizduoti. Tiesą sakant, daugelis sistemų, kurias naudojate kiekvieną dieną, pvz., kompiuteris, televizorius, mobilusis telefonas ir kt., turi milijardus loginių užtvarų.
Un praktinis pavyzdys loginių vartų pritaikymas būtų šis paprastas papildiklis, kurį galite pamatyti aukščiau esančiame paveikslėlyje. Tai labai paprasta grandinė, kurios įvestis gali pridėti du bitus (A ir B), kad būtų gautas rezultatas, o taip pat Carry, tai yra, ką jūs atimsite ... Galite pamatyti rezultatus, kuriuos ji gautų. pateikti šioje lentelėje:
A | B | Suma | Vežti | Dvejetainis rezultatas |
---|---|---|---|---|
0 | 0 | 0 | 0 | 00 |
0 | 1 | 1 | 0 | 01 |
1 | 0 | 1 | 0 | 01 |
1 | 1 | 0 | 1 | 10 |
Jei pažvelgsite į šią lentelę, jei pridėsite 0 + 0 dvejetainėje sistemoje, gausite 0, jei pridėsite 1 + 0, tai yra 1, bet jei pridėsite 1 + 1, tai gautų 2, o tai dvejetainėje sistemoje atitinka 10.
Loginių vartų tipai
kaip loginių vartų tipai, jūs turite daug jų, nors dažniausiai naudojamos šios (su tiesos lentelėmis):
- Buferis (taip): jis žinomas kaip buferis arba tiesioginis užtvaras, nes jo išvesties būsena bus tokia pati kaip ir įvesties. Nors tai gali atrodyti nenaudinga, daugelyje loginių grandinių jis dažnai naudojamas kaip srovės stiprintuvas arba kaip įtampos sekiklis.
Įėjimas | Išeiti |
---|---|
0 | 0 |
1 | 1 |
- NE (keitiklis): yra loginis neigimas (¬ o '), tai yra, jis apverčia bitą savo išvestyje.
Įėjimas | Išeiti |
---|---|
0 | 1 |
1 | 0 |
- IR (Y): šie kiti vartai atlieka savo įvesties dvejetainių bitų sandaugos funkciją (·). Tai būtų kaip A ir B padauginimas. Todėl bet kas iš nulio yra lygus nuliui, jis tik suteiktų vienetą savo išėjimui, jei abu įėjimai yra 1. Taigi jo pavadinimas 1 IR 1.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
- AUKSAS): šie kiti vartai atlieka loginę pridėjimo operaciją (+). Tai reiškia, kad vienas iš jo išėjimų ARBA kitas, ARBA abu turi būti 1, kad jo išvestis būtų 1. Kai abu yra 0, išvestis taip pat yra 0.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
- XOR (arba išskirtinis): Šis išskirtinis ARBA atlieka Būlio funkciją A'B + AB', o jo simbolis yra
. Šiuo atveju, jei jos dvi įėjimai yra vienodi, išvestis yra 0. Jei jie skiriasi, tada jis bus 1.
A | B | S |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- NAND (Y paneigta): yra neigiamas loginis produktas, ty atvirkštinis IR. Tai panašu į NOT naudojimą AND išvestyje, kad apverstumėte išvesties bitus. Taigi rezultatai yra tokie:
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
- NOR (arba atmesta): neigiama loginė suma arba tai, kas yra ta pati, ARBA su jos neigiama išvestimi, todėl gaunama atvirkštinė ARBA.
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
- XNOR (išskirtinis NOR): tai tarsi dvejetainio papildinio taikymas XOR vartams. Tai yra, atlikite AB + A'B operaciją. A kartus B pridėtas prie A kartų B atmestas. Todėl išėjimai bus panašūs į apversto XOR:
A | B | S |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Tiek NOR, tiek NAND yra du įdomiausi vartai, nes jie žinomi kaip universalūs logikos vartai. Tai reiškia, kad grandines galite sudaryti tik su jais, kad būtų atvaizduoti bet kokio kito tipo loginiai vartai. Tai svarbu, nes perkant lustus su šiomis durelėmis, galite turėti visas funkcijas. Pavyzdžiui, jei dvi NOR įvestys yra sujungtos arba NAND yra lygiavertis NOT. Čia rasite daugiau atitikmenų:
Te as patariuNorėdami sužinoti daugiau, „Google“ suraskite paprastą grandinę su bet kokiais vartais. O norėdami sužinoti, ką tai daro, atlikite savotišką "atvirkštinę inžineriją", sekite įėjimų ir išėjimų eilutes ir pamatysite kiekvienos eilutės būseną pagal išvesties įvestis.
Pagal ejemploJei pažvelgsite į aukščiau esantį paveikslėlį, ARBA su NAND vartais lygiavertiškumo diagramą, pamatysite, kad ją sudaro du NAND vartai, kurių išėjimas sujungtas ir abu išėjimai eina į kitą NAND. Turėkite omenyje šiuos dalykus:
- Jei eisite į NAND tiesos lentelę, pamatysite, kad kai jos dvi įvestys yra 0, išvestis yra 1, o kai jos dvi įėjimai yra 1, išvestis yra 0.
- Kadangi jie yra sujungti, jei įvestis yra 1 (vienas įveda abu), rezultatas yra 0. O kai įvestis yra 0 (abu nuliai), išvestis bus 1, o tai atitinka NE.
- Todėl turime du NE bitams A ir B. Todėl jų išvestyje turėsime A „ir B“.
- Šie du neigimai patenka į paskutinį NAND, kuris atliks atvirkštinį šių dviejų bitų loginį sandaugą.
- Pagal logikos dėsnius tai prilygsta tiesioginei sumai, ty A + B. Todėl galutinis rezultatas bus tarsi ARBA...
„Logic Gate“ lustų serija – kur įsigyti
Elektronikos parduotuvėse galite nusipirkti pigių traškučių su loginiais vartais, kuriuos galite pradėti naudoti savo projektuose. Šie lustai nėra vieni loginiai vartai, tačiau jie leidžia jums turėti keletą jų, kad galėtumėte susieti jų įvestis ir išvestis pagal poreikį. Pavyzdžiui, aukščiau esančiame paveikslėlyje esančioje diagramoje galite pamatyti tipišką DIP lusto su 4 NAND vartais išjungimą. Be to, jis taip pat turi du maitinimo kaiščius (Vcc ir GND).
Štai keletas pirkimo rekomendacijos:
- Nerasta jokių produktų..
- Huaban: 30 lustų rinkinys su universaliais NAND vartais.
- Zebulonas: 120 CMOS lustų rinkinys.
Kiti ištekliai
Norėdami sužinoti daugiau apie tai, kaip įdiegti šiuos vartus ir kaip pradėti su jais kurti grandines, galite pasinaudoti šiais Kitas šaltinis ka as rekomenduoju:
- SimulIDE programinė įranga kad būtų galima imituoti šių grandinių veikimą su vartais. Tai nemokama, atvirojo kodo ir kelių platformų.
- Dvejetainė skaičiuoklė internete (Taip pat galite naudoti savo operacinės sistemos skaičiuotuvą dvejetainiu režimu).
- Nerasta jokių produktų..
- Skaitmeninių loginių schemų knyga: nuo dizaino iki eksperimento.
Skaitmeninė logika su Arduino
Kitas šaltinis ką turi savo rankose, jei jau turi lėkštė Arduino UNO tavo rankose yra naudokite Arduino IDE, kad sukurtumėte eskizus kurios imituoja šias logines funkcijas, kad, pavyzdžiui, matytumėte rezultatą vizualiau su šviesos diodu, kuris imituoja durų išėjimą. Pavyzdžiui, uždėjus šviesos diodą ant 7 kaiščio ir naudojant 8 ir 9 kaip A ir B įėjimus:
int pinOut = 7; int pinA = 8; int pinB = 9; void setup() { pinMode(pinOut, OUTPUT); pinMode(pinA, INPUT); pinMode(pinB, INPUT); } void loop() { boolean pinAState = digitalRead(pinA); boolean pinBState = digitalRead(pinB); boolean pinOutState; //AND pinOutState =pinAState & pinBState; digitalWrite(pinOut, pinOutState); }
Kaip matote, čia buvo naudojama funkcija IR (&), bet galite pakeisti kodo eilutę po eilutėje // AND kitomis, kurias norite naudoti kitos loginės funkcijos:
//OR pinOutState = pinAState | pinBState; //NOT pinOutState = !pinAState; //XOR pinOutState = pinAState ^ pinBState; //NAND pinOutState = !(pinAState & pinBState); //NOR pinOutState = !(pinAState | pinBState); //XNOR pinOutState = !(pinAState ^ pinBState);