Điện tử số và vi điều khiển

Ôn cổng logic và bảng chân lí, mạch tổ hợp, mạch dãy, vi điều khiển và cách đọc chương trình Arduino (setup, loop, digitalRead, analogRead); dạng bài và mẹo.

Kiến thức trọng tâmLớp 12
Mục lục (6 phần)

Điện tử số là phần "dễ ăn điểm" nếu nắm chắc bảng chân lí. Đề thường có 2–3 câu ở phần I (nhận dạng cổng, đọc mạch logic, cấu trúc vi điều khiển) và có thể có một câu đúng/sai ở phần II về mạch điều khiển thực tế: máy bơm, chuông báo động, đèn tự động. Từ đề 2026 có thêm câu đọc chương trình Arduino (setup(), loop(), pinMode, digitalWrite, delay…) — xem mục "Vi điều khiển và đọc chương trình Arduino" ở cuối phần dạng bài.

Kiến thức trọng tâm

Tín hiệu tương tự và tín hiệu số

  • Tín hiệu tương tự biến thiên liên tục theo thời gian (điện áp từ micro, cảm biến nhiệt độ).
  • Tín hiệu số chỉ có hai mức: mức thấp — logic 0 (ví dụ gần 0 V) và mức cao — logic 1 (ví dụ gần 5 V hoặc 3,3 V).
  • Ưu điểm của xử lí số: ít bị nhiễu, dễ lưu trữ, dễ xử lí bằng vi mạch và máy tính.

Các cổng logic cơ bản

A B Y AND A B Y OR A Y NOT A B Y NAND A B Y NOR A B Y XOR
Kí hiệu các cổng logic. Vòng tròn nhỏ ở đầu ra nghĩa là đảo (phủ định).
Cổng Biểu thức Đầu ra bằng 1 khi
AND (Và) Y=A⋅BY = A\cdot B Tất cả đầu vào bằng 1
OR (Hoặc) Y=A+BY = A + B Ít nhất một đầu vào bằng 1
NOT (Đảo) Y=A‾Y = \overline{A} Đầu vào bằng 0
NAND Y=A⋅B‾Y = \overline{A\cdot B} Có ít nhất một đầu vào bằng 0
NOR Y=A+B‾Y = \overline{A + B} Tất cả đầu vào bằng 0
XOR Y=A⊕BY = A \oplus B Hai đầu vào khác nhau

Bảng chân lí của các cổng hai đầu vào:

Cổng A = 0, B = 0 A = 0, B = 1 A = 1, B = 0 A = 1, B = 1
AND 0 0 0 1
OR 0 1 1 1
NAND 1 1 1 0
NOR 1 0 0 0
XOR 0 1 1 0

Mạch logic tổ hợp và mạch logic dãy

Tiêu chí Mạch tổ hợp Mạch dãy
Đặc điểm Đầu ra chỉ phụ thuộc các đầu vào ở thời điểm đó Đầu ra phụ thuộc đầu vào và trạng thái trước đó (có nhớ)
Ví dụ Mạch cộng, mạch so sánh, mạch mã hóa, giải mã (hiển thị LED 7 đoạn) Flip-flop (trigơ), bộ đếm, thanh ghi

Flip-flop RS (dùng cổng NOR): S=1,R=0S = 1, R = 0 → Q=1Q = 1 (đặt); S=0,R=1S = 0, R = 1 → Q=0Q = 0 (xóa); S=R=0S = R = 0 → QQ giữ nguyên trạng thái cũ (nhớ); S=R=1S = R = 1 → trạng thái cấm. Flip-flop D: khi có xung nhịp, đầu ra QQ nhận giá trị của đầu vào DD⁠.

Vi điều khiển

Vi điều khiển là một vi mạch tích hợp trên một chip gồm bộ xử lí trung tâm, bộ nhớ và các cổng vào/ra, được lập trình để điều khiển thiết bị.

Khối Chức năng
Bộ xử lí trung tâm (CPU) Đọc và thực hiện lệnh của chương trình
Bộ nhớ chương trình (Flash) Lưu chương trình, không mất khi tắt nguồn
Bộ nhớ dữ liệu (RAM) Lưu dữ liệu tạm thời khi chạy
Cổng vào/ra số (I/O) Nhận tín hiệu từ nút nhấn, cảm biến; xuất tín hiệu điều khiển đèn, rơ le, động cơ
Bộ chuyển đổi tương tự – số (ADC) Đổi điện áp từ cảm biến thành con số
Bộ định thời, bộ đếm Tạo thời gian trễ, đếm xung, tạo xung điều khiển
Khối giao tiếp Trao đổi dữ liệu với máy tính, mô đun khác

