Mua linh kiện điện tử tại Điện tử Nhật Tùng
Khóa học Vi điều khiển có phí Hình thức học: Video hoặc Kèm trực tiếp ===>>>> Kích vào hình để được biết thêm chi tiếtTable of Contents
Tải File bài giải
Pass giải nén: Huynhnhattung.com
===>>> Nếu bạn chưa có phần mềm giải nén:
Video Cảnh báo nhiệt độ, Đọc 2 cảm biến LM35 hiển thị LCD1602
Blog Cảnh báo nhiệt độ, Đọc 2 cảm biến LM35 hiển thị LCD1602
Đề bài cảnh báo nhiệt độ:
Bài giải cảnh báo nhiệt độ:
Phần cứng chương trình cảnh báo nhiệt độ:
- Đề yêu cầu sử dụng hai cảm biến nhiệt độ LM35 trả về tín hiệu Analog vì vậy phải đấu vào chân đọc tín hiệu ADC được ký hiệu là ANxx.
- Ở đây mình chọn đấu vào chân AN0 và AN1.
- Sử dụng dao động ngoài thạch anh 20M gắn vào chân OSC1 OSC2.
- Các linh kiện chính cần sử dụng tham khảo tại.
Thông số kỹ thuật Mua Linh kiện Pic16F887 Pic16F877 Led đơn Led đơn Điện trở Điện trở Nút nhấn Nút nhấn Thạch anh Thạch anh Nhiệt độ LM35 Nhiệt độ LM35 LCD1602 LCD1602
Phần mềm cảnh báo nhiệt độ:
Khai báo thư viện tiền sử lý của cảnh báo nhiệt độ:
- Vi điều khiển hiện tại mình đan dùng là Pic16F887
- Theo yêu cầu hệ thống có đọc giá trị ADC vì vậy phải khai báo ADC bằng lệnh #device adc=10 tức sử dụng bộ ADC 10bit. Ngoài ra có thể chọn ADC 8bit và 16bit.
- Hiện đan dùng thạch anh ngoài và thạch anh ngoài 20M bằng lệnh #Fuses hs và #delay(clock=20M)
- Định nghĩa chân: tùy theo chức năng của chân mà tên định nghĩa được bám sát vào nội dung đan thực hiện. Vì đây là bài thi nên việc định nghĩa chân phụ thuộc rất lớn vào nội dung đề bài.
- Khai báo thư viện #include <tv_lcd_8bit.c> đây là thư viện hổ trợ chương trình. Muốn tải thư viện thì kéo xuống cuối.
- Tên khai báo biến thì cái này tùy thuộc vào chức năng sử dụng. Sử dụng 2 biến nd0, nd1 đại diện cho 2 cảm biến nhiệt độ được gắn vào chân AN0, AN1
Chương trình con kiểm tra nút nhấn của cảnh báo nhiệt độ:
- Có hai chương trình con: Việc tạo chương trình con giúp kiểm soát chương trình được tốt hơn. Bạn cũng có thể copy hết vào chương trình chính.
- Chương trình con doc_adc(); chương trình này giúp đọc lần lượt hai cảm biến về. Khi đọc cảm biến lưu ý muốn đọc cảm biến chân nào thì phải thiết lập kênh đó sau đó tiến hành đọc về, sau khi đọc về thì chia độ lệch của độ phân giải vi điều khiển với cảm biến nhiệt độ LM35 bằng 2.046 công thức được tính phần note.
- Chương trình hienthi(); dùng để hiển thị giá trị nhiệt độ ra màn hình LCD1602. Vị trí 0x80 và 0xC0 lần lượt là hai vị trí bắt đầu của hàng 1 và hàng 2 xem lý thuyết tại đây . Việc tách số hàng trăm, hàng chục, hàng đơn vị vì mỗi ô của LCD1602 chỉ hiển thị được 1 ký tự. Khi +0x30 sẽ chuyển giá trị sang bảng mã ASCII, các bạn tự tra bảng sẽ rõ hơn.
Chương trình chính thực hiện toàn bộ hoạt động của vi điều khiển dùng cảnh báo nhiệt độ
- Bắt đầu chương trình chính phải khỏi rạo ngõ vào ra cho vi điều khiển. Một chân của vi điều khiển thì làm nhiệm vụ I/O vì thế phải khỏi tạo. Port D và Port C đấu vào LCD1602 nên xuất dữ liệu, chân RA0, RA1 đấu vào cảm biến nhiệt độ LM35 dùng để đưa tín hiệu vào vi điều khiển cách tính như phần note.
- Khởi tạo LCD1602 bằng lệnh lcd_setup();
- Khởi tạo ADC sử dụng bộ chia 32 để số lần đọc nhiệt độ trên 1s ít. Vì sử dụng hai chân đọc nhiệt độ LM35 vì thế khai báo phải khai báo 2 chân.
- Ban đầu khỏi động lên thì Led tắt.
- Tiến hành đọc nhiệt độ 2 cảm biến LM35 sau đó hiển thị giá trị lên màn hình LCD1602.
- Nếu nhiệt độ một hoặc 2 vượt ngưỡng 100 độ C thì sẽ báo ra màn hình theo yêu cầu đề bài đặt ra, đồng thời kiểm tra nếu hai nhiệt độ bằng nhau thì bật Led sáng, ngược lại thì Led tắt.
Chúc các bạn có một kỳ thi thành công…!!!