You are on page 1of 149

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH

ĐỀ THI CUỐI HỌC KỲ CÁC NĂM


VI XỬ LÝ – TÍN HIỆU & HỆ THỐNG – TRƯỜNG ĐIỆN TỪ - MẠCH ĐIỆN TỬ
ĐHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử

Điểm Đề thi – NH: 2016-2017 Chữ ký giám thị


Môn: Vi xử lý – Mã MH: EE2013
Ngày thi: 29/05/2017 – Thời gian làm bài: 120 phút
Đề có 6 câu, 6 trang + 2 trang phụ lục và SV làm trực tiếp trên đề.
(SV không được dùng tài liệu
SV KHÔNG được dùng ĐTDĐ, PC, Laptop, iPad và PC Tablet)
Họ và tên SV: __________________________ MSSV: ____________ Nhóm: ______

Câu 2 – 6 sử dụng vi điều khiển 8051, riêng câu 1 về vi xử lý tổng quát.


Câu 3, 4, 5 phải viết bằng hợp ngữ, riêng câu 6 có thể viết bằng hợp ngữ hoặc C.

(1) Beginning (2) Developing (3) Accomplished (4) Exemplary

Câu 1 (1.0đ)
Câu 2 (1.5đ)
Câu 3 (3.0đ)    
Câu 4 (2.0đ)    
Câu 5 (1.5đ)    
Câu 6 (1.0đ)    
Tổng cộng (10đ)

Câu 1: (1.0 đ) VXL tổng quát


Cho lệnh cộng 𝑹𝟏 + 𝑹𝟐 → 𝑹𝟕, hãy mô tả quá trình thực hiện lệnh trên theo 3 bước: Nhận lệnh (Fetch) –
Giải mã lệnh (Decode) – Thực hiện lệnh (Excute). Trình bày ngắn gọn theo tên các khối mô tả dưới đây

.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
VXL_Thi HK_CQ_162_trang 1/6
Câu 2: (1.5 đ)
a. Một chương trình có cho phép sử dụng ngắt có đoạn chương trình sau:

ORG 0
LJMP MAIN
ORG 0013H
INC A
RETI

ORG 2000H
MAIN: MOV IE, #9FH
MOV A, P1
NOP

Giả sử có ngắt ngoài 1 xảy ra khi đang thực hiện lệnh MOV A, P1. Hãy liệt kê các bước mà vi điều
khiển thực hiện (PC, stack, SP) tại thời điểm bắt đầu xảy ra ngắt và thời điểm kết thúc trình phục vụ
ngắt (SP ban đầu = 07H). (1đ)

.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................

b. Nếu ngắt ngoài 1 và ngắt Timer 0 xảy ra cùng thời điểm thì hệ vi điều khiển sẽ thực hiện trình ngắt
theo thứ tự nào? Biết rằng cả 2 ngắt này đều có cùng mức ưu tiên.

Hãy viết câu lệnh để thay đổi thứ tự hai ngắt trên khi yêu cầu xảy ra cùng thời điểm. (0.5đ)

.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................

Câu 3: (3 đ) Mạch điện sau dùng để đếm và hiển thị số người trong phòng sử dụng 2 Led 7 đoạn và 2 cảm
biến cửa. Cảm biến cửa vào được nối vào chân INT0 và cảm biến cửa ra được đưa vào chân INT1. Khi có
1 người vào hoặc ra thì cảm biến tương ứng tạo ra 1 xung cạnh xuống. LED1 hiển thị số hàng chục, LED0
hiển thị số đơn vị. Ngoài ra chân P2.0 như sơ đồ có nhiệm vụ điều khiển cửa vào: P2.0 = 0 mở cửa; P2.0 =
1 đóng cửa.

VXL_Thi HK_CQ_162_trang 2/6


cpu8051 ic7447
P1.7 D(msb) 7
P1.6 C
LED1
P1.5 B
Cửa vào INT0 P1.4 A

P1.3 D(msb) 7
P1.2 C LED0
P1.1 B
P1.0 A
Cửa ra INT1
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0

a. Cho X là 1 số 8 bit không dấu nhỏ hơn 100 chứa trong ô nhớ RAM nội có địa chỉ 40H. Viết chương
trình con DISPLAY cho hiển thị số này lên 2 LED 7 đoạn. (0.5 đ)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

b. Bộ đếm hiển thị số người đang có trong phòng, khi có người vào bộ hiển thị tăng một, khi có người
ra bộ hiển thị giảm một, giả sử ban đầu trong phòng không có người và cửa chỉ cho một người vào
hoặc ra. Viết chương trình để đếm và hiển thị số người có trong phòng sử dụng ngắt ngoài, biết số
người trong phòng nhỏ hơn 100 (Có thể sử dụng chương trình con DISPLAY để hiển thị) (1.0đ)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_CQ_162_trang 3/6


c. Trong trường hợp phòng chứa được tối đa 80 người, chỉnh sửa đoạn chương trình để khi số người
tối đa thì đóng cửa vào phòng và sau đó số người giảm đi thì cho mở cửa vào. (0.5 đ)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

d. Nếu X ở câu a không giới hạn dưới 100, hãy vẽ bổ sung cho sơ đồ thiết kế và viết lại chương trình
con DISPLAY. (1.0 đ)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 4: (2 đ)
Cần tạo chuỗi xung vuông tại chân P1.0 có tần số 1 Hz (Xtal 24 MHz) và chu kỳ làm việc (duty cycle)
40%.

a. Tính Ton, Toff theo chu kỳ máy (0,5 đ)


.................................................................................................................................................................
.................................................................................................................................................................
.................................................................................................................................................................

b. Viết chương trình dùng Timer 0, không dùng ngắt (0,5 đ)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_CQ_162_trang 4/6


c. Viết chương trình dùng ngắt Timer 0 (1 đ)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 5: (1.5 đ)
Một vi điều khiển 8051 (XTAL = 11,0592 MHz) kết nối với máy tính qua cổng nối tiếp (19200 baud, SMOD
= 1) và nối với một LED qua chân P1.7 (mức 0 làm sáng LED). Cho sẵn chương trình con tạo trễ 1s,
DELAY_1s, viết chương trình nhận ký tự qua cổng nối tiếp và thực hiện công việc tương ứng với ký tự
nhận được:

Ký tự Công việc
'A' Bật sáng LED
'B' Tắt LED
'C' Bật sáng LED trong 1s
'D' Chớp tắt LED, sáng 1s và tắt 1s và lặp lại 3 lần

Giả sử các công việc hoàn tất trước khi nhận ký tự điều khiển mới.

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_CQ_162_trang 5/6


…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 6: (1.0 đ)

Một vi điều khiển 8051 kết nối với một nút nhấn qua chân P3.2, khi nhấn nút thì tạo ra 1 cạnh xuống. Khi
nhấn nút 1 lần thì lưu giá trị 0FH vào ô nhớ 30H, nhấn 2 lần liên tiếp trong thời gian nhỏ hơn 20ms thì lưu
giá trị F0H. Viết chương trình thực hiện chức năng này. Giả sử phím đã được chống rung bằng phần cứng
(XTAL = 12MHz)

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Kết thúc bài thi HK


VXL_Thi HK_CQ_162_trang 6/6
ĐHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử

Điểm Đề thi – NH: 2017-2018 Chữ ký giám thị


Môn: Vi xử lý – Mã MH: EE2013
Ngày thi: 30/05/2018 – Thời gian làm bài: 110 phút
Đề có 6 trang + 2 trang phụ lục và SV làm trực tiếp trên đề.
(SV không được dùng tài liệu
SV KHÔNG được dùng ĐTDĐ, PC, Laptop, iPad và PC Tablet)
Họ và tên SV: __________________________ MSSV: ____________ Nhóm: ______

(Các câu hỏi 3, 4, 5, 6 phải viết bằng hợp ngữ)

(1) Beginning (2) Developing (3) Accomplished (4) Exemplary

Câu 1 (1.0đ)
Câu 2 (2.0đ)
Câu 3 (2.0đ)    
Câu 4 (2.0đ)    
Câu 5 (1.5đ)    
Câu 6 (1.5đ)    
Tổng cộng (10đ)

Câu 1: (2.0 đ)
a. Hãy giải thích chức năng của giải mã lệnh trong CPU
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
b. Nếu một CPU có 16 đường địa chỉ, thì dung lượng tối đa của bộ nhớ nó có thể truy cập là ______
c. Trong VĐK 8051, thanh ghi PC (program counter) có ________ bit
d. Câu lệnh “MOV A, #44H” là câu lênh ____-byte
e. Thanh ghi chứa các cờ báo trong 8051 được gọi là _____________________________
f. Tìm giá trị cờ nhớ CY và AC cho đoạn code sau:
MOV A, #0FFH
ADD A, #01
……………………………………………………………………………………………………
……………………………………………………………………………………………………
g. Băng thanh ghi nào sẽ được sử dụng nếu thay đổi giá trị RS0 và RS1 của thanh ghi PSW qua hai
câu lệnh sau:
SETB PSW.3
SETB PSW.4
h. Đia chỉ của bit P1.5: ________________
i. Địa chỉ của thanh ghi R3 của băng thanh ghi 3: ______
j. Cho biết chân /EA có ý nghĩa gì?
……………………………………………………………………………………………………
……………………………………………………………………………………………………

VXL_Thi HK_172_trang 1/6


Câu 2: (1.0 đ) VXL tổng quát
Hãy điền vào chỗ trống trong hình sau cho thấy hiệu ứng của các cách định địa chỉ:

Câu 3: (2.0 đ)
a) Cho 2 số nhị phân không dấu 16 bit M (chứa trong 2 thanh ghi R7:R6) và N (chứa trong 2 thanh ghi
R5:R4). Hãy viết chương trình con SOSANH so sánh 2 số M và N. Kết quả cất vào cờ F0 (= 1 nếu
M ≥ N; = 0 nếu M < N).

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

b) Cho một chuỗi số gồm 10 số nhị phân không dấu 16 bit chứa trong RAM nội bắt đầu từ ô nhớ 40H
(byte thấp chứa trong ô nhớ có địa chỉ thấp, byte cao chứa trong ô nhớ có địa chỉ cao). Xem như có
sẵn chương trình con SOSANH của câu a (không cần viết nội dung), hãy viết chương trình để tìm
số lớn nhất trong chuỗi số này và cất kết quả vào 2 ô nhớ 31H (byte cao) và 30H (byte thấp).

VXL_Thi HK_172_trang 2/6


…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 4: (2.0 đ)
a. Viết chương trình thực hiện tuần tự các công việc sau và lặp lại, biết rằng 8051 sử dụng thạch anh
11,0592 MHz:
• Nhận số nhị phân không dấu 4 bit X từ 4 bit thấp của Port 1 và số nhị phân không dấu 4 bit Y từ
4 bit thấp của Port 2
• Nhận bit D từ chân P2.4
• Phát nối tiếp data 9 bit, bao gồm D7 – D4 là số X (4 bit), D3 – D0 là số Y (4 bit), bit thứ 9 là bit
D, ra cổng nối tiếp với baudrate 19200
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_172_trang 3/6


b. Viết chương trình thực hiện tuần tự các công việc sau và lặp lại cho một vi điều khiển 8051 khác
(sử dụng thạch anh 11,0592 MHz) để thu data nối tiếp từ vi điều khiển 8051 ở câu a:
• Nhận data 9 bit từ cổng nối tiếp với baudrate 19200, gồm các số X,Y và bit D như mô tả ở câu a
• Thực hiện nếu bit D = 0 và nếu bit D =1
• Xuất kết quả ra Port 1
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 5: (1.5 đ)
a. Viết chương trình tạo xung tần số 400Hz ở ngõ ra P1.0. Cho XTAL =12MHz. (0.5đ)

………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_172_trang 4/6


b. Viết chương trình tạo 2 sóng ra đồng thời ở chân P1.0 và P1.1 theo hình vẽ dưới đây, dùng ngắt
timer. Lưu ý là tần số ở mỗi chân khác nhau. (1.0 đ)

………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 6: (1.5 đ)
Mạch tính cước taxi là hệ thống vi điều khiển 8051 gồm:
• Nút nhấn: khi nhấn tạo 1 xung cạnh xuống; nối vào vào chân /INT0
• Bộ đếm km: tạo ra 1 xung cạnh xuống khi xe chạy được 1 km; nối vào chân /INT1
• LED 7 đoạn: hiển thị giá tiền tính theo đơn vị Ngàn đồng; có 2 chữ số, nối với Port 1 qua 2 IC giải
mã BCD sang LED 7 đoạn 7447
Hoạt động của mạch:
• Ban đầu chưa có khách thì hiển thị giá trị 00
• Khi khách lên xe thì nhấn nút lần 1, xe chạy và tính tiền theo giá 1km là 3 Ngàn đồng (giả sử là giá
tiền không vượt quá 99 Ngàn đồng). Chú ý bắt đầu chở khách là đồng hồ nhảy 3 Ngàn đồng, và cứ
mỗi 1km thì thêm 3 Ngàn đồng.
• Tới nơi đến, thì nhấn nút lần 2 để chốt giá tiền hiển thị cho khách
• Khách trả tiền xuống xe thì tài xế nhấn nút lần 3 thì trở lại trạng thái ban đầu

Hãy viết chương trình mô tả hoạt động trên


(Gợi ý: phần hiển thị giá tiền nên viết trong chương trình chính)

VXL_Thi HK_172_trang 5/6


…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Kết thúc bài thi HK


VXL_Thi HK_172_trang 6/6
ĐHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử

Điểm Đề thi – NH: 2018-2019 Chữ ký giám thị


Môn: Vi xử lý – Mã MH: EE2013
Ngày thi: 28/05/2019 – Thời gian làm bài: 110 phút
Đề có 6 trang + 2 trang phụ lục và SV làm trực tiếp trên đề.
(SV không được dùng tài liệu
SV KHÔNG được dùng ĐTDĐ, PC, Laptop, iPad và PC Tablet)
Họ và tên SV: __________________________ MSSV: ____________ Nhóm: ______

(Các câu hỏi 4, 5, 7 phải viết bằng hợp ngữ; Câu 6 viết bằng hợp ngữ hoặc C)

(1) Beginning (2) Developing (3) Accomplished (4) Exemplary

Câu 1 (1.5đ)
Câu 2 (1.5đ)
Câu 3 (1.0đ)
Câu 4 (1.0đ)    
Câu 5 (1.0đ)    
Câu 6 (1.0đ)    
Câu 7 (3.0đ)    
Tổng cộng (10đ)

Câu 1: (L.O.1) (1.5 đ)


Giả sử các thanh ghi PC, A và R7 lần lượt có nội dung là 4000H, 59H và 7AH. Trong bộ nhớ chương trình
tại địa chỉ 4000H chứa mã lệnh của lệnh ADD A, R7
a. (0.75đ) Hãy mô tả chi tiết quy trình mà vi xử lý thực hiện lệnh trên bao gồm: nhận lệnh, giải mã lệnh
và thực thi lệnh.
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………