Ứng dụng: máy giặt, điều hòa, lò vi sóng, khóa cửa điện tử, nhà thông minh, robot, ô tô, thiết bị IoT trong nông nghiệp.

Quy trình làm sản phẩm với vi điều khiển: xác định yêu cầu → vẽ sơ đồ khối, lưu đồ thuật toán → viết chương trình trên máy tính → biên dịch và nạp chương trình vào vi điều khiển → lắp mạch, chạy thử, hiệu chỉnh.

Lặp mãi:
    L ← đọc giá trị cảm biến ánh sáng (ADC)
    Nếu L < ngưỡng: đặt chân điều khiển đèn = 1 (bật đèn)
    Ngược lại:      đặt chân điều khiển đèn = 0 (tắt đèn)

Bộ ADC nn bit chia điện áp vào thành 2n2^n mức: ADC 10 bit cho giá trị từ 0 đến 1023.

Lệnh cụ thể và cách đọc một chương trình cho bo mạch Arduino Uno: xem mục Vi điều khiển và đọc chương trình Arduino bên dưới.

Dạng bài thường gặp trong đề thi

Dạng 1: Nhận dạng cổng từ bảng chân lí

Xem lời giải

Đó là cổng XOR (⁠Y=A⊕BY = A\oplus B⁠): (0;1)(0; 1) và (1;0)(1; 0) cho Y=1Y = 1⁠; (0;0)(0; 0) và (1;1)(1; 1) cho Y=0Y = 0⁠.

Dạng 2: Từ sơ đồ mạch viết biểu thức và lập bảng chân lí

A B C X Y NAND AND
Mạch logic cho ví dụ dạng 2.
Xem lời giải

X=A⋅B‾X = \overline{A\cdot B}⁠, Y=X⋅C=A⋅B‾⋅CY = X\cdot C = \overline{A\cdot B}\cdot C⁠.

AA BB CC XX YY
0 0 0 1 0
0 0 1 1 1
0 1 0 1 0
0 1 1 1 1
1 0 0 1 0
1 0 1 1 1
1 1 0 0 0
1 1 1 0 0

Y=1Y = 1 khi C=1C = 1 và AA⁠, BB không cùng bằng 1: có 3 tổ hợp (0;0;1)(0; 0; 1)⁠, (0;1;1)(0; 1; 1)⁠, (1;0;1)(1; 0; 1)⁠.

Dạng 3: Thiết kế mạch logic cho tình huống thực tế

Xem lời giải

Y=1Y = 1 khi có ít nhất một cặp cùng bằng 1: Y=A⋅B+B⋅C+C⋅AY = A\cdot B + B\cdot C + C\cdot A⁠.

Kiểm tra: các tổ hợp (0;1;1)(0; 1; 1)⁠, (1;0;1)(1; 0; 1)⁠, (1;1;0)(1; 1; 0)⁠, (1;1;1)(1; 1; 1) cho Y=1Y = 1 (4 tổ hợp); các tổ hợp có không quá một người đồng ý cho Y=0Y = 0⁠. Mạch dùng 3 cổng AND hai đầu vào và 1 cổng OR ba đầu vào.

Dạng 4: Câu đúng/sai về mạch báo động

Xem lời giải

a) Đúng: A=0A = 0 nên Y=0Y = 0⁠.

b) Đúng: Y=1⋅(0+1)=1Y = 1\cdot(0 + 1) = 1⁠.

c) Sai: cần A=1A = 1 và (B;C)≠(0;0)(B; C) \ne (0; 0) → chỉ 3 tổ hợp (1;0;1)(1; 0; 1)⁠, (1;1;0)(1; 1; 0)⁠, (1;1;1)(1; 1; 1)⁠.

d) Đúng: cổng OR tạo B+CB + C⁠, cổng AND nhân với AA⁠.

Dạng 5: Cấu trúc và hoạt động của vi điều khiển

Xem lời giải

Điện áp cảm biến là tín hiệu tương tự → đưa vào chân vào tương tự (ADC) để đổi thành con số. Tín hiệu bật/tắt rơ le là tín hiệu số 0/1 → lấy từ cổng ra số (I/O). CPU so sánh giá trị đọc được với ngưỡng trong chương trình để quyết định bật hay tắt.

