NEW
Font size
WorksheetsQuiz về lệnh trong hợp ngữ 8051
Total questions: 69
Worksheet time: 35mins
Khi sử dụng lệnh RET, CPU sẽ thực hiện thao tác gì?
Quay lại vị trí tiếp theo trong chương trình chính
Tiếp tục thực hiện chương trình con
Lặp lại chương trình con
Kết thúc chương trình chính
Ý nghĩa của lệnh PUSH ACC trong hợp ngữ 8051 là gì?
Lấy giá trị từ stack và lưu vào thanh ghi A
Ghi giá trị tức thì vào thanh ghi A
Lưu giá trị của thanh ghi A vào stack
Tăng giá trị của thanh ghi A
Khi thực hiện lệnh POP ACC, điều gì sẽ xảy ra?
Giá trị của thanh ghi A bị xóa
Giá trị trên đỉnh stack được lưu vào thanh ghi A
Giá trị của thanh ghi A được lưu vào stack
Giá trị của thanh ghi A bị đảo ngược
Cấu trúc nào được sử dụng để tái sử dụng đoạn mã trong chương trình hợp ngữ 8051?
Chương trình con
Thanh ghi đa năng
Bộ định thời
Ngắt ngoài
Điều gì xảy ra nếu lệnh JMP END_LOOP được thực thi trong chương trình hợp ngữ 8051?
CPU tiếp tục thực hiện lệnh tiếp theo
CPU quay lại đầu chương trình
CPU dừng chương trình hiện tại
CPU nhảy không điều kiện đến nhãn END_LOOP
Chỉ thị DB trong hợp ngữ 8051 thường được sử dụng để làm gì?
Khai báo biến
Kết thúc chương trình
Khai báo dữ liệu hằng trong bộ nhớ
Xóa giá trị trong thanh ghi
Chức năng của cổng P0 trong 8051 là gì?
Cổng I/O hai chiều và bus địa chỉ/bus dữ liệu
Chỉ sử dụng làm cổng xuất dữ liệu
Chỉ sử dụng làm cổng nhập dữ liệu
Cổng điều khiển chế độ ngắt
Cổng P1 trong 8051 thường được sử dụng với mục đích gì?
Kết nối bộ nhớ ngoài
Làm bus điều khiển
Điều khiển ngắt ngoài
Là cổng I/O độc lập
Cổng P2 của vi xử lý 8051 thường được sử dụng làm bus địa chỉ cao khi nào?
Khi kết nối với thiết bị ngắt ngoài
Khi 8051 truy cập bộ nhớ ngoài
Khi sử dụng định thời
Khi lập trình công nối tiếp
Tại sao cần sử dụng điện trở kéo lên (pull-up resistor) với cổng P0?
Để giảm nhiễu tín hiệu
Để tăng tốc độ xử lý tín hiệu
Vì P0 không tích hợp sẵn điện trở kéo lên
Để hỗ trợ truy cập bộ nhớ ROM
Cổng P3 của 8051 có thể thực hiện chức năng gì ngoài vai trò cổng I/O?
Điều khiển ngắt, truyền thông nối tiếp và điều khiển bộ đếm
Truy cập bộ nhớ ROM ngoài
Làm bus địa chỉ cao
Điều khiển bộ nhớ RAM nội
Lệnh nào đúng để đặt 8 bit của cổng P1 về 0?
MOV P1, #0
SETB P1
MOVC P1, 0
XRL P1,0
Lệnh nào đúng để nhảy đến nhãn CHECK nếu bit P3.2 được thiết lập?
CJNE P3.2, #1, CHECK
SETB P3.2; SJMP CHECK
MOV C, P3.2; JC CHECK
JB P3.2, CHECK
Lệnh nào dùng để gửi dữ liệu từ thanh ghi A sang cổng P2?
MOV A, P2
MOV P2, A
ORL P2, A
SETB P2
Lệnh nào đúng để bật bit P1.5 và giữ nguyên các bit khác của cổng P1?
MOV P1.5, #1
ORL P1, #20H
ANL P1, #DFH
SETB P1.5
Đáp án nào đúng khi thực hiện đoạn mã lệnh sau: MOV A, #0FFH; MOV P0, A?
Có lỗi vì P0 không hỗ trợ giá trị 0FFH
Không có lỗi nhưng cần sử dụng điện trở treo cho P0
Có lỗi vì P0 không hỗ trợ xuất dữ liệu
Có lỗi sai tên thanh ghi A
Tại sao lệnh sau lại có lỗi khi thực thi? MOV A, P1; CPL P1
Vì lệnh MOV A không hỗ trợ dữ liệu từ cổng P1
Vì lệnh CPL không hỗ trợ toán hạng có kích thước 8 bit
Vì toán hạng của lệnh MOV không đúng cú pháp
Vì CPL không hỗ trợ địa chỉ trực tiếp P1
Điều gì xảy ra nếu không đặt giá trị ban đầu cho P3 trước khi sử dụng và sau khi 8051 bị reset?
Các thiết bị ngoại vi không hoạt động
Chương trình bị treo
Giá trị ngẫu nhiên, hoặc giá trị lưu từ lệnh trước có thể ảnh hưởng đến kết quả thực thi của lệnh hiện tại
P3 tự động đặt về giá trị mặc định
Lỗi gì có thể xảy ra khi xuất dữ liệu tới cổng P2 mà không kiểm tra kết nối bộ nhớ ngoài?
Dữ liệu có thể bị ghi đè bởi bus địa chỉ
Không có lỗi xảy ra
P2 tự động xử lý dữ liệu
P2 chỉ hỗ trợ đầu vào
Nhận xét nào đúng về đoạn mã sau: SETB P0.7; MOV A, P0
Giá trị P0.7 không được gán đúng cách
Điện trở kéo lên cần được sử dụng cho P0
Không thể đọc dữ liệu từ P0 sau khi thiết lập P0.7
Cần gán giá trị cho A trước
Khi đọc dữ liệu từ cổng P3, điều gì có thể xảy ra nếu không cấu hình chính xác?
Giá trị luôn bằng 0
Giá trị luôn bằng 1
Một số bit có thể bị ảnh hưởng bởi chức năng đặc biệt của P3
P3 tự động cấu hình
Lệnh nào sau đây thực hiện đặt 4 bit cuối của P1 bằng 1
ORL P1, #0FH
ANL P1, #0FH
ORL P1, #0F0H
ANL P1, #0F0H
Tại sao cần kiểm tra trạng thái cổng P0 trước khi gửi dữ liệu ra ngoài?
Vì P0 có thể được sử dụng làm bus dữ liệu/bus địa chỉ
Vì P0 không hỗ trợ đầu vào
Vì P0 không hỗ trợ tín hiệu ngắt
Vì P0 không có chức năng đặc biệt
Nhận xét nào sau đây là đúng nhất nếu không cấu hình đúng bit EX0 hoặc EX1 trước khi sử dụng ngắt ngoài?
Ngắt ngoài luôn được kích hoạt
Ngắt ngoài không thể kích hoạt
Giá trị P3.2 hoặc P3.3 luoon bằng 0
Giá trị luoon bằng 1
Đoạn mã sau có thể gặp vấn đề gì khi sử dụng P2 để đọc dữ liệu từ thiết bị ngoại vi?
MOV A, P2
P2 không hỗ trợ đầu vào từ thiết bị ngoại vi
Cần cấu hình P2 trước khi đọc dữ liệu
P2 có thể bị ảnh hưởng bởi bus địa chỉ cao khi kết nối bộ nhớ ngoài
P2 chỉ hỗ trợ đầu ra
Chức năng chính của bộ định thời (Timer) trong 8051 là gì?
Tạo độ trễ và đo thời gian
Lưu trữ dữ liệu tạm thời
Điều khiển ngắt ngoài
Truyền dữ liệu nối tiếp
Bộ đếm (Counter) trong 8051 hoạt động dựa trên yếu tố nào?
Tín hiệu từ bộ nhớ ngoài
Các xung tín hiệu ngoài đưa vào chân T0 (P3.4) hoặc T1 (P3.5)
Bộ đệm dữ liệu nội
Lệnh do CPU xử lý
Khi nào bộ định thời trong 8051 được đặt ở chế độ định thời (Timer Mode)?
Khi nhận tín hiệu từ ngắt ngoài
Khi tín hiệu đến từ cổng P3
Khi được cấu hình ở chế độ chế độ đếm xung (Counter Mode)
Khi nhận tín hiệu xung từ nguồn nội
Chế độ 16-bit của bộ định thời 8051 cho phép làm gì?
Đếm tới đa 256 xung
Ghi và đọc giá trị từ bộ nhớ
Đếm tới đa 65,536 xung
Chuyển đổi tín hiệu số sang tương tự
Thanh ghi nào trong 8051 lưu giá trị hiện tại của bộ định thời?
TCON
TH0 và TL0 hoặc TH1 và TL1
TMOD
PC
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) đặt bộ định thời 0 ở chế độ 16-bit.
MOV TMOD, #01H
MOV TMOD, #02H
SETB TCON.0
MOV TMOD, #0H
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.
MOV TCON, #10H
CLR TR1
SETB TR1
MOV TMOD, #11H
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) dừng bộ định thời 0.
MOV TCON, #00H
CLR TCON.0
MOV TR0, #00H
CLR TR0
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) tải giá trị 0FFH vào thanh ghi TL0.
MOV A, TL0
MOV TL0, #0FFH
CLR TL0
MOV TH0, #0FFH
Cách sử dụng bộ đếm 0 để đếm xung từ chân T0.
MOV TMOD, #05H
SETB TR1
MOV TCON, #01H
MOV TL1, #00H
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 Timer 0 tràn?
JB TCON.1, $
MOV A, TF0; CJNE A, #1, $
JNB TF0, $
JC 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) xóa cờ TF1 sau khi xảy ra tràn ở bộ định thời 1.
MOV TCON, #00H
MOV TCON.1, #0
CLR TF0
CLR TF1
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) tải giá trị ban đầu vào bộ định thời 1 với TH1 = 0F và TL1 = FF.
MOV TH1, #0FH; MOV TL1, #0FFH
MOV TH0, #0FFH; MOV TL0, #0FFH
MOV TMOD, #10H; MOV TL1, #FFH
MOV TCON, #0FH; MOV TL1, #0FFH
Lệnh nào đúng để kích hoạt bộ định thời 0 và cho phép nó hoạt động?
MOV TMOD, #00H
SETB TR0
MOV TCON, #11H
CLR TF0
Lệnh nào đúng để chuyển bộ định thời 1 từ chế độ định thời sang chế độ đếm?
MOV TMOD, #00H
CLR TR1
MOV TMOD, #50H
MOV TCON, #10H
Để làm việc với timer1 thì đoạn mã sau có vấn đề gì? MOV TMOD, #01H SETB TR1
TMOD không thể gán giá trị trực tiếp
Bộ định thời 1 không thể khởi động với TMOD = #01H
TR1 không khởi động đúng bộ định thời 1
Chưa gán giá trị cho TH1 và TL1 ở chế độ 13 bit
Điều gì xảy ra nếu không xóa cờ TF0 sau khi xảy ra tràn?
Bộ định thời tự động khởi động lại
Cờ TF0 giữ nguyên, gây lỗi vòng lặp không mong muốn
Bộ định thời ngừng hoạt động
Không có lỗi xảy ra
Tại sao đoạn mã sau không thể đếm chính xác các xung tại chân T1? MOV TMOD, #10H SETB TR0
TMOD được cấu hình sai, chỉ kích hoạt bộ định thời 0
TR0 không thể kích hoạt chân T1
Giá trị TMOD không tương thích với xung ngoài
Cờ TF1 không được khởi tạo
Lỗi gì xảy ra nếu sử dụng đoạn mã sau để kiểm tra tràn TF1? JNB TCON.3, CONTINUE
TCON.3 không đại diện cho TF1
CONTINUE không được định nghĩa
Lệnh không chính xác, gây lỗi kiểm tra cờ tràn
TF1 tự động xóa trước khi kiểm tra
Khi sử dụng lệnh CLR TR0 và MOV TCON, #10H, nguyên nhân nào sau đây khiến bộ đếm không hoạt động?
Thiếu bật TR0
TR0 không thể kích hoạt xung ngoài
TCON không hỗ trợ chế độ đếm
Cần cấu hình TMOD với chế độ đếm (#05H)
Chế độ 1 của UART trong 8051 hoạt động như thế nào?
Truyền thông đồng bộ với tốc độ cố định
Truyền thông không đồng bộ với tốc độ có thể thay đổi
Chuyển đổi dữ liệu từ song song sang nối tiếp
Truyền thông nối tiếp qua hai kênh độc lập
Vai trò của thanh ghi SBUF trong truyền thông nối tiếp của 8051 là gì?
Lưu trữ dữ liệu được truyền hoặc nhận
Quản lý tốc độ truyền dữ liệu
Lưu địa chỉ của dữ liệu trong RAM
Điều khiển tín hiệu ngắt ngoài
Tại sao cờ TI (Transmit Interrupt) cần được kiểm tra khi truyền dữ liệu nối tiếp?
Để xác định trạng thái bộ đếm/định thời
Để xác minh dữ liệu đã được lưu vào SBUF
Để kích hoạt truyền thông nối tiếp
Để đảm bảo dữ liệu đã được truyền hoàn toàn
Chế độ 2 của UART trong 8051 có ưu điểm gì?
Cho phép truyền song song qua các cổng
Hỗ trợ tốc độ truyền không đồng bộ cao hơn
Cung cấp truyền thông đồng bộ 9 bit (Synchronous 9 bit) với tốc độ cố định (1/32 tần số clock)
Cho phép sử dụng hai thanh ghi dữ liệu độc lập
Thanh ghi nào được sử dụng để cấu hình chế độ truyền thông nối tiếp trong 8051?
SCON
TCON
PCON
TMOD
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ấu hình UART của 8051 ở chế độ 1 (truyền không đồng bộ 8-bit).
MOV SCON, #50H
MOV SCON, #10H
MOV PCON, #80H
MOV TMOD, #20H
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) gửi một ký tự từ thanh ghi A qua UART
MOV A, SBUF
MOV SBUF, TI
MOV SBUF, A
SETB TI
Lệnh nào đú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 để 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 là gì?
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
ORL PCON, #80H
CLR PCON.7
MOV SBUF, A
Lệnh nào đú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 IE, #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