b. (0.75đ) Nội dung các cờ CY, AC, OV và P thay đổi như thế nào sau khi lệnh ADD A, R7 được
thực thi xong. Giải thích?
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
VXL_Thi HK_182_trang 1/6
Câu 2: (L.O.1, L.O.4) (1.5 đ)
a. (1.0 đ) Hệ vi xử lý dùng 8051 sử dụng bộ nhớ chương trình ngoài là ROM có dung lượng 64KB
và bộ nhớ dữ liệu ngoài là RAM có dung lượng 64KB như hình dưới. Vẽ thêm các tín hiệu kết nối
̅̅̅̅, ALE...) và bổ sung các thông tin còn thiếu (ghi vào chỗ …) để hoàn chỉnh sơ đồ
(data, address, EA
thiết kế. Địa chỉ bắt đầu RAM/ROM là 0000H.
RAM (64KB)
MCU8051
𝑫𝟕 ÷ 𝑫𝟎
Port0
74HC573
8 8 𝑨…÷𝑨…
̅̅̅
𝐄𝐀 Di Qi

ALE LE

Port2 𝑨…÷𝑨…

̅̅̅̅
𝐑𝐃 ̅̅̅
𝐎𝐄
̅̅̅̅
𝐖𝐑 ഥ
𝐖

𝐂𝐒
̅̅̅̅̅̅
𝐏𝐒𝐄𝐍

ROM (64KB)

𝑫𝟕 ÷ 𝑫𝟎

𝑨…÷𝑨…
Lưu ý:

▪ Di: các ngõ dữ liệu


𝑨…÷𝑨…
▪ A…: các ngõ địa chỉ
̅̅̅
𝐎𝐄
▪ Hoạt động của IC chốt 74HC573 như sau:

𝐂𝐒
• LE = 1: Qi = Di
• LE = 0: chốt ngõ ra Qi

b. (0.25 đ) Viết câu lệnh sao cho ̅̅̅̅


RD tích cực

……………………………………………………………………………………………………
c. (0.25 đ) Viết câu lệnh sao cho ̅̅̅̅̅
WR tích cực

……………………………………………………………………………………………………

Câu 3: (L.O.3) (1.0 đ)


a. (0.25 đ) Cho biết sự khác nhau giữa lệnh CLR C và CLR CY?
……………………………………………………………………………………………………
b. (0.25 đ) Địa chỉ bit của 2AH.5 là:………………………………………………………………..
c. (0.25 đ) Thanh ghi PC sẽ có giá trị bao nhiêu khi có ngắt Timer1 xảy ra?
……………………………………………………………………………………………………
d. (0.25 đ) Viết 01 câu lệnh để đặt bit 5 của thanh ghi R3 (bank 0) lên 1.
Lưu ý: nội dung các bit còn lại của thanh ghi R3 không bị ảnh hưởng.

……………………………………………………………………………………………………

VXL_Thi HK_182_trang 2/6


Câu 4: (L.O.5) (1.0 đ)
Cho bộ nguồn xung chuẩn tạo ra tín hiệu xung vuông có tần số là 60Hz. Tín hiệu xung vuông này được cấp
vào chân P3.4 (ngõ vào T0) của MCU8051. Viết chương trình hẹn giờ thi cho môn Vi xử lý (110 phút) bằng
cách sử dụng Timer với chức năng counter thông qua số xung đếm được. Biết rằng nội dung của bộ đếm
phút (giá trị ban đầu bằng 0) được lưu ở ô nhớ RAM ngoài có địa chỉ là 2000H. Khi nội dung bộ đếm phút
đạt đến 110 (phút) thì bật chuông báo hết giờ thi và chương trình không làm gì cả. Biết rằng chuông được
điều khiển bằng bit P1.0, nếu P1.0 = 1 thì bật chuông, P1.0 = 0 thì tắt chuông. Giả sử fosc = 12Mhz.

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 5: (L.O.5) (1.0 đ)


Viết chương trình liên tục nhận 9 bit dữ liệu từ cổng nối tiếp, với tốc độ baud 9600. Nếu bit thứ 9 của dữ liệu
nhận được bằng 0 thì lưu 8 bit còn lại vào vùng nhớ RAM nội có địa chỉ đầu là 30H; ngược lại lưu vào vùng
nhớ RAM ngoài có địa chỉ đầu là 2000H. Khi lưu đủ 50 byte vào vùng nhớ RAM nội hoặc đủ 100 byte vào
vùng nhớ RAM ngoài thì chương trình không làm gì cả. Biết rằng thạch anh có tần số dao động fosc =
11.059Mhz

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_182_trang 3/6


Câu 6: (L.O.5) (1.0 đ) Sinh viên có thể viết bằng hợp ngữ hoặc C
Biết rằng MCU8051 sử dụng thạch anh có tần số dao động fosc = 12Mhz. Viết chương trình sử dụng ngắt
Timer0 và ngắt cổng nối tiếp (ngắt cổng nối tiếp có thể dừng trình phục vụ ngắt timer0 nếu ngắt cổng nối
tiếp xảy ra khi trình phục vụ ngắt timer0 đang thực thi) thực hiện các chức năng sau:
▪ Ngắt Timer0: có nhiệm vụ tạo xung vuông có tần số 1Khz, chu kỳ nhiệm vụ 50% trên chân P2.0
▪ Ngắt cổng nối tiếp: nhận dữ liệu 8 bit về từ cổng nối tiếp với tốc độ baud 2400 và xuất ra Port 1.

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

Câu 7: (L.O.5, L.O.6) (3.0 đ)


Cho mạch đếm sản phẩm như hình vẽ:
HÀNG CHỤC +5V
U1 MCU8051 U2 74HC573
330Ω a
P1.0 D0 Q0
Q1 b
P1.1 D1 c
P1.2 D2 Q2
Q3 d
P1.3 D3 e
Q4
P1.4 D4 f
cảm biến P1.5 Q5 g
P3.3 D5
ngõ ra P1.6 D6 Q6 dp
Q7
P1.7 D7
LE
P2.1
HÀNG ĐƠN VỊ +5V
băng chuyền U3 74HC573
330Ω
a
D0 Q0
Q1 b
D1 c
D2 Q2 d
D3 Q3
cảm biến e
P3.2 D4 Q4
ngõ vào Q5 f
D5 g
Q6 dp
D6 Q7
P2.2 D7 LE
cửa vào
P2.0

Hoạt động của mạch đếm sản phẩm được mô tả như sau:
▪ P2.2 điều khiển đóng/mở cửa vào: P2.2=0 mở cửa vào, P2.2=1 đóng cửa vào
▪ Khi có sản phẩm vào băng chuyền, cảm biến ngõ vào phát ra một xung cạnh xuống, bộ đếm tăng 1
đơn vị.
▪ Khi có sản phẩm ra khỏi băng chuyền, cảm biến ngõ ra phát ra một xung cạnh xuống, bộ đếm giảm
1 đơn vị.
▪ Khi bộ đếm bằng hay lớn hơn 90, điều khiển đóng cửa vào, chỉ cho sản phẩm ra khỏi băng chuyền.
Và chỉ điều khiển mở cửa vào trở lại khi bộ đếm nhỏ hơn hoặc bằng 80
▪ Hiển thị cập nhật bộ đếm lên 2 LED 7 đoạn Anode chung.
VXL_Thi HK_182_trang 4/6
▪ Cho bảng tra mã 7 đoạn lái LED Anode chung ứng với số BCD như sau:
BCD 0 1 2 3 4 5 6 7 8 9
Mã LED 7 đoạn 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H

a. (L.O.5) (0.5 đ) Viết chương trình con tên BCD_7SEG chuyển số BCD không nén trong thanh ghi A
sang mã LED 7 đoạn (theo bảng tra trên). Kết quả được lưu trở lại trong thanh ghi A.

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

b. (L.O.5) (0.5 đ) Viết chương trình con tên BIN_BCD chuyển đổi số nhị phân 8 bit trong thanh ghi A
sang số BCD không nén 3 ký số, với ký số hàng trăm, hàng chục và hàng đơn vị được lưu tương ứng
trong các ô nhớ RAM nội có địa chỉ 32H, 31H và 30H.

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_182_trang 5/6


c. (L.O.5) (1.0 đ) Viết chương trình con tên DISPLAY hiển thị hai ký số BCD hàng chục và hàng đơn
vị lần lượt chứa trong các ô nhớ có địa chỉ 31H và 30H ra 2 LED 7 đoạn tương ứng theo hình vẽ trên,
sử dụng chương trình con BCD_7SEG ở câu a (không cần viết lại chương trình con này).

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

d. (L.O.6) (1.0 đ) Viết chương trình đếm sản phẩm và điều khiển cửa vào theo hoạt động của sơ đồ
hình vẽ trên:
• Sử dụng ngắt để đếm sản phẩm vào/ra băng chuyền.
• Chương trình chính thực hiện cập nhật hiển thị giá trị bộ đếm ra 2 LED 7 đoạn và điều khiển
đóng /mở cửa vào. Sử dụng các chương trình con ở các câu a, b và c (không cần viết lại các
chương trình con này).
Lưu ý: Hoạt động của IC chốt 74HC573 như sau:
• LE = 1: Qi = Di
• LE = 0: chốt ngõ ra Qi

…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………
…………………………………………… ……………………………………………

VXL_Thi HK_182_trang 6/6


(Ngày ra đề) (Ngày duyệt đề)
Giảng viên ra đề: Người phê duyệt:
(Chữ ký và Họ tên) (Chữ ký, Chức vụ và Họ tên)

Học kỳ/năm học 2 2019-2020


THI CUỐI KỲ Ngày thi 23/7/2020
Môn học Vi xử lý
TRƯỜNG ĐH BÁCH KHOA – ĐHQG-HCM Mã môn học EE2013
KHOA ĐIỆN-ĐIỆN TỬ
Thời lượng 120 phút Mã đề
Ghi - Sinh viên KHÔNG được sử dụng tài liệu
chú: - Tất cả các lệnh MCU8051 phải được viết bằng hợp ngữ (không sử dụng ngôn ngữ C)
- Đề thi gồm 03 trang và 02 trang phụ lục.

Câu hỏi 1) (L.O.1, L.O.2, L.O.3, L.O.4) (4.0đ): Gồm 5 câu nhỏ đánh số từ 1 đến 5

1. (0.5đ) Viết các lệnh để bit SMOD=1 (SMOD là MSB của thanh ghi PCON) mà không ảnh hưởng đến
các bit còn lại trong thanh ghi PCON.

2. (0.5đ) Giả sử cổng nối tiếp được khởi động mode 1 và tốc độ baud được cung cấp bởi tốc độ tràn của
Timer1. Cho Fosc=11.059Mhz, SMOD=0, xem các dòng lệnh sau:
MOV TMOD,#20H
MOV TH1,#-6
a. (0.25đ) Tính tốc độ tràn Timer1?
b. (0.25đ) Tính tốc độ baud (baudrate)?

3. (1.0đ) Cho biết thứ tự thực hiện các dòng lệnh trong chương trình sau (Ví dụ: 1, 2, 3, 4, 5, …):

STT CHƯƠNG TRÌNH STT CHƯƠNG TRÌNH


ORG 0000H 7 MAIN: MOV IE,#82H
1 LJMP MAIN 8 ACALL DL
ORG 000BH 9 SETB TF0
2 SETB TF1 10 SJMP $
3 CPL A 11 DL: INC R7
4 RETI 12 RET
ORG 001BH END
5 CPL P1.0
6 RETI

4. (1.0đ) Viết chương trình con tên SS16 thực hiện so sánh 2 số nhị phân 16 bit không dấu cất trong B_A
(thanh ghi B là byte cao) và R7_R6 (R7 là byte cao). Kết quả so sánh trả về cờ carry như sau:
 Cờ carry = 0: nếu B_A ≥ R7_R6
 Cờ carry = 1: nếu B_A < R7_R6
Lưu ý: bảo toàn nội dung các thanh ghi trên khi thoát khỏi chương trình con.
5. (1.0đ) MCU8051 kết nối với 2 ngõ vào SW1 và SW2 được nối tương ứng đến chân P1.7 và P1.6.
a. (0.5đ) Viết chương trình liên tục kiểm tra trạng thái SW1 để thực hiện các nhiệm vụ sau:
 SW1 = 0: xuất mã ASCII của ký tự N ra Port 2
 SW1 = 1: xuất mã ASCII của ký tự Y ra Port 2
b. (0.5đ) Viết chương trình liên tục kiểm tra trạng thái SW1 và SW2 để thực hiện nhiệm vụ theo bảng
sau:
SW1 SW2 Xuất ra Port 2 mã ASCII của ký tự
0 0 0
0 1 1
1 0 2
1 1 3

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


Câu hỏi 2) (L.O.5, L.O.6) (2.0đ): Gồm 4 câu nhỏ đánh số từ 1 đến 4
Cho sơ đồ kết nối giữa MCU8051 vớicác LED đơn như sau:

MCU 8051
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

8 x 330

1. (0.5đ) Sử dụng Timer0, viết chương trình con có tên DL200 có chức năng tạo trễ 200ms. Cho Fosc =
12Mhz. SV khai báo mode Timer trong chương trình con.
2. (0.5đ) Viết chương trình thực hiện tuần tự các công việc sau (không sử dụng ngắt):
a. Kiểm tra chuyển trạng thái từ 1 xuống 0 trên chân P3.3 của MCU8051.
b. Nếu có chuyển trạng thái từ 1 xuống 0 sẽ thực hiện xuất lần lượt chuỗi dữ liệu: 18H, 3CH, 7EH,
FFH được lưu trong bộ nhớ chương trình ra Port1 của MCU8051. Thời gian giữa 2 lần xuất dữ
liệu là 200ms (sử dụng chương trình con DL200 ở câu trên, không cần viết lại chương trình con).
c. Thực hiện lại liên tục các công việc a, b.
3. (0.5đ) Thực hiện lại câu trên bằng cách sử dụng ngắt ngoài 1. Nhận xét đáp ứng của MCU8051 so với
câu trên (trường hợp không dùng ngắt)?
4. (0.5đ) Cho biết hiệu ứng của các đèn LED trên Port1 khi có chuyển trạng thái từ 1 xuống 0 trên chân
P3.3?

Câu hỏi 3) (L.O.5) (2.0đ): Gồm 2 câu nhỏ đánh số từ 1 đến 2


1. (1.0đ) Sử dụng Timer0 (không dùng ngắt timer), viết 2 chương trình con có tên XUNG25 và XUNG75
có cùng chức năng tạo 1 xung vuông ở ngõ ra P1.7 có chu kỳ T = 1ms. Trong đó, XUNG25 có chu kỳ
nhiệm vụ là 25% và XUNG75 có chu kỳ nhiệm vụ 75%. Cho Fosc = 12Mhz.
Minh họa 1 xung vuông: TH TL Chu kỳ nhiệm vụ = TH/T (%)
T
Lưu ý: Giả sử thanh ghi TMOD đã thiết lập timer0 hoạt động ở mode 1 (16 bit) trong chương trình
chính. Trong các chương trình con không cần khởi tạo giá trị cho TMOD.
2. (1.0đ) Viết chương trình thu ký tự từ port nối tiếp chế độ UART 9 bit (tốc độ baud = 1200, Fosc =
12Mhz, SMOD = 0) và tạo chuỗi xung vuông (mỗi xung có chu kỳ T = 1ms) ra chân P1.7 theo định
dạng sau:
 8 bit dữ liệu: xác định số lượng xung trong chuỗi xung vuông
 Bit thu thứ 9: xác định chu kỳ nhiệm vụ của xung vuông có T = 1ms
o Bit thu thứ 9 = 0: xung có chu kỳ nhiệm vụ 25%
o Bit thu thứ 9 = 1: xung có chu kỳ nhiệm vụ 75%
Ví dụ:  9 bit thu được = 0 00001111  tạo 15 xung vuông có chu kỳ nhiệm vụ = 25%
 9 bit thu được = 1 00001111  tạo 15 xung vuông có chu kỳ nhiệm vụ = 75%
Lưu ý:
 Sử dụng các chương trình con (XUNG25 và XUNG75) ở câu trên cho việc tạo 1 xung vuông
(không cần viết lại chương trình con).
 Khi tạo xong chuỗi xung trên chân P1.7 thì mới nhận ký tự tiếp theo từ port nối tiếp.
 Trường hợp 8 bit dữ liệu nhận được có giá trị bằng 0 thì không tạo xung mà chỉ chờ nhận ký tự
tiếp theo từ port nối tiếp.
 Quá trình này được lặp lại liên tục.
 Sinh viên cần phải thiết lập các thông số cần thiết cho việc truyền qua cổng nối tiếp trong chương
trình chính.

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


Câu hỏi 4) (L.O.5, L.O.6) (2.0đ): Gồm 3 câu nhỏ đánh số từ 1 đến 3
Cho mạch điện MCU8051 đo độ rộng xung vuông và hiển thị như hình vẽ dưới đây:
 Tín hiệu cần đo độ rộng xung đưa vào ngõ P_IN=P3.2, tầm đo tối đa 250µs
 Hiển thị giá trị đo bằng 2 số HEX ra 2 LED 7 đoạn Anode chung tương ứng
 Khi nhấn SW (tích cực mức 0) phát giá trị đo ra cổng nối tiếp ngõ S_OUT=P3.1
 Hoạt động của IC74HC573(U2 và U3) như sau:
 LE=1→Qi=Di (i=0÷7)
 LE=0→Qi không đổi

1. (0.5đ) Viết một chương trình con tên DISPLAY hiển thị mã HEX cất trong thanh ghi A ra 2 LED 7
đoạn Anode chung theo đúng thứ tự high nibble (4 bit cao của thanh ghi A) và low nibble (4 bit thấp của
thanh ghi A) như hình vẽ. Cho bảng tra mã 7 đoạn Anode chung và mã ASCII (dạng số HEX) như sau:
Digit 0 1 2 3 4 5 6 7 8 9 A B C D E F
Mã LED 7 đoạn (H) 0C0 0F9 0A4 0B0 99 92 82 0F8 80 90 88 83 0C6 0A1 86 8E
Mã ASCII (H) 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46

2. (0.5đ) Giả sử đã thiết lập các thông số truyền qua cổng nối tiếp trong chương trình chính. Viết một
chương trình con tên OUT_CHR phát 2 ký tự mã HEX cất trong thanh ghi A dưới dạng mã ASCII ra cổng
nối tiếp, ký tự ứng với nibble thấp (4 bit thấp của thanh ghi A) phát trước, nibble cao (4 bit cao của thanh
ghi A) phát sau. Ví dụ: (A)=0AH→phát ra cổng nối tiếp 41H, 30H

3. (1.0đ) Viết một chương trình đo độ rộng xung thực hiện các công việc sau:
 Sử dụng Timer đo độ rộng xung, sử dụng ngắt ngoài đọc giá trị đo độ rộng xung (tính theo s).
 Chương trình chính xuất giá trị đo độ rộng xung dạng mã HEX ra bộ hiển thị, và kiểm tra nếu có
nhấn SW sẽ phát 2 ký tự mã HEX đang hiển thị dưới dạng mã ASCII ra cổng nối tiếp.
 Lặp vòng liên tục các công việc trên.
 Sử dụng chương trình con DISPLAY và OUT_CHR ở 2 câu trên (chỉ cần khai báo tên chương trình
con, không cần ghi lại nội dung chi tiết).
 Cho Fosc=12Mhz, baudrate=1200, SMOD=0.
Lưu ý: Sinh viên cần phải thiết lập các thông số cần thiết cho việc truyền qua cổng nối tiếp trong chương
trình chính.

--- HẾT---

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


ĐHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử

Điểm Đề thi – NH: 2016-2017 Chữ ký giám thị


Môn: Vi xử lý – Mã MH: EE2013
Ngày thi: 29/05/2017 – Thời gian làm bài: 120 phút
Đề có 6 câu, 6 trang + 2 trang phụ lục và SV làm trực tiếp trên đề.
(SV không được dùng tài liệu
SV KHÔNG được dùng ĐTDĐ, PC, Laptop, iPad và PC Tablet)
Họ và tên SV: __________________________ MSSV: ____________ Nhóm: ______

(Các câu hỏi 3,4,5 phải viết bằng hợp ngữ, câu 6 có thể viết bằng hợp ngữ hoặc C)

(1) Beginning (2) Developing (3) Accomplished (4) Exemplary


Câu 1 (1.0đ)
Câu 2 (1.5đ)
Câu 3 (3.0đ)    
Câu 4 (2.0đ)    
Câu 5 (1.5đ)    
Câu 6 (1.0đ)    
Tổng cộng (10đ)

Câu 1: (1.0 đ) VXL tổng quát


Cho lệnh cộng 𝑹𝟏 + 𝑹𝟐 → 𝑹𝟕, hãy mô tả quá trình thực hiện lệnh trên theo 3 bước: Nhận lệnh (Fetch) –
Giải mã lệnh (Decode) – Thực hiện lệnh (Excute). Trình bày ngắn gọn theo tên các khối mô tả dưới đây

+ Nhận lệnh: nội dung của thanh ghi PC gửi địa chỉ đến Memory để đọc lệnh. Lệnh từ Memory
được đưa vào thanh ghi IR.
+ Giải mã lệnh: nội dung lệnh trong IR được chuyển đến khôi Control Unit để giải mã, chọn
toán hạng là thanh ghi R1, R2 trong tập thanh ghi; đồng thời chọn phép toán cộng gửi đến
ALU.
+ Thực hiện lệnh: ALU thực hiện phép toán cộng và cất kết quả vào thanh ghi R7 trong Register
File. PC tăng giá trị để chọn lệnh tiếp theo

VXL_Thi HK_N5H1_trang 1/6


Câu 2: (1.5 đ)
Một chương trình có cho phép sử dụng ngắt có đoạn chương trình sau:

ORG 0
LJMP MAIN
ORG 0013H
INC A
RETI