Vi điều khiển và đọc chương trình Arduino

Đề tốt nghiệp 2026 có 2 câu về bo mạch Arduino ở phần I; các đề bám sát còn có câu đúng/sai kèm chương trình và sơ đồ nối dây. Đọc một chương trình Arduino giống đọc một mạch điện: biết chân nào nối với thiết bị nào, lệnh nào chạy lúc nào, và tại mỗi thời điểm chân ra đang ở mức nào.

Bo mạch Arduino Uno

Vi điều khiển tích hợp CPU, bộ nhớ và cổng vào/ra trên một chip (xem mục Vi điều khiển ở trên). Arduino Uno là bo mạch lập trình có gắn sẵn một vi điều khiển 8 bit làm việc ở 5 V, kèm mạch nạp chương trình qua cổng USB, mạch nguồn và các hàng chân cắm để nối cảm biến, cơ cấu chấp hành.

Nhóm chân Kí hiệu Công dụng
Chân số 0 – 13 Vào/ra tín hiệu số: mức cao HIGH (khoảng 5 V), mức thấp LOW (0 V). Chân 0, 1 dùng khi trao đổi dữ liệu với máy tính nên thường để trống
Chân có dấu ~ 3, 5, 6, 9, 10, 11 Là chân số, xuất thêm được xung PWM bằng lệnh analogWrite
Chân tương tự A0 – A5 Đọc điện áp 0 – 5 V của cảm biến bằng lệnh analogRead
Chân nguồn 5V, GND (và 3,3 V, Vin) Cấp điện cho cảm biến, mô-đun; GND là mốc 0 V chung
Cổng USB, giắc nguồn — Nạp chương trình từ máy tính, cấp nguồn cho bo mạch

Thiết bị thường nối với bo mạch. Cảm biến, nút nhấn là phần tử đầu vào; LED, còi, rơ le, động cơ là cơ cấu chấp hành (đầu ra).

Thiết bị Nối vào Lệnh dùng
Nút nhấn, công tắc hành trình, cảm biến có ngõ ra số (chuyển động, vật cản hồng ngoại) Chân số, khai báo là chân vào digitalRead
Cảm biến ánh sáng (quang điện trở), nhiệt độ, độ ẩm; biến trở Chân A0 – A5 analogRead
LED (nối qua điện trở hạn dòng), còi báo Chân số, khai báo là chân ra digitalWrite
Rơ le đóng cắt máy bơm, quạt, đèn 220 V Chân ra, qua mô-đun rơ le digitalWrite
Động cơ một chiều, LED cần chỉnh độ sáng Chân có dấu ~, qua transistor hoặc mô-đun analogWrite (mở rộng)

Cấu trúc chương trình và các lệnh cơ bản

Chương trình Arduino viết bằng ngôn ngữ giống C/C++, được soạn và biên dịch trên máy tính bằng phần mềm Arduino IDE rồi nạp vào bo mạch qua cổng USB. Chương trình nào cũng có hai hàm:

// (1) Khai báo: đặt tên chân, biến dùng chung
const int DEN = 12;
int dem = 0;

void setup() {
  // (2) Chạy MỘT lần khi cấp nguồn hoặc nhấn nút reset
  pinMode(DEN, OUTPUT);
}

void loop() {
  // (3) Chạy LẶP LẠI mãi mãi:
  //     đọc tín hiệu vào → so sánh → điều khiển chân ra
}
  • setup() chạy một lần: khai báo chân vào/ra, đặt trạng thái ban đầu.
  • loop() chạy lặp lại mãi mãi: thực hiện xong lệnh cuối lại quay về lệnh đầu.
  • Mỗi lệnh kết thúc bằng dấu ;, khối lệnh nằm giữa { và }; chữ sau // là chú thích, không phải lệnh.
  • const int DEN = 12; đặt tên cho chân 12; từ đó viết DEN thay cho số 12.

