![]() |
hỏi về keypad 4x4 dùng ADC
Chào mọi người!
Mình đang làm 1 ứng dụng dùng keypad. Cách thông thường là dùng 8 chân thì mình làm được rồi. Nhưng do không đủ chân mình định dùng keypad ADC để tiết kiệm chân. Mà mình không biết ưu điểm và khuyết điểm cũng như cách làm keypad ADC. Có ai biết keypad ADC tư vấn cho mình nhe. Xin cảm ơn. |
Trích:
http://lancer3.com/ADC%20Keypad.htm Bạn thử nghĩ xem nếu nhấn hai nút đồng thời thì thế nào nhé. Thân, |
Trích:
Tiện thể anh có thể cho em xin code của driver keypad 4x4 viết bằng ngắt được không anh? |
Trích:
Bạn cũng nên tránh hỏi riêng một ai đó trên diễn đàn, vì đâu phải chỉ có một người có thể giúp bạn. Thân, |
Trích:
Hiện tại đã dùng được driver thông thường. Nhưng cách này viết menu cho LCD thì không tiện. Trong khi dùng ngắt thì lại gặp vấn đề không tương thích với các hàm delay của LCD. Mong nhận được sự chỉ giáo của các đàn anh. |
Mình cũng đang học về PIC, viết một ứng dụng đơn giản có sử dụng keypad + tính năng
ngắt. Nhưng vẫn chưa chạy tốt được. Vì lí do gì thì vẫn chưa hiểu được. Mặc dù không có ngắt thay đổi điện áp bởi nhất nút keypad nhưng mà vẫn vào hàm ngắt. Anh chị nào có kinh nghiệm, xin chỉ giáo. Cảm ơn. Thông tin trên mạch như sau: + PB0-PB3 là Output, giá trị 0 + PB4-PB7 là Input, được kéo Pullup lên Vcc + Khi nhấn nút thì PB0 -> PB4, or PB1 -> PB5, or PB2 -> PB6, or PB3 -> PB7. Làm cho tín hiệu ở PB4-PB7 thay đổi từ H->L ==> khi đổ xuống PIC, thấy xuất ra ký tự "C" liên tục :-(. Xin được giúp đỡ. Code:
#include <18F4550.h> |
Làm sao bạn biết là nó luôn nhảy vào ngắt ??
Bạn cho hiển thị ký tự " C " lên LCD hay máy tính vậy , Mà sao chương trình không thấy báo bảo khởi tạo LCD Mình bị một lần : khai báo lệnh " enable_interrupts(INT_RB); " thì không thể nào vào ngắt đươc , sau đó mình thay đổi bằng lệnh : ENABLE_INTERRUPTS( INT_RB7); ENABLE_INTERRUPTS( INT_RB6); Thì chạy bình thường Trường hợp của bạn có thể do phần cứng , bạn dò lại mạch xem nhé |
Trích:
Chắc bạn thvinh1010 chưa cho xuất ra LCD chỉ mới xuất ra cổng com thôi. Mình cũng đang bị vướng chổ ngắt RB cho con 18F4550, chưa biết làm sao hểt :( |
Trích:
Bạn có thể mở các file .H trong bộ cài ở forder DRIVERS ra tìm hiểu Chúc may mắn ...... |
Trích:
Mình đã xem rồi. Các khai báo INT_RB6, INT_RB7 chỉ có trong 1 số file .h thôi. Riêng con 18F4550 thì không có!!! |
Mình đã điều khiển ngắt RB được rồi, mình gởi source để mọi người cùng tham khảo.
Port B được nối với keypad 4x4. Nếu nhấn 1 nút trên port B thì sẽ xuất 1 ký tự 'c' qua RS232. Nhưng có 1 chỗ mình chưa hiểu là nếu mình comment khối lệnh IF trong hàm ngắt RB_isr() thì ký tự 'a' được xuất ra liên tục(hàm ngắt xãy ra liên tục). Có ai giải thích dùm mình được không? Code:
#include <18F4550.h> |
Múi giờ GMT. Hiện tại là 02:02 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam