Đây là bài chuẩn bị do tự mình biên soạn. Hi vọng mn có thể tham khảo và ủng hộ mình. Bài chuẩn bị thí nghiệm bài 3 của môn vi xử lý về 8051. Trước khi làm câu hỏi chuẩn bị, mọi người cần đọc kĩ và tham khảo trước về phần chương 1, chương 5 và chương 9 của tài liệu hướng dẫn. Tài liệu của các chương này mình sẽ up sau.
ĐẠ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 - BÁO CÁO THÍ NGHIỆM VI XỬ LÝ Lớp: N2HT NHÓM 10 SVTH: Ong Thị Thúy Vy Dương Ngọc Hoàng Yến MSSV: 2148068 MSSV : 2148069 THÀNH PHỐ HỒ CHÍ MINH - 2023 BÀI BÁO CÁO THÍ NGHIỆM THÍ NGHIỆM GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Mục tiêu: Nắm cách thức tạo trễ sử dụng Timer chế độ Yêu cầu: Viết chương trình tạo sóng vng Hz chân P1.0 sử dụng timer chế độ Kiểm tra: Biên dịch, thực thi kiểm tra chương trình Để tạo sóng Hz, ta sử dụng timer chế độ không? Dạng sóng có bị sai số khơng? Để hạn chế sai số ta phải nạp giá trị vào timer nào? Trước làm câu hỏi chuẩn bị, cần phải đọc kỹ chương 1, chương 3, chương chương tài liệu hướng dẫn BÁO CÁO: Code: ORG 2000H MOV TMOD, #01H MAIN: CPL P1.0 ACALL DL500ms SJMP MAIN DL500ms: MOV R0, #10 LOOP: MOV TH0, #HIGH(-46080) MOV TL0, #LOW(-46080) SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 DJNZ R0, LOOP RET END Kết thí nghiệm a Channel A chân P1.0 b Trả lời câu hỏi Để tạo sóng Hz, ta sử dụng timer chế độ khơng? - Có thể sử dụng timer chế độ (với số vòng lặp lớn nhiều so với 10) Dạng sóng có bị sai số không? Để hạn chế sai số ta phải nạp giá trị vào timer nào? - Để hạn chế sai số, ta phải nạp giá trị vào timer ước lớn mà timer có giá trị thời gian cần tạo trễ để hạn chế sai số vịng lặp dạng sóng bị sai số THÍ NGHIỆM Mục tiêu: Nắm cách thức tạo trễ sử dụng Timer chế độ u cầu: Viết chương trình tạo sóng vng Hz chân P1.0 sử dụng timer chế độ Hướng dẫn: Dùng biến đếm 16 bit để đếm lần timer tràn Khi đếm đủ số lần timer tràn đảo chân port Kiểm tra: Biên dịch, thực thi kiểm tra chương trình Ở chế độ 2, độ trễ gây câu lệnh đảo giá trị bit có gây sai số cho dạng sóng ngõ khơng? Vì sao? Nên sử dụng chế độ hay chế độ tạo trễ? Tại sao? BÁO CÁO: Code: ORG 2000H MOV TMOD, #02H MOV TH0, #(-240) MOV TL0, TH0 SETB TR0 MAIN: CPL P1.0 ACALL DL500ms SJMP MAIN DL500ms: MOV R1, #8 LOOP: MOV R0, #240 WAIT: JNB TF0, $ CLR TF0 DJNZ R0, WAIT DJNZ R1, LOOP RET END Kết thí nghiệm a Channel A: chân P1.0 b Trả lời câu hỏi Ở chế độ 2, độ trễ gây câu lệnh đảo giá trị bit có gây sai số cho dạng sóng ngõ khơng? Vì sao? - Khơng gây sai số cho dạng sóng ngõ Vì thực câu lênh đảo bit Timer tiếp tục chạy, dừng lại để thực thi câu lệnh đảo bit Timer chế độ Nên sử dụng chế độ hay chế độ tạo trễ? Tại sao? Nên sử dụng chế độ để tạo trễ chế độ 2, timer chạy liên tục mà không bị ngắt cờ báo tràn bật để thực hiên câu lệnh khác THÍ NGHIỆM Mục tiêu: Hiểu cách chống rung (debounce) nút nhấn cách dùng phần mềm Yêu cầu: Viết chương trình làm nhiệm vụ, nhấn SW lần thứ led chân P1.1 sáng Tiếp đó, SW nhấn lần led chân P1.1 tắt Cứ tiếp tục vậy, … Kiểm tra: Biên dịch, thực thi kiểm tra chương trình Thời gian chọn để chống rung nút nhấn bao nhiêu? Số lần đọc bao nhiêu? Thử viết chương trình giảm thời gian chống rung tăng số lần đọc? BÁO CÁO: Code: ORG 2000H MOV TMOD, #01H SETB P1.1 MAIN: MOV R2, #2 WAIT: JB P1.0, MAIN ACALL DL50ms DJNZ R2, WAIT CPL P1.1 JNB P1.0, $ SJMP MAIN DL50ms: MOV TH0, #HIGH(-46080) MOV TL0, #LOW(-46080) SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 RET END Kết thí nghiệm a Channel A: Chân P1.0 b Channel B: Chân P1.1 c Trả lời câu hỏi Thời gian chọn để chống rung nút nhấn bao nhiêu? Số lần đọc bao nhiêu? - Thời gian chọn để chống rung 50ms, số lần đọc 2 Thử viết chương trình giảm thời gian chống rung tăng số lần đọc? ORG 2000H MOV TMOD, #01H SETB P1.1 MAIN: MOV R2, #10 WAIT: JB P1.0, MAIN ACALL DL10ms DJNZ R2, WAIT JNB P1.0, $ CPL P1.1 SJMP MAIN DL10ms: MOV TH0, #HIGH(-9216) MOV TL0, #LOW(-9216) SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 RET END