🧮 مدار منطقی و دیجیتال: ساخت و شبیهسازی گیت AND، OR، NOT و XOR تا شمارنده
هر کامپیوتر، گوشی و حتی آردوینوی روی میزت در نهایت از میلیونها کلید کوچک ساخته شده که فقط دو حالت میشناسند: صفر و یک. وقتی این کلیدها را طوری کنار هم بگذاری که با ورودیها «تصمیم» بگیرند، یک مدار منطقی ساختهای. در این راهنما از پایه شروع میکنیم: جدول درستی گیت منطقیهای AND، OR، NOT و XOR، بعد فهرست کامل مدار دیجیتالهای معروف با اسم فارسی و انگلیسی، از نیمجمعکننده تا شمارنده. در آخر سه راه شبیه سازی مدار منطقی را نشان میدهیم: گیتهای آماده بدون کد، آردوینو و LED با کد کامل، و wokwi.com با آنالایزر منطقی. تعریف کوتاه گیت را در معنی گیت منطقی هم میتوانی ببینی.
مدار منطقی یعنی چه؟ صفر و یک با ولتاژ
در الکترونیک دیجیتال، «یک» یعنی ولتاژی نزدیک به تغذیه (HIGH) و «صفر» یعنی ولتاژی نزدیک به صفر (LOW). بین این دو یک ناحیهی نامعلوم هست که مدار خوب هیچوقت در آن نمیماند. مثلاً آردوینو اونو با تغذیهی ۵ ولت، هر ورودی بالای ۳ ولت را HIGH و زیر ۱٫۵ ولت را LOW میخواند. گیتهای شبیهساز تینکرکد فارسی هم ورودی بالای نصف ولتاژ تغذیه را «یک» حساب میکنند.
مدارهای منطقی دو خانوادهاند:
- مدار ترکیبی (Combinational): خروجی فقط به ورودیهای همین لحظه بستگی دارد. گیتها، جمعکننده، دیکدر و مالتیپلکسر از این دستهاند.
- مدار ترتیبی (Sequential): حافظه دارد؛ خروجی به ورودیهای قبلی هم بستگی دارد. لچ، فلیپفلاپ، شمارنده و شیفت رجیستر از این دستهاند.
یک تصویر ساده برای شروع: دو کلید سری مثل گیت AND کار میکنند (چراغ فقط وقتی روشن است که هر دو بسته باشند) و دو کلید موازی مثل گیت OR. هر دو مدار در تینکرکد فارسی آمادهاند: مدار AND با دو کلید و مدار OR با دو کلید.
گیتهای منطقی پایه و جدول درستی
جدول درستی (Truth Table) همهی ترکیبهای ورودی را مینویسد و جلوی هر کدام خروجی را. گیت NOT فقط یک ورودی دارد و آن را برعکس میکند: ورودی ۰ خروجی ۱ میدهد و ورودی ۱ خروجی ۰. بقیهی گیتها دو ورودی دارند:
| A | B | AND | OR | XOR | NAND | NOR | XNOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
| گیت | English name | عبارت بولی | به زبان ساده | آیسی رایج (74HC / سری 4000) |
|---|---|---|---|---|
| گیت AND (و) | AND Gate | Y = A · B | فقط وقتی هر دو ورودی ۱ باشند | 74HC08 / 4081 |
| گیت OR (یا) | OR Gate | Y = A + B | وقتی دستکم یکی ۱ باشد | 74HC32 / 4071 |
| گیت NOT (وارونگر) | NOT Gate (Inverter) | Y = ¬A | برعکس ورودی | 74HC04 / 4069 |
| گیت XOR (یای انحصاری) | XOR Gate (Exclusive OR) | Y = A ⊕ B | وقتی دو ورودی متفاوتاند | 74HC86 / 4070 |
| گیت NAND (نه-و) | NAND Gate | Y = ¬(A · B) | برعکس AND | 74HC00 / 4011 |
| گیت NOR (نه-یا) | NOR Gate | Y = ¬(A + B) | برعکس OR | 74HC02 / 4001 |
| گیت XNOR (همارزی) | XNOR Gate | Y = ¬(A ⊕ B) | وقتی دو ورودی برابرند | 4077 |
در عبارتهای بولی، نقطه (·) یعنی AND، علامت + یعنی OR، ¬ یعنی NOT و ⊕ یعنی XOR. پس «A + B» اینجا جمع حسابی نیست؛ 1 + 1 در منطق بولی همان ۱ است.
فهرست مدارهای منطقی با اسم فارسی و انگلیسی
| # | اسم فارسی | English name | نوع | از چه ساخته میشود | کجا شبیهسازی کنی |
|---|---|---|---|---|---|
| ۱ | گیت AND | AND Gate | ترکیبی | قطعهی پایه | تینکرکد فارسی، قطعهی آماده |
| ۲ | گیت OR | OR Gate | ترکیبی | قطعهی پایه | تینکرکد فارسی، قطعهی آماده |
| ۳ | گیت NOT | NOT Gate | ترکیبی | قطعهی پایه | تینکرکد فارسی، قطعهی آماده |
| ۴ | گیت XOR | XOR Gate | ترکیبی | قطعهی پایه | تینکرکد فارسی، قطعهی آماده |
| ۵ | گیت NAND | NAND Gate | ترکیبی | AND و بعد NOT | دو گیت آماده |
| ۶ | گیت NOR | NOR Gate | ترکیبی | OR و بعد NOT | دو گیت آماده |
| ۷ | نیمجمعکننده | Half Adder | ترکیبی | یک XOR و یک AND | دو گیت آماده یا آردوینو |
| ۸ | تمامجمعکننده | Full Adder | ترکیبی | دو XOR، دو AND و یک OR | پنج گیت آماده یا آردوینو |
| ۹ | دیکدر ۲ به ۴ | 2-to-4 Decoder | ترکیبی | دو NOT و چهار AND | گیتها یا آردوینو |
| ۱۰ | مالتیپلکسر ۲ به ۱ | 2-to-1 Multiplexer | ترکیبی | یک NOT، دو AND و یک OR | گیتها یا آردوینو |
| ۱۱ | دیکدر سونسگمنت | BCD to 7-Segment Decoder | ترکیبی | جدول دهردیفه (آیسی 7447 یا 4511) | آردوینو و نمایشگر سونسگمنت |
| ۱۲ | مقایسهگر یکبیتی | 1-bit Magnitude Comparator | ترکیبی | XOR، NOT و AND | گیتها یا آردوینو |
| ۱۳ | بررسیکنندهی توازن | Parity Checker | ترکیبی | زنجیرهای از XOR | گیتها یا آردوینو |
| ۱۴ | لچ SR | SR Latch | ترتیبی | دو NOR با بازخورد | آردوینو، wokwi.com |
| ۱۵ | فلیپفلاپ D | D Flip-Flop | ترتیبی | لچ و لبهی کلاک | آردوینو، wokwi.com |
| ۱۶ | شمارندهی باینری | Binary Counter | ترتیبی | زنجیرهای از فلیپفلاپها | آردوینو و LED (کد پایین) |
روش ۱: گیتهای آماده در تینکرکد فارسی، بدون کد
در حالت بدون کد شبیهساز تینکرکد فارسی، از دستهی «دروازههای منطقی» چهار گیت AND، OR، NOT و XOR را برمیداری. هر گیت دو پایهی ورودی A و B (گیت NOT فقط A)، یک خروجی Y و دو پایهی تغذیهی V+ و GND دارد. مثل آیسی واقعی، گیتی که تغذیه نگیرد خروجی هم نمیدهد. یک مدار آزمایش گیت AND این شکلی است:
| از | به | توضیح |
|---|---|---|
| مثبت پک ۴تایی باتری قلمی (۶ ولت) | V+ گیت و یک پایهی هر دو دکمه | تغذیهی گیت و ولتاژ «یک» |
| منفی باتری | GND گیت | مرجع صفر |
| پایهی دیگر دکمهی ۱ | ورودی A، و یک مقاومت ۱۰ کیلواهم از A به منفی | مقاومت پایینکش: دکمهی آزاد یعنی ۰ |
| پایهی دیگر دکمهی ۲ | ورودی B، و یک مقاومت ۱۰ کیلواهم از B به منفی | همان کار برای B |
| خروجی Y | مقاومت ۳۳۰ اهم، بعد آند LED؛ کاتد به منفی | LED یعنی خروجی ۱ |
شبیهساز ورودیای را که به هیچجا وصل نیست «صفر» حساب میکند ولی هشدار ورودی شناور میدهد؛ مقاومت پایینکش همان چیزی است که در مدار واقعی هم لازم داری. حالا دکمهها را بزن و جدول درستی را خودت پر کن. چهار درس بدون کد دورهی برق هر گیت را جدا تمرین میدهند: گیت AND، گیت OR، گیت NOT و گیت XOR.
NAND و NOR از دو گیت
خروجی گیت AND را به ورودی یک گیت NOT بده: نتیجه NAND است. پروژهی آمادهی دو گیت پشت سر هم دقیقاً همین را ساخته است. اگر AND را با OR عوض کنی، NOR داری. NAND و NOR را گیت جهانی (Universal Gate) میگویند، چون هر مدار منطقی دیگری را فقط با یکی از آنها میشود ساخت؛ کارخانهها هم خیلی وقتها همهچیز را با NAND میسازند.
نیمجمعکننده با دو گیت (Half Adder)
جمع دو عدد یکبیتی چهار حالت دارد و 1 + 1 در دودویی میشود 10، یعنی رقم ۰ و یک «ده بر یک» (Carry). اگر به جدول دقت کنی، رقم Sum دقیقاً XOR است و Carry دقیقاً AND:
| A | B | Carry (A · B) | Sum (A ⊕ B) | حاصل به دهدهی |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | ۰ |
| 0 | 1 | 0 | 1 | ۱ |
| 1 | 0 | 0 | 1 | ۱ |
| 1 | 1 | 1 | 0 | ۲ |
در شبیهساز یک گیت XOR و یک گیت AND بگذار و هر دو را تغذیه کن. دکمهی ۱ را همزمان به ورودی A هر دو گیت و دکمهی ۲ را به ورودی B هر دو گیت وصل کن (با همان مقاومتهای پایینکش). خروجی XOR را به یک LED سبز با برچسب Sum و خروجی AND را به یک LED قرمز با برچسب Carry بده. حالا یک ماشینحساب دودویی کوچک ساختهای! نمونهی تکگیتی XOR در پروژهی گیت XOR آماده است.
تمامجمعکننده (Full Adder)
برای جمع عددهای چندبیتی، هر ستون باید رقم نقلی ستون قبل (Cin) را هم جمع کند. فرمولها:
- Sum = A ⊕ B ⊕ Cin
- Cout = (A · B) + (Cin · (A ⊕ B))
یعنی دو نیمجمعکننده و یک OR: پنج گیت که همه در شبیهساز هست. جدول کاملش هشت ردیف دارد:
| A | B | Cin | Cout | Sum |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
چهار تمامجمعکننده که Cout هر کدام به Cin بعدی برود، یک جمعکنندهی ۴ بیتی با نقلی موجی (4-bit Ripple-Carry Adder) میسازند؛ همان کاری که آیسی 74HC283 یکجا انجام میدهد.
مدارهای ترکیبی بزرگتر
دیکدر ۲ به ۴ (2-to-4 Decoder)
دو ورودی A1 و A0 یک عدد ۰ تا ۳ میسازند و دیکدر دقیقاً یکی از چهار خروجی را روشن میکند: Y0 = ¬A1 · ¬A0، Y1 = ¬A1 · A0، Y2 = A1 · ¬A0 و Y3 = A1 · A0. کاربردش انتخاب یکی از چند تراشه یا یکی از چند چراغ با تعداد کمی سیم است. آیسی 74HC138 همین کار را برای ۳ ورودی و ۸ خروجی میکند.
مالتیپلکسر ۲ به ۱ (2-to-1 Multiplexer)
یک «کلید انتخاب» دیجیتال: ورودی انتخاب S تعیین میکند کدام داده به خروجی برسد. Y = (¬S · I0) + (S · I1)؛ اگر S صفر باشد I0 و اگر یک باشد I1 به خروجی میرود. عکسش، یعنی یک ورودی به چند خروجی، دیمالتیپلکسر (Demultiplexer) است. 74HC157 چهار مالتیپلکسر ۲ به ۱ دارد.
دیکدر سونسگمنت (BCD to 7-Segment Decoder)
یک عدد چهاربیتی ۰ تا ۹ (کد BCD) را به هفت سیگنال برای قطعههای a تا g نمایشگر تبدیل میکند. آیسی 7447 برای نمایشگر آند مشترک و 4511 برای کاتد مشترک ساخته شدهاند. با آردوینو همین دیکدر یک آرایهی دهتایی از بایتهاست؛ درس رقم روی سونسگمنت آن را میسازد.
مقایسهگر یکبیتی (1-bit Magnitude Comparator)
سه خروجی دارد: A = B برابر است با XNOR یعنی ¬(A ⊕ B)؛ A > B برابر است با A · ¬B؛ و A < B برابر است با ¬A · B. مقایسهگر چهاربیتی 74HC85 همین را برای عددهای ۰ تا ۱۵ انجام میدهد و چند تا از آن زنجیر میشوند.
بررسیکنندهی توازن (Parity Checker)
XOR چند بیت میگوید تعداد یکها فرد است یا زوج: P = A ⊕ B ⊕ C ⊕ D. دادهی 1011 سه یک دارد، پس P = 1؛ اگر این بیت توازن را کنار داده بفرستی، تعداد یکها زوج میشود. گیرنده دوباره XOR میگیرد و اگر حاصل ۱ شد، میفهمد یک بیت در راه خراب شده. ارتباط سریال UART گزینهی parity دارد و آیسی 74HC280 همین مدار نُهبیتی است.
مدارهای ترتیبی: لچ، فلیپفلاپ و شمارنده
لچ SR (SR Latch)
دو گیت NOR که خروجی هر کدام به ورودی دیگری برگشته است. این «بازخورد» به مدار حافظه میدهد:
| S (Set) | R (Reset) | Q بعدی | معنی |
|---|---|---|---|
| 0 | 0 | همان قبلی | نگه داشتن (حافظه) |
| 1 | 0 | 1 | یک کردن |
| 0 | 1 | 0 | صفر کردن |
| 1 | 1 | نامعتبر | ممنوع در لچ NOR |
مثال واقعیاش دزدگیر است: یک لحظه حرکت (S) آژیر را روشن میکند و آژیر روشن میماند تا کسی دکمهی ریست (R) را بزند.
فلیپفلاپ D (D Flip-Flop)
یک ورودی داده (D) و یک ورودی کلاک دارد. فقط در لبهی بالاروندهی کلاک، Q مقدار D را برمیدارد و تا لبهی بعدی نگه میدارد. این آجر اصلی ثباتها و حافظههاست؛ مثلاً شیفت رجیستر 74HC595 هشت فلیپفلاپ پشت سر هم است (در ۱۵ مدار پایهی الکترونیک با آن ۸ LED را با ۳ پین روشن کردهایم). آیسی 74HC74 دو فلیپفلاپ D دارد.
شمارندهی باینری (Binary Counter)
اگر خروجی برعکس هر فلیپفلاپ به ورودی خودش برگردد، با هر کلاک «تاگل» میشود. حالا خروجی هر طبقه را کلاک طبقهی بعد کن: طبقهی اول با هر پالس عوض میشود، دومی با هر دو پالس، سومی با هر چهار پالس. نتیجه یک شمارندهی دودویی است که با ۴ طبقه از ۰ تا ۱۵ میشمارد و بعد به ۰ برمیگردد. هر طبقه فرکانس را نصف میکند، برای همین به شمارنده «تقسیمکنندهی فرکانس» هم میگویند. آیسی 74HC393 دو شمارندهی ۴ بیتی دارد.
دیدن مدارهای ترتیبی با کد خیلی راحتتر است: لبهی کلاک، حافظه و بازخورد در چند خط کد کاملاً روشن میشوند. پس سراغ آردوینو میرویم.
روش ۲: شبیهسازی منطق با آردوینو و LED
هر گیت یک عملگر در C++ آردوینو است: a & b یا a && b برای AND، a | b یا a || b برای OR، !a برای NOT و a ^ b برای XOR. عملگرهای تکعلامتی (&، |، ^) روی هر هشت بیت یک بایت همزمان کار میکنند؛ یعنی یک خط کد هشت گیت است. درس بیتها و عملگرهای بیتی این را مفصل تمرین میدهد.
کد ۱: نیمجمعکننده (Half Adder) با دو دکمه و دو LED
| قطعه | پایهی قطعه | پایهی آردوینو اونو |
|---|---|---|
| دکمهی A | یک پایه / پایهی دیگر | D2 / GND |
| دکمهی B | یک پایه / پایهی دیگر | D3 / GND |
| LED سبز (Sum) | آند از راه ۲۲۰ اهم / کاتد | D8 / GND |
| LED قرمز (Carry) | آند از راه ۲۲۰ اهم / کاتد | D9 / GND |
// Half adder on an Arduino Uno: two buttons in, Sum and Carry LEDs out
const int BUTTON_A = 2; // button between D2 and GND
const int BUTTON_B = 3; // button between D3 and GND
const int LED_SUM = 8; // LED + 220 ohm to GND
const int LED_CARRY = 9; // LED + 220 ohm to GND
void setup() {
pinMode(BUTTON_A, INPUT_PULLUP);
pinMode(BUTTON_B, INPUT_PULLUP);
pinMode(LED_SUM, OUTPUT);
pinMode(LED_CARRY, OUTPUT);
Serial.begin(9600);
}
void loop() {
// INPUT_PULLUP reads LOW when pressed, so a pressed button counts as 1
int a = (digitalRead(BUTTON_A) == LOW) ? 1 : 0;
int b = (digitalRead(BUTTON_B) == LOW) ? 1 : 0;
int sum = a ^ b; // the XOR gate
int carry = a & b; // the AND gate
digitalWrite(LED_SUM, sum ? HIGH : LOW);
digitalWrite(LED_CARRY, carry ? HIGH : LOW);
Serial.print(a);
Serial.print(" + ");
Serial.print(b);
Serial.print(" = ");
Serial.print(carry);
Serial.println(sum); // the answer as a 2-bit binary number
delay(200);
}
- با
INPUT_PULLUPدکمهی فشرده LOW خوانده میشود؛ برای همین با== LOWآن را به منطق آشنای «فشرده یعنی ۱» برمیگردانیم. a ^ bوa & bدقیقاً دو گیت مدار سختافزاری بالا هستند. در سریال مانیتور جملههایی مثل1 + 1 = 10میبینی.- برای تبدیل به تمامجمعکننده یک دکمهی سوم روی D4 برای Cin بگذار و دو خط را اینطور بنویس:
sum = a ^ b ^ cin;وcarry = (a & b) | (cin & (a ^ b));.
کد ۲: شمارندهی باینری ۴ بیتی (4-bit Binary Counter) روی چهار LED
چهار LED چهار بیت یک عدد را نشان میدهند و هر فشار دکمه یکی به عدد اضافه میکند؛ بعد از ۱۵ (1111) دوباره ۰ (0000) میشود، دقیقاً مثل شمارندهی سختافزاری. رفع لرزش دکمه هم اینجا حیاتی است، وگرنه یک فشار چند عدد میشمارد؛ همان مشکلی که ورودی کلاک شمارندهی واقعی هم دارد.
| قطعه | پایهی قطعه | پایهی آردوینو اونو |
|---|---|---|
| LED بیت ۰ (کمارزشترین) | آند از راه ۲۲۰ اهم | D8 |
| LED بیت ۱ | آند از راه ۲۲۰ اهم | D9 |
| LED بیت ۲ | آند از راه ۲۲۰ اهم | D10 |
| LED بیت ۳ (پرارزشترین) | آند از راه ۲۲۰ اهم | D11 |
| همهی LEDها | کاتد | GND |
| دکمهی شمارش | یک پایه / پایهی دیگر | D2 / GND |
// 4-bit binary counter: four LEDs show 0..15, a button counts up
const int LEDS[4] = {8, 9, 10, 11}; // bit 0 (LSB) .. bit 3 (MSB)
const int BUTTON = 2; // button between D2 and GND
int count = 0;
int lastState = HIGH;
unsigned long lastChange = 0;
void showBinary(int value) {
for (int bit = 0; bit < 4; bit++) {
int on = (value >> bit) & 1; // pick one bit out of the number
digitalWrite(LEDS[bit], on ? HIGH : LOW);
}
}
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(LEDS[i], OUTPUT);
}
pinMode(BUTTON, INPUT_PULLUP);
Serial.begin(9600);
showBinary(count);
}
void loop() {
int state = digitalRead(BUTTON);
if (state != lastState && millis() - lastChange > 50) { // 50 ms debounce
lastChange = millis();
lastState = state;
if (state == LOW) { // a new press = one clock pulse
count = (count + 1) % 16; // after 15 comes 0, like a real counter
showBinary(count);
Serial.print(count);
Serial.print(" = ");
for (int bit = 3; bit >= 0; bit--) {
Serial.print((count >> bit) & 1);
}
Serial.println();
}
}
}
(value >> bit) & 1عدد راbitخانه به راست میبرد و فقط کمارزشترین بیت را نگه میدارد؛ یعنی «بیت شمارهی bit روشن است یا نه».% 16همان سرریز شمارندهی ۴ بیتی است: ۱۵ بهعلاوهی ۱ میشود ۰.- LED بیت ۰ با هر فشار عوض میشود، بیت ۱ با هر دو فشار و بیت ۳ با هر هشت فشار؛ همان نصف شدن فرکانس در هر طبقه که بالاتر گفتیم.
نسخهی آمادهی این مدار در پروژهی شمارندهی باینری روی آردوینو اونو رایگان اجرا میشود و درس شمارش دودویی آن را قدمبهقدم درس میدهد. برای تبدیل سریع دهدهی و دودویی هم مبدل دودویی را باز کن.
روش ۳: مدار منطقی در wokwi.com و آنالایزر منطقی
سایت بینالمللی wokwi.com در فهرست قطعههایش بخشی برای منطق دیجیتال دارد که گیتهای پایه و چند قطعهی ترتیبی مثل فلیپفلاپ را شامل میشود؛ اسم دقیق هر قطعه را در خود فهرست قطعهها ببین. کنار آنها قطعههای آشنایی مثل شیفت رجیستر wokwi-74hc595، نمایشگر wokwi-7segment، کلید DIP هشتتایی wokwi-dip-switch-8 برای ورودیها و نوار LED wokwi-led-bar-graph برای خروجیها هست.
ابزار جذابتر، آنالایزر منطقی (wokwi-logic-analyzer) است. کانالهایش را به سیگنالهای مدار وصل میکنی، شبیهسازی را اجرا میکنی و آنالایزر تغییر صفر و یکها را در طول زمان ضبط میکند. در پایان یک فایل ضبط موج (VCD) میگیری که در نرمافزارهایی مثل PulseView به شکل نمودار زمانی باز میشود. مثلاً چهار کانال را به چهار LED شمارندهی بالا وصل کن تا نصف شدن فرکانس در هر بیت را ببینی، یا کلاک و دادهی shiftOut را نگاه کن. قدمهای ساختن مدار در ووکوی را در ساخت مدار در ووکوی نوشتهایم.
Serial.println چاپ کن و منحنی پلهایاش را ببین. اسیلوسکوپ هم هست که جزو ماژولهای اشتراک Plus است.نکتههای مدار منطقی واقعی
- ورودی بیاستفاده را رها نکن: ورودی شناور یک آیسی CMOS ممکن است نوسان کند و آیسی را گرم کند. ورودیهای اضافه را به GND یا VCC وصل کن.
- کنار هر آیسی یک خازن ۱۰۰ نانوفاراد: بین VCC و GND، تا جایی که میشود نزدیک پایهها.
- دکمه را مستقیم به ورودی کلاک نده: لرزش دکمه چند پالس میسازد و شمارنده چند عدد جلو میرود. یک فیلتر RC و یک گیت اشمیتتریگر مثل 74HC14 بگذار.
- خانواده را درست انتخاب کن: 74HC با ۲ تا ۶ ولت کار میکند، 74HCT ورودی سازگار با سطحهای قدیمی TTL دارد، سری 4000 تا ۱۵ ولت را تحمل میکند ولی کندتر است.
- خروجی گیت منبع تغذیه نیست: هر خروجی 74HC حداکثر حدود ۲۰ میلیآمپر میدهد؛ LED را با مقاومت ۳۳۰ اهم تا ۱ کیلواهم وصل کن و برای بار سنگینتر ترانزیستور بگذار.
درسهای بیشتر مدار در ووکوی را در درسهای مدار با ووکوی و دورههای فارسی را در درسهای مدار در تینکرکد فارسی پیدا میکنی. اگر میخواهی ولتاژ و جریان هر نقطه از مدار را هم ببینی، شبیه ساز مدار فارسی را باز کن. همهی مقالههای این مجموعه در مدار و شبیهسازی مدار جمع شدهاند.
گیت XOR را در تینکرکد فارسی امتحان کن ⚡سؤالهای رایج
مدار منطقی را کجا شبیهسازی کنم؟
در شبیهساز تینکرکد فارسی گیتهای AND، OR، NOT و XOR آمادهاند و با دکمه و LED بدون کدنویسی مدار میسازی. NAND و NOR را از ترکیب همینها میسازی و مدارهای بزرگتر مثل شمارنده را با آردوینو و LED شبیهسازی میکنی. wokwi.com هم قطعههای منطقی و یک آنالایزر منطقی دارد.
فرق مدار ترکیبی و ترتیبی چیست؟
خروجی مدار ترکیبی فقط به ورودیهای همین لحظه بستگی دارد، مثل گیتها، جمعکننده و مالتیپلکسر. مدار ترتیبی حافظه دارد و خروجیاش به گذشته هم بستگی دارد، مثل لچ، فلیپفلاپ و شمارنده.
چرا گیت NAND را گیت جهانی میگویند؟
چون هر مدار منطقی دیگری را فقط با NAND میشود ساخت: NOT یعنی یک NAND که دو ورودیاش به هم وصلاند، AND یعنی NAND و بعد NOT، و OR با NOT کردن دو ورودی و یک NAND ساخته میشود. گیت NOR هم همین خاصیت را دارد.
نیمجمعکننده با تمامجمعکننده چه فرقی دارد؟
نیمجمعکننده دو بیت را جمع میکند و دو خروجی Sum و Carry دارد. تمامجمعکننده یک ورودی سوم هم برای رقم نقلی ستون قبل دارد؛ برای همین با زنجیر کردن چند تمامجمعکننده، عددهای چندبیتی جمع میشوند.