Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 105 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
105
Dung lượng
4,06 MB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VĨNH LONG KHOA ĐIỆN - ĐIỆN TỬ THỰC HÀNH LẬP TRÌNH C CHO VI ĐIỀU KHIỂN MCS51 VÀ ARDUINO Biên soạn: Đặng Thành Tựu Vĩnh Long, tháng 10 năm 2019 Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino Mục lục Phần 1: LẬP TRÌNH VI ĐIỀU KHIỂN MCS51 .5 Bài thực hành số 1: LẬP TRÌNH ĐIỀU KHIỂN LED ĐƠN .6 MỤC ĐÍCH – YÊU CẦU: CƠ SỞ LÝ THUYẾT: TRÌNH TỰ THỰC HIỆN: Bài thực hành số 2: GIAO TIẾP NÚT NHẤN VÀ RELAY .10 MỤC ĐÍCH – YÊU CẦU: 10 CƠ SỞ LÝ THUYẾT : .10 TRÌNH TỰ THỰC HIỆN: 10 Bài thực hành số 3: LẬP TRÌNH ĐIỀU KHIỂN LED ĐOẠN .14 MỤC ĐÍCH – YÊU CẦU 14 CƠ SỞ LÝ THUYẾT 14 TRÌNH TỰ THỰC HIỆN: 14 Bài thực hành số 4: LẬP TRÌNH ĐIỀU KHIỂN LED MA TRẬN 19 Muc đích – yêu cầu: .19 CƠ SỞ LÝ THUYẾT: 19 TRÌNH TỰ THỰC HIỆN 20 Bài thực hành số 5: LẬP TRÌNH ĐIỀU KHIỂN ĐĨNG/CẮT ĐỘNG CƠ DC .24 MỤC ĐÍCH – YÊU CẦU: 24 CƠ SỞ LÝ THUYẾT: .24 TRÌNH TỰ THỰC HIỆN: 24 Bài thực hành số 6: LẬP TRÌNH ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ DC .27 MỤC ĐÍCH – YÊU CẦU: .27 CƠ SỞ LÝ THUYẾT: 27 Độ rộng xung:𝐷𝑢𝑡𝑦 = 𝑇𝑜𝑛𝑇 ∗ 100% 27 TRÌNH TỰ THỰC HIỆN: 27 Bài thực hành số 7: LẬP TRÌNH HIỂN THỊ LCD 32 MỤC ĐÍCH – YÊU CẦU: .32 CƠ SỞ LÝ THUYẾT: 32 TRÌNH TỰ THỰC HIỆN: 33 BÀI TẬP: 38 Bài thực hành số 9: LẬP TRÌNH ĐẾM SẢN PHẨM 39 MỤC ĐÍCH – YÊU CẦU: .39 CƠ SỞ LÝ THUYẾT: 39 Khoa Điện – Điện tử Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino TRÌNH TỰ THỰC HIỆN: 39 Bài thực hành số 10: LẬP TRÌNH ĐỒNG HỒ SỐ HIỂN THỊ LED ĐOẠN .44 MỤC ĐÍCH – YÊU CẦU: .44 CƠ SỞ LÝ THUYẾT: 44 TRÌNH TỰ THỰC HIỆN: 44 Bài thực hành số 11: LẬP TRÌNH ĐO LƯỜNG VÀ HIỂN THỊ NHIỆT ĐỘ LÊN LCD .49 MỤC ĐÍCH – YÊU CẦU: .49 CƠ SỞ LÝ THUYẾT: 49 TRÌNH TỰ THỰC HIỆN 53 Phần 2: Lập trình Arduino .60 Bài thực hành số 1: LẬP TRÌNH ĐIỀU KHIỂN LED ĐƠN .61 Mục đích: 61 Yêu cầu: 61 Kết nối phần cứng: .61 Lưu đồ giải thuật chương trình: 61 Bài tập: 62 Bài thực hành số 2: LẬP TRÌNH GIAO TIẾP LED ĐƠN VÀ NÚT NHẤN 63 Mục đích: 63 Yêu cầu: 63 Kết nối phần cứng: 63 Lưu đồ giải thuật chương trình: 64 Bài tập: 64 Bài thực hành số 3: LẬP TRÌNH ARDUINO ĐIỀU KHIỂN LED ĐƠN 65 Mục đích: 65 Yêu cầu: 65 Kết nối phần cứng: 65 Lưu đồ giải thuật chương trình: 66 Bài tập: 67 Bài thực hành số 4: LẬP TRÌNH ARDUINO ĐIỀU KHIỂN LED ĐOẠN 68 Mục đích: 68 Yêu cầu: 68 Kết nối phần cứng: 68 Lưu đồ giải thuật chương trình: 69 Bài tập: 72 Bài thực hành số 5: LẬP TRÌNH ARDUINO ĐỌC GIÁ TRỊ ANALOG 73 Khoa Điện – Điện tử Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino Mục đích: 73 Yêu cầu: 73 Kết nối phần cứng: 73 Lưu đồ giải thuật chương trình: 74 Bài tập: 75 Bài thực hành số 6: LẬP TRÌNH ĐIỀU KHIỂN LED MA TRẬN 76 Mục đích: 76 Yêu cầu: 76 Kết nối phần cứng: 76 BÀI TẬP .78 Bài thực hành số 7: LẬP TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ DC 79 Mục đích: 79 Yêu cầu: 79 Kết nối phần cứng: 79 Lưu đồ giải thuật chương trình: 80 Bài tập: 81 Bài thực hành số 8: LẬP TRÌNH GIAO TIẾP ARDUINO VỚI LCD 82 Mục đích: 82 Yêu cầu: 82 Kết nối phần cứng: 82 Lưu đồ giải thuật chương trình: 83 Bài tập: 84 Bài thực hành số 9: LẬP TRÌNH ĐO NHIỆT ĐỘ MÔI TRƯỜNG DÙNG LM35 HIỂN THỊ LÊN LCD VÀ SERIAL MONITOR 85 Mục đích: 85 Yêu cầu: 85 Kết nối phần cứng: 85 Lưu đồ giải thuật chương trình: 85 Bài tập: 87 Phụ lục : HƯỚNG DẪN CÀI ĐẶT MIKROC FOR 8051 .88 Phụ lục : HƯỚNG DẪN SỬ DỤNG MIKROC FOR 8051 .92 Phụ lục : CÁC LINH KIỆN THƯỜNG DÙNG KHI MÔ PHỎNG PROTEUS 99 Phụ lục 4: HƯỚNG DẪN SỬ DỤNG CƠ BẢN PHẦN MỀM Arduino IDE 102 Tài liệu tham khảo: 105 Khoa Điện – Điện tử Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino PHẦN 1: LẬP TRÌNH VI ĐIỀU KHIỂN MCS51 Khoa Điện – Điện tử Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino Bài thực hành số 1: LẬP TRÌNH ĐIỀU KHIỂN LED ĐƠN MỤC ĐÍCH – U CẦU: 1.1 Mục đích: - Lập trình điều khiển Port, chân (pin) vi điều khiển - Sử dụng lệnh: gán, dịch, lập trình mảng 1.2 Yêu cầu: - Điều khiển Port, pin vi điều khiển - Sử dụng thành thạo phép toán gán, dịch, tạo truy xuất mảng CƠ SỞ LÝ THUYẾT: Sơ đồ nguyên lý hình bố trí linh kiện 32 LED đơn KIT MC-1000 - 32 LED đơn chia làm nhóm, mổi nhóm led Cực Katode led nối xuống mass cực Anod nối Pin Header thông qua điện trở 330Ω - Led sáng: Mức logic tích cực (5volt), led tắt: mức logic (0volt) Thực tế, tùy thuộc cách mắc LED mà mức logic tích cực LED D1 sáng mức P3.B7 = 0; LED D2 sáng mức P2.B0 = 1; Khoa Điện – Điện tử Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino TRÌNH TỰ THỰC HIỆN: 3.1 Yêu cầu đặt ra: Điều khiển led sáng dần từ phải qua trái Với thời gian dịch chuyển 0,5 giây 3.2 Kết nối phần cứng: Kết nối KIT: Dùng Jump bẹ nối PORT2 với LED đơn Mạch thực tế KIT U19 19 18 29 30 31 XTAL1 XTAL2 RST PSEN ALE EA P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 Mô Proteus 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 R1 R2 R3 R4 R5 R6 R7 R8 330 330 330 330 330 330 330 330 D1 D2 D3 D4 D5 D6 D7 D8 AT89C52 Khoa Điện – Điện tử Thực hành Lập trình C cho Vi điều khiển MCS51 Arduino 3.3 Giải thuật viết chương trình Cách 1: Dùng phương pháp gán giá trị trực tiếp Cấu trúc: P2 = 0b00000011; P2 = 3; P2 = 0x03; void main() { while(1) { p2=0; delay_ms(500); p2=0b00000001; delay_ms(500); p2=0b00000011; delay_ms(500); p2=0b00000111; delay_ms(500); p2=0b00001111; delay_ms(500); p2=0b00011111; delay_ms(500); p2=0b00111111; delay_ms(500); p2=0b01111111; delay_ms(500); p2=0b11111111; delay_ms(500); }} Tắc hết led Sáng LED Sáng LED Sáng LED Sáng LED Sáng LED Sáng LED Sáng LED Sáng LED Cách 2: Dùng lệnh dịch trái Cấu trúc: P2 = P2