Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
850,4 KB
Nội dung
HỌC VIỆN HÀNG KHÔNG VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ KỸ THUẬT VI XỬ LÝ – VI ĐIỀU KHIỂN TIỂU LUẬN CUỐI KỲ Họ tên: Nguyễn Lê Bảo Duy Mã số sinh viên: 1953020068 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021 MỤC LỤC (Đề 2) PHẦN LÝ THUYẾT 1.1 Câu 1 1.2 Câu 2 1.3 Câu PHẦN MÔ PHỎNG 2.1 Câu 2.2 Câu 2: 2.3 Câu PHẦN LẬP TRÌNH 3.1 Ý tưởng 10 10 3.1.1 Câu 1: 10 3.1.2 Câu 2: 10 3.1.3 Câu 3: 10 3.2 Lưu đồ thuật toán 10 3.2.1 Câu 1: 10 3.2.2 Câu 2: 11 3.2.3 Câu 3: 11 3.3 Giải thích code 12 3.3.1 Câu 1: 12 3.3.2 Câu 2: 13 3.3.3 Câu 3: 16 PHẦN KẾT LUẬN 22 4.1 Câu 1: 22 4.2 Câu 2: 22 4.3 Câu 3: 22 PHẦN 1.1 LÝ THUYẾT Câu Yêu cầu: Tạo ngắt TIMER1 với chu kỳ 1.2 giây Cơng thức tính tốn: (1) (2) Thạch anh sử dụng: 20MHz 10ms: Thực 50000 lệnh Chọn chia: 1:1 50000 1:2 25000 1:4 12500 1:8 6250 Dựa vào cơng thức (1) ta tính được: F = Hz Dựa vào công thức (2) để tính value: Có được: Prescaler = value = 15536 count = 120 1.2 Câu Yêu cầu: sử dụng RS232 để truyền liệu từ PIC truyền sang PIC nhận để điều khiển LED Khi nút nhấn chân RB0 PIC truyền nhấn, đèn LED chân RB0 PIC nhận sáng, LED khác tắt Khi nút nhấn chân RB1 PIC truyền nhấn, đèn LED chân RB1 PIC nhận sáng, LED khác tắt Khi nút nhấn chân RB2 PIC truyền nhấn, đèn LED chân RB2 PIC nhận sáng, LED khác tắt Khi nút nhấn chân RB3 PIC truyền nhấn, đèn LED chân RB3 PIC nhận sáng, LED khác tắt 1.3 Câu Yêu cầu: Khi nút nhấn chân RB5 nhấn động dừng lại, nút nhấn chân RB6 nhấn động quay trái, nút nhấn chân RB7 nhấn động quay phải Dùng ngắt thay đổi PORTB để lập trình cho nút nhấn Tốc độ động thay đổi điều chỉnh biến trở chân RA0 LCD hiển thị giá trị analog đọc từ chân biến trở PHẦN 2.1 MƠ PHỎNG Câu Hình 2.1 Sơ đồ mô câu Mô tả: Lấy linh kiện bao gồm PIC16F877A, RES 220, LED-GREEN lắp ráp sơ đồ Error: Reference source not found Lấy que đo probe voltage gắn vào chân RB0 để đo chu kỳ sáng/tắt đèn LED Từ biết kết tính tốn hay chưa Kết mơ phỏng: Hình 2 Kết mơ câu Tín hiệu xung đến 2.1 cho chu kỳ (Error: Reference source not found) từ 16.8 đến 18.9 cho chu kỳ thứ hai (Error: Reference source not found) Hình Chu kì Hình Chu kì thứ hai 2.2 Câu 2: Hình Sơ đồ mô câu Mô tả: Lấy linh kiện bao gồm PIC16F877A, RES 220, RES 10k, LEDGREEN, BUTTON lắp ráp sơ đồ Hình 2.2 Nối chân truyền RC6 PIC truyền U2 với chân nhận RC7 PIC nhận U1 Kết mô phỏng: Khi nhấn nút BT1 đèn D1 sáng: Tương tự nhấn nút BT2, BT3, BT4 đèn D2, D3, D4 sáng Hình Khi nhấn nút LEFT 10 Hình Khi nhấn nút RIGHT Hình Khi nhấn nút STOP 11 PHẦN 3.1 LẬP TRÌNH Ý tưởng 3.1.1 Câu 1: Về phần cứng, tính giá trị cần thiết để thiết lập timer1 theo chu kì mà đề u cầu Sau đó, lắp mạch cài đặt thông số Hình 2.1 Về code em sử dụng 3.1.2 Câu 2: Về phần cứng, sử dụng PIC, lắp mạch cài đặt thơng số Hình 2.2 Về code em sử dụng code riêng để truyền nhận liệu đề yêu cầu, sử dụng vòng lập while để điểu khiển đèn led nút nhấn 3.1.3 Câu 3: Về phần cứng, em sử dụng PIC để điều khiển nút nhấn để điều khiển động cơ, LCD L298 điều chỉnh thơng số Hình 2.3 Về code em sử dụng hàm switch case để hiển thị LCD động cịn nút nhấn em sử dụng hàm if while để kiểm tra trạng thái nút nhấn 3.2 Lưu đồ thuật toán 3.2.1 Câu 1: 12 3.2.2 Câu 2: 3.2.3 Câu 3: 13 3.3 Giải thích code 3.3.1 Câu 1: #include unsigned int16 count = 120; // khai bao bien count unsigned int16 i,j = 0; // khai bao bien i va j int led=0x01; // khai bao bien led #INT_TIMER1 void timer1_interrupt(){ i++; if(i>=count) { led=led