ORG 2000H
MAIN: MOV IE, #9FH
MOV A, P1
NOP

a. Giả sử có ngắt ngoài 1 xảy ra khi đang thực hiện lệnh MOV A, P1. Hãy liệt kê các bước mà vi điều
khiển thực hiện (PC, stack, SP) tại thời điểm bắt đầu xảy ra ngắt và thời điểm kết thúc trình phục vụ
ngắt (SP ban đầu = 07H). (1đ)

Khi đang thực hiện lệnh MOV A, P1 thì PC hiện hành là 2000H + 3 + 2 = 2005H.
Do có yêu cầu ngắt ngoài 1, nên nội dung của PC được cất vào vùng stack theo các bước sau:
- SP tăng 1: SP = 08H, byte thâp của PC -> (SP): (08H) = 05H
- SP tăng 1: SP = 09H, byte cao của PC -> (SP): (09H) = 20H
- PC thay đổi giá trị mới là vector địa chỉ ngắt ngoài 1: PC = 0013H
Vào trình phục vụ ngắt gặp lệnh RETI, thực hiện các bước sau:
- (SP) -> byte cao của PC: (09H) = 20H, rồi SP giảm 1: SP = 08H
- (SP) -> byte thấp của PC: (08H) = 05H, rồi SP giảm 1: SP =07H
Với PC = 2005H thì sau khi kết thúc ctrình ngắt thì sẽ thực hiện tiếp lệnh NOP

b. Nếu ngắt ngoài 1 và ngắt Timer 0 xảy ra cùng thời điểm thì hệ vi điều khiển sẽ thực hiện trình ngắt
theo thứ tự nào? Biết rằng cả 2 ngắt này đều có cùng mức ưu tiên.

Hãy viết câu lệnh để thay đổi thứ tự hai ngắt trên khi yêu cầu xảy ra cùng thời điểm. (0.5đ)

- Khi ngắt xảy ra cùng thời điểm thì hệ vi điều khiển sẽ thực hiện ngắt timer0 trước rồi đến ngắt
ngoài 1.
- Lệnh để thay đổi thứ tự thực hiện:
SETB PX1

Câu 3: (3 đ) Mạch điện sau dùng để đếm và hiển thị số người trong phòng sử dụng 2 Led 7 đoạn và 2 cảm
biến cửa. Cảm biến cửa vào được nối vào chân INT0 và cảm biến cửa ra được đưa vào chân INT1. Khi có
1 người vào hoặc ra thì cảm biến tương ứng tạo ra 1 xung cạnh xuống. LED1 hiển thị số hàng chục, LED0
hiển thị số đơn vị. Ngoài ra chân P2.0 như sơ đồ có nhiệm vụ điều khiển cửa vào: P2.0 = 0 mở cửa; P2.0 =
1 đóng cửa.

VXL_Thi HK_N5H1_trang 2/6


cpu8051 ic7447
P1.7 D(msb) 8
P1.6 C
LED1
P1.5 B
Cửa vào INT0 P1.4 A
P1.3 D(msb) 8
P1.2 C LED0
P1.1 B
P1.0 A
Cửa ra INT1
P2.7 D(msb) 8
P2.6 C
P2.5 LED2
B
P2.4 A
P2.3
P2.2
P2.1
P2.0

a. Cho X là 1 số 8 bit không dấu nhỏ hơn 100 chứa trong ô nhớ RAM nội có địa chỉ 40H. Viết chương
trình con DISPLAY cho hiển thị số này lên 2 LED 7 đoạn. (0.5 đ)

DISPLAY: MOV A, 40H


MOV B, #10
DIV AB
SWAP A
ORL A, B
MOV P1, A
RET

b. Bộ đếm hiển thị số người đang có trong phòng, khi có người vào bộ hiển thị tăng một, khi có người
ra bộ hiển thị giảm một, giả sử ban đầu trong phòng không có người và cửa chỉ cho một người vào
hoặc ra. Viết chương trình để đếm và hiển thị số người có trong phòng sử dụng ngắt ngoài, biết số
người trong phòng nhỏ hơn 100 (Có thể sử dụng chương trình con DISPLAY để hiển thị) (1.0đ)

ORG 0000H MAIN: MOV 40H, #0


LJMP MAIN ; (40H) là bdem = 0
ORG 0003H CLR P2.0
INC 40H ; tăng bdem ; mở cửa vào
RETI SETB IT0
ORG 0013H SETB IT1
DEC 40H ; giảm bdem ; ngắt ngoài cạnh xuống
RETI
MOV IE, #10000101B
LOOP: LCALL DISPLAY
SJMP LOOP
END

VXL_Thi HK_N5H1_trang 3/6


c. Trong trường hợp phòng chứa được tối đa 80 người, chỉnh sửa đoạn chương trình để khi số người
tối đa thì đóng cửa vào phòng và sau đó số người giảm đi thì cho mở cửa vào. (0.5 đ)

LOOP: CLR P2.0


LCALL DISPLAY ; <= 80 mở cửa
MOV A, 40H SJMP LOOP
CJNE A, #80, $+3 CLOSE:
JNC CLOSE SETB P2.0
; >80 đóng cửa
SJMP LOOP

d. Nếu X ở câu a không giới hạn dưới 100, hãy vẽ bổ sung cho sơ đồ thiết kế và viết lại chương trình
con DISPLAY. (1.0 đ)

DISPLAY: MOV A, 40H MOV A,B


MOV B, #100 MOV B, #10
DIV AB DIV AB
SWAP A SWAP A
ANL P2, #0FH ORL A,B
ADD A, P2 MOV P1, A
MOV P2, A RET

Câu 4: (2 đ)
Cần tạo chuỗi xung vuông tại chân P1.0 có tần số 1 Hz (Xtal 24 MHz) và chu kỳ làm việc (duty cycle)
40%.

a. Tính Ton, Toff theo chu kỳ máy (0,5 đ)


Xtal = 24MHz => 1MC = 0.5us
F= 1Hz => T = 1s =>
Ton = 40% T = 400ms = 400 000us = 800 000 MC = 16 x 50 000 MC
Toff = 60% T = 600ms = 600 000us = 1200 000 MC = 24 x 50 000 MC

b. Viết chương trình dùng Timer 0, không dùng ngắt (0,5 đ)

MAIN: MOV TMOD, #01H DELAY:


LAP: SETB P1.0 MOV TH0, #High(-50000)
MOV R7, #16 MOV TL0, #Low(-50000)
LAP_1: LCALL DELAY SETB TR0
DJNZ R7,LAP_1 JNB TF0, $
CLR P1.0 CLR TF0
MOV R7, #24 CLR TR0
LAP_2: LCALL DELAY RET
DJNZ R7, LAP_2
SJMP LAP

VXL_Thi HK_N5H1_trang 4/6


c. Viết chương trình dùng ngắt Timer 0 (1 đ)

ORG 0000H ISR_T0:


LJMP MAIN CLR TR0
ORG 000BH DJNZ R7, TTUC
LJMP ISR_T0 ; giảm bdem, khác 0 thi thoát ngắt
CPL P1.0
MAIN: MOV TMOD, #01H ; bdem = 0 thì bù P1.0
SETB P1.0 JNB P1.0, NAP_24
: mức cao ; nếu P1.0 =1 thì cho bdem = 16
MOV R7, #16 MOV R7, #16
: bdem = 16 SJMP TTUC
MOV TH0, #High(-50000) NAP_24:
MOV TL0, #Low(-50000) MOV R7, #24
SETB TR0 ; nếu P1.0 = 0 thì cho bdem =24
MOV IE, #10000010B TTUC:
SJMP $ MOV TH0, #High(-50000)
MOV TL0, #Low(-50000)
SETB TR0
RETI
END

Câu 5: (1.5 đ)
Một vi điều khiển 8051 (Xtal 11,0592 MHz) kết nối với máy tính qua cổng nối tiếp (19200 baud, SMOD =
1) và nối với một LED qua chân P1.7 (mức 0 làm sáng LED). Cho sẵn chương trình con tạo trễ 1s,
DELAY_1s, viết chương trình nhận ký tự qua cổng nối tiếp và thực hiện công việc tương ứng với ký tự
nhận được:

Ký tự Công việc
'A' Bật sáng LED
'B' Tắt LED
'C' Bật sáng LED trong 1s
'D' Chớp tắt LED, sáng 1s và tắt 1s và lặp lại 3 lần

Giả sử các công việc hoàn tất trước khi nhận ký tự điều khiển mới.

MOV TMOD, #21H TT2: CJNE A, #’C”, TT3


MOV TH1, # - 3 CLR P1.7
MOV A, PCON LCALL DL1S
SETB ACC.7 SETB P1.7
MOV PCON, A SJMP LAP
SETB TR1 TT3: CJNE A, #’D’, LAP
MOV SCON, #50H MOV R7, #3
LAP: JNB RI, LAP
CLR RI
LAP3: CLR P1.7
MOV A, SBUF
LCALL DL1S
CJNE A, #’A’, TT1
SETB P1.7
CLR P1.7
LCALL DL1S
SJMP LAP
DJNZ R7, LAP3
TT1: CJNE A, #’B’, TT2
SJMP LAP
SETB P1.7
SJMP LAP

VXL_Thi HK_N5H1_trang 5/6


DL1S: MOV R6, #20
LAPDL: MOV TH0, #High(-50000)
MOV TL0, #Low(-50000)
SETB TR0
JNB TF0, $
CLR TF0
CLR TR0
DJNZ R6, LAPDL
RET

Câu 6: (1.0 đ)
Một vi điều khiển 8051 kết nối với một nút nhấn qua chân P3.2, khi nhấn nút thì tạo ra 1 cạnh xuống. Khi
nhấn nút 1 lần thì lưu giá trị 0FH vào ô nhớ 30H, nhấn 2 lần liên tiếp trong thời gian nhỏ hơn 20ms thì lưu
giá trị F0H. Viết chương trình thực hiện chức năng này. Giả sử phím đã được chống rung bằng phần cứng
(XTAL = 12MHz)
ORG 0000H
LJMP MAIN

ORG 0003H
LJMP ISR_EX0

ORG 000BH
LJMP ISR_T0

MAIN: MOV A, #0 ; khởi động biến đếm số lần nhấn phím


MOV R0,#30H ;ô nhớ cần nạp giá trị
MOV TMOD,#01H ;khởi động timer0 hoạt động mode1
MOV TH0,#HIGH(-20000)
MOV TL0,#LOW(-20000)
MOV IE, #10000011B ; cho phép ngắt ngoài 0 và ngắt timer0
SETB IT0 ;ngắt ngoài tác động cạnh xuống
SJMP $

ISR_EX0: INC A ; khi có tác động của phím nhấn thì tăng biến đếm
SETB TR0 ;đồng thời cho timer chạy
RETI

ISR_T0: CLR TR0 ;dừng timer


CJNE A,#1,TT ;kiểm tra số lần nhấn phím
MOV @R0,#0FH ;nạp giá trị cho ô nhớ theo yêu cầu
SJMP KTHUC
TT: CJNE A,#2,KTHUC
MOV @R0,#0F0H
KTHUC: MOV A,#0 ;nạp lại giá trị ban đầu cho biến đếm
MOV TH0,#HIGH(-20000) ;
MOV TL0,#LOW(-20000)
RETI
END

VXL_Thi HK_N5H1_trang 6/6


DHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử

Điểm Đề thi – NH: 2017-2018 Chữ ký giám thị


Môn: Vi xử lý – Mã MH: EE2013
Ngày thi: 30/05/2018 – Thời gian làm bài: 110 phút
Đề có 6 trang + 2 trang phụ lục và SV làm trực tiếp trên đề.
(SV không được dùng tài liệu
SV KHÔNG được dùng ĐTDĐ, PC, Laptop, iPad và PC Tablet)
Họ và tên SV: ___ĐÁP ÁN_______________________ MSSV: ____________ Nhóm: ______

(Các câu hỏi 3, 4, 5, 6 phải viết bằng hợp ngữ)

(1) Beginning (2) Developing (3) Accomplished (4) Exemplary

Câu 1 (1.0đ)
Câu 2 (2.0đ)
Câu 3 (2.0đ)    
Câu 4 (2.0đ)    
Câu 5 (1.5đ)    
Câu 6 (1.5đ)    
Tổng cộng (10đ)

Câu 1: (2.0 đ)
a. Trong VĐK 8051, thanh ghi PC (program counter) có ___16_____ bit
b. Câu lệnh “MOV A, #44H” là câu lênh __2__-byte
c. Thanh ghi chứa các cờ báo trong 8051 được gọi là ____________PSW_________________
d. Hãy giải thích chức năng của giải mã lệnh trong CPU
Xác định phép toán/lệnh, toán hạng và cách định địa chỉ của câu lệnh.

e. Nếu một CPU có 16 đường địa chỉ, thì dung lượng tối đa của bộ nhớ nó có thể truy cập là _64K ô
nhớ hoặc 64K x n (bit) với n là số bit data của ô nhớ.
f. Tìm giá trị cờ nhớ CY và AC cho đoạn code sau:
MOV A, #0FFH
ADD A, #01
…CY = 1, AC = 1 ………………………………………………………………………
g. Băng thanh ghi nào sẽ được sử dụng nếu thay đổi giá trị RS0 và RS1 của thanh ghi PSW qua hai
câu lệnh sau: Bank 3
SETB PSW.3
SETB PSW.4
h. Đia chỉ của bit P1.5: ________95H________
i. Địa chỉ của thanh ghi R3 của băng thanh ghi 3: ___1BH___
j. Cho biết chân /EA có ý nghĩa gì?
/EA = 0 : chọn ROM ngoài
/EA = 1: chọn ROM nội

VXL_Thi HK_172_trang 1/7


Câu 2: (1.0 đ) VXL tổng quát
Hãy điền vào chỗ trống trong hình sau cho thấy hiệu ứng của các cách định địa chỉ: (PC =320)

Câu 3: (2.0 đ)
a) Cho 2 số nhị phân không dấu 16 bit M (chứa trong 2 thanh ghi R7:R6) và N (chứa trong 2 thanh ghi
R5:R4). Hãy viết chương trình con SOSANH so sánh 2 số M và N. Kết quả cất vào cờ F0 (= 1 nếu
M ≥ N; = 0 nếu M < N).

Cách 1: Cách 2:
SOSANH: MOV A, R7
SOSANH:
CJNE A, 05H, KHAC
MOV A, R7
MOV A, R6
CJNE A, 05H, KHONGBANG ;SS byte cao
CJNE A, 04H, $+3
SJMP BTHAP ; neu bang thi SS byte thap
JNC SETF0
KHONGBANG:
CLRF0: CLR F0
JC MNHOHONN
SJMP KT
SETB F0
KHAC: JC CLRF0
SJMP EXIT
SETF0: SETB F0
MNHOHONN:
KT: RET
CLR F0
SJMO EXIT
BTHAP:
MOV A, R6
CJNE A, 04H, $+3 ;SS byte thap
JC MNHOHONN
SETB F0
EXIT:
RET

b) Cho một chuỗi số gồm 10 số nhị phân không dấu 16 bit chứa trong RAM nội bắt đầu từ ô nhớ 40H
(byte thấp chứa trong ô nhớ có địa chỉ thấp, byte cao chứa trong ô nhớ có địa chỉ cao). Xem như có
sẵn chương trình con SOSANH của câu a (không cần viết nội dung), hãy viết chương trình để tìm
số lớn nhất trong chuỗi số này và cất kết quả vào 2 ô nhớ 31H (byte cao) và 30H (byte thấp).

VXL_Thi HK_172_trang 2/7


Cách 1: Cách 2:
MOV R3, #10 ORG 0000H
MOV R0, #40H MOV R2,#9 ;lap 9 lan
MOV R5, #0 ; MAX MOV 31H,41H ;lay so max la so dau
MOV R4, #0 tien (byte cao)
LP: MOV 06H, @R0 MOV 30H,40H ;byte thap
INC R0 MOV R0,#42H ;dia chi so ke tiep
MOV 07H, @R0 LOOP:
INC R0 MOV R7,31H ;lay so max hien tai vao
ACALL SOSANH R7:R6
JB F0, TT MOV R6,30H
MOV R5, 07H MOV A,@R0 ;lay so ke tiep vao R5:R4
MOV R4, 06H MOV R4,A
TT: DJNZ R3, LP INC R0
MOV 31H, R5 MOV R5,A
MOV 30H, R4 INC R0
SJMP $ ACALL SOSANH ; SS so max hien tai voi
so ke tiep trong chuoi
JB F0, CONT ;neu lon hon tiep tuc
MOV 31H, R5 ;neu nho hon thi lay so
ke tiep lam max
MOV 30H, R4
CONT:
DJNZ R2, LOOP
SJMP $

Câu 4: (2.0 đ)
a) Viết chương trình thực hiện tuần tự các công việc sau và lặp lại, biết rằng 8051 sử dụng thạch anh
11,0592 MHz:
Nhận số nhị phân không dấu 4 bit X từ 4 bit thấp của Port 1 và số nhị phân không dấu 4 bit Y từ 4
bit thấp của Port 2
Nhận bit D từ chân P2.4
Phát nối tiếp data 9 bit, bao gồm D7 – D4 là số X (4 bit), D3 – D0 là số Y (4 bit), bit thứ 9 là bit D,
ra cổng nối tiếp với baudrate 19200

Cách 1:

ORG 0000H MOV A, P2


MOV TMOD, #20H ANL A, #0FH
MOV TH1, # -3 ADD A, R7
MOV A, PCON JNB TI, $
SETB ACC.7 CLR TI
MOV PCON, A MOV SBUF, A
SETB TR1 SJMP LP
MOV SCON, #10000010B
LP: MOV C, P2.4
MOV TB8, C
MOV A, P1
ANL A, #0FH
SWAP A
MOV R7, A

VXL_Thi HK_172_trang 3/7


Cách 2:

ORG 0000H LOOP:


MOV SCON, #0C2H ;hoac 0D2H MOV A, P1
MOV A, PCON ANL A, #0FH
SETB ACC.7 SWAP A
MOV PCON,A MOV R2, A ;R2 (4 bit cao) chua so X
MOV TMOD,#20H MOV A, P2
MOV TH0,#-3 MOV C, ACC.4 ;C chua bit D
SETB TR1 MOV TB8, C
ANL A, #0FH ; A (4 bit thap) chua so Y
ORL A, R2 ; A chua X_Y
JNB TI, $
CLR TI
MOV SBUF, A
SJMP LOOP
END

b) Viết chương trình thực hiện tuần tự các công việc sau và lặp lại cho một vi điều khiển 8051 khác (sử
dụng thạch anh 11,0592 MHz) để thu data nối tiếp từ vi điều khiển 8051 ở câu a:
Nhận data 9 bit từ cổng nối tiếp với baudrate 19200, gồm các số X, Y và bit D như mô tả ở câu a
Thực hiện nếu bit D = 0 và nếu bit D =1
Xuất kết quả ra Port 1
Cách 1:
ORG 0000H JB RB8, TRU
MOV TMOD, #20H ADD A, R6
MOV TH1, # -3 SJMP TT
MOV A, PCON TRU: SUBB A, R6
SETB ACC.7 JNB ACC.7, TT
MOV PCON, A CPL A
SETB TR1 INC A
MOV SCON, #10010000B TT: MOV P1, A
LP: JNB RI, LP SJMP LP
CLR RI
MOV R7, SBUF
MOV A, R7
ANL A, #0FH
MOV R6, A
MOV A, R7
ANL A, #0FH
SWAP A

VXL_Thi HK_172_trang 4/7


Cách 2:

ORG 0000H
MOV SCON, #0D2H TRITUYETDOI:
MOV A, PCON CJNE A, R6, $+3
SETB ACC.7 JC XNHOHONY
MOV PCON, A SUBB A, R6 ; Tinh X-Y
MOV TMOD, #20H SJMP NEXT
MOV TH0, #-3
SETB TR1 XNHOHONY:
LOOP: MOV R5, A ; R5 chua X
JNB RI, $ MOV A, R6 ; A chua so Y
CLR RI CLR C
MOV A, SBUF SUBB A, R5 ; Tinh Y-X
MOV R7, A
MOV C, RB8 NEXT:
ANL A, #0FH MOV P1, A
MOV R6, A ;R6 chua so Y SJMP LOOP
MOV A, R7 END
SWAP A
ANL A, $0FH ;A chua so X
JC TRITUYETDOI
ADD A, R6
SJMP NEXT

Câu 5: (1.5 đ)
a.Viết chương trình tạo xung tần số 400Hz ở ngõ ra P1.0. Cho XTAL =12MHz. (0.5đ)
ORG 000BH
T = 2.5ms = 2500 us = 2500 MC
CPL P1.0
CLR TR0
LP: CPL P1.0
MOV TH0, #HIGH(-1250)
MOV R7, #5
MOV TL0, #LOW (-1250)
L1: MOV R6, #125
SETB TR0
DJNZ R6, $
RETI
DJNZ R7, L1
MAIN: MOV TMOD, #01H
SJMP LP
SETB TF0
=============================
MOV IE, # 10000010B
ORG 0000H
SJMP $
LJMP MAIN

b. Viết chương trình tạo 2 sóng ra đồng thời ở chân P1.0 và P1.1 theo hình vẽ dưới đây, dùng ngắt
timer. Lưu ý là tần số ở mỗi chân khác nhau. (1.0 đ)

VXL_Thi HK_172_trang 5/7


Cách 1:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ISR_T0
ORG 001BH
LJMP ISR_T1
MAIN:
ISR_T0: CLR TR0
MOV TMOD, #11H
JB F0, XUAT_1
MOV R7, #10 ; 0.5s = 10 x 50ms
CPL P1.0
SETB TF1
CLR P1.1
SETB TF0
MOV TH0, #HIGH(-1250)
MOV IE, #10001010B
MOV TL0, #LOW(-1250)
SJMP $
SJMP TT0
ISR_T1:
XUAT_1: CPL P1.1
CLR TR1
CLR P1.0
DJNZ R7, TT1
MOV TH0, #HIGH(-500)
MOV R7, #10
MOV TL0, #LOW(-500)
CPL F0
TT0: SETB TR0
TT1: MOV TH1, #HIGH(-50000)
RETI
MOV TL1, #LOW(-50000)
END
SETB TR1
RETI

Cách 2:
thoat1: setb tr0
org 0000h
reti
sjmp main
isrt1:
org 000bh
jc out1
sjmp isrt0
cpl p1.0 ; xuất ngõ ra P1.0
org 001bh
clr p1.1
sjmp isrt1
clr tr1
main:
mov th1, #high(-1250)
mov IE, #10001010b
mov tl1, #low(-1250)
mov tmod, #11H
setb tr1
mov r0, #10
sjmp thoat2
setb tr1
out1: cpl p1.1 ; xuất ngõ ra P1.1
setb TF0 ; timer 0 tao khoang 0.5s
clr p1.0
sjmp $
clr tr1
isrt0:
mov th1, #high(-500)
clr tr0
mov tl1, #low(-500)
mov th0, #high(-50000)
setb tr1
mov tl0, #low(-50000)
thoat2:
djnz r0, thoat1
reti
mov r0, #10
end
cpl c

VXL_Thi HK_172_trang 6/7


Câu 6: (1.5 đ)
Mạch tính cước taxi là hệ thống vi điều khiển 8051 gồm:
Nút nhấn: khi nhấn tạo 1 xung cạnh xuống; nối vào vào chân /INT0
Bộ đếm km: tạo ra 1 xung cạnh xuống khi xe chạy được 1 km; nối vào chân /INT1
LED 7 đoạn: hiển thị giá tiền tính theo đơn vị Ngàn đồng; có 2 chữ số, nối với Port 1 qua 2 IC giải
mã BCD sang LED 7 đoạn 7447
Hoạt động của mạch:
Ban đầu chưa có khách thì hiển thị giá trị 00
Khi khách lên xe thì nhấn nút lần 1, xe chạy và tính tiền theo giá 1km là 3 Ngàn đồng (giả sử là giá
tiền không vượt quá 99 Ngàn đồng). Chú ý bắt đầu chở khách là đồng hồ nhảy 3 Ngàn đồng, và cứ
mỗi 1km thì thêm 3 Ngàn đồng.
Tới nơi đến, thì nhấn nút lần 2 để chốt giá tiền hiển thị cho khách
Khách trả tiền xuống xe thì tài xế nhấn nút lần 3 thì trở lại trạng thái ban đầu

Hãy viết chương trình mô tả hoạt động trên


(Gợi ý: phần hiển thị giá tiền nên viết trong chương trình chính)

ORG 0000H ISR_X0: INC R6


LJMP MAIN CJNE R6, #3, TTHAI
ORG 0003H MOV R6, #0
LJMP ISR_X0 TTHAI: CJNE R6, #0, TT1
ORG 0013H CLR EX1 ; t.thái 0
LJMP ISR_X1 MOV R7, #0
MAIN: SETB IT0 SJMP KTHUC
SETB IT1 TT1: CJNE R6, #1, TT2
MOV R7, #0 ; số tiền SETB EX1 ; t.thái 1:
MOV R6, #0 ; biến t.thái xe chạy + tính tiền
có 3 giá trị 0, 1, 2 MOV R7, #3
MOV IE, #10000001B SJMP KTHUC
LOOP: MOV A, R7 ; hiển thị TT2: CLR EX1 ; t.thái 2:
MOV B, #10 chốt giá
DIV AB KTHUC: RETI
SWAP A
ADD A, B ISR_X1: MOV A, R7
MOV P1, A ADD A, #3
SJMP LOOP MOV R7, A
RETI
END

Kết thúc bài thi HK

VXL_Thi HK_172_trang 7/7


(Ngày ra đề) (Ngày duyệt đề)
Giảng viên ra đề: Người phê duyệt:
(Chữ ký và Họ tên) (Chữ ký, Chức vụ và Họ tên)

Học kỳ/năm học 2 2019-2020


THI CUỐI KỲ Ngày thi 23/7/2020
Môn học Vi xử lý
TRƯỜNG ĐH BÁCH KHOA – ĐHQG-HCM Mã môn học EE2013
KHOA ĐIỆN-ĐIỆN TỬ
Thời lượng 120 phút Mã đề
Ghi - Sinh viên KHÔNG được sử dụng tài liệu
chú: - Tất cả các lệnh MCU8051 phải được viết bằng hợp ngữ (không sử dụng ngôn ngữ C)
- Đề thi gồm 03 trang và 02 trang phụ lục.

Câu hỏi 1) (L.O.1, L.O.2, L.O.3, L.O.4) (4.0đ): Gồm 5 câu nhỏ đánh số từ 1 đến 5
1. (0.5đ) Viết các lệnh để bit SMOD=1 (SMOD là MSB của thanh ghi PCON) mà không ảnh hưởng đến
các bit còn lại trong thanh ghi PCON.
MOV A, PCON Cách khác:
SETB ACC.7 ORL PCON, #80H
MOV PCON, A
2. (0.5đ) Giả sử cổng nối tiếp được khởi động mode 1 và tốc độ baud được cung cấp bởi tốc độ tràn của
Timer1. Cho Fosc=11.059Mhz, SMOD=0, xem các dòng lệnh sau:
MOV TMOD,#20H
MOV TH1,#-6
a. (0.25đ) Tính tốc độ tràn Timer1?
 Tốc độ tràn Timer1 = 1/(6MC) = 1/[6x(12/11.059)] = 153597 Hz = 153.597 Khz
b. (0.25đ) Tính tốc độ baud (baudrate)?
 Tính tốc độ baud (baudrate) = 2SMOD x (Tốc độ tràn Timer1/32) = 4800 bps
3. (1.0đ) Cho biết thứ tự thực hiện các dòng lệnh trong chương trình sau (Ví dụ: 1, 2, 3, 4, 5, …):

STT CHƯƠNG TRÌNH STT CHƯƠNG TRÌNH


ORG 0000H 7 MAIN: MOV IE,#82H
1 LJMP MAIN 8 ACALL DL
ORG 000BH 9 SETB TF0
2 SETB TF1 10 SJMP $
3 CPL A 11 DL: INC R7
4 RETI 12 RET
ORG 001BH END
5 CPL P1.0
6 RETI

 SV trả lời đúng thứ tự: 1, 7, 8  0.25đ


 SV trả lời đúng thứ tự: 1, 7, 8, 11, 12  0.5đ
 SV trả lời đúng thứ tự: 1, 7, 8, 11, 12, 9, 2  0.75đ
 SV trả lời đúng thứ tự: 1, 7, 8, 11, 12, 9, 2, 3, 4, 10  1.0đ
4. (1.0đ) Viết chương trình con tên SS16 thực hiện so sánh 2 số nhị phân 16 bit không dấu cất trong B_A
(thanh ghi B là byte cao) và R7_R6 (R7 là byte cao). Kết quả so sánh trả về cờ carry như sau:
 Cờ carry = 0: nếu B_A ≥ R7_R6
 Cờ carry = 1: nếu B_A < R7_R6
Lưu ý: bảo toàn nội dung các thanh ghi trên khi thoát khỏi chương trình con.
Cách 1 (giả sử bank0 là bank tích cực hiện hành): Cách 2: Cách 3:
SS16: PUSH ACC SS16: XCH A, B SS16: PUSH ACC
MOV A, B MOV 30H, R7 CLR C
CJNE A, 7, TT CJNE A, 30H, QUIT SUBB A, R6
SJMP KT_L XCH A, B MOV A, B
TT: POP ACC MOV 30H, R6 SUBB A, R7
SJMP THOAT CJNE A, 30H, $+3 POP ACC
KT_L: POP ACC SJMP EXIT RET
CJNE A, 6, THOAT QUIT: XCH A, B
THOAT:RET EXIT: RET

 So sánh đúng 2 byte và (C) đúng (0.5đ),bảo toàn nội dung các thanh ghi (0.5đ)
5. (1.0đ) MCU8051 kết nối với 2 ngõ vào SW1 và SW2 được nối tương ứng đến chân P1.7 và P1.6.
a. (0.5đ) Viết chương trình liên tục kiểm tra trạng thái SW1 để thực hiện các nhiệm vụ sau:
 SW1 = 0: xuất mã ASCII của ký tự N ra Port 2
 SW1 = 1: xuất mã ASCII của ký tự Y ra Port 2

ORG 0
LAP: JB P1.7, XUAT_Y
MOV P2, #’N’
SJMP LAP
XUAT_Y: MOV P2, #’Y’
SJMP LAP
END

b. (0.5đ) Viết chương trình liên tục kiểm tra trạng thái SW1 và SW2 để thực hiện nhiệm vụ theo
bảng sau:
SW1 SW2 Xuất ra Port 2 mã ASCII của ký tự
0 0 0
0 1 1
1 0 2
1 1 3

ORG 0 Cách khác:


LAP: JB P1.7, T1X ORG 0
JB P1.6, T01 LAP: MOV A, P1
MOV P2,#’0’ ANL A, #0C0H
SJMP LAP RL A
T01: MOV P2,#’1’ RL A
SJMP LAP ADD A, #30H
T1X: JB P1.6, T11 MOV P2, A
MOV P2,#’2’ SJMP LAP
SJMP LAP END
T11: MOV P2,#’3’
SJMP LAP
END

Câu hỏi 2) (L.O.5, L.O.6) (2.0đ): Gồm 4 câu nhỏ đánh số từ 1 đến 4
Cho sơ đồ kết nối giữa MCU8051 vớicác LED đơn như sau:

MCU 8051
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

8 x 330
1. (0.5đ) Sử dụng Timer0, viết chương trình con có tên DL200 có chức năng tạo trễ 200ms. Cho
Fosc = 12Mhz. SV khai báo mode Timer trong chương trình con.

 Fosc = 12Mhz  MC=1s


 Tdelay = 200ms = 4 x 50.000 MC
DL200:
MOV TMOD,#01H
MOV R5,#4
LOOP: MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R5,LOOP
RET

2. (0.5đ) Viết chương trình thực hiện tuần tự các công việc sau (không sử dụng ngắt):
a. Kiểm tra chuyển trạng thái từ 1 xuống 0 trên chân P3.3 của MCU8051.
b. Nếu có chuyển trạng thái từ 1 xuống 0 sẽ thực hiện xuất lần lượt chuỗi dữ liệu: 18H, 3CH, 7EH,
FFH được lưu trong bộ nhớ chương trình ra Port1 của MCU8051. Thời gian giữa 2 lần xuất dữ
liệu là 200ms (sử dụng chương trình con DL200 ở câu trên, không cần viết lại chương trình con).
c. Thực hiện lại liên tục các công việc a, b.
ORG 0000H Cách khác:
MOV DPTR,#TABLE
ORG 0000H
LAP: JNB P3.3, LAP
LAP: JNB P3.3, LAP
JB P3.3,$
JB P3.3, $
MOV R0,#0
MOV DPTR, #TABLE
START:
LP: CLR A
MOV A,R0
MOVC A, @A+DPTR
MOVC A,@A+DPTR
MOV P1, A
MOV P1,A
CALL DL200
CALL DL200
INC DPTR
INC R0
CJNE A, #0FFH, LP
CJNE R0,#4,START
JMP LAP
JMP LAP
DL200: …… DL200: ……
RET RET

TABLE: DB 18H, 3CH, 7EH, 0FFH TABLE: DB 18H, 3CH, 7EH, 0FFH

END END

3.(0.5đ) Thực hiện lại câu trên bằng cách sử dụng ngắt ngoài 1. Nhận xét đáp ứng của MCU8051 so với
câu trên (trường hợp không dùng ngắt)?
ORG 0000H EX1_ISR:
JMP MAIN MOV R0,#0
START:MOV A,R0
ORG 0013H MOVC A,@A+DPTR
JMP EX1_ISR MOV P1,A
CALL DL200
MAIN: INC R0
MOV DPTR,#TABLE CJNE R0,#4,START
MOV IE,#84H RETI
SETB IT1 DL200:
JMP $ ……
RET
TABLE: DB 18H, 3CH, 7EH, 0FFH
END
 Cách khác:trong ISR /INT1 chỉ cần set cờ F0, chương trình chính chỉ cần thêm khởi động ngắt
Và kiểm tra cờ F0
ORG 0 TIEP: CLR A
JMP MAIN MOVC A,@A+DPTR
ORG 0013H MOV P1,A
SETB F0 CALL DL200
RETI INC DPTR
ORG 0030H CJNE A,#0FFH,TIEP
MAIN: MOV IE,#84H SJMP START
SETB IT1 DL200: ---
START: JNB F0,$ RET
CLR F0 TAB: DB 18H,3CH,7FH,0FFH
MOV DPTR,#TAB END

Nhận xét:
Đối với chương trình có sử dụng ngắt, nếu trong lúc đang xuất dữ liệu mà có 1 hoặc nhiều lần ngắt
xảy ra thì khi trở về chương trình chính sẽ thực hiện xuất dữ liệu 1 lần nữa (do cờ IE1 = 1), rồi tiếp
tục chờ ngắt.

4. (0.5đ) Cho biết hiệu ứng của các đèn LED trên Port1 khi có chuyển trạng thái từ 1 xuống 0 trên chân
P3.3?
Tạo hiệu ứng cho dãy LED sáng từ giữa ra 2 biên. (LED tích cực ở mức 1).

Câu hỏi 3) (L.O.5) (2.0đ): Gồm 2 câu nhỏ đánh số từ 1 đến 2


1. (1.0đ) Sử dụng Timer0 (không dùng ngắt timer), viết 2 chương trình con có tên XUNG25 và XUNG75
có cùng chức năng tạo 1 xung vuông ở ngõ ra P1.7 có chu kỳ T = 1ms. Trong đó, XUNG25 có chu kỳ
nhiệm vụ là 25% và XUNG75 có chu kỳ nhiệm vụ 75%. Cho Fosc = 12Mhz.
Minh họa 1 xung vuông: TH TL Chu kỳ nhiệm vụ = TH/T (%)
T
Lưu ý: Giả sử thanh ghi TMOD đã thiết lập timer0 hoạt động ở mode 1 (16 bit) trong chương trình
chính. Trong các chương trình con không cần khởi tạo giá trị cho TMOD.
T= 1ms : XUNG25: DC = 25% => TH = 250 MC, TL = 750 MC
XUNG75: DC = 75% => TH = 750 MC, TL = 250 MC

XUNG75: SETB P1.7


XUNG25: SETB P1.7 MOV TL0, #LOW(-750)
MOV TL0, #LOW(-250) MOV TH0, #HIGH(-750)
MOV TH0, #HIGH(-250) SETB TR0
SETB TR0 JNB TF0, $
JNB TF0, $ CLR TF0
CLR TF0 CLR TR0
CLR TR0 CLR P1.7
CLR P1.7 MOV TL0, #LOW(-250)
MOV TL0, #LOW(-750) MOV TH0, #HIGH(-250)
MOV TH0, #HIGH(-750) SETB TR0
SETB TR0 JNB TF0, $
JNB TF0, $ CLR TF0
CLR TF0 CLR TR0
CLR TR0 RET
RET
Cách khác:
XUNG25: SETB P1.7
CALL DL250 XUNG75: SETB P1.7
CLR P1.7 MOV R7, #3
MOV R7, #3 LAP75: CALL DL250
LAP25: CALL DL250 DJNZ R7, LAP75
DJNZ R7, LAP25 CLR P1.7
RET CALL DL250
RET
DL250: MOV TL0, #LOW(-250)
MOV TH0, #HIGH(-250)
SETB TR0
JNB TF0, $
CLR TF0
CLR TR0
RET

 Viết đúng mỗi chương trình con XUNG25 và XUNG75 là 0.5 điểm

2. (1.0đ) Viết chương trình thu ký tự từ port nối tiếp chế độ UART 9 bit (tốc độ baud = 1200, Fosc =
12Mhz, SMOD = 0) và tạo chuỗi xung vuông (mỗi xung có chu kỳ T = 1ms) ra chân P1.7 theo định
dạng sau:
 8 bit dữ liệu: xác định số lượng xung trong chuỗi xung vuông
 Bit thu thứ 9: xác định chu kỳ nhiệm vụ của xung vuông có T = 1ms
o Bit thu thứ 9 = 0: xung có chu kỳ nhiệm vụ 25%
o Bit thu thứ 9 = 1: xung có chu kỳ nhiệm vụ 75%
Ví dụ:  9 bit thu được = 0 00001111  tạo 15 xung vuông có chu kỳ nhiệm vụ = 25%
 9 bit thu được = 1 00001111  tạo 15 xung vuông có chu kỳ nhiệm vụ = 75%
Lưu ý:
 Sử dụng các chương trình con (XUNG25 và XUNG75) ở câu trên cho việc tạo 1 xung vuông
(không cần viết lại chương trình con).
 Khi tạo xong chuỗi xung trên chân P1.7 thì mới nhận ký tự tiếp theo từ port nối tiếp.
 Trường hợp 8 bit dữ liệu nhận được có giá trị bằng 0 thì không tạo xung mà chỉ chờ nhận ký tự
tiếp theo từ port nối tiếp.
 Quá trình này được lặp lại liên tục.
 Sinh viên cần phải thiết lập các thông số cần thiết cho việc truyền qua cổng nối tiếp trong chương
trình chính.

ORG 0 PHAT25: CALL XUNG25


MOV TMOD, #21H DJNZ ACC, PHAT25
MOV TL1, # -26 JMP LAP
MOV TH1, # -26 PHAT75: CALL XUNG75
SETB TR1 DJNZ ACC, PHAT75
MOV SCON, # 11010000B (#0D0H) JMP LAP
LAP: JNB RI, LAP XUNG25: …
CLR RI RET
MOV A, SBUF XUNG75: …
JZ LAP RET
JB RB8, PHAT75 END

 Viết đúng phần thiết lập TMOD, giá trị nạp Timer1 (0.25đ)
 Viết đúng phần thiết lập SCON và thu ký tự (0.25đ)
 Viết đúng phần không tạo xung và tạo xung theo RB8 và số xung (0.5đ)
Câu hỏi 4) (L.O.5, L.O.6) (2.0đ): Gồm 3 câu nhỏ đánh số từ 1 đến 3
Cho mạch điện MCU8051 đo độ rộng xung vuông và hiển thị như hình vẽ dưới đây:
 Tín hiệu cần đo độ rộng xung đưa vào ngõ P_IN=P3.2, tầm đo tối đa 250µs
 Hiển thị giá trị đo bằng 2 số HEX ra 2 LED 7 đoạn Anode chung tương ứng
 Khi nhấn SW (tích cực mức 0) phát giá trị đo ra cổng nối tiếp ngõ S_OUT=P3.1
 Hoạt động của IC74HC573(U2 và U3) như sau:
 LE=1→Qi=Di (i=0÷7)
 LE=0→Qi không đổi

1. (0.5đ) Viết một chương trình con tên DISPLAY hiển thị mã HEX cất trong thanh ghi A ra 2 LED 7
đoạn Anode chung theo đúng thứ tự high nibble (4 bit cao của thanh ghi A) và low nibble (4 bit thấp của
thanh ghi A) như hình vẽ. Cho bảng tra mã 7 đoạn Anode chung và mã ASCII (dạng số HEX) như sau:
Digit 0 1 2 3 4 5 6 7 8 9 A B C D E F
Mã LED 7 đoạn (H) 0C0 0F9 0A4 0B0 99 92 82 0F8 80 90 88 83 0C6 0A1 86 8E
Mã ASCII (H) 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46

DISPLAY: MOV DPTR,#TAB


PUSH ACC SWAP A
ANL A,#0FH ANL A,#0FH
MOVC A,@A+DPTR MOVC A,@A+DPTR
MOV P1,A MOV P1,A
SETB P2.0 SETB P2.1
CLR P2.0 CLR P2.1
POP ACC RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
 Viết đúng chuỗi lệnh tách nibble,tra bảng và mở/đóng chốt từng bộ chốt U2&U3 (0.25đ)
 Có thể đặt bảng tra ở chương trình chính
Cách khác:
DISPLAY: PUSH ACC
MOV DPTR, #TAB
MOV B, #16
DIV AB ; A chứa 4 bit cao, B chứa 4 bit thấp
MOVC A, @A+DPTR
MOV P1, A
SETB P2.1
CLR P2.1
MOV A, B
MOVC A, @A+DPTR
MOV P1, A
SETB P2.0
CLR P2.0
POP ACC
RET
2. (0.5đ) Giả sử đã thiết lập các thông số truyền qua cổng nối tiếp trong chương trình chính. Viết một
chương trình con tên OUT_CHR phát 2 ký tự mã HEX cất trong thanh ghi A dưới dạng mã ASCII ra cổng
nối tiếp, ký tự ứng với nibble thấp (4 bit thấp của thanh ghi A) phát trước, nibble cao (4 bit cao của thanh
ghi A) phát sau.
Ví dụ: (A)=0AH→phát ra cổng nối tiếp 41H, 30H

OUT_CHR: PUSH ACC SWAP A


ANL A,#0FH ANL A,#0FH
CJNE A,#0AH,$+3 CJNE A,#0AH,$+3
JNC GT0 JNC GT1
ADD A,#30H ADD A,#30H
JMP PHAT0 JMP PHAT1
GT0: ADD A,#37H GT1: ADD A,#37H
PHAT0: JNB TI,$ PHAT1: JNB TI,$
CLR TI CLR TI
MOV SBUF,A MOV SBUF,A
POP ACC RET

 Viết đúng phần chuyển sang mã ASCII từng số HEX và phát ra cổng nối tiếp (0.25đ)
 Hoặc có thể viết gọn hơn nữa:
OUT_CHR: PUSH ACC PHAT_CHR: ANL A,#0FH
CALL PHAT_CHR CJNE A,#0AH,$+3
POP ACC JC LT10
SWAP A ADD A,#07H
CALL PHAT_CHR LT10: ADD A,#30H
RET JNB TI,$
CLR TI
MOV SBUF,A
RET

Cách khác:
OUT_CHR: MOV DPTR, #TAB_ASC
MOV B, #16
DIV AB
MOVC A, @A+DPTR
XCH A, B ; B: ASCII NIBBLE CAO
MOVC A, @A+DPTR ; A: ASCII NIBBLE THẤP
JNB TI, $
CLR TI
MOV SBUF, A
JNB TI, $
CLR TI
MOV SBUF, B
RET
TAB_ASC: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H, 38H, 39H
DB 41H, 42H, 43H, 44H, 45H, 46H
3. (1.0đ) Viết một chương trình đo độ rộng xung thực hiện các công việc sau:
 Sử dụng Timer đo độ rộng xung, sử dụng ngắt ngoài đọc giá trị đo độ rộng xung (tính theo s).
 Chương trình chính xuất giá trị đo độ rộng xung dạng mã HEX ra bộ hiển thị, và kiểm tra nếu có
nhấn SW sẽ phát 2 ký tự mã HEX đang hiển thị dưới dạng mã ASCII ra cổng nối tiếp.
 Lặp vòng liên tục các công việc trên.
 Sử dụng chương trình con DISPLAY và OUT_CHR ở 2 câu trên (chỉ cần khai báo tên chương trình
con, không cần ghi lại nội dung chi tiết).
 Cho Fosc=12Mhz, baudrate=1200, SMOD=0.
Lưu ý: Sinh viên cần phải thiết lập các thông số cần thiết cho việc truyền qua cổng nối tiếp trong chương
trình chính.

ORG 0 START: MOV B,R2


JMP MAIN MOV A,B
ORG 0003H CALL DISPLAY
JMP EX0_ISR JB P2.2,START
ORG 0030H MOV A,B
MAIN: MOV SCON,#52H CALL OUT_CHR
MOV TMOD,#2AH JMP START
MOV TH1,#-26 DISPLAY: ---
MOV TL1,TH1 RET
SETB TR1 OUT_CHR: ---
CLR P2.0 RET
CLR P2.1 EX0_ISR: MOV R2,TL0
MOV IE,#81H MOV TL0,#0
SETB IT0 RETI
SETB TR0 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H, 0A1H,86H,8EH
END
 Viết đúng phần khởi động cổng nối tiếp,TMOD,Timer1 tạo baudrate,ngắt ngoài 0 cạnh xuống
(0.25đ)
 Viết đúng phần chương trình chính (0.5đ)
 Viết đúng phần trình phục vụ ngắt ngoài 0 (0.25đ)
 Lưu ý:
- Nếu chưa khai báo bảng TAB trong CTC DISPLAY phải khai báo trong chương trình
chính,không khai báo trừ (0.25đ)
- Phải phát data đang hiển thị ra cổng nối tiếp,chính là (B) chứ không phải (R2),nếu phát trực tiếp
từ (R2) trừ (0.25đ)
ĐHQG TPHCM–ĐH Bách Khoa
Khoa Đ-ĐT–BM Điện Tử

Điểm Đề thi HK 2 – NH:2012-2013 Chữ ký giám thị


Môn: Vi xử lý – Mã MH: 402030
Ngày thi: 29/05/2013 – Thời gian làm bài: 110 phút
Đề có 8 trang (có 2 trang tóm tắt) và SV làm trực tiếp trên đề.
Tổng số câu là 10, tổng số điểm là 11, và SV chỉ cần làm đạt 10.
(SV KHÔNG được dùng tài liệu
SV KHÔNG được dùng ĐTDĐ, 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ỹ
Chú ý: Xem phụ lục để biết các cách giải khác nếu có.
Câu 1: (1 đ) Cho trước mạch giải mã địa chỉ của hệ thống dùng VXL 8051:

a) (0.5 đ) Xác định vùng địa chỉ của các SRAM:


 Vùng địa chỉ của SRAM thứ nhất (U1): 5800H – 5FFFH
 Vùng địa chỉ của SRAM thứ hai (U2): 7000H – 77FFH

b) (0.5đ) Viết các lệnh 8051 để chép 10 byte bắt đầu từ địa chỉ đầu của SRAM thứ nhất (U1) vào RAM
nội của 8051 bắt đầu từ địa chỉ 30H:
MOV DPTR,#5800H Cách 2: dùng CJNE
MOV R0,#30H MOV DPTR,#5800H
MOV R1.#10 MOV R0,#30H
Loop: Loop:
MOVX A,@DPTR MOVX A,@DPTR
MOV @R0,A MOV @R0,A
INC R0 INC R0
INC DPTR INC DPTR
DJNZ R1,Loop CJNE R0,#3AH,Loop
SJMP $ SJMP $
VXL_Thi HK_AY1213-S2_trang 1/9
Câu 2: (1.5 đ) Điền vào các chỗ trống trong các cột địa chỉ ROM chương trình, mã máy và các cách địa chỉ:
Địa chỉ Cách định địa chỉ của toán hạng
Mã máy (hex) Lệnh 8051
ROM (hex) thứ nhất thứ hai
ORG 0
0000 D2 80 SETB P0.0
0002 75 90 FF MOV P1,#0FFH Trực tiếp (byte) Tức thời
0005 E5 90 LL: MOV A,P1
0007 60 04 JZ Nxt
0009 30 80 01 JNB P0.0,Nxt Trực tiếp (bit) Tương đối
000C F4 CPL A
000D F5 A0 Nxt: MOV P2,A
000F 80 F4 SJMP LL
0011 END
Câu 3: (1 đ)
a) (0.5 đ) Viết chương trình con hợp ngữ 8051 có tên là MAX_XY để thực hiện hàm max(X,Y) (nếu X  Y
thì kết quả X; nếu ngược lại, kết quả là Y) với X và Y là các số nguyên 8 bit không dấu, X là thanh ghi A,
Y là số trong RAM nội có địa chỉ trong thanh ghi R0 và kết quả đặt trở lại vào A. Nếu chương trình con
này có dùng các thanh ghi khác A và R0 thì phải bảo lưu giá trị của nó sau khi ra khỏi chương trình con.
b) (0.5 đ) Viết đoạn chương trình hợp ngữ 8051 dùng chương trình con MAX_XY để tìm cực đại của 16 số
nguyên 8 bit không dấu ở trong RAM nội có địa chỉ đầu là 30H và kết quả được cất vào ô nhớ ở RAM
nội có địa chỉ 40H. Đầ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ỉ 60H.
Bài giải.
a) b) Cách 2: dùng CJNE
MAX_XY: MOV SP,#5FH MOV SP,#5FH
PUSH B MOV R0,#30H MOV R0,#30H
MOV B,@R0 MOV R1,#16 MOV A,@R0
CJNE A,B,Nxt MOV A,@R0 Loop:
Nxt: JC LT Loop: ACALL MAX_XY
SJMP Fin ACALL MAX_XY INC R0
LT: MOV A,B INC R0 CJNE R0,#40H,Loop
Fin: POP B DJNZ R1,Loop MOV @R0,A
RET MOV @R0,A SJMP $
SJMP $
Câu 4: (1 đ) Xét 1 mạch 8051 với các công tắc: SW1 được nối với P1.0, SW2 được nối với P1.1. SW3
được nối với P1.2, SW4 được nối với P1.3 và P1.7 được nối với điện trở 300 nối tiếp LED nối lên +5V.
Hãy viết chương trình hợp ngữ cho mạch này. Qui luật hoạt động của mạch như sau:
P1.1 P1.0 Phép toán P1.1 P1.0 Phép toán Chú thích
0 0 F = NOT(X) 1 0 F = X OR Y F = P1.7
0 1 F = X AND Y 1 1 F = X XOR Y X = P1.2 và Y = P1.3
Bài giải.
ORG 0 MOV C,X SJMP Fin
TT EQU 20H CJNE A,#0,CP1 EQ3: JNB Y, Fin
X EQU TT.2 CPL C CPL C
Y EQU TT.3 SJMP Fin Fin: MOV F,C
F EQU P1.7 CP1: CJNE A,#1,CP2 SJMP Loop
MOV P1,#0FH ANL C,Y END
Loop: MOV A,P1 SJMP Fin
MOV TT,A CP2: CJNE A,#2,EQ3
ANL A,#03H ORL C,Y
VXL_Thi HK_AY1213-S2_trang 2/9
Câu 5: (1 đ) 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) = 85H, (32H) = 97H
Lệnh 8051 Lần lặp 1 Lần lặp 2 Lần lặp 3
MOV R0,#30H
MOV R1,#3
MOV R2,#0
Loop:
MOV A,@R0 A = 46H A = 85H A = 97H
JNB ACC.7,Next
INC R2 R2 = 00H R2 = 01H R2 = 02H
Next:
INC R0 R0 = 31H R0 = 32H R0 = 33H
DJNZ R1,Loop
MOV @R0,2
SJMP $

a) (0.5 đ) Hãy điền vào các giá trị của A, R2, và R0 cứ sau thực thi lệnh cùng hàng trong bàng trên.
Khi thực thi đến lệnh “SJMP $” thì nội dung của ô nhớ sau có trị số là: (33H) = 02H
b) (0.5 đ) Ý nghĩa của đoạn chương trình trên là:
Đếm các số âm trong N số đầu tiên (N trong R1) của mảng có địa chỉ
đầu trong RO và cất kết quả vào phần tử N+1

Câu 6: (1 đ) Cho trước mạch sau với ngõ ra P0 của 8051 lái LED 7 đoạn loại CA:

Mạch này hoạt động như sau:


P1.0 = Count = khi có cạnh xuống thì giá trị hiển thị của LED được tăng thêm 1.
Chuỗi số hiển thị ở LED 7 đoạn tương tự như bộ đếm lên khi có các cạnh xuống liên tục ở P1.0:
0, 1, 2, 3, . . . , 9, 0, 1, 2, . . .
a) (0.5 đ) Viết chương trình con BCD2LED7S hiển thị 1 ký số BCD trong thanh ghi A ra LED 7 đoạn. Nội
dung của thanh ghi A không bị thay đổi sau khi gọi chương trình con này.
b) (0.5 đ) Viết chương trình làm việc theo yêu cầu trên dùng thanh ghi A chứa số đếm và dùng chương trình
con BCD2LED7S để hiển thị.
Bài giải.
a) ; định nghĩa hiển thị b)
BCD2LED7S: ORG 100H Count EQU P1.0
PUSH ACC LED7S: ; hgfedcba MOV P1,#01H
MOV DPTR,#LED7S DB 11000000B; 0 CLR A
MOVC A,@A+DPTR DB 11111001B; 1 Loop:
MOV P0,A DB 10100100B; 2 ACALL BCD2LED7S
POP ACC DB 10110000B; 3 JNB Count,$; đợi =1
RET DB 10011001B; 4 JB Count,$; đợi =0
DB 10010010B; 5 INC A
DB 10000010B; 6 CJNE A,#10,Loop
DB 11111000B; 7 CLR A
DB 10000000B; 8 SJMP Loop
DB 10010000B; 9

VXL_Thi HK_AY1213-S2_trang 3/9


Câu 7: (1.5 đ) Xét 8051 với XTAL = 12 MHz và cho trước chương trình con Delay sau:
Chương trình con Delay Số MC
Delay: MOV R1,#250 1
L1: MOV R0,#250 1
L2: NOP 1
NOP 1
DJNZ R0, L2 2
DJNZ R1, L1 2
RET 2
a) (0.5 đ) Hãy ghi số chu kỳ máy (MC) cho mỗi lệnh trong bảng trên và từ đó suy ra thời gian trễ của
chương trình con này. Nếu muốn làm trễ 150 ms thì ta phải nạp cho R1 giá trị là bao nhiêu?
b) (0.5 đ) Hãy viết lại chương trình con làm trễ 150 ms dùng Timer 0 (không dùng ngắt Timer).
c) (0.5 đ) Hãy viết lại chương trình con làm trễ 150 ms dùng ngắt Timer 0.
Bài giải.
a) 1 MC = 12/(12MHz) = 1 s
Thời gian trễ T được tính như sau:
T = 1 + (1 + (1 + 1 + 2) x 250 + 2) x 250 + 2 MC = 250753 s  250 ms
Để có T = 150 ms thì phải nạp giá trị cho R1 là 150.
b) CT con làm trễ 150 ms hỏi vòng cờ TF0: c) CT con làm trễ 150 ms dùng ngắt Timer 0:
Delay_150ms: Delay_150ms:
MOV TMOD,#1 MOV TMOD,#1
MOV R2,#3 MOV R2,#4
Loop: CLR F0
SETB EA
MOV TL0,#LOW(–50000) SETB ET0
MOV TH0,#LOW(–50000) SETB TF0
SETB TR0 JNB F0,$
JNB TF0 RET
CLR TR0
DJNZ R2,Loop T0_ISR:
RET DJNZ R2,Skip
CLR TR0
SETB F0
CLR ET0
RETI
Skip: CLR TR0
MOV TL0,#LOW(–50000)
MOV TH0,#LOW(–50000)
SETB TR0
RETI

Chú ý: tại địa chỉ 0BH có


ORG 0BH
LJMP T0_ISR

Câu 8: (1 đ)
Xét 1 hệ thống gồm 2 vi xử lý 8051 M1 và M2 được kết nối theo kiểu modem rỗng (null modem) để
truyền nối tiếp với nhau. M1 có nhiệm vụ đọc liên tục 1 số BCD nén có 2 ký số từ cổng P1 (giả sử ngõ vào ở
P1 luôn được cung cấp số BCD nén 2 ký số hợp lệ) và gửi nối tiếp số này đến M2, M2 có nhiệm vụ nhận nối
tiếp liên tục số này và tính tổng bình phương của mỗi ký số BCD và xuất ra P2. Thí dụ như nếu ở ngõ vào P1
của M1 có giá trị 25H (biểu diễn BCD nén của số 25) thì ngõ ra P2 của M2 ta sẽ thấy số 29 (vì 22 + 52 = 4 +
25 = 29).Cả 2 VXL đều sử dụng cổng nối tiếp có tốc độ baud là 9600 và XTAL = 11.059 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_AY1213-S2_trang 4/9
Thi VXL_AY1213 – Họ và tên SV: __________________________ MSSV: ____________ Nhóm: ____
Bài giải.
Các chương trình con gửi/nhận1
Chương trình 8051 ở M1 Chương trình 8051 ở M2
byte nối tiếp và tra bảng tính A2
ORG 0 ORG 0 SP_TRANSMIT:
; Khởi động Timer 1 để ; Khởi động Timer 1 để JNB TI, $
; có tốc độ baud 9600 ; có tốc độ baud 9600 CLR TI
MOV TMOD,#20H MOV TMOD,#20H MOV SBUF, A
MOV TH1,#–3 MOV TH1,#–3 RET
SETB TR1 SETB TR1
; Đặt cấu hình chỉ phát ; Đặt cấu hình chỉ thu Chú ý:
MOV SCON,#01000010B MOV SCON,#01010000B Nếu ban đầu cho TI=0
MOV P1,#0FFH L2: thì CTC này là:
L1: ACALL SP_RECEIVE MOV SBUF, A
MOV A,P1 MOV B, A JNB TI, $
ACALL SP_TRANSMIT ANL A,#0FH CLR TI
SJMP L1 ACALL A_SQUARE RET
MOV R1,A
MOV A, B SP_RECEIVE:
SWAP A JNB RI, $
ANL A,#0FH CLR RI
ACALL A_SQUARE MOV A, SBUF
ADD A,R1 RET
MOV P2,A
SJMP L2
A_SQUARE:
MOV DPTR,#TBL
MOVC A,@A+DPTR
RET
TBL: DB 0, 1, 4, 9, 16
DB 25,36,49,64,81

Câu 9: (1 đ)
Viết chương trình hợp ngữ 8051 (XTAL=12MHz) để tạo xung vuông (có TON = TOFF) ở ngõ ra P1.5 như sau:
 Sau khi reset thì ngõ ra P1.5 có xung xuông với chu kỳ T = 50 ms.
 Nếu có cạnh xuống ở chân ngắt ngoài 0 (/INT0) thì từ đó ngõ ra P1.5 có xung với chu kỳ T = 50 ms.
 Nếu có cạnh xuống ở chân ngắt ngoài 1 (/INT1) thì từ đó ngõ ra P1.5 có xung với chu kỳ T = 100 ms.
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.
Bài giải.
ORG 0 Loop: JB F0,Load_1
LJMP Main Load_0: MOV TH0,#HIGH(–25000)
EX0_ISR: CLR F0 MOV TL0,#LOW(–25000)
RETI SJMP Continue
ORG 0013H Load_1: MOV TH0,#HIGH(–50000)
EX1_ISR: SETB F0 MOV TL0,#LOW(–50000)
RETI Continue:
Main: SETB TR0
SETB P3.2 ; /INT0 JNB TF0,$
SETB P3.3 ; /INT1 CLR TR0
MOV TMOD,#1 CLR TF0
MOV IE,#85H CPL P1.5
SETB IT0 SJMP Loop
SETB IT1 END

VXL_Thi HK_AY1213-S2_trang 5/9


Câu 10: (1 đ)
Viết chương trình hợp ngữ hoặc C (chỉ chọn một) cho 8051 để làm sáng các LED đơn được nối với cổng P1
(hình tròn đen tương ứng LED sáng và ngõ ra của 8051 ở mức 0 làm LED sáng). Nếu ngõ vào P0.0 = 0 thì
sáng theo qui luật ở mẫu 1 (TD: trước hết tất cả các LED tắt trong 150 ms, kế tiếp chỉ có các LED ở P1.3 và
P1.4 sáng trong 150 ms, .., cuối cùng chỉ có các LED ở P1.7 và P1.0 sáng trong 150 ms, và lặp lại) , và nếu
ngõ vào P0.0 = 1 thì sáng theo qui luật ở mẫu 2.
Các LED ở P1.7 ... P1.0 Thời điểm (ms) Các LED ở P1.7 ... P1.0 Thời điểm (ms)
 0  0
 150  150
 300  300
 450  450
 600  600
 750  750
 900  900
. . . . . .
Mẫu 1 Mẫu 2
Giả sử cho trước chương trình con Delay_150ms (làm trễ 150 ms).
Bài giải.
Chương trình hợp ngữ Chương trình C (Keil C)
ORG 0 #include <reg51.h>
SETB P0.0 #define STATES 6
MOV DPTR,#STATE_TBL sbit control = P0^0;
MOV R0,#0 ; PTR cho mẩu 1 void Delay_150ms();
MOV R1,#0 ; PTR cho mẩu 2 // cho trước CTC làm trễ 150 ms
; R0 và R1 chỉ trạng thái mấy
Loop: void main()
JB P0.0, Pattern_2 {
Pattern_1: char pattern[2][STATES]=
MOV A,R0 {{0xFF, 0xE7, 0xC3, 0x99, 0x3C, 0x7E},
MOVC A,@A+DPTR {0xFF, 0x7E, 0x3C, 0x99, 0xC3, 0xE7}};
MOV P1,A char index[2]={–1,–1};
ACALL Delay_150ms char select;
INC R0 char i;
CJNE R0,#6,Loop
MOV R0,#0 control = 1; // Input pin
SJMP LOOP
Pattern_2: while(1)
MOV A,R1 {
ADD A,#6 select =(control != 1)? 0:1;
MOVC A,@A+DPTR index[select]=(index[select]+1)%STATES;
MOV P1,A P1 = pattern[select][index[select]];
ACALL Delay_150ms Delay_150ms();
INC R1 } // End of while
CJNE R1,#6,Loop } // End of Main
MOV R1,#0
SJMP LOOP
STATE_TBL:
DB 0FFH,0E7H,0C3H,99H,3CH,7EH
DB 0FFH,7EH,3CH,99H,0C3H,0E7H
END

Kết thúc bài thi HK


VXL_Thi HK_AY1213-S2_trang 6/9
Phụ lục
Câu 4:
Cách 2: dùng JMP @A+DPTR
ORG 0 Case0:
TT EQU 20H CPL C
X EQU TT.2 SJMP Fin
Y EQU TT.3 Case1:
F EQU P1.7 ANL C,Y
MOV P1,#0FH SJMP Fin
MOV DPTR,#JMP_TABLE Case2:
Loop: MOV A,P1 ORL C,Y
MOV TT,A SJMP Fin
MOV C,X Case3:
ANL A,#03H JNB Y, Fin
RL A CPL C
JMP @A+DPTR Fin:
JMP_TABLE: MOV F,C
AJMP Case0 SJMP Loop
AJMP Case1 END
AJMP Case2
AJMP Case3

Cách 3: kiểm tra từng bit vào dùng JB và JNB


ORG 0 Case0:
TT EQU 20H CPL C
B0 EQU TT.0 ; chứa P1.0 SJMP Fin
B1 EQU TT.1 ; chứa P1.1 Case1:
X EQU TT.2 ANL C,Y
Y EQU TT.3 SJMP Fin
F EQU P1.7 Case2:
MOV P1,#0FH ORL C,Y
MOV DPTR,#JMP_TABLE SJMP Fin
Loop: Case3:
MOV A,P1 JNB Y, Fin
MOV TT,A CPL C
MOV C,X Fin:
JB B1,Case_1_B0 MOV F,C
Case_0_B0: ; P1.1 = 0 SJMP Loop
JNB B0,Case0 END
SJMP Case1
Case_1_B0: ; P1.1 = 1
JNB B0,Case2
SJMP Case3

VXL_Thi HK_AY1213-S2_trang 7/9


Câu 10: Chương trình hợp ngữ
Cách 2: dùng 2 bảng
ORG 0
SETB P0.0
MOV R0,#0 ;Pointer cho mẩu 1
MOV R1,#0 ;Pointer cho mẩu 2
; R0 và R1 chỉ trạng thái mấy
Loop: JB P0.0, Pattern_2
Pattern_1:
MOV A,R0
MOV DPTR,#STATE_TBL1
MOVC A,@A+DPTR
MOV P1,A
ACALL Delay_150ms
INC R0
CJNE R0,#6,Loop
MOV R0,#0
SJMP LOOP
Pattern_2:
MOV A,R1
MOV DPTR,#STATE_TBL2
MOVC A,@A+DPTR
MOV P1,A
ACALL Delay_150ms
INC R1
CJNE R1,#6,Loop
MOV R1,#0
SJMP LOOP
STATE_TBL1: DB 0FFH,0E7H,0C3H,99H,3CH,7EH
STATE_TBL2: DB 0FFH,7EH,3CH,99H,0C3H,0E7H
END

Cách 3: xuất hết mẫu rồi mới kiểm tra P0.0


ORG 0
SETB P0.0
MOV R0,#0 ;Pointer cho mẩu 1 hoặc 2
Loop: JB P0.0, Pattern_2
Pattern_1:
MOV A,R0
MOV DPTR,#STATE_TBL1
MOVC A,@A+DPTR
MOV P1,A
ACALL Delay_150ms
INC R0
CJNE R0,#6,Pattern_1
MOV R0,#0
SJMP LOOP
Pattern_2:
MOV A,R0
MOV DPTR,#STATE_TBL2
MOVC A,@A+DPTR
MOV P1,A
ACALL Delay_150ms
INC R0
CJNE R0,#6,Pattern_2
MOV R0,#0
SJMP LOOP
STATE_TBL1: DB 0FFH,0E7H,0C3H,99H,3CH,7EH
STATE_TBL2: DB 0FFH,7EH,3CH,99H,0C3H,0E7H
END
VXL_Thi HK_AY1213-S2_trang 8/9
Câu 10: Chương trình C (Keil C)
Cách 2: dùng 2 bảng
#include <reg51.h>
#define STATES 6
sbit control = P0^0;
void Delay_150ms(); // cho trước CTC làm trễ 150 ms

void main()
{
char pattern_1[STATES]= {{0xFF, 0xE7, 0xC3, 0x99, 0x3C, 0x7E}};
char pattern_2[STATES]= {{0xFF, 0x7E, 0x3C, 0x99, 0xC3, 0xE7}};
char index_1, index_2; char select;

control = 1; // Input pin


index_1 =0; index_2 = 0;
while(1)
{
select =(control != 1)? 0:1;
if (select == 0)
{
P1 = pattern_1[index_1];
index_1 = (index_1 + 1)%STATES;
}
else
{
P1 = pattern_2[index_2];
index_2 = (index_2 + 1)%STATES;
}
Delay_150ms();
} // End of while
} // End of Main
Cách 3: xuất hết mẫu rồi mới kiểm tra P0.0
#include <reg51.h>
#define STATES 6
sbit control = P0^0;
void Delay_150ms(); // cho trước CTC làm trễ 150 ms

void main()
{
char pattern_1[STATES]= {{0xFF, 0xE7, 0xC3, 0x99, 0x3C, 0x7E}};
char pattern_2[STATES]= {{0xFF, 0x7E, 0x3C, 0x99, 0xC3, 0xE7}};
char index_1, index_2, select, i;
control = 1; // Input pin
index_1 =0; index_2 = 0;
while(1)
{
select =(control != 1)? 0:1;
if (select == 0)
{
for (i = 0; i < STATES; i++)
{
P1 = pattern_1[index_1];
index_1 = (index_1 + 1)%STATES;
Delay_150ms();
}
}
else
{
for (i = 0; i < STATES; i++)
{
P1 = pattern_2[index_2];
index_2 = (index_2 + 1)%STATES;
}
}
} // End of while
} // End of Main

VXL_Thi HK_AY1213-S2_trang 9/9


Giảng viên ra đề: 20/07/2020 Người phê duyệt:
Nguyễn Phước Bảo Duy TS. HOÀNG MINH TRÍ

THI CUỐI KỲ Học kỳ/năm học 2 2019-2020


Ngày thi 26/07/2020
Môn học Tín hiệu và Hệ thống
TRƯỜNG ĐH BÁCH KHOA – ĐHQG-HCM
KHOA ĐIỆN - ĐIỆN TỬ Mã môn học EE2005
Thời lượng 100 phút Mã đề
Ghi chú: - Không được sử dụng tài liệu - Đề thi gồm 06 câu.
- Một số công thức cơ bản có in ở mặt sau của đề thi

Câu hỏi 1 (L.O.2.6): Trình bày các bước thiết kế và vẽ mạch OPAMP thực hiện hệ thống có
hàm truyền
s 2  5s  6
H ( s)  2
s  9 s  20

Câu hỏi 2 (L.O.2.8): Vẽ đồ thị Bode biên độ và pha của hệ thống có hàm truyền
20 s( s  10)
H ( s) 
( s  20)( s  100)

Câu hỏi 3 (L.O.3.0): Thiết kế bộ lọc thông thấp thõa mãn các yêu cầu sau: Dãi thông trong
khoảng (0, 10rad/s); dãi chắn trong khoảng (60rad/s, ), độ lợi dãi thông không nhỏ hơn -
1dB, độ lợi dãi chắn không lớn hơn -40dB.
Câu hỏi 4 (L.O.2.7): Cho f(t) = 10cos(5t) + 10cos(80t) là ngõ vào của bộ lọc đã thiết kế ở câu
hỏi 3, tìm ngõ ra y(t) của bộ lọc.
Câu hỏi 5 (L.O.2.2): Cho tín hiệu f(t) có phổ là F() = (/4), được điều chế bằng cách nhân
với sóng mang 2sin(4t), tạo ra tín hiệu yAM(t). Xác định YAM() và thiết kế bộ khôi phục f(t) từ
yAM(t).
Câu hỏi 6 (L.O.2.3) Cho tín hiệu f(t) được lấy mẫu bằng cách nhân với chuỗi xung p(t), phổ
F() và chuỗi xung p(t) cho ở H5.

a. Với TS < /2, xác định và vẽ phổ của tín hiệu sau lấy mẫu y(t) = f(t).p(t).
b. Tìm giá trị lớn nhất của TS để có thể khôi phục f(t) từ y(t).

--- Hết ---

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


Đáp án
Câu 1: (2đ)

Lưu ý: Nếu sinh viên chọn dạng nối tiếp hoặc song song, sử dụng các mạch OPAMP bậc 1
thì vẫn được trọn điểm (nếu làm đúng).

Câu 2: (2đ)
Câu 3: (1.5đ)

Câu 4: (1đ)

Câu 5: (1.5đ)
Câu 6: (2đ)
Khoa Ñieän ÑEÀ THI CUOÁI KHOÙA MOÂN TRÖÔØNG ÑIEÄN TÖØ – DD14 (Ngaøy 13-12-2015)
BMCSKTÑieän ( Thôøi gian 110 phuùt , khoâng keå cheùp ñeà )

Baøi 1 (CÑR2.8; 1,5ñ): Tuï ñieän caàu, baùn kính trong 1cm, baùn kính ngoaøi 5cm, ñieän moâi thöïc coù ñoä thaåm ñieän 
= 40, ñoä daãn ñieän  = 10–4 (S/m), noái vaøo nguoàn aùp U = 5V (baùn kính trong coù theá ñieän U, baùn kính ngoaøi noái
ñaát). Xaùc ñònh ñieän trôû R cuûa tuï ñieän.

Baøi 2 (CÑR2.6; 1,5ñ): Loõi hình truï ñaëc, daøi voâ haïn, baùn kính a, ñoä thaåm töø  , mang doøng khoái
  2
 0

J  (3r)a z (A/m ) , beân ngoaøi laø khoâng khí. (a) Duøng luaät Ampere, tính caûm öùng töø B beân trong vaø ngoaøi loõi.
(b) Tính naêng löôïng tröôøng töø chöùa beân trong loõi treân 1m chieàu daøi.

Baøi 3 (CÑR3.4; 1,5ñ): Soùng ñieän töø phaúng ñôn saéc, taàn soá 10 kHz, truyeàn theo höôùng +z trong moâi tröôøng ( =
0,01 S/m;  = 90;  = 40), coù bieân ñoä tröôøng ñieän taïi z = 0 laø 100 V/m. Xaùc ñònh: (a) Heä soá truyeàn  vaø trôû
soùng . (b) Maät ñoä doøng coâng suaát ñieän töø trung bình cuûa soùng phaúng.

Baøi 4 (CÑR4.2; 1,5ñ): Maïch chöùa ñöôøng daây khoâng toån hao nhö Hình 4. Bieát E = 15V, R1 = 50 Ω, R2 = 40 .
Ñöôøng daây coù trở kháng đặc tính Z0 = 100 , chieàu daøi ℓ = 3 m, vaän
toác pha vp = 1,5.108 m/s. (a) Döïng giaûn ñoà thôøi gian khoaûng caùch
(giaûn ñoà bounce) cho soùng aùp vaø doøng treân ñöôøng daây khi 0 < t < 100
ns ? (b) Theo caâu (a), veõ daïng tín hieäu u2(t) vaø i(z = 1m, t).

Baøi 5 (CÑR4.3; 2ñ): Maïch chöùa ñöôøng daây khoâng toån hao, phöùc hoùa
  100o (V) , Z1 = 75 , Z2 = 100 +
trò bieân ñoä nhö Hình 5. Bieát: E
j100 . Ñöôøng daây coù trôû khaùng ñaëc tính laø Z0 = 75 , chieàu daøi ℓ =
0,6. Xaùc ñònh: (a) Ñieän aùp Ů2 vaø coâng suaát treân Z2. (b) Giaù trò Umax
vaø lieät keâ caùc vò trí cöïc ñaïi ñieän aùp treân ñöôøng daây .

Baøi 6 (CÑR3.2; 1ñ): Nguyeân toá anten thaúng, chieàu daøi ℓ, mang doøng ñieàu hoøa i(t) =
Imcos(t), ñaët doïc theo truïc Oz, goác toïa ñoä taïi taâm anten, trong moâi tröôøng ñieän moâi lyù
töôûng (,  = const). Duøng nghieäm cuûa phöông trình D’Alembert, chöùng minh raèng theá
 μI  jβr 
vectô taïi moät ñieåm caùch goác toïa ñoä khoaûng caùch r, xaáp xæ baèng: A  e az .
4πr

Baøi 7 (CÑR3.5; 1ñ): Cho oáng daãn soùng (ods) hai baûn song song, khoâng toån hao, laáp ñaày ñieän moâi lyù töôûng (,
 = const). Caùc baûn daãn ñaët taïi x = 0 vaø x = a (Hình 7). Bieát soùng tôùi vaø phaûn xaï cuûa kieåu soùng TE, taàn soá f
    
 jβ(xa x  ya y  za z ).a si
    
 jβ(xa x  ya y  za z ).a sr
trong ods coù thaønh phaàn tröôøng ñieän: E i  E 0 e vaø E r   E 0 e vôùi caùc vectô ñôn
     
vò truyeàn soùng: a si  cosθ.a x  sinθ.a z , a sr  cosθ.a x  sinθ.a z . Duøng phöông phaùp xeáp choàng thaønh phaàn
tröôøng ñieän soùng tôùi vôùi soùng phaûn xaï vaø duøng ñieàu kieän bieân cuûa tröôøng ñieän taïi x = a, CMR kieåu soùng TE chæ
v.m
coù theå lan truyeàn trong ods neáu taàn soá f kích hoaït ods thoûa : f  ( vôùi m laø soá nguyeân) vaø thaønh phaàn
2a
 
tröôøng ñieän cuûa kieåu TE coù bieåu thöùc: E   j2E 0sin(βxcosθ).e jβzsinθ a y .
--------------------------------
 Sinh vieân khoâng ñöôïc söû duïng taøi lieäu - Caùn boä coi thi khoâng giaûi thích ñeà thi . Boä moân duyeät
 Moät soá coâng thöùc cô baûn coù theå tham khaûo ôû maët sau cuûa ñeà thi .
Khoa Ñieän Ñaùp Soá THI CUOÁI KHOÙA MOÂN TRÖÔØNG ÑIEÄN TÖØ – DD13 (Ngaøy 10-12-2014)
BMCSKTÑieän ( Thôøi gian 110 phuùt , khoâng keå cheùp ñeà )

Baøi 1: Caùp ñoàng truïc raát daøi, loõi hình truï ñaëc coù baùn kính 1 mm, mang doøng 6A, phaân boá ñeàu treân tieát dieän cuûa
 
loõi, höôùng theo chieàu döông truïc Oz. Voû caùp laø maët truï coù baùn kính 3 mm, mang doøng maët JS  Ka z (A/m) .
Loõi caùp coù µ1 = µ0, giöõa loõi vaø voû caùp laø caùch ñieän lyù töôûng coù µ2 = 2µ0, beân ngoaøi caùp laø khoâng khí. Tìm:

(a) Giaù trò K ñeå tröôøng töø baèng khoâng beân ngoaøi voû caùp ? (b) Tröôøng töø H trong loõi caùp vaø trong caùch ñieän ?
(c) Ñieän caûm cuûa caùp treân ñôn vò daøi ?
(a) K = - 318,3
(b) H = 3.106r/π ( r < 1mm) ; H = 3/πr ( 1mm < r < 3mm)
(c) L0 = 0,49 µH/m.
Baøi 2: Soùng ñieän töø phaúng ñôn saéc, truyeàn trong khoâng khí, coù bieân ñoä phöùc thaønh phaàn tröôøng töø:
  
H   2e  j2π/9a x  3e jπ/9a y  e j0,07z (mA/m) . Xaùc ñònh: (a) Taàn soá f cuûa soùng phaúng ? (b) Maät ñoä doøng coâng suaát
ñieän töø trung bình cuûa soùng phaúng ?
(a) f = 3,34 MHz
(b) <Pz> = 2,45 (mW/m2)
Baøi 3: Soùng ñieän töø phaúng ñôn saéc, taàn soá 100MHz, truyeàn theo phöông +x trong moâi tröôøng ( = 1 S/m;  =
 
20;  = 0), coù bieân ñoä phöùc tröôøng ñieän taïi x = 0: E(x  0)  5a y (V/m) . Xaùc ñònh: (a) Heä soá truyeàn  vaø trôû
soùng  ? (b) Khoaûng caùch ñeå bieân ñoä tröôøng ñieän coøn 0,5 (V/m) ? (c) Coâng suaát tieâu taùn trung bình trong hình
hoäp caïnh baèng 2 cm ( 0 ≤ x, y, z ≤ 2 cm ) ?
(a)  = 19,8 + j20 (m-1);  = 28,144,7oΩ
(b) x = 11,6 cm
(c) P = 69 µW.
0 (t  0)
Baøi 4: Maïch chöùa ñöôøng daây khoâng toån hao nhö Hình 4. Bieát e(t)   (V) , R1 = 25 Ω, R2 = 150 .
54 (t  0)
Ñöôøng daây coù trở kháng đặc tính Z0 = 50 , vận tốc pha vp = 108 m/s
vaø chieàu daøi ℓ = 400 m. (a) Döïng giaûn ñoà thôøi gian khoaûng caùch (giaûn
ñoà bounce) cho soùng aùp vaø doøng treân ñöôøng daây khi 0 < t < 20µs ? (b)
Theo caâu (a), veõ daïng tín hieäu i(z = 300m, t) vaø u(z = 300m, t) ?
(a) Giản đồ bounce:
(b) Dạng điện áp và dòng:

Baøi 5: Maïch chöùa hai ñöôøng daây khoâng toån hao, phöùc hoùa trò bieân ñoä
nhö Hình 5. Bieát: E  1000o (V) , Z1 = 50 , Z2 = 50 + j25 , R3 =
30 . Hai ñöôøng daây ñeàu coù trôû khaùng ñaëc tính laø Z0 = 50 , chieàu daøi
ℓ1 = ℓ2 = 0,3. Xaùc ñònh: (a) Trôû khaùng vaøo Zin taïi ñieåm 1 ? (b) Ñieän aùp
Ů1, Ů3 vaø Ů2 ? (c) Coâng suaát phaùt cuûa nguoàn aùp, coâng suaát tieâu thuï
treân Z1, treân R3 vaø treân Z2 ?
(a) 98,7 – j68,6 Ω
(b) U1 = 73,4-10o (V); U3 = 24,6-114,4o (V); U2 = 32,2161o (V)
(c) PE = 27,7 W; PZ1 = 9,3 W; PR3 = 10W; PZ2 = 8,3 W.
Baøi 6: Anten ñaët trong khoâng khí, mang doøng ñieàu hoøa bieân ñoä Im = 60 mA, böùc xaï tröôøng ñieän ôû mieàn xa:
  jβr 
E  12er  cos3 θ.sin   a θ (V/m) . Xaùc ñònh: (a) Bieân ñoä phöùc tröôøng töø duøng heä phöông trình Maxwell phöùc ?
(b) Coâng suaát böùc xaï Pbx , ñieän trôû böùc xaï Rbx ? (c) Ñoä ñònh höôùng D cuûa böùc xaï ñieän töø ?
 0,1 
(a) H  (cos3  sin )e  jr a  (A / m)
r
(b) Pbx = 0,1714 W; Rbx = 95,24 Ω
(c) D = 14.
Baøi 7: OÁng daãn soùng (ods) chöõ nhaät, khoâng toån hao, laáp ñaày khoâng khí, kích thöôùc axb = 4 cm x 2 cm, kích
hoaït ôû taàn soá f = 10 (GHz). (a) Xaùc ñònh taát caû caùc kieåu soùng coù theå truyeàn trong ods ? (b) Neáu kieåu TE10 ñöôïc
truyeàn trong ods, tính taàn soá tôùi haïn, heä soá pha 10, trôû soùng (TE10) ? Xaùc ñònh caùc thaønh phaàân tröôøng ñieän vaø
töø (bieân ñoä phöùc) cuûa kieåu soùng naøy bieát coâng suaát trung bình truyeàn qua tieát dieän ngang ods laø P = 2 mW ?
(a) TE10, TE20; TE01; TE11; TM11
(b) fth = 3,75 Ghz;  = 194,16 rad/m;  = 406,7 Ω
  0, 0635cos
(c) ; H  e
x  j z   j0,157 sin
(A / m) ; H  e
x  j z
(A / m) ;
z a x a

E y   j63,8sin  e
x
a
 j z
(V / m) .
--------------------------------
 Sinh vieân khoâng ñöôïc söû duïng taøi lieäu - Caùn boä coi thi khoâng giaûi thích ñeà thi . Boä moân duyeät
 Moät soá coâng thöùc cô baûn coù theå tham khaûo ôû maët sau cuûa ñeà thi .
MOÄT SOÁ COÂNG THÖÙC CÔ BAÛN TRONG CAÙC BAØI TAÄP TRÖÔØNG ÑIEÄN TÖØ
1       Heä h1 h2 h3
grad  a1  h12 a 2  h13 a3 
h1a1

h2a2

h 3a 3
h1 u1 u2 u3
 1
 rotA    
Ñeà caùc 1 1 1
divA  1
  (h 2h3A1 )   (h1h3A2 )   (h1h 2A3 )  h 1h 2 h 3 u1 u 2 u 3
h1h 2 h 3  u1 u 2 u 3  Truï 1 r 1
h 1 A1 h2A2 h 3A3
Caàu 1 r rsin
  div(grad )  1
h1h 2 h 3



u1  h 2 h 3 
h1 u1   ...   
 A  grad(divA)  rot(rotA)
   
D  εE B  μH J   E
 
       
dS h2h3du2du3a1 h1h3dudu
1 3a2  h1h2dudu
1 2a3 d   h1du1a1  h 2 du2a 2  h 3du3a 3 dV  h1h 2 h 3du1du 2 du3
     
 s dS  q   ρεV ε0  361 109(F/m) We  12  E.DdV  12 C.U2
 Q
D E grad C U V
P  (ε  ε 0 )E

          
 Hd   I μ0 4.107(H/m) Wm  12  H.BdV  12 L.I2 pS an(P1 P)
Φ
A  μJ B  rotA L I 2
L V
 
2 2
η jω μ γ  jωμ(σjωε)  α  jβ PJ   EJdV ρpV  divP
α
ω με
2
1  

ωε
1 β
ω με
2
1  

ωε
1 σ  jω ε 
β grad β.as
 V

 jω μ /γ
Uniform Plane Wave and Antenna:
Heä phöông trình Maxwell
             TÑT cuûa nguyeân toá anten thaúng
    E  η  H a s  H  1η a s  E 
rotH  J  Dt an  (H1  H2 )  Js  
 
H Iβ 2sinθ
 j
 β 21r 2 .e -jβr 
   4 βr
    
 
E r   j2Iβcosθ
 3
rotE   Bt

a n  (E1  E 2 )  0
  
v  ω/β
Pz  12  Re{E H}z dSz p
S
λ  2π/β
 j
β2 r 2
 β31r3 .e-jβr 
divD  ρ V a n .(D1  D2 )  S
   
Pbx   S
 Pr  dS
E θ   j4Iβsinθ
 3
 1
 β2jr2  β31r3 .e-jβr 
divB  0 a n .(B1  B2 )  0 2  1/ βr
R bx  2Pbx / I m
    ε  ε0(εr  j ωσ )
divJ   ρtV a n .(J1  J2 )   tS R0  Re(η)
2πa
; L0  Im(η)
2πaω
0 D π 2π
4πu nm ax

4πu m ax
Pbx
0 0 u n sin θ d θ d 

Waveguide:

E x  K12 γ Exz  jωμ Hyz


  
 
E y  K12 γ Eyz  jωμ Hxz    12 γ H z  jωε E z
    12 γ H z  jωε E z
 
c
  c
Hx K x c y
H y K y c
x

 2 E z
 yE2z  K c2 E z  0
2  
2H z
2
 0
 yH2z  K c2 H α  1 ωμ   C n g H t t d 
2

α  ω μ σ
x 2
x 2 z w 2 2σ   ( E x Hˆ y  E y Hˆ x )dS  d 2 β
 S 
Kieåu soùng tôùi TEmn Kieåu soùng tôùi TMmn Caùc thoâng soá
  C cos
H    y  .e
m
x cos n -jβz
E z  Csin  m
  y  .e
x sin n -jβz 2 2
z a b a b      
fth  v2 m
a
n
b
ωth

v
λth

 
H jβC m
sin  x  cos  y  .e
m n -jβz
E x   jβC m
cos  x  sin  y  .e
m n -jβz 2 mπ
2
K       - β  ω με nπ
2
2 2
x Kc2 a a b K2 a a b c a b
c

 
H jβC n
cos  x  sin  y  .e
m n -jβz
E y   jβC n
sin  x  cos  y  .e
m n -jβz 2 2 2
y Kc2 b a b K2 c
b a b β  β        
mn

v
m
a
n
b

E z =0; E x  ηTE H
 ; E  η H
y y

TE x
 =0; E  η H
H z x
  
TM y ; E y   ηTM H x ηTE  ωμ
β
; ηTM  ωεβ ; γ  jβ
v λ
v mn  λ mn  P  12 ηTE/TM 
a b
 |2 |H
|H  |2 dxdy
1  (f th /f ) 2
1  (f th /f ) 2
0 
0 x y 
Lossless Transmission Line:
 U
U   e  jβz +U
  e jβz  U
  e jβd +U
  e  jβd  U
 cos(βz)  jZ I sin(βz)  U
 cos(βd)  jZ I sin(βd) 
2θ  2βd
1 1 2 2 1 0 1 2 0 2

I  +  +   
e jβd  UZ2 e jβd   j ZU1 sin(βz)  I1cos(βz)  j UZ 2 sin(βd)  I2 cos(βd)  2  Z2 Z0 2θ
U Z Z
1
Z0
e  jβz  UZ1 e jβz  U
Z0
2
2 0
0 0 0 0

   Z I  Z I 1+ 
U
U2 02  
U
U2 02
Z(d)  Z 0 1    Z0 ZZ2 ++ jZ0 tgβd
Umax  U2(12) Umin  U2 (12 ) Imax  UZmax Imin  UZmin
2 2 2 2 0 jZ tgβd 2 0 0

dmax  θ
k λ
dmin  θ
 k λ λ
SWR 
12
2  SWR  1  }
P  Re{U.I 1 * 1 + 2
(U )  (U) 1 - 2
Z0 
L0
; vp 
c
2β 2 2β 4 2 12 SWR  1 2 2Z0 2Z0 C0 ε r μr
Đại Học Quốc Gia Tp.HCM ĐỀ THI HỌC KỲ I, 2019-2020
Trường Đại Học Bách Khoa MÔN: MẠCH ĐIỆN TỬ - EE2007
Khoa Điện - Điện Tử Ngày: 30/12/2019
Bộ Môn Viễn Thông Thời gian: 90 Phút (15g00 - 16g30)
ooOoo Sinh Viên Không Được Phép Sử Dụng Tài Liệu
Họ & Tên: ............................................................ MSSV: ..................... Nhóm: .................
Cán Bộ Coi Thi GV Tổng Hợp Đề BM Viễn Thông

Câu 1: (3 đ) Cho mạch khuếch đại như Hình 1. Transistor 𝑄 có các thông số sau: ℎ𝑓 𝑒 = 𝛽 = 80, 𝑉𝛾 = 𝑉𝐵𝐸
= 0.7 V. Các tụ điện có giá trị rất lớn. Các tụ ký sinh 𝐶𝑏𝑒 = 𝐶𝜋 = 200𝑝𝐹 , 𝐶𝑏𝑐 = 𝐶𝜇 = 10𝑝𝐹
𝑉𝐶𝐶 = 12 V

𝑅
39 kΩ 𝑅𝐶 3.9 kΩ
𝑅𝑜𝑢𝑡
𝑅𝑖𝑛 𝑖𝐿

𝐶 → ∞
𝐶 → ∞
𝑄
𝑅𝐿 1 kΩ

𝑖𝑖 𝑅 8.2 kΩ 𝑅𝐸 820 Ω 𝐶
→ ∞

Hình 1

1.1. Tính 𝐼𝐶𝑄 , 𝑉𝐶𝐸𝑄 .


1.2. Vẽ sơ đồ tương đương tín hiệu nhỏ? Tìm 𝑅𝑖𝑛 , 𝑅𝑜𝑢𝑡 , và tính độ lợi khuếch đại dòng 𝐺𝑖 = 𝑖𝐿 /𝑖𝑖 .
1.3. Vẽ sơ đồ tương đương tín hiệu nhỏ ở tần số cao. Tính các tần số cắt cao gây ra bởi các tụ ký sinh. Vẽ
giản đồ Bode ở phía tần số cao của mạch.

Câu 2: (3 đ) Cho mạch khuếch đại như Hình 2. Các Transistor là giống nhau và có các thông số như sau:
𝑉𝐵𝐸 𝑜𝑛 = 0.7 𝑉, 𝑉𝐶𝐸 𝑠𝑎𝑡 = 0.2 𝑉, 𝛽 = 100, và 𝑉𝐴 = ∞ (ngoại trừ 𝑄 ). Các linh kiện có các giá trị như sau:
𝑅 = 𝑅
= 1 𝑘Ω, 𝑅 = 𝑅 = 3 𝑘Ω, 𝑅 = 𝑅 = 0.5 𝑘Ω, 𝑅 = 8.6 𝑘Ω, 𝑅𝐿 = 15 𝑘Ω, 𝑉𝐶𝐶 = 5 𝑉, 𝛽 = 100, 𝑟𝑜 =
100 𝑀 Ω.
2.1. Tính 𝐼𝐸 , 𝐼𝐸
. Nhận xét chức năng của các điện trở 𝑅 , 𝑅 , và Transistor 𝑄 . Hãy nêu ưu điểm của
mạch khuếch đại trên?
2.2. Xét 𝑣 = 𝑣
= 𝑣𝐶𝑀 , tính 𝐴𝐶𝑀 = 𝑣𝑜 /𝑣𝐶𝑀 .
2.3. Xét 𝑣 = 𝑣𝑖𝑑 /2, 𝑣
= −𝑣𝑖𝑑 /2, tính 𝐴𝑖𝑑 = 𝑣𝑜 /𝑣𝑖𝑑 .
2.4. Với 𝑣 , 𝑣
là giá trị bất kỳ, viết phương trình 𝑣𝑜 theo 𝑣 , 𝑣
?. Tính tỷ số 𝐶𝑀 𝑅𝑅 = 𝐴𝑖𝑑 /𝐴𝐶𝑀 . Nhận
xét? So sánh ưu và nhược điểm của mạch khuếch đại vi sai dùng BJT và dùng FET.

Câu 3: (2 đ) Cho mạch khuếch đại như Hình 3.


3.1. Tìm giá trị của biến trở 𝑅𝑉 để điện áp ngõ ra 𝑣𝑜 không phụ thuộc vào 𝑣𝑖
?

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 1/2


𝑉𝐶𝐶 = 5 𝑉

𝑅 𝑅
3 kΩ 3 kΩ
𝑅 + 𝑣
8.6 kΩ
𝑄 Q5
𝑅 𝑅

𝑄
1 kΩ Hình 2
𝑅 𝑅 1 kΩ
𝑣 0.5 kΩ 0.5 kΩ 𝑣

Q1 𝑄

−𝑉𝐶𝐶
𝑅 𝑅𝑉 𝑟𝑜

680 Ω
𝑅 20 kΩ
𝑅

𝑣𝑖
𝑅
10 kΩ

680 Ω 𝑣𝑜 Hình 3

𝑅 𝑅 𝑅

680 Ω 10 kΩ 20 kΩ
𝑣𝑖

3.2. Với giá trị 𝑅𝑉 ở câu 3.1, viết biểu thức 𝑣𝑜 theo 𝑣𝑖 ?

Câu 4: (2 đ) Cho mạch khuyếch đại công suất đẩy kéo lớp B (AB) dùng cặp Transistor bổ phụ 𝑄 , 𝑄
như
Hình 4. Các BJT có các thông số như sau: 𝑄 : 𝑉𝐵𝐸 = 𝑉𝛾 = 0.6 V, 𝑄
: 𝑉𝐸𝐵
= 𝑉𝛾
= 0.6 V. Giả sử bỏ qua
tổn hao công suất trên các điện trở 𝑅 , 𝑅
, 𝑅 .

12 kΩ

𝑄
𝐶
𝐸 12 V

𝑅𝑒 1Ω
𝑅𝑜
𝑅
4Ω Hình 4
𝑅𝑒
1Ω
𝑣𝑠𝑖𝑔
𝐸 12 V

𝐶
𝑅

12 kΩ

4.1. Giải thích ngắn gọn nguyên lý hoạt động của mạch và vẽ dạng sóng các dòng điện đi qua các điện trở
𝑅𝑒 , 𝑅𝑒
và 𝑅𝑜 .
4.2. Tìm công suất mỗi nguồn DC cung cấp khi công suất tiêu thụ trên tải là 8W.
4.3. Xác định giá trị điện trở 𝑅 để tránh méo xuyên tâm.
4.4. Tìm công suất tiêu tán tối đa trên mỗi BJT.

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . Hết


Đại Học Quốc Gia Tp.HCM ĐỀ THI HỌC KỲ I, 2018-2019
Trường Đại Học Bách Khoa MÔN: MẠCH ĐIỆN TỬ - EE2007
Khoa Điện - Điện Tử Ngày: 27/12/2018
Bộ Môn Viễn Thông Thời gian: 90 Phút (7g15 - 8g45)
ooOoo Sinh Viên Không Được Phép Sử Dụng Tài Liệu
Họ & Tên: ............................................................ MSSV: ..................... Nhóm: .................
Cán Bộ Coi Thi GV Tổng Hợp Đề BM Viễn Thông

TS. Trịnh Xuân Dũng PGS.TS. Hà Hoàng Kha

Câu 1: (3 đ) Cho mạch khuếch đại liên tầng như Hình 1. Các BJT có các thông số như sau: 𝛽 = ℎ𝑓 𝑒 = 80,
𝛽
= ℎ𝑓 𝑒
= 60, 𝑉𝛾 = 𝑉𝐵𝐸 on = 𝑉𝛾
= 𝑉𝐵𝐸
on = 0.7𝑉 , 𝑉𝐶𝐸 sat = 𝑉𝐶𝐸
sat = 0.2V, 𝑉𝑇 = 𝑉𝑇
= 25𝑚𝑉 .
𝑉𝐶𝐶 = 9 V

𝑅𝑜𝑢𝑡
𝑅 47 kΩ 𝑅 5.6 kΩ 𝑅 3 kΩ
𝑅𝑖𝑛
𝑣𝑜
𝑅𝑠𝑖𝑔
𝐶
𝑄 𝑄

5𝜇F
0.5 kΩ 𝐶
5𝜇F 𝑅𝐿 1 kΩ
𝑅 0.5 kΩ
𝐶
𝑣𝑠𝑖𝑔 𝑅
15 kΩ 𝑅 3 kΩ
47𝜇F
𝐶

𝑅 1 kΩ
50𝜇F

Hình 1

1.1. (L.O.1.1) Tính phân cực DC của mạch khuếch đại.


1.2. (L.O.2.3) Vẽ sơ đồ tương đương tín hiệu bé của mạch ở tần sớ dãy giữa. Tìm 𝑅𝑖𝑛 , 𝑅𝑜𝑢𝑡 , và tính độ lợi
𝐺𝑣 = 𝑣𝑜 /𝑣𝑠𝑖𝑔 ?
1.3. (L.O.3.2) Vẽ sơ đồ tương đương tín hiệu bé ở tần số thấp. Tính tần số cắt thấp gây ra bởi các tụ
trong mạch.
1.4. (L.O.3.3) Viết biểu thức tính độ lợi áp 𝐺𝑣 ở tần số thấp. Tìm tần số cắt thấp 𝑓𝐿 của mạch.

Câu 2: (2 /
đ) 2.1. (L.O.2.4) Cho mạch khuếch đại dùng OpAmp lý tưởng như Hình 2. Viết biểu thức
của điện áp ngõ ra 𝑣𝑜 theo các điện áp 𝑣 và 𝑣
.
𝑅 𝑅

𝑅 𝑣𝑜
𝑣

Hình 2: Câu 2.

1. Nếu 𝑅 = 𝑅 = 1𝑘Ω và 𝑅
= 𝑅 = 10𝑘Ω. Tính độ lợi vi sai, độ lợi chung và CMRR[dB] của mạch.

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 1/2


2. Nếu 𝑅 = 𝑅 = 1𝑘Ω, 𝑅
= 10.5𝑘Ω và 𝑅 = 10𝑘Ω. Tính độ lợi vi sai, độ lợi chung và CMRR[dB] của
mạch.
2.2. (L.O.2.4) Sử dụng OpAmp và các điện trở, thiết kế mạch khuếch đại có điện áp ngõ ra 𝑣𝑜 phụ thuộc
vào điện áp ngõ vào 𝑣 và 𝑣
theo phương trình sau: 𝑣𝑜 = 2𝑣 − 0.5𝑣
.

Câu 3: (2 đ) Cho mạch khuếch đại như Hình 3. Transistor có thông số như sau: 𝑔𝑚 = 1𝑚𝐴/𝑉 , 𝑟𝑜 = 𝑟𝑑𝑠 =
150𝑘Ω. Các tụ 𝐶 , 𝐶
, 𝐶 có giá trị rất lớn.
𝑉𝐷𝐷

𝑅𝑜𝑢𝑡
𝑅𝐷 15 kΩ
𝑅𝑖𝑛
𝑣𝑜
𝑅𝑠𝑖𝑔 𝐶

𝑄
10 kΩ 𝐶

𝑅𝐿 15 kΩ
𝑣𝑠𝑖𝑔 𝑅𝐺 4.7 MΩ
I
𝐶

−𝑉𝑆𝑆

Hình 3: Câu 3.

3.1. (L.O.2.1) Vẽ sơ đồ tương đương tín hiệu bé của mạch khuếch đại trên.
3.2. (L.O.2.3) Tìm 𝑅𝑖𝑛 , 𝑅𝑜𝑢𝑡 và tính độ lợi dãy giữa 𝐺𝑣 = 𝑣𝑜 /𝑣𝑠𝑖𝑔 .

Câu 4: (2 /
đ) Cho mạch khuyếch đại công suất đẩy kéo lớp B (AB) dùng cặp Transistor bổ phụ 𝑄 , 𝑄

như Hình 4. Các BJT có các thông số như sau: 𝑄 : 𝑉𝐵𝐸 = 𝑉𝛾 = 0.5 V, 𝑄
: 𝑉𝐸𝐵
= 𝑉𝛾
= 0.5 V. Giả sử bỏ
qua tổn hao công suất trên các điện trở 𝑅 , 𝑅
, 𝑅 . Điện áp cấp vào mạch 𝑣𝑖 có giá trị hiệu dụng 9𝑉 rms.
𝑉𝐶𝐶 = 25 V

12 kΩ

𝑄
𝐶

𝑅 𝑣𝑜

𝑅𝐿
4Ω
𝑣𝑖

𝐶
𝑅

12 kΩ
−𝑉𝐶𝐶 = −25 V

Hình 4: Câu 4.

4.1. (L.O.4.1) Tìm công suất tiêu thụ xoay chiều trên tải 𝑅𝐿 ?
4.2. (L.O.4.2) Tìm công suất tiêu tán trung bình trên mỗi transistor?
4.3. (L.O.4.2) Tìm công suất cấp ra bởi nguồn?
4.4. (L.O.4.2) Hiệu suất của mạch khuếch đại?
4.5. (L.O.4.1) Các transistor sẽ tiêu thụ công suất tối đa khi nào? Tìm công suất tiêu tán tối đa trên mỗi
transistor?

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . Hết


Đại Học Quốc Gia Tp.HCM ĐỀ THI HỌC KỲ I, 2017-2018
Trường Đại Học Bách Khoa MÔN: MẠCH ĐIỆN TỬ - EE2007
Khoa Điện - Điện Tử Ngày: 22/12/2017
Bộ Môn Viễn Thông Thời gian: 90 Phút (12g30 - 14g00)
ooOoo Sinh Viên Không Được Phép Sử Dụng Tài Liệu
Họ & Tên: ............................................................ MSSV: ..................... Nhóm: .................
Điểm Cán Bộ Coi Thi GV Tổng Hợp Đề BM Viễn Thông

1 Đề thi này gồm có 8 trang, 4 câu. Sinh viên làm bài trực tiếp trên đề thi.
2 Sinh viên điền đầy đủ Họ, Tên vào mỗi tờ giấy làm bài.

Câu 1: (2 /
đ) Cho mạch khuếch đại liên tầng như Hình 1. Các BJT có các thông số như sau: 𝑄 :
𝛽 = ℎ𝑓 𝑒 = 80, 𝑟𝜋 = ℎ𝑖𝑒 = 2.5 kΩ, 𝑄
: 𝛽
= ℎ𝑓 𝑒
= 60, 𝑟𝜋
= ℎ𝑖𝑒
= 2 kΩ. Các tụ điện có giá trị rất lớn.

𝑉𝐶𝐶

𝑅 68 kΩ 𝑅 4.7 kΩ

𝑅𝑖𝑛 𝑅𝑜𝑢𝑡
𝑄

𝑅𝑠𝑖𝑔
𝐶
𝑄
0.5 kΩ 𝑣𝑜
𝐶

𝑣𝑠𝑖𝑔 𝑅
15 kΩ 𝐶
𝑅 6.8 kΩ 𝑅 10 kΩ
𝑅 1.2 kΩ 𝑅 0.2 kΩ

Hình 1: Câu 1.

1.1. Vẽ sơ đồ tương đương tín hiệu nhỏ của mạch trên.

........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 1/8


........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
1.2. Tìm 𝑅𝑖𝑛 , 𝑅𝑜𝑢𝑡 , và tính độ khuếch đại 𝐺𝑣 = 𝑣𝑜 /𝑣𝑠𝑖𝑔 ?

........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 2/8


Câu 2: (2 /
đ) Cho mạch khuếch đại như ở Hình 2. Transitor có các thông số như sau 𝑔𝑚 = 2 mA/V, điện
trở 𝑟𝑜 = 𝑟𝑑𝑠 = 20𝑘Ω.
𝑉𝐷𝐷

𝑅𝑜𝑢𝑡
𝑅 10 MΩ 𝑅𝐷 2 kΩ
𝑅𝑖𝑛
𝑣𝑜 (𝑡)
𝑅𝑠𝑖𝑔 𝐶

𝑄
1 kΩ 𝐶

𝑅𝐿 10 kΩ
𝑣𝑠𝑖𝑔 (𝑡) 𝑅
10 MΩ
𝑅𝑆 1 kΩ
𝐶

Hình 2: Câu 2.

2.1. Tìm 𝑅𝑖𝑛 , 𝑅𝑜𝑢𝑡 và tính độ khuếch đại dãy giữa 𝐺𝑣 = 𝑣𝑜 /𝑣𝑠𝑖𝑔 ?

........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 3/8


2.2. Ở tần số cao có các tụ ký sinh 𝐶𝑔𝑠 = 10𝑝𝐹 và 𝐶𝑔𝑑 = 2𝑝𝐹 . Vẽ sơ đồ tương đương tín hiệu nhỏ của
mạch ở tần số cao? Tính tần số cắt cao của mạch 𝑓𝐻 ?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
2.3. Các tụ điện 𝐶 = 𝐶
= 100𝑢𝐹 , 𝐶 có giá trị vô cùng lớn. Tìm tần số cắt thấp của mạch 𝑓𝐿 ?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
2.4. Các tụ điện 𝐶 = 𝐶
= 𝐶 = 100𝑢𝐹 . Tìm tần số cắt thấp của mạch 𝑓𝐿 ?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 4/8


Câu 3: (2 /
đ) Cho mạch khuếch đại dùng OpAmp lý tưởng như Hình 3.

𝑣𝑖 𝑣𝑂

𝑅
𝑅 𝑅
𝑅

𝑣𝑂
𝑅
𝑅
𝑅

𝑣𝑖
𝑣𝑂

Hình 3: Câu 3.

3.1. Tìm biểu thức điện áp ngõ ra 𝑣𝑜 theo các điện áp ngõ vào 𝑣𝑖 và 𝑣𝑖
?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 5/8


3.2. Nếu 𝑣𝑖 = 1𝑉 , 𝑣𝑖
= 2𝑉 , 𝑅 = 1𝑘Ω, 𝑅
= 2𝑘Ω, 𝑅 = 3𝑘Ω, 𝑅 = 4𝑘Ω. Tính điện áp ngõ ra 𝑣𝑜 ? Nhận
xét về vai trò của các OpAmp sử dụng trong mạch?

........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

3.3. Các hạn chế của mạch trên là gì? Đề xuất giải pháp khắc phục các hạn chế này?

........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 6/8


Câu 4: (2 /
đ) Cho mạch khuyếch đại công suất đẩy kéo lớp B (AB) dùng cặp Transistor bổ phụ 𝑄 , 𝑄

như Hình 4. Các BJT có các thông số như sau: 𝑄 : 𝑉𝐵𝐸 = 𝑉𝛾 = 0.6 V, 𝑄
: 𝑉𝐸𝐵
= 𝑉𝛾
= 0.6 V. Giả sử bỏ
qua tổn hao công suất trên các điện trở 𝑅 , 𝑅
, 𝑅 .

12 kΩ

𝑄
𝐶
𝐸 15 V

𝑅𝑒 1Ω
𝑅𝑜
𝑅
4Ω
𝑅𝑒
1Ω
𝑣𝑠𝑖𝑔
𝐸 15 V

𝐶
𝑅

12 kΩ

Hình 4: Câu 4.

4.1. Tìm công suất tiêu thụ xoay chiều tối đa trên tải 𝑅𝑜 ?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
4.2. Tìm công suất tiêu tán trung bình trên điện trở 𝑅𝑒 khi biên độ điện áp trên tải là 4𝑉 ?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . 7/8


4.3. Xác định giá trị điện trở 𝑅 để tránh méo xuyên tâm?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
4.4. Tìm công suất tiêu tán tối đa trên mỗi BJT?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
4.5. Xác định biểu thức và vẽ dạng sóng điện áp 𝑣𝑐𝑒 (𝑡) của BJT Q1 khi biện độ dòng qua tải là
𝑖 = 𝑠𝑖𝑛(1000𝜋𝑡) (A), đơn vị của t là ms?
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................
........................................................................................................

Họ và Tên SV: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MSSV: . . . . . . . . . . . . . . . . . . . . . . . . Hết

You might also like