Font size
WorksheetsCâu hỏi về Vi xử lý
Total questions: 19
Worksheet time: 17mins
Cho 1 LED 7 thanh chung âm (cathode), các chân điều khiển các bóng LED a, b, c, d, e, f, g được nối lần lượt với các chân P2.0 đến P2.6. Chân chung Cathode nối với chân P2.7. Vi điều khiển được cung cấp bộ dao động có tần số 12MHz. Chương trình nào sau đây đúng để hiển thị số 9 trong 2 giây rồi tắt LED trong 2 giây và lặp lại?
ORG 4000H DB 6FH, 00H ORG 0000H main: MOV DPTR, #4000H repeat: MOVC A, @A+DPTR MOV P2, A ACALL delay INC DPTR CJNE A, #0, repeat MOV DPTR, #4000H SJMP main DELAY: MOV TMOD, #01h MOV R7, #40 LOOP_DELAY: MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 DJNZ R7, LOOP_DELAY RET END
ORG 4000H DB 7FH, 00H ORG 0000H main: MOV DPTR, #4000H repeat: MOVC A, @A+DPTR MOV P2, A ACALL delay INC DPTR CJNE A, #7FH, repeat MOV DPTR, #4000H SJMP main DELAY: MOV TMOD, #01h MOV R7, #40 LOOP_DELAY: MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 DJNZ R7, LOOP_DELAY RET END
ORG 4000H DB 7FH, 00H ORG 0000H main: MOV DPTR, #4000H repeat: MOVC A, @A+DPTR ACALL delay INC DPTR CJNE A, #0, repeat MOV DPTR, #4000H SJMP main DELAY: MOV TMOD, #01h MOV R7, #40 LOOP_DELAY: MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 DJNZ R7, LOOP_DELAY RET END
ORG 4000H DB 7FH, 00H ORG 0000H main: MOV DPTR, #4000H repeat: MOV A, @A+DPTR ACALL delay INC DPTR CJNE A, #0, repeat MOV DPTR, #4000H SJMP main DELAY: MOV TMOD, #01h MOV R7, #10 LOOP_DELAY: MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 DJNZ R7, LOOP_DELAY RET END
Mô tả kết nối: Cho 1 LED 7 thanh chung âm (cathode), các chân điều khiển các bóng LED a, b, c, d, e, f, g được nối lần lượt với các chân P2.0 đến P2.6. Chân chung Cathode nối với chân P2.7. Vi điều khiển được cung cấp bộ dao động có tần số 12MHz. Trong chương trình sau:
Hỏi: Nếu thay lệnh CJNE A, #0, repeat bằng CJNE A, #3FH, repeat, điều gì sẽ xảy ra?
LED sẽ hiển thị tuần tự từ số 0 đến 9 và lặp lại.
LED sẽ hiển thị số 0 một lần duy nhất rồi dừng.
LED sẽ hiển thị tuần tự từ số 0 đến 9 nhưng dừng ở số 1.
LED sẽ hiển thị lặp lại từ số 1 đến 9.
Hỏi: Nếu thay lệnh INC DPTR bằng DEC DPTR, điều gì sẽ xảy ra?
LED sẽ hiển thị tuần tự từ 9 đến 0 và lặp lại.
LED sẽ hiển thị tuần tự từ 0 đến 9 và lặp lại.
LED sẽ không hiển thị bất kỳ số nào.
LED sẽ hiển thị một số duy nhất rồi dừng.
Hỏi: Nếu thay MOV P2, A bằng MOV P2, #0, điều gì sẽ xảy ra?
LED sẽ hiển thị số 0 liên tục.
LED sẽ không hiển thị gì cả.
LED sẽ hiển thị các số từ 0 đến 9 bình thường.
LED sẽ chỉ hiển thị số 8.
Hỏi: Nếu thay SJMP main bằng NOP, điều gì sẽ xảy ra?
LED sẽ hiển thị tuần tự từ 0 đến 9 rồi dừng.
LED sẽ không hiển thị gì cả.
LED sẽ hiển thị tuần tự từ 9 đến 0 và lặp lại.
LED sẽ hiển thị nhấp nháy số 0
Hỏi: Nếu thay DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH, 0 bằng DB 7FH, 00H, 6FH, 0, điều gì sẽ xảy ra?
LED sẽ hiển thị tuần tự từ 0 đến 9.
LED sẽ hiển thị số 8, tắt, sau đó số 9 và lặp lại.
LED sẽ không hiển thị gì cả.
LED sẽ hiển thị tuần tự từ 9 đến 0.
Chương trình nào dưới đây đúng để nhận một ký tự từ UART và truyền lại chính ký tự đó ra UART?
start: acall Serial_Init main: acall Serial_Read acall Serial_Send sjmp main end
Start: acall Serial_Init Main: mov A,#'A' acall Serial_Send sjmp Main end
start: acall Serial_Init Main: acall Serial_Send sjmp Main end
start: acall Serial_Init Main: acall Serial_Read mov SBUF,#'A' sjmp Main end
Chương trình nào dưới đây đúng để nhận một ký tự từ UART và truyền ký tự kế tiếp của nó trong bảng ASCII ra UART?
Main: acall Serial_Init acall Serial_Send inc A acall Serial_Read sjmp Main
Main: acall Serial_Init acall Serial_Read mov A,SBUF acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read inc A acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read inc 0x0A acall Serial_Send sjmp Main
Chương trình nào dưới đây đúng để kiểm tra ký tự nhận được có phải là 'A' hay không, nếu đúng thì truyền '1'; nếu sai thì truyền lại ký tự đã nhận?
Chương trình nào dưới đây đúng để kiểm tra ký tự nhận được có phải là 'A' hay không, nếu đúng thì truyền '1'; nếu sai thì truyền lại ký tự đã nhận?
Main: acall Serial_Init acall Serial_Read cjne A,#'A',Skip mov A,#'1' acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read cjne A,#'A',Skip mov #'1',A Skip: acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read mov A,SBUF mov A,#'1' acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read cjne A,#'A',Skip mov A,#'1' Skip: acall Serial_Send sjmp Main
Chương trình nào dưới đây đúng để nhận một ký tự từ UART, nếu ký tự nhận được là 'B' thì truyền 'C'; nếu không, truyền lại ký tự đã nhận?
Main: acall Serial_Init acall Serial_Read cjne A,#'B',Skip mov A,#'C' Skip: acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read cjne A,#'B',Skip add A,#'C' Skip: acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Send cjne A,'B',Skip mov A,'C' Skip: acall Serial_Read sjmp Main
Main: acall Serial_Init acall Serial_Read cjne A,'B',Skip mov A,'C' Skip: acall Serial_Send sjmp Main
Câu hỏi: Chương trình nào dưới đây đúng để luôn truyền ký tự 'A' ra UART bất kể ký tự nhận được là gì?
Main: acall Serial_Init mov A,#'A' acall Serial_Read acall Serial_Send sjmp Main
Main: acall Serial_Init mov A,#'A' acall Serial_Send sjmp Main
Main: acall Serial_Init acall Serial_Read mov A,SBUF acall Serial_Send sjmp Main
Main: acall Serial_Init acall Seria
Nếu thay lệnh mov TH1,#0FDH bằng mov TH1,#0FCH, kết quả của chương trình sẽ như thế nào?
Tốc độ truyền giảm, chương trình vẫn hoạt động bình thường.
Tốc độ truyền tăng, chương trình vẫn hoạt động bình thường.
Tốc độ truyền không thay đổi, chương trình hoạt động như cũ.
Chương trình bị lỗi và không hoạt động.
Nếu thay lệnh clr TI trong hàm Serial_Send bằng nop, kết quả của chương trình sẽ như thế nào?
Dữ liệu truyền đi bị trùng lặp do cờ TI không được xóa.
chương trình hoạt động như cũ, mọi thứ vẫn hoạt động đúng
UART không truyền được dữ liệu, chương trình bị treo.
Dữ liệu truyền đi bị sai ngẫu nhiên, kết quả không dự đoán được.
Nếu thay lệnh setb TR1 trong hàm Serial_Init bằng clr TR1, kết quả của chương trình sẽ như thế nào?
Nếu thay lệnh setb TR1 trong hàm Serial_Init bằng clr TR1, kết quả của chương trình sẽ như thế nào?
Timer 1 không chạy, UART không hoạt động.
Timer 1 chạy không đúng chế độ, UART hoạt động không ổn định.
Tốc độ truyền của UART giảm đi.
Không có thay đổi nào, chương trình hoạt động bình thường.
Nếu thay giá trị #50H trong lệnh mov SCON,#50H bằng #40H, kết quả của chương trình sẽ như thế nào?
UART chuyển sang chế độ đồng bộ, chương trình không hoạt động.
UART không nhận được dữ liệu, chương trình bị treo ở hàm Serial_Read.
UART hoạt động bình thường nhưng tốc độ truyền thay đổi.
Không có thay đổi nào, chương trình hoạt động bình thường.
Nếu thêm lệnh clr RI vào ngay sau mov A,SBUF trong hàm Serial_Read, kết quả của chương trình sẽ như thế nào?
Dữ liệu nhận được luôn bị ghi đè trước khi sử dụng.
Chương trình bị lỗi và treo tại hàm Serial_Read.
Không có thay đổi nào, chương trình hoạt động bình thường.
Cờ nhận RI bị xóa hai lần, nhưng chương trình vẫn hoạt động bình thường.
