NEW
Font size
WorksheetsLẬP TRÌNH C bản phao 4
Total questions: 44
Worksheet time: 22mins
Để bật LED trên chân B3 trong thời gian 2 giây, lệnh nào sau đây là đúng?
output_high(PIN_B3);
___;
output_low(PIN_B3);
delay_s(2);
delay_ms(2000);
delay_us(2000);
set_tris_b(0xFF);
Trong CCS C, cú pháp nào dưới đây dùng để cấu hình chân B4 làm đầu ra?
set_tris_b(0xFF);
set_tris_b(0xEF);
output_low(PIN_B4);
input(PIN_B4);
Đoạn mã sau sẽ làm LED kết nối với chân B0 hoạt động như thế nào?
for (i = 0; i < 5; i++) {
output_high(PIN_B0);
delay_ms(200);
output_low(PIN_B0);
delay_ms(200);
}
LED nhấp nháy liên tục 200ms
LED nhấp nháy 5 lần, mỗi lần sáng 200ms
LED nhấp nháy 5 lần, mỗi lần sáng 400ms
Lỗi biên dịch
Để kiểm tra trạng thái của chân GPIO, lệnh nào được sử dụng?
set_tris_b()
output_high()
input()
output_toggle()
Một LED được kết nối kiểu chung anode với chân GPIO. Mã lệnh nào sau đây sẽ bật LED?
set_tris_b(0x00); output_low(PIN_B0);
set_tris_b(0xFF); output_high(PIN_B0);
set_tris_b(0x00); output_high(PIN_B0);
set_tris_b(0xFF); output_low(PIN_B0);
Để tất cả 8 LED nối với cổng B nháy xen kẽ, bạn cần thực hiện lệnh nào?
output_b(0xAA); delay_ms(500); output_b(0x55); delay_ms(500);
output_b(0xFF); delay_ms(500); output_b(0x00); delay_ms(500);
output_b(0xF0); delay_ms(500); output_b(0x0F); delay_ms(500);
output_b(0x11); delay_ms(500); output_b(0x22); delay_ms(500);
8 LED được nối theo kiểu chung cathode, với LED0 nối RB0, LED1 nối RB1,... Đoạn mã sau sẽ tạo hiệu ứng gì?
for (int i = 0; i < 8; i++) {
output_b(1 << i);
delay_ms(200);
}
LED sáng dần từ RB0 đến RB7
LED tắt dần từ RB7 đến RB0
LED sáng dần từ RB7 đến RB0
Tất cả LED sáng đồng thời
LED 7 thanh được nối với cổng D theo kiểu chung anode. Để hiển thị số "1", đoạn mã nào sau đây là đúng?
output_d(0x06);
output_d(0x79);
output_d(~0x06);
output_d(~0x79);
LED 7 thanh kiểu chung anode nối với cổng B. Đoạn mã sau tạo hiệu ứng gì?
output_b(~0x3F);
delay_ms(500);
output_b(~0x06);
delay_ms(500);
LED nhấp nháy xen kẽ
Hiển thị số "0" và "1" luân phiên
Tất cả LED tắt
LED hiển thị số "8" liên tục
Khi chạy đoạn mã sau, LED 7 thanh kiểu chung anode sẽ tạo hiệu ứng gì?
for (int i = 0; i < 7; i++) {
output_d(~(1 << i)); // Tắt sáng từng LED
delay_ms(500);
LED sáng lần lượt từng đoạn từ a đến g.
LED nhấp nháy toàn bộ.
Hiển thị số từ "0" đến "6".
Lỗi biên dịch.
Hai LED 7 đoạn kiểu chung cathode nối với cổng B (LED1) và cổng C (LED2). Đoạn mã sau hiển thị gì?
output_b(0x79);
output_c(0x3F);
LED1 hiển thị "4", LED2 hiển thị "0"
LED1 hiển thị "0", LED2 hiển thị "4"
LED1 và LED2 hiển thị "8"
LED1 và LED2 hiển thị "0"
Lệnh nào dùng để thiết lập tất cả các chân của Port C làm đầu ra?
output_c(0x00);
set_tris_c(0xFF);
set_tris_c(0x00);
output_high(pin_c0);
Lệnh nào dùng để đọc giá trị tín hiệu tại chân RA3?
output_high(pin_a3);
output_low(pin_a3);
input(pin_a3);
set_tris_a(0x00);
Đoạn chương trình dưới đây sẽ làm gì với Port D?
set_tris_d(0x00);
output_d(0xFF);
Tất cả chân Port D sáng.
Tất cả chân Port D tắt.
Các chân chẵn sáng, chân lẻ tắt.
Các chân lẻ sáng, chân chẵn tắt.
Lệnh output_toggle(pin_b2); có tác dụng gì với chân RB2?
Bật tín hiệu.
Tắt tín hiệu.
Đảo trạng thái tín hiệu.
Không có tác dụng.
Khi chạy đoạn mã sau, chân RB0 sẽ như thế nào?
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
Chân RB0 luôn bật.
Chân RB0 luôn tắt.
Chân RB0 bật trong 1 giây rồi tắt.
Chân RB0 tắt trong 1 giây rồi bật.
Lệnh nào để xuất tín hiệu 10101010 lên Port B?
output_b(0x55);
output_b(0xAA);
output_b(0xFF);
output_b(0x00);
Khi chạy đoạn mã sau, Các LED nối với Port D sẽ tạo hiệu ứng gì?
for (int i = 0; i < 8; i++) {
output_d(1 << i);
delay_ms(500);
}
Các LED sáng dần hoặc tắt dần
Các LED nhấp nháy
Tất cả LED sáng cùng lúc trong 500ms.
LED sáng ngẫu nhiên.
Lệnh nào dùng để đọc trạng thái của chân RC0?
output_high(pin_c0);
output_low(pin_c0);
input(pin_c0);
set_tris_
Lệnh nào dùng để thiết lập 4 chân thấp của Port D làm đầu ra, 4 chân cao làm đầu vào?
set_tris_d(0x0F);
set_tris_d(0xF0);
output_d(0xFF);
input(pin_d0);
Lệnh output_high(pin_c1); sẽ làm gì với chân RC1?
Đặt chân RC1 ở mức logic cao.
Đặt chân RC1 ở mức logic thấp.
Không thay đổi trạng thái chân RC1.
Đọc giá trị của chân RC1.
Lệnh output_d(0xAA); sẽ tạo hiệu ứng gì trên Port D?
Bật các chân lẻ, tắt các chân chẵn.
Bật các chân chẵn, tắt các chân lẻ.
Bật tất cả các chân.
Tắt tất cả các chân.
Khi thực thi đoạn mã sau, trạng thái 8 LED đơn nối với Port D sẽ như thế nào?
8 LED sáng
4 LED sáng, 4 LED tắt
2 LED sáng, 6 LED tắt
Lệnh output_low(pin_b7); sẽ làm gì với chân RB7?
Đặt RB7 ở mức logic thấp.
Đặt RB7 ở mức logic cao.
Không thay đổi trạng thái RB7.
Đọc giá trị tại RB7.
Đoạn mã sau sẽ làm gì với LED kết nối với RB0? output_high(pin_b0); delay_ms(300); output_low(pin_b0); delay_ms(300);
LED nhấp nháy với chu kỳ 600ms.
LED sáng liên tục.
LED tắt liên tục.
LED sáng 300ms rồi tắt.
Điện áp đầu vào từ cảm biến là 2.5V. Giá trị đọc được trên ADC với độ phân giải 10-bit và Vref = 5V là bao nhiêu?
256
512
768
1023
Lệnh lcd_init(); có tác dụng gì?
Hiển thị chuỗi ký tự trên LCD.
Cấu hình các chân điều khiển và khởi tạo LCD.
Xóa nội dung hiển thị trên LCD.
Đưa con trỏ về góc trên cùng bên trái.
Chân nào của vi điều khiển PIC16F877A được sử dụng làm đầu vào ADC?
RB0
RD0
RA0
RC0
Lệnh nào được sử dụng để đọc giá trị ADC?
setup_adc_ports();
setup_adc();
read_adc();
input(pin_a0);
Lệnh nào dùng để hiển thị chuỗi ký tự trên màn hình LCD?
lcd_putc();
lcd_puts();
lcd_gotoxy();
output_lcd();
Lệnh lcd_init(); có tác dụng gì?
Hiển thị chuỗi ký tự trên LCD.
Cấu hình các chân điều khiển và khởi tạo LCD.
Xóa nội dung hiển thị trên LCD.
Đưa con trỏ về góc trên cùng bên trái.
Khi chạy đoạn mã sau, LCD sẽ hiển thị gì? lcd_putc("\fHELLO WORLD");
"HELLO WORLD" ở góc trên bên trái.
"HELLO WORLD" ở giữa màn hình.
Xóa màn hình và không hiển thị gì.
"HELLO" trên dòng 1, "WORLD" trên dòng 2.
Lệnh nào dùng để điều chỉnh giá trị độ rộng xung PWM (duty cycle)?
set_pwm1_duty(value);
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_4, 255, 1);
output_high(pin_c2);
Lệnh nào được sử dụng để thiết lập Timer2 cho chế độ PWM?
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_4, 255, 1);
set_pwm1_duty(128);
output_low(pin_c2);
Để kích hoạt CCP1 hoạt động ở chế độ PWM, lệnh nào được sử dụng?
setup_adc(ADC_CLOCK_DIV_32);
setup_timer_2(T2_DIV_BY_4, 255, 1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(128);
Động cơ được điều khiển bằng phương pháp điều chỉnh độ rộng xung, công suất động cơ tỉ lệ thuận với độ rộng xung điều khiển,khi chạy đoạn mã bên dưới thì động cơ sẽ hoạt động như thế nào? setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_4, 255, 1); set_pwm1_duty(192);
Động cơ chạy với 100% công suất.
Động cơ chạy với 50% công suất.
Động cơ chạy với 75% công suất.
Động cơ không chạy.
Động cơ được điều khiển bằng phương pháp điều chỉnh độ rộng xung, công suất động cơ tỉ lệ thuận với độ rộng xung điều khiển,khi chạy đoạn mã bên dưới thì động cơ sẽ hoạt động như thế nào? setup_ccp1(CCP_PWM); setup_timer_2(T2_DIV_BY_4, 255, 1); set_pwm1_duty(64); delay_ms(3000); set_pwm1_duty(192); delay_ms(3000);
Động cơ chạy ở 25% công suất, sau đó tăng lên 75% công suất.
Động cơ chạy ở 75% công suất, sau đó giảm xuống 25%.
Động cơ dừng sau khi chạy ở 25% công suất.
Động cơ không hoạt động.
cơ được điều khiển bằng phương pháp điều chỉnh độ rộng xung, công suất động cơ tỉ lệ thuận với độ rộng xung điều khiển,khi chạy đoạn mã bên dưới thì động cơ sẽ hoạt động như thế nào?
Động cơ tăng tốc dần
Động cơ chạy luân phiên giữa 50% và 25% công suất mỗi 2 giây
Động cơ giảm tốc dần sau 2 giây
Động cơ không chạy
Động cơ bước có góc bước là 1.8° và được điều khiển trong chế độ Half-Step. Số bước cần thiết để quay được 45° là bao nhiêu?
25 bước
50 bước
100 bước
200 bước
Động cơ bước được điều khiển bởi hai mã bước liên tiếp dưới đây. Chế độ điều khiển đang được sử dụng là gì? Bước 1: {1, 0, 0, 0} Bước 2: {1, 1, 0, 0}
Full-Step
Half-Step
Micro-Stepping
Không xác định
Dưới đây là hai mã bước liên tiếp điều khiển động cơ bước. Chế độ điều khiển đang được sử dụng là gì? Bước 1: {1, 1, 0, 0} Bước 2: {0, 1, 1, 0}
Full-Step
Half-Step
Micro-Stepping
Không xác định
Động cơ bước được lập trình bằng đoạn mã sau. Phương pháp điều khiển nào đang được áp dụng? int steps[4] = {0x08, 0x04, 0x02, 0x01}; // Mã bước for (int i = 0; i < 4; i++) { output_c(steps[i]); delay_ms(2); }
Full-Step Drive
Wave Drive
Half-Step Drive
Micro-Stepping
Động cơ bước được lập trình bằng đoạn mã sau. Phương pháp điều khiển nào đang được áp dụng? int steps[4] = {0x09, 0x03, 0x06, 0x0C}; // Mã bước for (int i = 0; i < 4; i++) { output_c(steps[i]); delay_ms(5); }
Wave Drive
Half-Step Drive
Full-Step Drive
Micro-Stepping
Đoạn mã sau điều khiển động cơ bước theo phương pháp nào? int steps[8] = {0x08, 0x0C, 0x04, 0x06, 0x02, 0x03, 0x01, 0x09}; // Mã bước for (int i = 0; i < 8; i++) { output_c(steps[i]); delay_ms(10); }
Wave Drive
Full-Step Drive
Half-Step Drive
Micro-Stepping
