1. Trong lập trình vi điều khiển, "polling" là phương pháp gì?
A. Một phương pháp liên tục kiểm tra trạng thái của một thiết bị hoặc sự kiện mà không chờ đợi tín hiệu ngắt.
B. Một cơ chế để vi điều khiển tự động tắt nguồn.
C. Một loại bộ nhớ chỉ đọc.
D. Một cách để tăng tốc độ xử lý của CPU.
2. Chức năng của bộ nhớ ROM trong vi điều khiển là gì?
A. Lưu trữ chương trình điều khiển (firmware) và dữ liệu cố định.
B. Lưu trữ tạm thời dữ liệu trong quá trình thực thi chương trình.
C. Giao tiếp với các thiết bị ngoại vi khác.
D. Tạo xung nhịp cho hệ thống hoạt động.
3. Tại sao cần phải biên dịch (compile) chương trình viết bằng C/C++ trước khi nạp vào vi điều khiển?
A. Để chuyển đổi mã nguồn cấp cao thành mã máy mà vi điều khiển có thể hiểu và thực thi.
B. Để tăng dung lượng bộ nhớ của chương trình.
C. Để loại bỏ các lỗi cú pháp trong quá trình viết.
D. Để chương trình chạy nhanh hơn trên máy tính.
4. Đâu là đặc điểm nổi bật của các họ vi điều khiển 8-bit, 16-bit, 32-bit?
A. Số bit chỉ số lượng bit mà CPU có thể xử lý trong một lần, ảnh hưởng đến tốc độ và khả năng xử lý dữ liệu.
B. Số bit chỉ số lượng chân I/O của vi điều khiển.
C. Số bit chỉ dung lượng bộ nhớ ROM.
D. Số bit chỉ tần số hoạt động của vi điều khiển.
5. Tại sao vi điều khiển thường được lập trình bằng ngôn ngữ C thay vì các ngôn ngữ bậc cao hơn như Python?
A. Ngôn ngữ C cho phép kiểm soát trực tiếp phần cứng và có hiệu suất cao, phù hợp với tài nguyên hạn chế của vi điều khiển.
B. Ngôn ngữ C đơn giản và dễ học hơn Python.
C. Python không thể biên dịch thành mã máy.
D. Ngôn ngữ C có nhiều thư viện hỗ trợ sẵn có hơn Python.
6. Đâu là thành phần chính của một vi điều khiển?
A. CPU, bộ nhớ (RAM, ROM), các cổng vào/ra.
B. Màn hình LCD và bàn phím.
C. Nguồn điện và bộ điều chỉnh điện áp.
D. Bộ phận tản nhiệt và quạt làm mát.
7. Công nghệ lập trình nhúng (Embedded Programming) liên quan đến vi điều khiển nhằm mục đích gì?
A. Tạo ra các chương trình điều khiển chuyên dụng cho các thiết bị phần cứng cụ thể.
B. Phát triển các ứng dụng web phức tạp.
C. Quản lý các hệ thống cơ sở dữ liệu lớn.
D. Thiết kế giao diện người dùng đồ họa cho máy tính.
8. Chức năng của bộ nhớ RAM trong vi điều khiển là gì?
A. Lưu trữ tạm thời dữ liệu trong quá trình thực thi chương trình.
B. Lưu trữ chương trình điều khiển vĩnh viễn.
C. Chỉ cho phép đọc dữ liệu.
D. Chứa các thanh ghi của CPU.
9. Tín hiệu ngắt (Interrupt) trong vi điều khiển có tác dụng gì?
A. Cho phép vi điều khiển tạm dừng công việc hiện tại để xử lý một sự kiện khẩn cấp từ bên ngoài.
B. Tăng tốc độ xử lý của tất cả các tác vụ.
C. Chỉ dùng để cập nhật dữ liệu trong RAM.
D. Buộc vi điều khiển phải khởi động lại.
10. Giao tiếp I2C (Inter-Integrated Circuit) được sử dụng cho mục đích gì?
A. Cho phép nhiều thiết bị ngoại vi giao tiếp với vi điều khiển thông qua hai đường dây tín hiệu (SDA và SCL).
B. Truyền dữ liệu video chất lượng cao.
C. Kết nối vi điều khiển với mạng internet.
D. Tạo ra các tín hiệu xung nhịp chính xác.
11. Ngôn ngữ lập trình phổ biến nào được sử dụng để lập trình vi điều khiển?
A. C/C++ và Assembly.
B. Python và Java.
C. HTML và CSS.
D. SQL và PHP.
12. DAC (Digital-to-Analog Converter) trong vi điều khiển có chức năng gì?
A. Chuyển đổi tín hiệu số (digital) thành tín hiệu tương tự (analog).
B. Chuyển đổi tín hiệu tương tự thành tín hiệu số.
C. Xử lý các tín hiệu số phức tạp.
D. Đọc dữ liệu từ các cảm biến.
13. Khi lập trình vi điều khiển, "bit-banging" là kỹ thuật gì?
A. Sử dụng các lệnh phần mềm để mô phỏng các giao thức phần cứng, thay vì sử dụng các module ngoại vi chuyên dụng.
B. Tự động hóa quá trình biên dịch mã nguồn.
C. Mô phỏng hoạt động của CPU.
D. Kiểm tra lỗi trong bộ nhớ ROM.
14. Một ví dụ về ứng dụng của vi điều khiển trong đời sống là gì?
A. Điều khiển hoạt động của lò vi sóng, máy giặt.
B. Xử lý đồ họa cho máy tính.
C. Lưu trữ dữ liệu trên đám mây.
D. Phát sóng tín hiệu internet.
15. Trong kiến trúc Harvard của một số vi điều khiển, điều gì khác biệt so với kiến trúc Von Neumann?
A. Có các bus riêng biệt cho lệnh và dữ liệu, cho phép truy cập đồng thời.
B. Chỉ có một bus chung cho cả lệnh và dữ liệu.
C. Không có bộ nhớ riêng.
D. Tốc độ xử lý luôn chậm hơn.
16. ADC (Analog-to-Digital Converter) trong vi điều khiển có chức năng gì?
A. Chuyển đổi tín hiệu tương tự (analog) thành tín hiệu số (digital) để vi điều khiển xử lý.
B. Chuyển đổi tín hiệu số thành tín hiệu tương tự.
C. Tăng cường độ phân giải của tín hiệu số.
D. Lưu trữ các giá trị số.
17. Tại sao việc sử dụng các module ngoại vi phần cứng (như Timer, UART) thường hiệu quả hơn "bit-banging"?
A. Các module phần cứng chuyên dụng giải phóng CPU khỏi các tác vụ lặp đi lặp lại, cho phép nó xử lý các công việc khác và hoạt động hiệu quả hơn.
B. Các module phần cứng phức tạp hơn và khó lập trình hơn.
C. "Bit-banging" luôn cho hiệu suất cao hơn.
D. Module phần cứng chỉ có thể thực hiện một chức năng duy nhất.
18. Vai trò của bộ định thời (Timer) trong vi điều khiển là gì?
A. Tạo ra các khoảng thời gian chính xác, đo lường thời gian hoặc tạo các tín hiệu PWM.
B. Tăng cường khả năng xử lý đa nhiệm.
C. Lưu trữ vĩnh viễn dữ liệu chương trình.
D. Chỉ dùng để gửi dữ liệu qua cổng nối tiếp.
19. Biến trở (Potentiometer) khi kết nối với vi điều khiển thông qua chân ADC sẽ cung cấp thông tin gì?
A. Giá trị điện áp đầu vào, có thể thay đổi bằng cách xoay núm.
B. Tín hiệu xung nhịp.
C. Trạng thái đóng/mở của một công tắc.
D. Tốc độ quay của động cơ.
20. Đâu là một ví dụ về giao tiếp ngoại vi nối tiếp (Serial Communication) phổ biến trên vi điều khiển?
A. UART (Universal Asynchronous Receiver/Transmitter).
B. Parallel Port (Cổng song song).
C. USB (Universal Serial Bus).
D. HDMI (High-Definition Multimedia Interface).
21. Đâu là một ví dụ về cách sử dụng chân GPIO (General Purpose Input/Output) của vi điều khiển?
A. Điều khiển một bóng đèn LED bật/tắt.
B. Tạo ra tín hiệu Wi-Fi.
C. Lưu trữ toàn bộ hệ điều hành.
D. Kết nối với màn hình máy tính.
22. Tại sao vi điều khiển thường có các chân ngắt (Interrupt Pins)?
A. Để cho phép các sự kiện bên ngoài (như nhấn nút) có thể tạm dừng chương trình chính và yêu cầu vi điều khiển xử lý ngay lập tức.
B. Để kết nối với các module ngoại vi khác.
C. Để cung cấp nguồn điện cho các linh kiện.
D. Để gửi dữ liệu liên tục.
23. Cổng vào/ra (I/O Port) của vi điều khiển dùng để làm gì?
A. Trao đổi thông tin với thế giới bên ngoài (thiết bị ngoại vi, cảm biến, nút nhấn).
B. Tăng tốc độ xử lý của CPU.
C. Mở rộng dung lượng bộ nhớ.
D. Tạo ra các tín hiệu đồng hồ.
24. Chuẩn SPI (Serial Peripheral Interface) khác với UART ở điểm nào?
A. SPI là giao tiếp đồng bộ, sử dụng nhiều đường dây hơn (thường là 4) cho việc truyền và nhận dữ liệu.
B. UART là giao tiếp đồng bộ, còn SPI là không đồng bộ.
C. SPI chỉ có thể gửi dữ liệu, không nhận được.
D. UART sử dụng nhiều đường dây hơn SPI.
25. Vi điều khiển là gì?
A. Một bộ vi xử lý có tích hợp thêm các thiết bị ngoại vi như bộ nhớ, cổng vào/ra trên cùng một chip.
B. Một bộ nhớ chỉ đọc có dung lượng lớn.
C. Một loại cảm biến dùng để đo nhiệt độ.
D. Một mạch khuếch đại tín hiệu âm thanh.