You are on page 1of 4

Giảng viên ra đề: (Ngày ra đề) Người phê duyệt: (Ngày duyệt đề)

(Chữ ký và Họ tên) (Chữ ký, Chức vụ và Họ tên)

Học kỳ/năm học 1 2023-2024


KIỂM TRA GIỮA KỲ
Ngày thi 16/10/2023
Môn học Vi xử lý
TRƯỜNG ĐH BÁCH KHOA – ĐHQG-HCM Mã môn học EE2039
KHOA ĐIỆN-ĐIỆN TỬ
Thời lượng 60 phút Mã đề 0001
Ghi - Sinh viên ĐƯỢC sử dụng tài liệu giấy. KHÔNG được sử dụng các phương tiện lưu trữ, thiết bị truyền thông.
chú: - Tất cả các lệnh MCU324P phải được viết bằng hợp ngữ (không sử dụng ngôn ngữ C).
- Đề thi gồm 04 trang. Sinh viên làm bài trực tiếp trên đề thi.

Câu hỏi 1) (2.0đ):


a. (0.5đ) Cho đoạn lệnh sau:
LDI R16,(5<<2)
OUT DDRB,R16
Liệt kê các chân xuất, nhập của PORTB được cấu hình như trên.

b. (0.75đ) Chọn các phát biểu/lệnh đúng/sai dưới đây và giải thích ngắn gọn:
Phát biểu/lệnh Đúng/Sai Giải thích
LDI PORTC,0X45
IN R5,0X02
Địa chỉ byte cao và byte thấp của
bộ nhớ Flash tại địa chỉ 1708H
lần lượt là:1709H và 1708H

c. (0.75đ) Viết lệnh để thực hiện thứ tự các công việc theo sơ đồ sau:
(1) (0.5đ) Chuyển nội dung từ ô nhớ ở địa chỉ 0620H sang ô nhớ ở
địa chỉ 0320H.

(2) (0.25đ) Chuyển nội dung từ ô nhớ ở địa chỉ 0320H ra PORTB.

Câu hỏi 2) (2.0đ):


a. (0.5đ) Kể tên ít nhất 5 lệnh ảnh hưởng đến hoạt động của vùng STACK.

b. (1.5đ) Cho đoạn chương trình con EXAM sau đây:


EXAM: LDI R16, 0XC2
LSL R16
PUSH R16
RET

MSSV: ....................................... Họ và tên SV:...................................................................................................... Trang 1/4


i) (0.5đ) Tìm nội dung của R16 sau khi thực hiện xong lệnh LSL R16 và giá trị các cờ N, C và Z
của thanh ghi SREG sau khi thực thi xong lệnh RET. Giải thích cách làm.
R16 = N= C= Z=

ii) (1.0đ) Cho biết khi vào đầu chương trình con EXAM, nội dung SP = 03FDH và nội dung các ô
nhớ SRAM cho dưới đây, tìm nội dung PC và SP sau thực hiện xong lệnh RET, giải thích.
S

Câu hỏi 3) (2.0đ):


Cho đoạn chương trình sau: ;Trường hợp i) ;Trường hợp ii)
LDI R27,0x01
LDI R26,0x00
LD R24,X+
LD R25,X
SBRS R25,7
RJMP TT
COM R25
COM R24
ADIW R24,1
TT: MOVW R22,R24
a. (1.5đ) Cho biết nội dung thanh ghi R23 và R22 (trình bày cách làm ở khoảng trống phía trên) sau khi
thực thực đoạn chương trình trên trong 2 trường hợp sau:
i) (0.75đ) Nội dung các ô nhớ SRAM (0x0100) = 0x39 và (0x0101) = 0x30.
ii) (0.75đ) Nội dung các ô nhớ SRAM (0x0100) = 0xC7 và (0x0101) = 0xCF.

b. (0.5đ) Cho biết chức năng đoạn chương trình trên.

Câu hỏi 4) (2.0đ):


a. (1.0đ) Viết chương trình con có tên KTRA có chức năng kiểm tra nội dung thanh ghi R0 và thực thi
tác vụ sau: nếu 30H ≤ nội dung của thanh ghi R0 ≤ 39H (mã ASCII của các ký tự số từ 0 đến 9) thì cờ
T = 1; ngược lại cờ T = 0.
Lưu ý: nội dung các thanh ghi được bảo toàn sau khi thoát chương trình con.

MSSV: ....................................... Họ và tên SV:...................................................................................................... Trang 2/4


b. (1.0đ) Sử dụng chương trình con (CTC) ở câu a (Sinh viên không cần viết lại CTC, chỉ cần viết tên
CTC và lệnh kết thúc), viết chương trình hoàn chỉnh có chức năng kiểm tra 100 ô nhớ SRAM có địa chỉ
đầu là 0x100: nếu 30H ≤ nội dung ô nhớ đang xét ≤ 39H thì đổi sang mã BCD tương ứng (00H – 09H)
(Ví dụ: 30H → 00H) và cất lại vào ô nhớ đó; ngược lại thì giữ nguyên nội dung ô nhớ đó. Chương trình
sẽ dừng tại chỗ sau khi thực hiện xong việc kiểm tra.

Câu hỏi 5) (2.0đ):


Cho mạch điện như hình bên, với PD1, PD2 là các ngõ
vào nhận dạng SW nhấn. SW0, SW1 có các điện trở
kéo lên nguồn bên trong chip; PortB là các ngõ ra lái
LED 7 đoạn. Giả sử các SW đã được chống rung tiếp
điểm. Ban đầu LED xuất số 0.
a. (0.75đ) Viết chương trình con LOOKUP_7SEG
dùng để tra bảng mã LED 7 đoạn loại anode chung.
Giá trị cần tra được lưu trong thanh ghi R16. Giá trị
bảng mã sau khi tra được lưu trong thanh ghi R17.
Khai báo bảng tra mã 7 đoạn anode chung các số 0 – 9
có tên TAB_LED trong Flash ROM.

MSSV: ....................................... Họ và tên SV:...................................................................................................... Trang 3/4


b. (0.5đ) Viết chương trình con INIT_PORT khởi động các ngõ vào, ngõ ra theo đúng yêu cầu như trên.

c. (0.75đ) Sử dụng chương trình con ở câu a và câu b (Sinh viên không cần viết lại CTC, chỉ cần viết tên
CTC và lệnh kết thúc), viết chương trình thực hiện liên tục đọc giá trị của 2 SW được kết nối như
hình vẽ. Sau khi đọc, căn cứ vào bảng sau và xuất giá trị tương ứng ra LED 7 đoạn.
SW1 SW0 Giá trị hiển thị trên LED 7 đoạn
Mở Mở 1
Mở Đóng 3
Đóng Mở 5
Đóng Đóng 7

---HẾT---

MSSV: ....................................... Họ và tên SV:...................................................................................................... Trang 4/4

You might also like