Câu hỏi: Bộ đề trắc nghiệm REVIEW - MIP201
226 câu trắc nghiệm kèm lời giải của môn Microcontroller Programming - MIP201, xếp theo thứ tự nhập vào ngân hàng. Trang 9/12 — câu 161–180.
Danh sách câu hỏi
180/226 câuCòn 46
161What API allows you to combine a number of DigitalIn pins to read them at once?5 lựa chọnDễ77% trả lời đúng
A
PortInB
BusInC
DigitalInOutD
BusOutE
DigitalOutLời giải
Mở trang câu hỏi này →Để kết hợp một số cổng DigitalIn để đọc chúng cùng một lúc, bạn cần sử dụng API BusIn. BusIn cho phép bạn đọc nhiều cổng vào cùng một lúc, giúp tăng tốc độ và hiệu suất của chương trình. Điều này đặc biệt hữu ích khi bạn cần đọc nhiều giá trị từ các cảm biến hoặc thiết bị ngoại vi. Ngoài ra, BusIn cũng giúp giảm thiểu số lượng cổng vào cần thiết, giúp tối ưu hóa thiết kế mạch điện.
162What does the C programming statement while(1) create?5 lựa chọnDễ93% trả lời đúng
AA timer event
BAn infinite loop
CA function call
DA prototype declaration
EA conditional statement
Lời giải
Mở trang câu hỏi này →Câu lệnh while(1) trong C là một vòng lặp vô hạn. Nó được sử dụng để thực hiện một hành động hoặc một chuỗi hành động lặp đi lặp lại mãi mãi cho đến khi chương trình bị dừng. Vòng lặp vô hạn này thường được sử dụng trong các trường hợp như tạo một trình giả lập thời gian, tạo một trình giả lập chu kỳ, hoặc tạo một trình giả lập sự kiện. Khi chương trình gặp câu lệnh while(1), nó sẽ tiếp tục thực hiện các hành động trong vòng lặp cho đến khi chương trình bị dừng. Điều này có nghĩa là chương trình sẽ không bao giờ kết thúc, trừ khi có một lệnh dừng chương trình được thực hiện.
163In the while loop of the main function, which function of Analogin is used to read the potentiometer values?5 lựa chọnDễ100% trả lời đúng
A
attach()B
period()C
read()D
write()E
ISR()Lời giải
Mở trang câu hỏi này →Trong vòng lặp while của hàm chính, hàm nào của Analogin được sử dụng để đọc giá trị của potentiometer?
164How many bits of segment data are required to represent different values on a 7-segment display5 lựa chọnDễ92% trả lời đúng
A4-bit
B6-bit
C8-bit
D12-bit
E5-bit
Lời giải
Mở trang câu hỏi này →Để trả lời câu hỏi này, chúng ta cần hiểu về cách hoạt động của màn hình hiển thị 7-segment. Màn hình này sử dụng các đoạn (segment) để tạo ra các số và ký tự khác nhau. Mỗi đoạn có thể được bật hoặc tắt để tạo ra các số và ký tự khác nhau. Để xác định số đoạn cần thiết để đại diện cho các giá trị khác nhau trên màn hình 7-segment, chúng ta cần xem xét số lượng số và ký tự có thể được tạo ra bằng cách sử dụng các đoạn. Mỗi số và ký tự có thể được tạo ra bằng cách sử dụng các đoạn khác nhau. Ví dụ, số 0 có thể được tạo ra bằng cách bật tất cả các đoạn, trong khi số 1 có thể được tạo ra bằng cách tắt tất cả các đoạn ngoại trừ đoạn trên cùng. Để đại diện cho tất cả các số và ký tự có thể được tạo ra, chúng ta cần ít nhất 7 đoạn (mỗi đoạn đại diện cho một số hoặc ký tự khác nhau). Tuy nhiên, để đại diện cho các giá trị khác nhau trên màn hình 7-segment, chúng ta cần ít nhất 7 * 2 = 14 đoạn (mỗi đoạn có thể được bật hoặc tắt). Nhưng trong thực tế, chúng ta chỉ cần 7 đoạn và một số bit để đại diện cho các trạng thái bật/tắt của các đoạn. Vì vậy, để đại diện cho các giá trị khác nhau trên màn hình 7-segment, chúng ta cần ít nhất 4 bit (mỗi bit đại diện cho một trạng thái bật/tắt của một đoạn). Tuy nhiên, để đảm bảo rằng màn hình có thể hiển thị tất cả các số và ký tự có thể được tạo ra, chúng ta cần ít nhất 7 * 2 = 14 bit. Nhưng trong thực tế, chúng ta chỉ cần 7 * 2 - 1 = 13 bit. Nhưng trong thực tế, chúng ta chỉ cần 7 * 2 - 1 = 13 bit. Nhưng trong thực tế, chúng ta chỉ cần 8 bit (mỗi bit đại diện cho một trạng thái bật/tắt của một đoạn).
165Which specific core architecture are the microcontroller supported by the Mixed platform based on?5 lựa chọnDễ75% trả lời đúng
AArm Cortex-A
BRISC-V
CArm Cortex-R
DArm Cortex-M
EIntel Xeon
Lời giải
Mở trang câu hỏi này →Câu hỏi này hỏi về kiến trúc bộ xử lý (core architecture) cụ thể mà các vi điều khiển (microcontroller) được hỗ trợ bởi nền tảng hỗn hợp (Mixed platform) dựa trên. Nền tảng hỗn hợp thường được sử dụng trong các ứng dụng có yêu cầu về hiệu suất và khả năng tiết kiệm năng lượng. Các lựa chọn bao gồm kiến trúc Arm Cortex-A, RISC-V, Arm Cortex-R, Arm Cortex-M và Intel Xeon. Tuy nhiên, kiến trúc được hỗ trợ bởi các vi điều khiển trong nền tảng hỗn hợp thường là kiến trúc Arm Cortex-M. Kiến trúc này được thiết kế để tiết kiệm năng lượng và có hiệu suất cao, phù hợp với các ứng dụng có yêu cầu về năng lượng và hiệu suất.
166What does the write(float/float value) function in AnalogOut do?4 lựa chọnDễ100% trả lời đúng
ASets the analog output voltage as a percentage of the maximum value
BSets the sampling frequency
CReads the analog voltage
DConverts analog signals into binary
Lời giải
Mở trang câu hỏi này →Hàm write(float/float value) trong AnalogOut được sử dụng để đặt giá trị điện áp analog. Giá trị này được tính bằng phần trăm của giá trị tối đa. Điều này có nghĩa là giá trị điện áp analog có thể được đặt từ 0% đến 100% của giá trị tối đa. Hàm này cho phép người dùng kiểm soát điện áp analog một cách chính xác và linh hoạt. Ví dụ, nếu giá trị tối đa của điện áp analog là 10V, thì giá trị 0,5 sẽ tương đương với 5V. Hàm write(float/float value) là một phần quan trọng của AnalogOut và được sử dụng rộng rãi trong các ứng dụng điện tử và tự động hóa.
167Which Mbed API function is used to create a start condition on the I2C bus?5 lựa chọnDễ93% trả lời đúng
A
read()B
write()C
frequency()D
stop()E
start()Lời giải
Mở trang câu hỏi này →Để tạo một điều kiện bắt đầu trên bus I2C, bạn cần sử dụng hàm Mbed API phù hợp. Trong các lựa chọn đã cho, hàm start() là hàm được sử dụng để tạo một điều kiện bắt đầu trên bus I2C. Điều này có nghĩa là hàm start() sẽ gửi một tín hiệu bắt đầu trên bus I2C, cho phép thiết bị nhận dữ liệu từ thiết bị gửi. Hàm start() là một phần quan trọng trong giao tiếp I2C và cần được sử dụng đúng cách để đảm bảo giao tiếp I2C hoạt động chính xác. Ngoài ra, bạn cũng cần lưu ý đến các hàm khác như read(), write(), frequency() và stop() để hiểu rõ hơn về giao tiếp I2C.
168In UART communication, which wires are typically used for transmitting and receiving data?4 lựa chọnDễ86% trả lời đúng
ACOTI and CITO only
BSCL and SDA
CMOSI and MISO
DTX and RX
Lời giải
Mở trang câu hỏi này →UART (Universal Asynchronous Receiver-Transmitter) là một phương thức truyền thông phổ biến trong các hệ thống điện tử. Trong UART, dữ liệu được truyền qua hai dây riêng biệt. Dây TX (Transmission) thường được sử dụng để truyền dữ liệu từ nguồn phát ra ngoài, trong khi dây RX (Reception) được sử dụng để nhận dữ liệu từ nguồn nhận. Điều này cho phép hai thiết bị giao tiếp với nhau một cách độc lập và đồng bộ. Các lựa chọn khác như COTI và CITO, SCL và SDA, MOSI và MISO thường được sử dụng trong các phương thức truyền thông khác như I2C và SPI.
169Why are GPIO pins grouped into ports in microcontrollers?4 lựa chọnDễ100% trả lời đúng
ATo reduce program size
BTo reduce clock frequency
CTo match register sizes and simplify management
DTo increase analog accuracy
Lời giải
Mở trang câu hỏi này →GPIO (Đầu vào/Đầu ra Tổng hợp) được nhóm thành các cổng trong vi điều khiển để đơn giản hóa việc quản lý và truy cập. Việc nhóm các GPIO thành các cổng cho phép các nhà thiết kế vi điều khiển tối ưu hóa việc sử dụng tài nguyên và tăng hiệu suất. Điều này cũng giúp giảm thiểu số lượng lệnh và tăng tốc độ thực thi chương trình. Ngoài ra, việc nhóm các GPIO thành các cổng cũng cho phép các nhà thiết kế vi điều khiển dễ dàng quản lý và cấu hình các GPIO khác nhau, từ đó tăng cường khả năng tùy chỉnh và mở rộng của vi điều khiển.
170Which Mbed Timer function returns the time passed in milliseconds?5 lựa chọnDễ100% trả lời đúng
A
read_s()B
read_us()C
read_ms()D
read()E
reset()Lời giải
Mở trang câu hỏi này →Hàm Timer Mbed nào trả về thời gian đã trôi qua tính bằng mili giây?
Trong các hàm Timer Mbed, hàm read_ms() được sử dụng để đọc thời gian đã trôi qua tính bằng mili giây. Hàm này cho phép bạn biết được thời gian đã trôi qua kể từ khi chương trình bắt đầu chạy.
Ví dụ, nếu bạn muốn biết thời gian đã trôi qua sau khi chương trình chạy 5 giây, bạn có thể sử dụng hàm read_ms() để đọc thời gian và so sánh nó với thời gian ban đầu.
Hàm read_ms() là một trong những hàm quan trọng của Timer Mbed và được sử dụng rộng rãi trong các ứng dụng thời gian thực.
171For an 8-bit ADC converting an analog signal with a range of -0.5 V, how many distinct input values are possible?5 lựa chọnDễ83% trả lời đúng
A128
B1024
C256
D8
E512
Lời giải
Mở trang câu hỏi này →Để trả lời câu hỏi này, chúng ta cần hiểu về cách hoạt động của một ADC (Đổi Chuyển Analog sang Digital). ADC có thể chuyển đổi tín hiệu analog thành tín hiệu số. Trong trường hợp này, chúng ta có một ADC 8-bit, có nghĩa là nó có thể biểu diễn 2^8 = 256 giá trị khác nhau. Tuy nhiên, tín hiệu analog có phạm vi là -0,5 V, vì vậy chúng ta cần tìm ra số giá trị khác nhau mà tín hiệu analog có thể biểu diễn. Để làm điều này, chúng ta cần biết về tỷ lệ chuyển đổi của ADC. Tỷ lệ chuyển đổi là tỷ lệ giữa giá trị tín hiệu analog tối đa và giá trị tín hiệu analog tối thiểu. Trong trường hợp này, giá trị tín hiệu analog tối đa là 0,5 V và giá trị tín hiệu analog tối thiểu là -0,5 V. Tỷ lệ chuyển đổi là (0,5 - (-0,5)) / (2^8 - 1) = 1 V / 255 = 0,003921568. Bây giờ, chúng ta có thể tính số giá trị khác nhau mà tín hiệu analog có thể biểu diễn. Số giá trị khác nhau là 256.
172Which of these statements is true about embedded system programs?4 lựa chọnDễ92% trả lời đúng
ABecause high-level languages are not supported by microcontrollers
BBecause low-level programming allows better control and efficiency
CBecause assembly language is easier to learn
DBecause embedded systems always run full operating systems
Lời giải
Mở trang câu hỏi này →Embedded system chương trình thường được viết bằng ngôn ngữ lập trình thấp cấp như Assembly hoặc C vì chúng cho phép người lập trình có quyền kiểm soát và hiệu suất cao hơn. Điều này là do ngôn ngữ lập trình thấp cấp cho phép người lập trình truy cập trực tiếp vào các thành phần hardware của hệ thống, từ đó có thể tối ưu hóa hiệu suất và giảm thiểu thời gian phản hồi. Ngược lại, ngôn ngữ lập trình cao cấp như Java hoặc Python thường không được hỗ trợ bởi các vi điều khiển, và mặc dù chúng có thể dễ dàng sử dụng hơn, nhưng lại không cho phép người lập trình có quyền kiểm soát và hiệu suất cao như ngôn ngữ lập trình thấp cấp.
173(20375.1) What is the data type and range of the value returned by the Mbed read() function for Analog Input?5 lựa chọnDễ71% trả lời đúng
AUnsigned short in the range [0x, 0xFFFF]
BBoolean (0 or 1)
CFloat in the range [0.0, 1.0]
DInteger in the range
EFloat representing the reference voltage
Lời giải
Mở trang câu hỏi này →Hàm read() trong Mbed được sử dụng để đọc giá trị từ đầu vào analog. Giá trị trả về của hàm này là một số thực trong khoảng từ 0,0 đến 1,0. Điều này có nghĩa là giá trị đọc được sẽ được chuyển đổi thành một giá trị số thực trong khoảng này, giúp dễ dàng sử dụng và xử lý trong các ứng dụng. Ví dụ, nếu bạn đang đọc giá trị từ một cảm biến áp suất, giá trị đọc được sẽ được chuyển đổi thành một giá trị số thực trong khoảng từ 0,0 đến 1,0, giúp bạn dễ dàng tính toán và xử lý giá trị này.
174What is the main characteristic of serial communication?4 lựa chọnTrung bình64% trả lời đúng
AData is transmitted using multiple buses
BData is transmitted one bit at a time sequentially
CData is transmitted without timing control
DMultiple bits are transmitted simultaneously or concurrently
Lời giải
Mở trang câu hỏi này →Serial communication là một phương thức truyền dữ liệu trong đó dữ liệu được truyền một bit một lần theo thứ tự tuần tự. Điều này khác với phương thức truyền dữ liệu song song (parallel communication), trong đó nhiều bit được truyền cùng một lúc. Serial communication thường được sử dụng trong các ứng dụng cần truyền dữ liệu một cách ổn định và tin cậy, chẳng hạn như truyền dữ liệu qua đường dây điện thoại hoặc mạng internet. Trong serial communication, dữ liệu được truyền theo thứ tự bit-by-bit, với mỗi bit được truyền một lần và sau đó được nhận bởi thiết bị nhận. Điều này giúp đảm bảo rằng dữ liệu được truyền chính xác và không bị lỗi. Serial communication cũng có thể được sử dụng trong các ứng dụng cần truyền dữ liệu ở khoảng cách xa, chẳng hạn như truyền dữ liệu qua vệ tinh.
175Mbed RTOS API provides easy-to-use API for programming which type of devices?5 lựa chọnTrung bình69% trả lời đúng
ALegacy DOS systems
BSystems without resource constraints.
CGeneral Windows PCs
DHigh-throughput servers
EMbed-enabled devices
Lời giải
Mở trang câu hỏi này →Mbed RTOS API cung cấp một bộ API dễ sử dụng để lập trình các loại thiết bị nào? Mbed RTOS API là một hệ điều hành thời gian thực được thiết kế cho các thiết bị Internet vạn vật (IoT) và các thiết bị khác có yêu cầu về thời gian thực và hiệu suất cao. Nó cung cấp các tính năng như quản lý tài nguyên, giao tiếp mạng, và các tính năng khác để giúp lập trình viên dễ dàng lập trình và quản lý các thiết bị.
176What programming language is typically used for developing embedded systems?5 lựa chọnDễ77% trả lời đúng
AAssembly language
BC/C++
CLadder logic
DRust
EPython
Lời giải
Mở trang câu hỏi này →Ngôn ngữ lập trình thường được sử dụng để phát triển hệ thống tích hợp (embedded systems) là C/C++. C/C++ là một ngôn ngữ lập trình hiệu suất cao, được thiết kế để chạy trên các hệ thống có nguồn lực hạn chế, như các thiết bị điện tử tiêu dùng, máy tính nhỏ và các hệ thống điều khiển tự động. Ngôn ngữ này cung cấp khả năng truy cập trực tiếp vào bộ nhớ và các tính năng lập trình thấp khác, giúp nó trở thành lựa chọn phổ biến cho các ứng dụng yêu cầu hiệu suất cao và độ tin cậy cao. Ngoài ra, C/C++ cũng có thể được sử dụng để phát triển các ứng dụng trên các hệ thống có nguồn lực mạnh hơn, như máy tính để bàn và máy chủ.
177Which register controls the direction of input/output for a GPIO controller?5 lựa chọnTrung bình63% trả lời đúng
AToggle Output Register
BDirection Register
CSet Direction Register
DInput Register
EData Output Register
Lời giải
Mở trang câu hỏi này →Để kiểm soát hướng của đầu vào/đầu ra cho một controller GPIO, chúng ta cần sử dụng một loại đăng ký đặc biệt. Đăng ký này chịu trách nhiệm quyết định liệu một chân GPIO có hoạt động như đầu vào hay đầu ra hay không. Trong các lựa chọn, đăng ký nào có thể kiểm soát hướng của đầu vào/đầu ra cho một controller GPIO?
178What is the function of the vector table in Cortex-M processors?4 lựa chọnDễ86% trả lời đúng
AStore peripheral data
BStore stack memory values
CStore program variables
DStore interrupt handler addresses
Lời giải
Mở trang câu hỏi này →Trong các bộ xử lý Cortex-M, bảng vectơ (vector table) đóng vai trò quan trọng trong việc quản lý các địa chỉ nhảy (interrupt handler). Bảng vectơ là một vùng nhớ đặc biệt chứa các địa chỉ nhảy đến các hàm xử lý ngoại vi (interrupt handler) khi xảy ra sự kiện ngoại vi. Khi một sự kiện ngoại vi xảy ra, bộ xử lý sẽ tự động nhảy đến địa chỉ lưu trữ trong bảng vectơ tương ứng với sự kiện đó. Điều này cho phép hệ thống phản ứng nhanh chóng và hiệu quả với các sự kiện ngoại vi khác nhau.
179Which processor mode is entered when handling an interrupt?4 lựa chọnDễ82% trả lời đúng
AThread Mode
BDebug Mode
CUser Mode
DHandler Mode
Lời giải
Mở trang câu hỏi này →Khi một chương trình đang chạy và nhận được một tín hiệu ngắt (interrupt), hệ thống sẽ chuyển sang một chế độ xử lý đặc biệt để xử lý tín hiệu đó. Chế độ này được gọi là chế độ xử lý tín hiệu (Handler Mode). Trong chế độ này, hệ thống sẽ tạm thời dừng việc thực thi chương trình đang chạy và chuyển sang thực thi mã lệnh đặc biệt để xử lý tín hiệu. Sau khi xử lý xong, hệ thống sẽ quay lại chế độ xử lý chương trình ban đầu. Chế độ Handler Mode cho phép hệ thống xử lý tín hiệu một cách nhanh chóng và hiệu quả mà không làm gián đoạn quá trình thực thi chương trình.
180What is the main function of DA/PLINK in the Mbed ecosystem?4 lựa chọnDễ93% trả lời đúng
ARunning application code on the microcontroller
BProviding debugging and programming interface via USB
CEncrypting program memory
DManaging network connections
Lời giải
Mở trang câu hỏi này →DA/PLINK là một phần quan trọng trong hệ sinh thái Mbed. Nó cung cấp giao diện debug và lập trình qua USB, cho phép người dùng kết nối và giao tiếp với bộ điều khiển micro. DA/PLINK cho phép người dùng tải lên và chạy mã ứng dụng, cũng như thực hiện các tác vụ debug và lập trình khác. Điều này giúp người dùng dễ dàng phát triển và thử nghiệm các ứng dụng trên bộ điều khiển micro. DA/PLINK cũng cung cấp các công cụ và tính năng để giúp người dùng quản lý và tối ưu hóa quá trình debug và lập trình.