Các lệnh vào/ra cần thuộc:

  • pinMode(chân, chế độ); — khai báo chân: OUTPUT (chân ra), INPUT (chân vào), INPUT_PULLUP (chân vào có điện trở kéo lên bên trong, mở rộng — xem dưới).
  • digitalWrite(chân, HIGH); hoặc digitalWrite(chân, LOW); — xuất mức cao (khoảng 5 V) hoặc mức thấp (0 V) ra chân số.
  • digitalRead(chân) — đọc mức của chân vào, trả về HIGH (1) hoặc LOW (0).
  • analogRead(A0) — đọc điện áp 0 – 5 V ở chân tương tự, trả về số nguyên từ 0 đến 1023 (bộ ADC 10 bit).
  • analogWrite(chân, k); — (mở rộng) chỉ dùng với chân có dấu ~, xuất dãy xung vuông 5 V (PWM), kk từ 0 đến 255; điện áp trung bình Utb=k255⋅5 VU_{\text{tb}} = \dfrac{k}{255}\cdot 5\,\text{V}⁠.
  • delay(t); — dừng chương trình t mili giây (1 s = 1000 ms); trong lúc chờ, các chân ra giữ nguyên mức.

Biến, điều kiện và phép so sánh:

  • int x = analogRead(A0); tạo biến số nguyên x lưu giá trị đọc được. Biến khai báo ngoài mọi hàm (đầu chương trình) giữ giá trị qua các lần lặp của loop(); biến khai báo bên trong loop() được tạo lại ở mỗi lần lặp.
  • So sánh: == (bằng), != (khác), <, >, <=, >=. Dấu = đứng một mình là phép gán, không phải so sánh.
  • Ghép điều kiện: && (và) ứng với cổng AND, || (hoặc) ứng với cổng OR, ! (phủ định) ứng với cổng NOT.
  • if (điều kiện) { khối 1 } else { khối 2 }: điều kiện đúng thì chạy khối 1, sai thì chạy khối 2. Không có else thì khi điều kiện sai, chương trình bỏ qua và các chân ra giữ nguyên mức cũ.

INPUT_PULLUP (mở rộng). Nút nhấn nối giữa chân vào và GND, chân khai báo pinMode(chân, INPUT_PULLUP);: điện trở kéo lên bên trong (vài chục kΩ) giữ chân ở mức cao khi nút hở. Vì vậy nhả nút → đọc HIGH, nhấn nút → đọc LOW — ngược với cách nối nút từ 5V tới chân vào và dùng điện trở kéo xuống GND. Chân vào để hở, không có điện trở kéo lên hay kéo xuống thì mức đọc được bất định.

Cách đọc một chương trình

  1. Nối mạch với code. Đọc phần khai báo và setup(), lập bảng: chân nào — nối với thiết bị gì — là chân vào hay chân ra. Cảm biến, nút nhấn ở chân vào; LED, còi, rơ le, động cơ ở chân ra.
  2. Lập bảng lần vết theo thời gian. Đi lần lượt từng lệnh trong loop(); mỗi delay(t) cộng thêm t ms vào đồng hồ; ghi mức của từng chân ra trong mỗi khoảng thời gian. Các lệnh khác coi như thực hiện tức thời (đề thường ghi "bỏ qua thời gian thực hiện các lệnh khác ngoài delay()").
  3. Tìm chu kì. Một vòng loop() dài bằng tổng các delay trong vòng đó. Muốn biết trạng thái ở thời điểm tt⁠: lấy số dư của tt khi chia cho chu kì rồi tra bảng lần vết.
  4. Thay số vào điều kiện. Đổi điện áp của cảm biến ra giá trị analogRead (hoặc ngược lại) rồi xét từng if; với nút nhấn, xác định mức đọc được khi nhấn và khi nhả.

Ví dụ 1: Lập bảng lần vết theo thời gian

Xem lời giải

Lập bảng lần vết cho một vòng loop():

Thời gian trong vòng Chân 7 Chân 8 Thùng trộn
0 – 4 s HIGH LOW Quay thuận
4 – 5 s LOW LOW Đứng yên
5 – 9 s LOW HIGH Quay ngược
9 – 10 s LOW LOW Đứng yên

Một vòng dài 4000+1000+4000+1000=10 000 ms=10 s4000 + 1000 + 4000 + 1000 = 10\,000\,\text{ms} = 10\,\text{s}⁠. Vì 33=3⋅10+333 = 3\cdot 10 + 3 nên tại t=33 st = 33\,\text{s} chương trình đang ở giây thứ 3 của vòng thứ tư: thùng quay thuận và dừng ở giây thứ 4 của vòng (lúc t=34 st = 34\,\text{s}⁠), tức còn 1 s. Chọn C.

Phương án A là kết quả khi quên cả hai lệnh delay(1000) (coi vòng dài 8 s); B là kết quả khi quên một lệnh delay(1000) (vòng 9 s).

