ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ o0o Môn Vi xử lý Báo Cáo Thí Nghiệm 1 GVHD Th s Nguyễn Trung Hiếu Thành viên nhóm Trần Lê Minh Hoàng 2033530[.]
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - Môn Vi xử lý Báo Cáo Thí Nghiệm GVHD: Th.s Nguyễn Trung Hiếu Thành viên nhóm: - Trần Lê Minh Hồng 2033530 - Nguyễn Minh Khánh 1932023 - Trịnh Nguyên Dũ 2148076 TP.Hồ Chí Minh, ngày 24 tháng 2, 2023 BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN THÍ NGHIỆM Mục tiêu: Nắm cách thức điều khiển trực tiếp ngoại vi thông qua port I/O 8051 Yêu cầu: Viết chương trình thực việc đọc liên tục trạng thái nút nhấn nối đến P1.0 hiển thị led nối chân P3.0 (bit thứ led BL202) Trả lời: ORG 0000H mov P3,#000H loop: JB P1.0,SET1 JNB P1.0,SET0 SET1: SETB P3.0 JMP LOOP SET0: CLR P3.0 JMP LOOP END Thử giải thích có đến led bị tác động nhấn thả nút? + Khi nhấn nút P1.0 LED P1.0 sáng đồng thời truyền giá trị nút nhấn đến P3.0 LED P3.0 đồng thời sáng Tổng kết xem bit port dùng thí nghiệm giải thích sao? + Có bit sử dụng bit bit tương ứng với trạng thái nút nhấn Nhấn xuống bit nhả bit THÍ NGHIỆM Mục tiêu: Nắm cách tạo trễ dùng vòng lặp lệnh Yêu cầu: Viết chương trình tạo xung vng Hz, chu kỳ nhiệm vụ 50% chân P1.0 Kiểm tra: Biên dịch, thực thi kiểm tra chương trình cách sử dụng oscilloscope để kiểm tra Trả Lời: ORG 0000H LOOP: CPL P1.0 MOV R0, #5 LOOP3: MOV R2, #200 LOOP2: MOV R1, #250 LOOP1: DJNZ R1, LOOP1 DJNZ R2, LOOP2 DJNZ R0, LOOP3 JMP LOOP END Để tạo xung 1Hz, vịng trễ tạo Tính tốn xác dựa chương trình viết + Để tạo độ trễ cho sung ta sử dụng vòng lặp, vòng lặp lồng = x 250 x 200 x tạo độ trễ 500 000 chu kì máy = 0.5s ( chu kì nhiệm vụ 50% P1.0 ) Sai số nhỏ đạt so với yêu cầu bao nhiêu? Sai số nhỏ có để đạt + chu kì máy = 4us THÍ NGHIỆM Mục tiêu: Nắm cách viết chương trình để tạo trễ Yêu cầu: Viết chương trình Delay1sIns dùng chương trình để chớp/tắt LED đơn gắn vào P1.0 sau khoảng thời gian 1s Kiểm tra: Biên dịch, thực thi kiểm tra chương trình cách quan sát LED đơn Trả lời: ORG 0000H LOOP: CPL P1.0 CALL Delay1sIns Delay1sIns: MOV R0, #10 LOOP3: MOV R2, #200 LOOP2: MOV R1, #250 LOOP1: DJNZ R1, LOOP1 DJNZ R2, LOOP2 DJNZ R0, LOOP3 JMP LOOP RET END Thời gian 1s tạo nào? + Để tạo độ trễ cho sung ta sử dụng vòng lặp, vòng lặp lồng = x 250 x 200 x 10 tạo độ trễ 1000 000 chu kì máy = 1s Bây bạn sinh viên muốn viết chương trình tạo trễ 2s phải sửa lại chương trình viết nào? Thay câu lệnh MOV R0, #10 = MOV R0, #20 THÍ NGHIỆM Mục tiêu: Nắm cách sử dụng chương trình để tạo xung Yêu cầu: Viết chương trình tạo xung vng 2Hz chu kỳ nhiệm vụ 70% chân P1.0 Kiểm tra: Biên dịch, thực thi kiểm tra chương trình cách quan sát LED đơn Trả lời: ORG 0000H LOOP: SETB P1.0 CALL Delay1 CLR P1.0 CALL Delay2 JMP LOOP Delay1: MOV R0, #4 LOOP3: MOV R2, #175 LOOP2: MOV R1, #250 LOOP1: DJNZ R1, LOOP1 DJNZ R2, LOOP2 DJNZ R0, LOOP3 RET Delay2: MOV R0, #2 LOOP6: MOV R2, #150 LOOP5: MOV R1, #250 LOOP4: DJNZ R1, LOOP4 DJNZ R2, LOOP5 DJNZ R0, LOOP6 RET END Thời gian mức cao mức thấp xung chu kỳ máy? (Lấy tần số thạch anh xấp xỉ 12MHz) Giá trị nạp vào ghi bao nhiêu? F=2Hz T = 0.5s = 500 000 MCs D= Ton = 70% Ton 350 000 MCs = x 250 x 175 x T T off = 2x250x150x2 Viết lại chương trình tạo xung vuông 2Hz với chu kỳ nhiệm vụ 80%? +D= T on = 80% T on =400 000 MCs = x 200 x 100 x 10 T + T off =100 000 MCs=2x250x100x2 ORG 0000H LOOP: SETB P1.0 CALL Delay1 CLR P1.0 CALL Delay2 JMP LOOP Delay1: MOV R0, #10 LOOP3: MOV R2, #100 LOOP2: MOV R1, #200 LOOP1: DJNZ R1, LOOP1 DJNZ R2, LOOP2 DJNZ R0, LOOP3 RET Delay2: MOV R0, #2 LOOP6: MOV R2, #100 LOOP5: MOV R1, #250 LOOP4: DJNZ R1, LOOP4 DJNZ R2, LOOP5 DJNZ R0, LOOP6 RET END THÍ NGHIỆM Mục tiêu: Nắm cách tạo nhiều xung khác 8051 Yêu cầu: Viết chương trình tạo xung vuông 0.5Hz 1Hz với chu kỳ nhiệm vụ 50% chân P1.0 P1.1 Kiểm tra: Biên dịch, thực thi kiểm tra chương trình cách quan sát LED đơn F1=0,5Hz T = 2s = 000 000 MCs D= Ton = 50% T1on= 000 000 MCs = x 250 x 100 x 20 T T 1off = T1on=1 000 000 MCs = x 250 x 100 x 20 F2=1Hz T2 = 1s = 000 000 MCs D= Ton = 50% T2on= 500 000 MCs = x 250 x 100 x 10 T T 2off = T2on=500 000 MCs = x 250 x 100 x 10 Trả lời : ORG 0000H LOOP: SETB P1.0 SETB P1.1 CALL Delay1 CLR P1.0 SETB P1.1 CALL Delay1 SETB P1.0 CLR P1.1 CALL Delay1 CLR P1.0 CLR P1.1 CALL Delay1 JMP LOOP Delay1: MOV R0, #5 LOOP6: MOV R2, #100 LOOP5: MOV R1, #250 LOOP4: DJNZ R1, LOOP4 DJNZ R2, LOOP5 DJNZ R0, LOOP6 RET END Vẽ giản đồ xung? Các chương trình viết với thời gian trễ bao nhiêu? Chương trình với độ trễ 0.25s Tại thời gian tạo trễ, chân P1.0 P1.1 xuất tín hiệu nào? Tại thời gian độ trễ P1.0 = 1, P1.1 = Tại độ trễ thứ P1.0 =0; P1.1 =1 Tại độ trễ thứ P1.0 = 1; P1.1 = Tại độ trễ thứ P1.0 = 0; P1.1 = THÍ NGHIỆM Mục tiêu: Hiểu cách hiển thị tạo hiệu ứng bar LED Yêu cầu: Viết chương trình tạo hiệu ứng quay LED: LED đơn BARLED1 sáng từ trái sang phải sau thời gian 1s lặp lại Sử dụng chương trình Delay1sIns viết Kiểm tra: Biên dịch, thực thi kiểm tra chương trình cách quan sát hiệu ứng bar led Trả lời: ORG 0000H LOOP: MOV P1, #0FFH CLR P1.0 CALL Delay1 SETB P1.0 CLR P1.1 CALL Delay1 SETB P1.1 CLR P1.2 CALL Delay1 SETB P1.2 CLR P1.3 CALL Delay1 SETB P1.3 CLR P1.4 CALL Delay1 SETB P1.4 CLR P1.5 CALL Delay1 SETB P1.5 CLR P1.6 CALL Delay1 SETB P1.6 CLR P1.7 CALL Delay1 JMP LOOP Delay1: MOV R0, #10 LOOP6: MOV R2, #200 LOOP5: MOV R1, #250 LOOP4: DJNZ R1, LOOP4 DJNZ R2, LOOP5 DJNZ R0, LOOP6 RET END Led bên trái kết nối đến MSB (most significant bit) hay LSB (less significant bit) port 1? ĐA: MSB (most significant bit)