Chào mọi người, mình đang làm một đồ án về VĐK có đề bài là " Xây dựng hệ thống đo nhiệt độ 8 kênh, hiển thị lên LCD các giá trị nhiệt độ lớn nhất và nhỏ nhất. Việc chọn kênh được thực hiện thông qua bàn phím và giá trị kênh được chọn đưa lên LCD". Cái này thì chỉ cần mô phỏng trên Proteus thôi chứ ko cần mạch thật. Mình sử dụng 8 cảm biến LM35 và ADC 0808 để thực hiện việc đo nhiệt độ trên các kênh. Còn thuật toán thì mình thu lần lượt từ các kênh lưu vào RAM rồi so sánh và hiển thị. Mình mới chỉ làm yêu cầu thứ nhất và mô phỏng thì có vấn đề như sau:
_ Nếu mình đưa địa chỉ một kênh cố định, thì LCD hiển thị đúng. Nếu mình hiển thị 2 kênh trên 2 dòng, ví dụ mình dùng LCD 20x4, dòng 3 hiển thị kênh 0 và dòng 4 hiển thị kênh 1 thì giá trị hiển thị không chính xác, và khi mình chỉ tăng nhiệt độ cảm biến ứng với kênh 1 thôi thì nhiệt độ trên cả hai kênh đều tăng.Chẳng hạn như hình dưới đây chỉ đúng được 1 kênh.
Với 2 kênh mà còn như vậy nên tất nhiên với 8 kênh chương trình tìm min,max cũng không hoạt động đúng. Mong các bạn xem code và góp ý cho mình vấn đề ở chỗ nào. Code và mô phỏng đây.Xin cảm ơn các bạn!
do_nhietdo.zip
_ Nếu mình đưa địa chỉ một kênh cố định, thì LCD hiển thị đúng. Nếu mình hiển thị 2 kênh trên 2 dòng, ví dụ mình dùng LCD 20x4, dòng 3 hiển thị kênh 0 và dòng 4 hiển thị kênh 1 thì giá trị hiển thị không chính xác, và khi mình chỉ tăng nhiệt độ cảm biến ứng với kênh 1 thôi thì nhiệt độ trên cả hai kênh đều tăng.Chẳng hạn như hình dưới đây chỉ đúng được 1 kênh.
Với 2 kênh mà còn như vậy nên tất nhiên với 8 kênh chương trình tìm min,max cũng không hoạt động đúng. Mong các bạn xem code và góp ý cho mình vấn đề ở chỗ nào. Code và mô phỏng đây.Xin cảm ơn các bạn!
do_nhietdo.zip
Comment