Trắc nghiệm Cánh diều Công nghệ Điện - điện tử 12 bài 25: Bo mạch lập trình vi điều khiển
1. Tại sao bo mạch lập trình vi điều khiển thường có thêm các module giao tiếp như UART, SPI, I2C?
A. Để tăng tốc độ xử lý của vi điều khiển.
B. Để cho phép vi điều khiển giao tiếp với các thiết bị hoặc module khác.
C. Để lưu trữ nhiều dữ liệu hơn.
D. Để quản lý nguồn điện hiệu quả hơn.
2. Khi sử dụng bo mạch Arduino, khái niệm setup() và loop() trong mã nguồn có ý nghĩa gì?
A. `setup()` chạy liên tục, `loop()` chạy một lần.
B. `setup()` chạy một lần khi khởi động, `loop()` chạy lặp đi lặp lại.
C. Cả hai hàm đều chạy một lần.
D. Cả hai hàm đều chạy liên tục.
3. Trong lập trình vi điều khiển, delay() là một hàm thường dùng. Mục đích chính của hàm này là gì?
A. Thực hiện phép tính toán phức tạp.
B. Tạm dừng chương trình trong một khoảng thời gian xác định.
C. Đọc giá trị từ cảm biến.
D. Gửi dữ liệu qua cổng serial.
4. Trong các loại bộ nhớ thường có trên bo mạch vi điều khiển, bộ nhớ nào dùng để lưu trữ chương trình người dùng nạp vào?
A. EEPROM
B. RAM
C. ROM (hoặc Flash Memory)
D. SRAM
5. Khi sử dụng nút nhấn (button) làm đầu vào cho vi điều khiển, trạng thái pressed (nhấn) và released (nhả) thường được đọc như thế nào qua cổng GPIO?
A. Luôn đọc là 0 hoặc 1, không thay đổi.
B. Đọc là mức logic cao (HIGH) hoặc mức logic thấp (LOW) tùy thuộc vào cách đấu nối.
C. Đọc dưới dạng tín hiệu analog.
D. Chỉ đọc được khi có sự kiện xảy ra.
6. Trong ngôn ngữ lập trình C cho vi điều khiển, hàm `digitalWrite(pin, HIGH)` có tác dụng gì?
A. Đọc trạng thái của chân pin.
B. Thiết lập chân pin ở mức logic thấp (LOW).
C. Thiết lập chân pin ở mức logic cao (HIGH).
D. Cấu hình chân pin làm đầu vào.
7. Trong vi điều khiển, register (thanh ghi) là gì và chức năng của nó?
A. Là bộ nhớ ngoài dung lượng lớn.
B. Là các ô nhớ nhỏ, tốc độ cao bên trong vi điều khiển, dùng để lưu trữ tạm thời dữ liệu và lệnh đang được xử lý.
C. Là cổng giao tiếp với thiết bị ngoại vi.
D. Là bộ phận tạo xung clock.
8. Chức năng của bộ nhớ RAM trên bo mạch lập trình vi điều khiển là gì?
A. Lưu trữ chương trình vĩnh viễn.
B. Lưu trữ tạm thời dữ liệu trong quá trình hoạt động.
C. Chuyển đổi tín hiệu analog sang digital.
D. Tạo xung clock cho hệ thống.
9. Hàm `digitalRead(pin)` trong lập trình vi điều khiển dùng để làm gì?
A. Xuất một mức logic ra chân pin.
B. Đọc trạng thái logic (HIGH hoặc LOW) của một chân pin đầu vào.
C. Cấu hình chân pin làm đầu ra.
D. Thiết lập tần số cho bộ định thời.
10. Trong bo mạch lập trình vi điều khiển, thành phần nào có chức năng chính là xử lý các lệnh và dữ liệu theo chương trình đã nạp?
A. Thanh ghi
B. Bộ nhớ ROM
C. Vi điều khiển (MCU)
D. Bộ định thời (Timer)
11. Khái niệm interrupt (ngắt) trong lập trình vi điều khiển dùng để làm gì?
A. Dừng chương trình vĩnh viễn.
B. Cho phép vi điều khiển tạm dừng tác vụ hiện tại để xử lý một sự kiện ưu tiên hơn.
C. Tăng tốc độ xử lý của vi điều khiển.
D. Tất cả các lựa chọn trên.
12. Trong ngữ cảnh lập trình vi điều khiển, firmware là gì?
A. Phần cứng của bo mạch.
B. Hệ điều hành chạy trên máy tính.
C. Phần mềm chuyên dụng được nạp vào vi điều khiển để điều khiển hoạt động của nó.
D. Các linh kiện điện tử rời.
13. So với polling, cơ chế ngắt (interrupt) thường mang lại ưu điểm gì trong việc xử lý các sự kiện?
A. Đơn giản hơn trong cài đặt.
B. Hiệu quả hơn về mặt thời gian và tài nguyên xử lý.
C. Luôn đảm bảo xử lý sự kiện nhanh hơn.
D. Phù hợp với mọi loại sự kiện.
14. Chức năng chính của bộ chuyển đổi Analog-to-Digital (ADC) trên bo mạch vi điều khiển là gì?
A. Chuyển đổi tín hiệu số thành tín hiệu analog.
B. Chuyển đổi tín hiệu analog thành tín hiệu số để vi điều khiển xử lý.
C. Tăng cường độ mạnh của tín hiệu.
D. Lọc bỏ nhiễu trong tín hiệu.
15. Tại sao việc sử dụng điện trở hạn dòng khi kết nối đèn LED với vi điều khiển là quan trọng?
A. Để tăng độ sáng của đèn LED.
B. Để bảo vệ đèn LED và chân GPIO khỏi dòng điện quá lớn.
C. Để ổn định điện áp cấp cho LED.
D. Để tạo hiệu ứng nhấp nháy cho LED.
16. Tín hiệu PWM (Pulse Width Modulation) thường được sử dụng để điều khiển gì?
A. Tốc độ của động cơ DC, độ sáng của đèn LED.
B. Tần số của bộ dao động.
C. Độ phân giải của ADC.
D. Lưu lượng dữ liệu qua UART.
17. Để điều khiển một đèn LED sáng hoặc tắt, chân GPIO của vi điều khiển sẽ được cấu hình là gì và kết nối với LED như thế nào?
A. Đầu vào (input), chân dương của LED nối với chân GPIO, chân âm nối đất.
B. Đầu ra (output), chân dương của LED nối với chân GPIO, chân âm nối đất.
C. Đầu vào (input), chân âm của LED nối với chân GPIO, chân dương nối nguồn.
D. Đầu ra (output), chân âm của LED nối với chân GPIO, chân dương nối nguồn.
18. Khi lập trình giao tiếp SPI, vai trò của chân SCK (Serial Clock) là gì?
A. Dữ liệu được gửi đi.
B. Dữ liệu được nhận về.
C. Tín hiệu đồng hồ để đồng bộ việc truyền/nhận dữ liệu giữa các thiết bị.
D. Chọn thiết bị nô lệ để giao tiếp.
19. Bộ định thời (Timer) trên vi điều khiển có thể được sử dụng cho các mục đích nào sau đây?
A. Chỉ để đếm số lần nhấn nút.
B. Tạo độ trễ, đo khoảng thời gian, tạo tín hiệu PWM.
C. Chỉ để giao tiếp với máy tính.
D. Lưu trữ chương trình.
20. Tại sao các bo mạch lập trình vi điều khiển thường có các chân Reset hoặc nút Reset?
A. Để tăng tốc độ xử lý chương trình.
B. Để cho phép người dùng khởi động lại vi điều khiển về trạng thái ban đầu.
C. Để điều chỉnh điện áp hoạt động.
D. Để kết nối với màn hình hiển thị.
21. Bộ dao động (Oscillator) trên bo mạch lập trình vi điều khiển có vai trò gì?
A. Cung cấp tín hiệu clock để đồng bộ hoạt động của vi điều khiển.
B. Chuyển đổi tín hiệu analog sang digital.
C. Lưu trữ chương trình.
D. Quản lý năng lượng tiêu thụ.
22. Cổng GPIO (General Purpose Input/Output) trên bo mạch vi điều khiển dùng để làm gì?
A. Kết nối với bộ nhớ ngoài.
B. Giao tiếp với các thiết bị ngoại vi như cảm biến, đèn LED, nút nhấn.
C. Nạp chương trình cho vi điều khiển.
D. Cung cấp nguồn điện cho bo mạch.
23. Trong giao thức truyền thông I2C, mỗi thiết bị trên bus có một địa chỉ duy nhất. Chức năng của địa chỉ này là gì?
A. Xác định tốc độ truyền dữ liệu.
B. Cho phép thiết bị chủ chọn và giao tiếp với một thiết bị đích cụ thể trên bus.
C. Kiểm tra lỗi truyền dữ liệu.
D. Nâng cao khả năng chống nhiễu.
24. Tại sao cần phải biết về kiến trúc của vi điều khiển (ví dụ: kiến trúc Harvard hay Von Neumann) khi lập trình?
A. Để lựa chọn màu sắc cho bo mạch.
B. Để hiểu cách vi điều khiển truy cập bộ nhớ chương trình và dữ liệu, từ đó tối ưu hóa hiệu suất.
C. Để xác định loại ngôn ngữ lập trình sử dụng.
D. Để tính toán lượng tiêu thụ điện năng.
25. Khi lập trình cho vi điều khiển, khái niệm polling (quét) thường được sử dụng cho mục đích gì?
A. Để tạm dừng chương trình trong một khoảng thời gian nhất định.
B. Để liên tục kiểm tra trạng thái của một thiết bị ngoại vi hoặc một điều kiện.
C. Để thực hiện các phép tính phức tạp.
D. Để lưu trữ dữ liệu vào bộ nhớ.