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 Nhấp nháy lcd1602, Đếm sản phẩm + Nút nhấn cài ngưỡng
Blog Nhấp nháy lcd1602, Đếm sản phẩm + Nút nhấn cài ngưỡng
Đề bài nhấp nháy LCD1602:
Bài giải nhấp nháy LCD1602:
Phần cứng chương trình nhấp nhay LCD1602:
- Đầu tiên yêu cầu đưa ra có nhiệt độ LM35 vì vậy bắt buộc phải gắn vào chân ANxx tức chân đọc tín hiệu Analog chuyển sang Digital.
- Hiển thị LCD1602 dùng giao tiếp 4bit sẽ giúp tối ưu tốc phần cứng hơn, và việc sử dụng thư viện do phần mềm hổ trợ cũng là một cách tối ưu chương trình khá tốt.
- Nút nhấn C_DOI dùng để chuyển đổi hiển thị từ nhiệt độ C sang nhiệt độ K.
- Loa 5V hàn board dùng để cảnh báo khi nhiệt độ vượt ngưỡng giới hạn cài đặt.
- 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 Pic16F887 LCD1602 LCD1602 Điện trở Điện trở Nút nhấn Nút nhấn Thạch anh Thạch anh Led đơn Led đơn Cảm biến hồng ngoại Cảm biến hồng ngoại
Phần mềm nhấp nháy LCD1602:
Khai báo thư viện tiền sử lý của Giao tiếp LCD1602:
- Vi điều khiển hiện tại mình đan dùng là Pic16F887
- Hiện dùng thạch anh nội và thạch anh nội khai báo 8M bằng lệnh #Fuses intrc_io và #delay(clock=8M).
- Thư viện LCD1602 sử dụng 4bit, thư viện sử dụng do phần mềm hổ trợ. Giúp đơn giản trong quá trình lập trình hơn.
- Đị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.
- Tên khai báo biến phụ thuộc vào chức năng để khai báo cho phù hợp.
- Khi các biến không biết được giá trị cuối thì nên khai báo signed int32 tức khai báo biến có dấu 32bit, lúc này giá trị rất rộng không sợ bị thiếu.
Chương trình con nhấp nháy LCD1602:
Chương trình hiển thị
- Đầu tiên kiểm tra nếu tt=1 tức cho phép đếm sản phẩm thì hiển thị theo yêu cầu đề bài việc định vị trí hiển thị theo hình của yêu cầu. Khi khởi tạo là lcd_gotoxy(1,1); hoặc lcd_gotoxy(1,2); là cần xuất dữ liệu ra LCD1602 vị trí hàng 2 cột 1. Tương tự cho các vị trí khác chỉ cần xem định vị theo yêu cầu.
- Khi các phép chia aa/10%10, aa%10 đây là phương pháp tách số, lý do mỗi ô của LCD1602 chỉ hiển thị một ký tự duy nhất tại một thời điểm nhất định. Ví dụ 12 là một số nhưng có 2 giá trị. Sau khi tách số xong đem +0x30 chuyển giá trị thập phân sang bảng mã ASCII. Mọi thông tin các bạn tra bảng sẽ hiểu rõ hơn.
- Khi đạt ngưỡng giới hạn cho phép thì tt=0 lúc này lcd1602 chuyển màn hình hiển thị thông tin quy định và nhấp nháy tần số 1Hz, theo cách hiển thị thông tin sau thời gian 500ms rồi xóa thông tin đó trong thời gian 500ms. Việc sử dụng tạo trễ bằng delay không được hay nhưng nó giúp người lập trình đơn giản phần chương trình.
Chương trình kiểm tra nút nhấn tăng hoặc giảm
- Nút nhấn có nhiều chức năng, sau mỗi lần nhấn giá trị trả về thay đổi aa bằng cách tăng hoặc giảm giá trị đó lên một đơn vị trạng thái trước đó vì vậy phải chống dội cho nút nhấn. Việc chống dội ở đây không hướng dẫn chi tiết các bạn có thể tham khảo sách giáo trình thầy Nguyễn Đình Phú.
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 nhấp nháy LCD1602
- Bắt đầu chương trình chính phải khởi tạ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 A dùng cho nút nhấn và cảm biến để đưa vào Vi điều khiển vì thế khởi tạo giá trị là 0xff, Port D sử dụng tín hiệu cho LCD1602 tức đưa tín hiệu từ Vi điều khiển ra ngoài nên khởi tạo là 0x00.
- Bắt đầu khởi tạo tt =1; và giá trị aa=20, bb=0 theo yêu cầu của đề bài.
- Hiển thị giá trị và kiểm tra hai nút nhấn tăng và giảm. Kiểm tra nếu có tín hiệu từ cảm biến thì kiếm trạng tt=1 cho phép tăng giá trị bb lên một đơn vị, khi bb lớn hơn hoặc bằng aa thì cho bb=aa; và cho tt=0; để chốt cảm biến lại dù có sản phẩm tiếp theo. và hiển thị ra màn hình lcd1602 theo chương trình đã trang bị trước đó.
- Chờ khi hết tín hiệu thì bắt đầu kiểm tra lại từ đầu nên while(input(cb)==1); chờ hết một trạng thái.
Chúc các bạn có một kỳ thi thành công…!!!