Báo cáo thí nghiệm Vi xử lý Đại học Bách Khoa Đại học Quốc Gia thành phố Hồ Chí Minh.Bài thí nghiệm 1: Lập trình giao tiếp phím đơn và LED đơn.Thí nghiệm 1: Mục tiêu: Nắm được cách thức điều khiển trực tiếp ngoại vi thông qua các port IO của 8051.Yêu cầu: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0và hiển thị ra led được nối tại chân P3.0 (bit thứ 0 của led thanh BL202).
BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN MỤC TIÊU Nắm cách sử dụng kit thí nghiệm, phần mềm lập trình Nắm cách lập trình giao tiếp IO port Nắm cách lập trình tạo thời gian trễ dùng lệnh CHUẨN BỊ Đọc chương chương tài liệu hướng dẫn Viết chương trình mơ Proteus thí nghiệm dựa thí nghiệm TN Vi xử lý BM Điện tử Page | 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) Kiểm tra: Biên dịch thực thi chương trình để kiểm tra kết thực Thử giải thích có đến led bị tác động nhấn thả nút? Tổng kết xem bit port dùng thí nghiệm giải thích sao? BÁO CÁO: Chương trình ORG 2000H MAIN: MOV C, P1.0 MOV P3.0, C SJMP MAIN END Kết thí nghiệm a Kết mô phỏng: (Time/div = 0.5s, V/div = 1V cho Channel A & Channel B) TN Vi xử lý BM Điện tử Page | BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN Channel A: chân P1.0 Channel B: chân P3.0 b Trả lời câu hỏi 1) Thử giải thích có đến led bị tác động nhấn thả nút? Vì chân P1.0 nối đến led led BL204 nên led nối với chân P3.0 bị tác động nhấn/thả nút nhấn led nối chân P1.0 bị tác động 2) Tổng kết xem bit port dùng thí nghiệm giải thích sao? Về nút nhấn: tất nút nhấn kết nối với bit Port sử dụng Về led hiển thị: trừ led nối với chân P3.6 chân P3.7 sử dụng để làm led hiển thị (Khi sử dụng Port Port chương trình download xuống RAM ngồi, chạy chương trình vi xử lý làm việc chế độ giao tiếp nhớ ngồi Để giao tiếp nhớ ngồi tín RD (P3.7) WR (P3.6) sử dụng chương trình khơng thể sử dụng chân P3.6 P3.7 chân I/O port) TN Vi xử lý BM Điện tử Page | 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 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 Để tạo xung 1Hz, vịng trễ tạo Tính tốn xác dựa chương trình viết Sai số nhỏ đạt so với yêu cầu bao nhiêu? HD: Tính sai số dựa vào tần số thạch anh 11.0592 Mhz BÁO CÁO: Chương trình ORG 2000H MAIN: CPL P1.0 ACALL DELAY SJMP MAIN DELAY: MOV R7, #4 DL2: MOV R6, #240 DL1: MOV R5, #240 DJNZ R5, $ DJNZ R6, DL1 DJNZ R7, DL2 RET TN Vi xử lý BM Điện tử Page | BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN END Kết thí nghiệm a Kết mô phỏng: (Time/div = 0.25s, V/div = 1V cho Channel A) Channel A: chân P1.0 b Trả lời câu hỏi 1) Để 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ễ: Với xung tần số 1Hz, thời gian mức cao mức thấp 0.5s tương ứng với 460,800MC Sử dụng cơng thức tính gần thời gian delay với chương trình tạo trễ vịng lặp ghi R7, R6, R5) TN Vi xử lý giá trị nạp vào (với Chọn BM Điện tử Page | BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN Tính tốn xác thời gian tạo trễ: Cơng thức tính xác thời gian delay với chương trình tạo trễ vịng lặp: 2) Sai số nhỏ đạt so với yêu cầu bao nhiêu? , để sai số nhỏ Sai số so với yêu cầu giá trị nhỏ (với R5 0), ta có TN Vi xử lý ) phải đạt (tương ứng với giá trị nạp vào Thơng qua biến đổi, ta có đạt giá trị nhỏ BM Điện tử Page | 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 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 Thời gian 1s tạo nào? 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? BÁO CÁO: Chương trình ORG 2000H LOOP: CPL P1.0 ACALL Delay1sIns SJMP LOOP Delay1sIns: MOV R7, #8 DL2: MOV R6, #240 DL1: MOV R5, #240 DJNZ R5, $ DJNZ R6, DL1 DJNZ R7, DL2 RET END TN Vi xử lý BM Điện tử Page | BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN Kết thí nghiệm a Kết mơ phỏng: (Time/div = 0.5s, V/div = 1V cho Channel A) Channel A: chân P1.0 b Trả lời câu hỏi 1) Thời gian 1s tạo nào? Thời gian 1s tạo cách sử dụng chương trình tạo trễ vịng lặp (sử dụng thí nghiệm 2) với giá trị nạp vào R7, R6, R5 8, 240, 240 ( ) 2) 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? Muốn viết chương trình tạo trễ 2s sửa lại giá trị nạp vào R7 thành 16 ( ) TN Vi xử lý BM Điện tử Page | 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 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 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? Viết lại chương trình tạo xung vng 2Hz với chu kỳ nhiệm vụ 80%? BÁO CÁO: Chương trình ORG 2000H MAIN: SETB P1.0 MOV R1, #7 ON: ACALL DL50ms DJNZ R1, ON CLR P1.0 MOV R0, #3 OFF: ACALL DL50ms DJNZ R0, OFF SJMP MAIN DL50ms: MOV R6, #100 DL: MOV R5, #250 DJNZ R5, $ TN Vi xử lý BM Điện tử Page | BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN DJNZ R6, DL RET END Kết thí nghiệm a Kết mơ phỏng: (Time/div = 50ms, V/div = 1V cho Channel A) Channel A: chân P1.0 b Trả lời câu hỏi 1) 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? Với tần số 2Hz chu kỳ xung 0.5s với chu kì nhiệm vụ 70% thời gian mức cao mức thấp 0.35s 0.15s Lấy tần số thạch anh xấp xỉ 12MHz, suy Từ ta có thời gian mức cao thời gian mức thấp 350,000MC 150,000MC TN Vi xử lý BM Điện tử Page | 10 BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN Sử dụng chương trình để tạo trễ 0.05s (tương ứng với 50,000 MC) Ta có nên chọn giá trị nạp vào ghi R6 R5 100 250 2) Viết lại chương trình tạo xung vng 2Hz với chu kỳ nhiệm vụ 80%? ORG 2000H MAIN: SETB P1.0 MOV R1, #8 ON: ACALL DL50ms DJNZ R1, ON CLR P1.0 MOV R0, #2 OFF: ACALL DL50ms DJNZ R0, OFF SJMP MAIN DL50ms: MOV R6, #100 DL: MOV R5, #250 DJNZ R5, $ DJNZ R6, DL RET END TN Vi xử lý BM Điện tử Page | 11 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 tạo nhiều xung khác 8051 u cầu: Viết chương trình tạo xung vng 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 Vẽ giản đồ xung? Các chương trình viết với thời gian trễ bao nhiêu? Tại thời gian tạo trễ, chân P1.0 P1.1 xuất tín hiệu nào? BÁO CÁO: Chương trình ORG 2000H MAIN: CPL P1.0 MOV R2, #2 LOOP: CPL P1.1 ACALL DL500ms DJNZ R2, LOOP SJMP MAIN DL500ms: MOV R7, #4 DL2: MOV R6, #240 DL1: MOV R5, #240 DJNZ R5, $ DJNZ R6, DL1 DJNZ R7, DL2 TN Vi xử lý BM Điện tử Page | 12 BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN RET END Kết thí nghiệm a Kết mô phỏng: (Time/div = 0.25s, V/div = 1V cho Channel A & Channel B) Channel A: chân P1.0 Channel B: chân P1.1 b Trả lời câu hỏi 1) Vẽ giản đồ xung? Các chương trình viết với thời gian trễ bao nhiêu? Giản đồ xung: Hình ảnh mơ phần a Chương trình viết với thời gian tạo trễ 0.5s 2) 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 tạo trễ, chân P1.1 đảo trạng thái tín hiệu xuất lần Tại lần thời gian tạo trễ, chân P1.0 đảo trạng thái tín hiệu xuất lần TN Vi xử lý BM Điện tử Page | 13 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: 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 Led bên trái kết nối đến MSB (most significant bit) hay LSB (less significant bit) port 1? BÁO CÁO: Chương trình ORG 000H MOV A, #01111111B MAIN: MOV P1, A ACALL DELAY1sIns RR A SJMP MAIN DELAY1sIns: MOV R7,#8 DL2: MOV R6,#240 DL1: MOV R5,#240 DJNZ R5,$ DJNZ R6,DL1 DJNZ R7,DL2 RET TN Vi xử lý BM Điện tử Page | 14 BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN END Kết thí nghiệm a Kết mô TN Vi xử lý BM Điện tử Page | 15 BÀI THÍ NGHIỆM LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN b Trả lời câu hỏi Led bên trái kết nối đến MSB (most significant bit) hay LSB (less significant bit) port 1? Led bên trái kết nối đến MSB (most significant bit) port TN Vi xử lý BM Điện tử Page | 16