Ví dụ 2: Hai ngưỡng đọc tương tự, chân ra giữ trạng thái

Xem lời giải

Đổi hai ngưỡng ra điện áp (⁠U=5x1023U = \dfrac{5x}{1023}⁠) rồi ra độ ẩm (độ ẩm bằng 20U20U phần trăm):

  • doAm < 818 khi U<4,0 VU < 4{,}0\,\text{V}⁠, tức độ ẩm dưới khoảng 80% → bật máy;
  • doAm > 921 khi U>4,5 VU > 4{,}5\,\text{V}⁠, tức độ ẩm trên khoảng 90% → tắt máy;
  • độ ẩm từ 80% đến 90%: không lệnh digitalWrite nào chạy → chân 6 giữ nguyên mức cũ.

Lần vết (hàm setup() đặt chân 6 ở mức thấp, máy tắt):

Độ ẩm Giá trị đọc Lệnh được chạy Máy
93% 951 tắt (951 > 921) Tắt
85% 869 không có Giữ: tắt
79% 808 bật (808 < 818) Bật
84% 859 không có Giữ: bật
91% 930 tắt (930 > 921) Tắt

Chọn D. Phương án A (bật ngay khi dưới 90%) và B (chỉ chạy khi dưới 80%) đều bỏ qua việc chân ra giữ trạng thái; C đổi nhầm 921 thành 92,1%. Hai ngưỡng cách nhau giúp máy không bật, tắt liên tục khi độ ẩm dao động quanh một ngưỡng — chương trình "nhớ" trạng thái giống mạch dãy.

Ví dụ 3: Câu đúng/sai có sơ đồ nối dây

Xem lời giải

a) Đúng. analogRead dùng với các chân tương tự A0 – A5, nên hai cảm biến cho điện áp biến thiên được nối vào A1, A2; pinMode(DONG_CO, OUTPUT) khai báo chân 8 là chân ra.

b) Đúng. Với INPUT_PULLUP, công tắc hở thì điện trở kéo lên giữ chân 4 ở mức cao; công tắc đóng nối chân 4 xuống GND nên chân 4 ở mức thấp. Khi đó vế digitalRead(HANH_TRINH) == HIGH sai, cả điều kiện nối bằng && sai, chương trình chạy nhánh else: chân 8 mức thấp, động cơ dừng. Nhờ vậy động cơ không kéo mãi khi giàn đã vào hết.

c) Sai. 1023⋅1,95≈388,7\dfrac{1023\cdot 1{,}9}{5} \approx 388{,}7 nên mua = 388 < 400: vế mua < 400 đúng. Phép || chỉ cần một vế đúng, nên (mua < 400 || sang < 200) đúng dù trời sáng; công tắc đang hở nên chân 4 ở mức cao. Chân 8 lên mức cao: động cơ kéo giàn vào (chương trình coi tấm cảm biến ẩm là trời mưa).

d) Đúng. Trời khô nên mua gần 1023, vế mua < 400 sai; động cơ chạy khi sang < 200, tức 1023 U5<200\dfrac{1023\,U}{5} < 200⁠, hay U<10001023≈0,98 VU < \dfrac{1000}{1023} \approx 0{,}98\,\text{V}⁠.

Ví dụ 4: Nút nhấn chọn mức sáng và xung PWM (mở rộng)

Xem lời giải

a) Đúng. Biến khai báo ở đầu chương trình (ngoài setup() và loop()) được tạo một lần và giữ giá trị qua các lần lặp. Nếu viết int muc = 0; bên trong loop() thì mỗi vòng muc lại về 0 và mỗi lần bấm đèn chỉ lên mức 1.

b) Sai. Với INPUT_PULLUP, không nhấn nút thì chân 7 ở mức cao, digitalRead(7) trả về HIGH; điều kiện == LOW sai nên khối lệnh không chạy, đèn giữ nguyên mức.

c) Đúng. Mỗi lần bấm, khối if chạy một lần rồi delay(400); sau 0,4 s tay đã thả nên lần bấm không bị đếm hai lần. Lần vết muc: 1 → 2 → 3 → 0 → 1 → 2. Cuối cùng analogWrite(DEN, muc * 85) xuất giá trị 170, điện áp trung bình 170255⋅5≈3,3 V\dfrac{170}{255}\cdot 5 \approx 3{,}3\,\text{V}⁠.

