WorksheetsCâu hỏi về lập trình 8051
Total questions: 28
Worksheet time: 14mins
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kiểm tra xem cờ RI (Receive Interrupt) đã được đặt hay chưa.
CJNE RI, #1, SKIP
JNB RI, $
SETB RI
MOV A, RI
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) xóa cờ TI sau khi truyền dữ liệu hoàn tất.
SETB TI
MOV TI, #00H
JNB TI, CLEAR
CLR TI
Cách sử dụng bộ định thời 1 trong truyền thông nối tiếp
MOV TMOD, #20H
MOV TMOD, #01H
SETB TI
MOV SCON, #40H
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) bật chế độ tăng gấp đôi tốc độ truyền thông nối tiếp trong chế độ 1 , 2 và 3
SETB PCON.0
ORL PCON, #80H
CLR PCON.7
MOV SCON, #80H
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) đọc dữ liệu nhận được từ SBUF và lưu vào thanh ghi A.
MOV A, TI
MOV SBUF, A
MOV A, SBUF
CLR RI
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) chờ đến khi dữ liệu được truyền xong trước khi tiếp tục.
JNB TI, $
CLR TI
CJNE TI, #0, NEXT
JB TI, NEXT
Cách cấu hình chế độ 2 (truyền đồng bộ 9-bit) cho UART của 8051.
MOV SCON, #90H
MOV SCON, #40H
MOV PCON, #80H
MOV TMOD, #10H
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) khởi động bộ định thời 1 để hỗ trợ UART.
MOV TMOD, #01H
SETB TR1
MOV SCON, #50H
CLR TI
Ngắt ngoại vi INT0 trên 8051 được kích hoạt bởi yếu tố nào?
Xung từ bộ định thời
Tín hiệu bên ngoài đưa vào chân INT0
Sự kiện tràn trong bộ định thời
Dữ liệu được truyền qua UART
Ngắt bộ định thời (Timer Interrupt) xảy ra khi nào?
Bộ đếm của Timer tràn (overflow)
Tín hiệu ngắt bên ngoài được kích hoạt
Có dữ liệu được nhận qua UART
Chương trình chính bị dừng
Cờ nào trong thanh ghi TCON được thiết lập khi ngắt Timer 1 xảy ra?
TR1
IT1
TF1
IE
Ngắt truyền thông nối tiếp trong 8051 được kích hoạt bởi sự kiện nào?
Timer tràn
Có dữ liệu mới được ghi vào thanh ghi SBUF
Thanh ghi SCON bị ghi đè
Khi cờ TI hoặc RI được thiết lập
Vai trò của thanh ghi IE (Interrupt Enable) trong xử lý ngắt của 8051 là gì?
Kích hoạt hoặc vô hiệu hóa các nguồn ngắt cụ thể
Lưu địa chỉ của chương trình xử lý ngắt
Xác định mức độ ưu tiên của ngắt
Quản lý tốc độ truyền UART
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) bật ngắt Timer 0.
SETB EA; SETB ET0
MOV IE, #01H
SETB EA; SETB EX0
MOV TCON, #10H
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kích hoạt ngắt ngoại vi INT1.
SETB EA; SETB ET1
MOV IE, #80H
SETB EA; SETB EX1
CLR IE
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) đợi cờ TF0 được bật lên trong chương trình chính.
JNB TF0, SKIP
SETB TF0
JB TF0, SKIP
JNB TF0, $
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) vô hiệu hóa toàn bộ ngắt trên 8051.
CLR EX0
CLR EA
MOV IE, #80H
CLR TF0
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kích hoạt ngắt truyền thông nối tiếp.
SETB ES
MOV IE, #90H
SETB TI
CLR RI
Viết chương trình con để xử lý ngắt khi INT0 được kích hoạt.
PUSH ACC; CLR EX0; RET
MOV A, P1; ADD A, P2; RETI
org 3h; MOV A, P3; RETI
CJNE A, #00H, LABEL
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kiểm tra và xử lý ngắt Timer1 trong chương trình chính.
JNB TIMER_HANDLER
CLR TF1; MOV TL1, #00H
JNB TF1, $
JB TF1, TIMER_HANDLER; CLR TF1; RETI
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) đọc dữ liệu từ UART khi ngắt truyền thông xảy ra.
MOV A, SBUF; CLR RI
MOV RI, SBUF
MOV SBUF, A; CLR RI
MOV SBUF, A
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) thiết lập ưu tiên cao cho ngắt Timer 0.
SETB PT1
MOV IP, #01H
SETB IP.1
CLR PT1
Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) xóa cờ RI sau khi dữ liệu được nhận qua UART.
SETB RI
CLR RI
MOV A, SBUF
CLR TI
Đoạn mã sau có lỗi gì?SETB EA
SETB TF0
MOV TH0, #FFH
TF0 không được sử dụng để kích hoạt ngắt
TH0 không thể được đặt trước khi khởi động Timer
EA cần được tắt trước khi cấu hình ngắt
TF0 cần được xóa trước khi khởi động Timer
Điều gì xảy ra nếu không xóa cờ TF1 sau khi ngắt Timer 1 được xử lý?
Ngắt Timer 1 tự động tái kích hoạt
Timer 1 ngừng hoạt động
Cờ TF1 vẫn giữ nguyên, gây ra ngắt liên tục
Không có vấn đề gì xảy ra
Tại sao đoạn mã sau không nhận được dữ liệu truyền thông nối tiếp?
SBUF không được kiểm tra trước khi đọc
Cờ TI không liên quan đến dữ liệu nhận qua UART
TI cần được xóa trước khi đọc SBUF
$ không phải là nhãn hợp lệ
Lỗi gì có thể xảy ra nếu ưu tiên ngắt không được thiết lập đúng cách?
Chỉ một ngắt được xử lý, ngắt còn lại bị bỏ qua
Hai ngắt cùng lúc có thể dẫn đến ngừng hoạt động
Cả hai ngắt đều không được xử lý
Các cờ ngắt không được thiết lập đúng
Tại sao đoạn mã sau không thể xử lý ngắt INT0 chính xác?
EX0 không được thiết lập đúng cách
IE không kích hoạt ngắt toàn cục
Lệnh RET cần được thay bằng RETI
Cờ IT0 không được xóa
