Đề thi học kỳ 2 môn Vi xử lý - Năm học 2011-2012 - Đại học Bách khoa thành phố Hồ Chí Minh
ĐHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử
Điểm
Đề thi HK 2 – NH:2011-2012
Chữ ký giám thị
Môn: Vi xử lý – Mã MH:402030
Ngày thi: 22/06/2012 – Thời gian làm bài: 110 phút
Đề có 6 trang và SV làm trực tiếp trên đề.
(SV được sử dụng tài liệu của mình,
SV KHÔNG được dùng PC, Laptop, iPad và PC Tablet)
Họ và tên SV: __________________________ MSSV: ____________ Nhóm: ______
Bộ môn Điện Tử duyệt
GV ra đề
Hồ Trung Mỹ
Câu 1: (1 đ)
Cho trước mạch giải mã địa chỉ của hệ thống dùng VXL 8051:
a) Xác định vùng địa chỉ của các SRAM: (0.75 đ)
Vùng địa chỉ của SRAM thứ nhất (U1): _______H – ________H
Vùng địa chỉ của SRAM thứ hai (U2): _______H – ________H
b) Viết các lệnh 8051 để chép 1 byte từ địa chỉ đầu của SRAM thứ nhất vào byte có địa chỉ cuối của
SRAM thứ hai (0.25đ):
VXL_Thi HK_AY1112-S2_trang 1/6
Câu 2: (1.5 đ)
Điền vào các chỗ trống trong cột địa chỉ ROM chương trình, cột mã máy và cột các cách địa chỉ:
Địa chỉ
ROM (hex)
Cách định địa chỉ của toán hạng
thứ nhất thứ hai
Mã máy (hex)
Lệnh 8051
ORG 0
0000
75 81 40
12 00 0A
C0 05
MOV SP, #40H
MOV R5, #80H
LCALL DELAY
SJMP
DELAY: PUSH 5
AGAIN: NOP
$
DJNZ R5,AGAIN
D0 05
POP
RET
END
5
Câu 3: (1.5 đ)
a) (1 đ) Viết chương trình con hợp ngữ 8051 có tên là SS4bitđể so sánh 4 bit cao và 4 bit thấp của
thanh ghi A, sau khi gọi chương trình con này thì nội dung của thanh ghi A vẫn nhu cũ. Kết quả so sánh
tác động đến R7 theo quy ước sau:
4 bit cao của A < 4 bit thấp của A thì R7 = 01H
4 bit cao của A = 4 bit thấp của A thì R7 = 02H
4 bit cao của A > 4 bit thấp của A thì R7 = 04H
b) (0.5 đ) Viết đoạn chương trình hợp ngữ 8051 đọc liên tục giá trị ở cổng P0 và dùng chương trình con
SS4bitđể so sánh 4 bit cao và 4 bit thấp của P0 rồi xuất kết quả ra cổng P1. Đầu đoạn chương trình
này ta phải gán trị SP để cho stack có thể cất dữ liệu vào stack từ địa chỉ 30H.
Bài giải.
a)SS4bit:
b)
Câu 4: (1.5 đ)
Viết chương trình con hợp ngữ 8051 có tên là Menu_R0thực hiện các phép tính sau theo nội dung của
thanh ghi R0 (nếu không thuộc bảng sau, nghĩa là R0 > 3 thì R2 = 0)
R0 Phép toán
Chú thích (R1 là số không dấu có giá trị nhỏ hơn 64)
SV không được dùng lệnh MUL mà phải áp dụng dịch bit
SV không được dùng lệnh DIV mà phải áp dụng dịch bit
0
1
2
3
R2 = R1 * 4
R2 = R1 / 4
R2 = bù 2 của R1
R2 = swap của R1 R2 có trị là hoán đổi 4 bit thấp và 4 bit cao của R1
Bài giải.
VXL_Thi HK_AY1112-S2_trang 2/6
Câu 5: (1 đ) Phân tích đoạn chương trình hợp ngữ 8051H sau bằng cách ghi các giá trị hex vào các chỗ
trống. Giả sử trước khi thực thi chương trình này, nội dung của 1 số ô nhớ trong RAM nội:
(30H) = 46H, (31H) = 75H, (40H) = 57H, (41H) = 89H
Lệnh 8051
MOV R0,#30H
MOV R1,#40H
MOV R2,#2
CLR C
Lần lặp 1
Lần lặp 2
LOOP: MOV A,@R0
ADDC A,@R1
DA A
A =
A =
A =
H
H
A =
A =
A =
H
H
và cờ C =
và cờ C =
MOV @R0,A
INC R0
INC R1
DJNZ R2, LOOP
CLR A
ADDC A,#0
MOV @R0,A
SJMP $
Sau khi thực thi đoạn chương trình trên thì nội dung của các ô nhớ sau có trị số mới là:
(32H) = _____H (31H) = _____H (30H) = _____H
Ý nghĩa của đoạn chương trình trên là: (0.5 đ)
______________________________________________________________________________
______________________________________________________________________________
Câu 6: (1.5 đ) Cho trước mạch sau với các chân ra 1Y1 nối với đoạn a,1Y2 nối với đoạn b,..,2Y3 nối với
đoạn g của LED 7 đoạn (CC) với các điện trở hạn dòng là 330. Biết 8051 hoạt động với XTAL=12MHz
VXL_Thi HK_AY1112-S2_trang 3/6
a) (1 đ) Viết chương trình con DELAY_500MSlàm trễ 500 ms dùng Timer 0 (không dùng ngắt timer) và
chương trình con BCD2LED7Shiển thị 1 ký số BCD trong thanh ghi A ra LED 7 đoạn.
DELAY_500MS:
BCD2LED7S:
; định nghĩa hiển thị
ORG 200H
LED7S:
DB _______________B; 0
DB _______________B; 1
DB _______________B; 2
DB _______________B; 3
DB _______________B; 4
DB _______________B; 5
DB _______________B; 6
DB _______________B; 7
DB _______________B; 8
DB _______________B; 9
b) (0.5 đ) Viết chương trình có dùng các chương trình con ở a) để mạch hoạt động như sau:
Khi có cạnh xuống ở P2.0 lần thứ 1 (3, 5,…) thì hiện lần lượt các số từ 0 đến 9 với thời gian hiện 1
số là 500 ms và quay lại kiểm tra cạnh xuống ở P2.0. Khi hiển thị từ 0 đến 9 thì các cạnh xuống ở
P2.0 sẽ không được kể đến!
Khi có cạnh xuống ở P2.0 lần thứ 2 (4, 6,…) thì chỉ hiện số 0 trong 1s và quay lại kiểm tra P2.0.
Chương trình:
Câu 7: (1 đ)
Xét 1 hệ thống gồm 2 vi xử lý 8051 M1 và M2 được kết nối theo kiểm modem rỗng (null modem) để
truyền nối tiếp với nhau. M1 có nhiệm vụ đọc 1 chuỗi ký tự (kết thúc bằng ký tự rỗng (NULL) = 00H) từ
ROM chương trình bắt đầu từ địa chỉ 200H và xuất nối tiếp đến M2, M2 có nhiệm vụ nhận nối tiếp chuỗi
ký tự này và cất chuỗi vào RAM nội bắt đầu từ địa chỉ 30H. Cả 2 VXL đều sử dụng cổng nối tiếp có tốc độ
baud là 4800 và XTAL = 11.0592 MHz. Chú ý ta không dùng ngắt nối tiếp mà chỉ hỏi vòng RI và TI.
VXL_Thi HK_AY1112-S2_trang 4/6
Bài giải.
Chương trình 8051 ở M1
Chương trình 8051 ở M2
CT con gửi/nhận1 byte nối tiếp
SP_TRANSMIT:
SP_RECEIVE:
Câu 8: (1 đ)
Viết chương trình hợp ngữ 8051 để tạo 1 số xung ở ngõ ra như sau:
Nếu có cạnh xuống ở chân ngắt ngoài 0 (/INT0) thì ngõ ra P1.0 sẽ có 5 xung dương (5 cạnh lên)
Nếu có cạnh xuống ở chân ngắt ngoài 1 (/INT1) thì ngõ ra P1.1 sẽ có 3 xung dương (3 cạnh lên)
Nếu không có cạnh xuống ở /INT0, /INT1 thì P1.0=0 và P1.1=0.
Giả sử các xung kích cạnh xuống ở các ngõ INT0 và INT1 không bao giờ xảy ra đồng thời. Xung dương ở
ngõ ra có được bằng lệnh SETB sau đó CLR.
Bài giải.
Chương trình chính
Chương trình phục vụ ngắt INT0
Chương trình phục vụ ngắt INT1
EX0_ISR:
EX1_ISR:
VXL_Thi HK_AY1112-S2_trang 5/6
Câu 9: (1 đ)
Viết chương trình hợp ngữ hoặc C cho 8051 để tạo dạng sóng tuần hoàn sau ở cổng P1:
Giả sử cho trước chương trình con DELAY_1S (làm trễ 1 giây).
Bài giải.
Kết thúc bài thi HK
VXL_Thi HK_AY1112-S2_trang 6/6
Bạn đang xem tài liệu "Đề thi học kỳ 2 môn Vi xử lý - Năm học 2011-2012 - Đại học Bách khoa thành phố Hồ Chí Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
de_thi_hoc_ky_2_mon_vi_xu_ly_nam_hoc_2011_2012_dai_hoc_bach.pdf