d) Sai. Chân 4 không có dấu ~ nên không xuất được xung PWM. (Mở rộng: khi đó analogWrite chỉ cho mức thấp nếu k<128k < 128 và mức cao nếu k≥128k \ge 128⁠.) Đèn chỉ còn tắt (mức 0, 1) hoặc sáng hẳn (mức 2, 3), không còn 4 mức.

Lỗi thường gặp

Khi đọc chương trình Arduino:

Mẹo làm bài

Tự kiểm tra nhanh

  1. Cổng NAND hai đầu vào có A=1A = 1⁠, B=1B = 1⁠. Đầu ra bằng bao nhiêu?
Xem đáp án

Y=1⋅1‾=0Y = \overline{1\cdot 1} = 0⁠.

  1. Cổng NOR hai đầu vào có A=0A = 0⁠, B=0B = 0⁠. Đầu ra bằng bao nhiêu?
Xem đáp án

Y=0+0‾=1Y = \overline{0 + 0} = 1⁠.

  1. Mạch logic có 4 đầu vào thì bảng chân lí có bao nhiêu dòng?
Xem đáp án

24=162^4 = 16 dòng.

  1. Bộ đếm sản phẩm trên băng chuyền là mạch tổ hợp hay mạch dãy? Vì sao?
Xem đáp án

Mạch dãy, vì kết quả đếm phụ thuộc số xung đã nhận trước đó (mạch phải "nhớ" trạng thái).

  1. ADC 8 bit chia điện áp vào thành bao nhiêu mức?
Xem đáp án

28=2562^8 = 256 mức (giá trị từ 0 đến 255).

  1. Một cảm biến nối chân A0 của bo mạch Arduino Uno; lệnh analogRead(A0) trả về 614. Điện áp ở chân A0 khoảng bao nhiêu?
Xem đáp án

U=5⋅6141023≈3,0 VU = \dfrac{5\cdot 614}{1023} \approx 3{,}0\,\text{V}⁠.

  1. Đoạn lệnh sau nằm trong loop() (chân 2 là chân vào, chân 9 là chân ra), nhằm bật đèn ở chân 9 chỉ khi chân 2 ở mức cao. Chạy thử thì đèn sáng suốt, dù chân 2 ở mức nào. Lỗi ở đâu?
int nut = digitalRead(2);
if (nut = HIGH) {
  digitalWrite(9, HIGH);
} else {
  digitalWrite(9, LOW);
}
Xem đáp án

nut = HIGH là phép gán: gán nut bằng HIGH (tức 1), giá trị của cả biểu thức là 1 nên điều kiện luôn đúng và đèn luôn sáng. Sửa thành if (nut == HIGH).

  1. Chương trình khai báo pinMode(5, INPUT_PULLUP); và bật đèn báo ở chân 11 khi digitalRead(5) == LOW. Nút nhấn phải nối giữa chân 5 và chân 5V hay chân GND của bo mạch? Nếu nối nhầm sang chân còn lại thì đèn hoạt động thế nào?
Xem đáp án

Nối giữa chân 5 và GND: nhả nút, điện trở kéo lên giữ chân 5 ở mức cao; nhấn nút, chân 5 bị nối xuống 0 V nên đọc được LOW và đèn sáng. Nếu nối nhầm sang 5V thì nhấn hay nhả chân 5 đều ở mức cao: đèn không bao giờ sáng.

  1. Trong một chương trình, a, b, c là giá trị đọc từ ba chân vào; đèn sáng khi điều kiện (a == HIGH && b == HIGH) || c == HIGH đúng. Đặt AA⁠, BB⁠, CC bằng 1 khi chân tương ứng ở mức cao, Y=1Y = 1 khi đèn sáng. Viết biểu thức của YY và cho biết có bao nhiêu tổ hợp đầu vào làm đèn sáng.
Xem đáp án

&& ứng với AND, || ứng với OR nên Y=A⋅B+CY = A\cdot B + C⁠. Đèn sáng khi C=1C = 1 (4 tổ hợp) hoặc khi A=B=1A = B = 1⁠, C=0C = 0 (1 tổ hợp): tổng cộng 5 trong 8 tổ hợp.

Kiểm tra lại kiến thức vừa ôn

Làm 10 câu luyện tập về điện tử số và vi điều khiển và xem lời giải ngay sau mỗi câu.

Luyện tập ngay

Đề có câu hỏi về chủ đề này