Ðăng Nhập

View Full Version : Quét bàn phím - help!!!


motu
04-01-2010, 11:15 AM
Mình đang làm mạch để quản lý cái hồ cá thủy sinh nuôi tép ở nhà, mạch bao gồm:
- 01 đồng hồ sử dụng DS1307 để quản lý việc tắt mở đèn, quạt (hiển thị ra LED 7 đoạn).
- 01 cảm biến nhiệt độ để điều khiển hệ thống làm mát nước (hiển thị ra LED 7 đoạn).
Mình đang gặp một số vấn đề như sau:
- Do dùng EasyPIC để test mạch nên PORTB và PORTA đã dùng để quét led.
- ADC đã dùng để đọc giá trị từ cảm biến nhiệt độ. (chưa nghiên cứu kỹ mới đọc tut thôi :D)
- Hiện giờ mình không biết quét bàn phím theo phương pháp nào (mình chỉ biết 2 cách - đọc trên PICVietNam - dùng ngắt PORTB hoặc quét bằng ADC, mà 2 cổng này bị "chiếm dụng" hết rồi).
Không biết còn cách nào để xử lý dzụ bàn phím này không, nếu không được chắc phải làm mạch lại, quét LED bằng PORTD.
P/S: Cho mình hỏi thêm con EASYPIC sử dụng cảm biến nhiệt độ gì, xài LM335 được không, mình mua EASYPIC secondhand nên không có tài liệu hướng dẫn.

roi
19-01-2010, 12:20 AM
Theo mình nghĩ bạn không nhất thiết phải sử dụng ngắt cho việc quét bàn phím mà có thể sử dụng đơn giản hơn nhiều. Ví dụ giờ bạn đang "rảnh" nguyên cả portD ? Bạn cứ việc nối tất cả các chân của portD vào đúng cấu hình của nút nhấn và khai báo portD là các chân nhận dữ liệu (TRISD = 0xFF) , như vậy trong vòng while(1) bạn chỉ cần đọc portD là ok. Khi có sự thay đổi trạng thái ở chân portD thì bạn nhảy vào 1 hàm con làm cái gì đó tương ứng với sự thay đổi...