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