1. Trang chủ
  2. » Tất cả

142-VXL-Thi-Đáp án

6 3 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Ñieåm ĐÁP ÁN ĐỀ THI VI XỬ LÝ HK (2014-2015) Chữ ký giám thị Ngày thi: 12/06/2015 Thời gian làm bài: 110 phút Đề thi có trang + trang phụ lục Sinh viên làm đề KHÔNG sử dụng tài liệu HỌ TÊN: ……………………………………………… MSSV: ………………… …… Duyệt BM Điện tử GV đề: NGUYỄN TRỌNG LUẬT CÁC CÂU HỎI ÁP DỤNG TRÊN VI ĐIỀU KHIỂN 8051 Câu 1: (2 điểm) Cho mạch giải mã địa nhớ sử dụng IC 74138 hình vẽ A11 A12 A13 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A(LSB) B C A15 A14 G1 G2A G2B G2B CS1 CS0 A10 A9 A8 CS2 a Xác định địa ngõ decoder tín hiệu chọn chip CS0 cho nhớ ROM: A15 A14 A13 A12 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Địa CS0: X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X (1đ) Vùng địa (HEX) X X X X X X X X /Y0: /Y1: /Y2: /Y3: /Y4: /Y5: /Y6: /Y7: 8000H – 87FFH 8800H – 8FFFH 9000H – 97FFH 9800H – 9FFFH A000H – A7FFH A800H – AFFFH B000H – B7FFH B800H – BFFFH 9800H - A7FFH b Vẽ thêm mạch tín hiệu chọn chip CS1 CS2 với yêu cầu: - CS1: chọn chip RAM có dung lượng 8KB địa đầu Y0 - CS2: chọn I/O có 256 địa có địa CS1 Xác định địa tín hiệu chọn chip (giải thích) (1đ) Mạch giải mã 74138 phân vùng 2KB CS1 vùng 8KB nên ghép vùng: Y0, Y1, Y2, Y3 (hình vẽ): 8000H – 9FFFH CS2 vùng 256B, lấy vùng Y4 với A10 = A9 = A8 = 0: A000H – A0FFH (hình vẽ) Trang / Câu 2: (2 điểm) a Viết lệnh hợp ngữ để chọn bank ghi cất nội dung ghi A R6 vào vùng stack: SETB RS1 (PSW.4) PUSH ACC CLR RS0 (PSW.3) PUSH 16H (R6 Bank 2) ( MOV PSW, # 00010000B (0.5đ) b Hồn tất lệnh hợp ngữ có nhiệm vụ sau Thanh ghi A có giá trị nhị phân sau thực hiện? *Làm cho cờ OV=1: *Làm cho cờ P=1: MOV A, # 01001100B MOV A, # 01110001B ADD ANL Thanh ghi A: A, # 01000000B A= 10001100B A, # 11111110B A= (0.5đ) 01110000B (số dương cộng số dương thành số âm) (xóa thêm bit 1) c Cho lệnh gọi chương trình AJMP LAP chứa nhớ chương trình địa B7FFH Xác định địa trang phạm vi địa hợp lệ nhãn LAP (Giải thích) PC lệnh kế = B7FFH + (lệnh byte) = B801H = 1011 1000 0000 0001 B Địa trang bit cao PC: 10111 : trang 23 (0.5đ) Phạm vi hợp lệ trang 2KB này: 1011 1XXX XXXX XXXX : B800H  BFFFH d Lệnh JZ XOA có mã máy 60H 9EH chứa nhớ chương trình từ địa 6D20H Xác định địa nhãn XOA (Giải thích) PC lệnh kế = 6D20H + (lệnh byte) = 6D22H Lệnh nhảy có độ dời 9EH (số âm) Nhãn XOA có địa chỉ: 6D22H + FF9EH = 6CC0H (0.5đ) Câu 3: (1 điểm) Viết đoạn chương trình hợp ngữ theo lưu đồ sau: R7 = MOV R7, #0 lap MSB(A) = Y thoat LAP: JB N ; 1MC ACC.7, THOAT ; 2MC RL A ; 1MC INC R7 ; 1MC SJMP LAP Quay trái A ; 2MC (0.5đ) Tăng R7 lên Trang / Với A = 26, tính số chu kỳ máy (MC) để đoạn chương trình nhảy đến nhãn thoat A = 26 = 0001 1010 B, chương trình quay trái ghi A MSB(A) = nhảy đến nhãn THOAT Như vậy, vòng lặp thực lần lần thứ thực lệnh JB nhảy Vậy số chu kỳ máy: + (2 + + + 2) + = 21MC (0.5đ) Câu 4: (1 điểm) Viết chương trình hợp ngữ tìm giá trị y (kết cất vào ghi B) cách: có dùng lệnh MUL khơng dùng MUL (dùng bảng tham chiếu) Giá trị y cần tính y = x2 -2x + 3, với giá trị x chứa ghi A có giá trị từ đến *Dùng lệnh MUL: (0.5đ) * Dùng bảng tham chiếu: MOV R7, A y(0) = 3, y(1) = 2, y(2) = 3, RL A y(4) = 11, y(5) = 18, y(6) = 27 MOV R6, A ; R6 = 2x y(7) = 38, y(8) = 51, y(9) = 66 MOV A, R7 MOV B, A MUL AB ADD (0.5đ) y(3) = MOV DPTR, # BANG MOVC A, @A+DPTR A, #3 ; A = x2 + MOV B, A CLR C SJMP $ SUBB A, R6 ; A = x2 - 2x + MOV B, A SJMP $ ; A = x2 BANG: DB DB 3, 2, 3, 6, 11 18, 27, 38, 51, 66 Câu 5: (1 điểm) Mạch 8051 có cơng tắc SW P1.1 P1.0 Viết chương trình hợp ngữ C (không dùng ngắt) kiểm tra SW sau phút để làm thay đổi ngõ Port theo quy luật bảng sau (cho sẵn chương trình tạo trễ giây DELAY_1s) P1.1 0 1 P1.0 1 Port Quay phải bit Quay trái bit Lấy đảo bit Hoán đổi bit cao bit thấp Trang / (1đ) phút = 60 giây LAP: MOV R7, #60 DL: ACALL DELAY_1s CPL A DJNZ R7, DL SJMP TT MOV A, P1 SS_3: SWAP A ANL A, #0000 0011B TT: MOV P2, A MOV R6, A SJMP LAP MOV A, P2 CJNE R6, #0, SS_1 RR A JB P1.1, TT1 SJMP TT JB P1.0, TT2 R6, #1, SS_2 RR A RL A SJMP TT SJMP TT SS_1: CJNE SS_2: CJNE R6, #2, SS_3 Cách khác: kiểm tra bit P1.1 P1.0 TT2: RL ; 00 A ; 01 Câu 6: (1 điểm) D0 Data D1 D2 D3 D4 D5 D6 D7 Clock Tốc độ baud Viết chương trình hợp ngữ C mô hoạt động chế độ ghi dịch (phát liệu) Port nối tiếp Với chân P1.7 ngõ Data, chân P1.6 xung Clock Chương trình có nhiệm vụ lấy nội dung nhớ RAM nội có địa 20H phát nối tiếp ngõ Data, với tốc độ baud 1000bps tần số thạch anh XTAL = 6MHz Để mô chế độ ghi dịch (phát), thực vòng lặp lần gồm bước: - Cho bit (trọng số thấp trước) phát ngõ Data (P1.7) - Tạo xung cạnh lên cho ngõ clock (P1.6) - Tạo trễ với thời gian = 1/ fbaud = 1/1000bps = 1ms = 1000us = 250 2us MOV R7, #8 MOV R6, #250 MOV A, 20H DJNZ R6, $ ; chuyển qua CY DJNZ R7, LAP MOV P1.7, C ; xuất data SJMP $ CLR P1.6 ; tạo xung clock SETB P1.6 ; cạnh lên LAP: RRC A ; trễ 1ms (thay lệnh RRC A MOV C, ACC.0 RR Trang / A ) Câu 7: (1,5 điểm) a Viết chương trình SOSANH, có nhiệm vụ so sánh số nhị phân (mỗi số 16 bit) Số thứ nội dung cặp ghi R7_R6 số thứ nội dung cặp ghi R5_R4 Chương trình tìm giá trị lớn số cất vào cặp ghi R3_R2; số xóa cặp ghi R3_R2 (Các ghi R7, R5, R3 byte cao số 16 bit) SOSANH: MOV A, R7 NHO: MOV R3, 05H CJNE A, 05H, KHAC MOV A, R6 (0,75 điểm) MOV R2, 04H KTHUC: RETI CJNE A, 04H, KHAC MOV R3, #0 MOV R2, #0 SJMP KTHUC KHAC: JC NHO MOV R3, 07H MOV R2, 06H SJMP KTHUC b Cho port nối tiếp hoạt động chế độ UART bit, tốc độ baud 19200, tần số thạch anh 11.059MHz Viết chương trình hợp ngữ nhận từ port nối tiếp byte liên tiếp số nhị phân 16 bit (byte đầu bit thấp) Sử dụng chương trình SOSANH để so sánh số vừa nhận với số nhị phân 16 bit nhập từ Port Port (Port bit cao) Kết phát trở lại port nối tiếp (byte trọng số thấp phát trước) (0,75 điểm) MOV TMOD, #20H MOV R5, P1 MOV TH1, # -3 MOV R4, P2 MOV A, PCON ; SMOD = ACALL SOSANH SETB ACC.7 JNB MOV PCON, A CLR TI SETB TR1 MOV SBUF, R2 MOV SCON, # 01010010B JNB JNB CLR TI RI, $ ; thu byte CLR RI MOV R6, SBUF JNB ; byte thấp SJMP $ CLR RI ; byte cao Trang / ; phát R3_R2 ; byte thấp TI, $ MOV SBUF, R3 RI, $ MOV R7, SBUF TI, $ ; byte cao Câu 8: (1,5 điểm) Viết chương trình hợp ngữ sử dụng ngắt timer để tạo sóng vng ngõ P1.0 có tần số thay đổi luân phiên 200Hz 1KHz sau 0,5 giây Biết tần số thạch anh XTAL = 12MHz Sử dụng ngắt Timer: - Ngắt timer0: 0,5 giây làm thay đổi biến trạng thái: cờ F0 - Ngắt timer1: tạo sóng vng cho P1.0, với giá trị nạp phụ thuộc vào F0 F0 = 0: tạo xung f1= 200Hz => chu kỳ= 1/200Hz = 5ms => giá trị nạp -2500 F0 = 1: tạo xung f2= 1KHz => chu kỳ = 1/1KHz = 1ms => giá trị nạp -500 ORG 0000H ISRT0: CLR TR0 LJMP MAIN DJNZ R7, THOAT ORG 000BH CPL LJMP ISRT0 MOV R7, #10 ORG 001BH F0 THOAT: MOV TH0, #HIGH(-50000) LJMP ISRT1 MOV TL0, #LOW(-50000) MAIN: MOV TMOD, #11H SETB TR0 MOV R7, # 10 ; 0.5s = 10 50000us RETI MOV TH0, #HIGH(-50000) ISRT1: CLR TR1 MOV TL0, #LOW(-50000) CPL P1.0 SETB TR0 JB F0, NAP CLR F0 ; tạo xung 200Hz MOV TH1, #HIGH(-2500) MOV TH1, #HIGH(-2500) MOV TL1, #LOW(-2500) MOV TL1, #LOW(-2500) SJMP TT SETB TR1 NAP: MOV IE, #10001010B SJMP $ MOV TH1, #HIGH(-500) MOV TL1, #LOW(-500) TT: SETB TR1 RETI END Các cách viết khác: - Chương trình liên tục tạo trễ 0.5s để làm bù bit trạng thái F0 Dùng ngắt timer để tạo xung theo F0 - Dùng ngắt timer 0.5s để bù bit F0 Chương trình tạo xung theo F0 - Dùng ngắt timer để tạo xung khác Chương trình tạo trễ 0.5s phép ngắt cấm ngắt cịn lại; sau tạo trễ 0.5s để làm ngược lại (cách không cần biến trạng thái F0) HẾT Trang / ... chương trình tạo trễ giây DELAY_1s) P1.1 0 1 P1.0 1 Port Quay phải bit Quay trái bit Lấy đảo bit Hoán đổi bit cao bit thấp Trang / (1đ) phút = 60 giây LAP: MOV R7, #60 DL: ACALL DELAY_1s CPL A DJNZ... RRC A MOV C, ACC.0 RR Trang / A ) Câu 7: (1,5 điểm) a Viết chương trình SOSANH, có nhiệm vụ so sánh số nhị phân (mỗi số 16 bit) Số thứ nội dung cặp ghi R7_R6 số thứ nội dung cặp ghi R5_R4 Chương... nối tiếp byte liên tiếp số nhị phân 16 bit (byte đầu bit thấp) Sử dụng chương trình SOSANH để so sánh số vừa nhận với số nhị phân 16 bit nhập từ Port Port (Port bit cao) Kết phát trở lại port nối

Ngày đăng: 24/12/2018, 11:34

w