hongnhattl
TOT
Từ trước đến h có bạn nào đã từng nghĩ, sẽ thay đổi cách quét bàn phím thông thường bằng cách nào đó nhanh chóng mà không tốn quá nhiều thời gian xữ lý của MCU không ạ, và đó cũng là câu hỏi mà trước đây mình đã từng trăn trở....và sau đó không đợt lâu, tìm nhiều tài liệu, và thử nhiều cách để thay đổi điều này (ví dụ mình đã từng làm bàn phím ADC chỉ dùng duy nhất 1 dây, và vv. ) .Nhưng sau nhiều cách thì mình yêu thích nhất là Keypad theo kiểu I2C.
Nguyên tắc thì chỉ đơn giản vậy thôi. nhưng các bạn làm rồi sẽ biết nó rắc rối thế nào!!!!!
Đọc Datasheet PCA9555 là vậy, nhưng viết code mới thấy hiểu rõ nó như thế nào.!!!! thú vị lắm.....
In order not to waste time of you guys more, And It's here....Hope so It's helpful for you guys' projects
P/s It requires a MCU having I2C interface, INT interrupt ....That's all. On my layout attachment, I used 2 PCA9555 ICs, one for I2C keypad and another for expand-port application, but wait, I forgot to connect 2 wires SCL and SDA of those ICs together. I suggest, you're better connect it by using wires or relayout. Ok /.
Beside, It also encloses a LCD.h and a LCD.c by using this IC..I think it'll help to save MCU's PIN....OK take a look now.
Nguyên tắc là chúng ta sẽ không quét như bình thường nữa, thay vì thế, mình dùng con PCA9555, mỗi lần có nút nhấn nó liền tạo ra một ngắt báo MCU biết là đang có phím được nhấn và chúng ta sẽ nhảy vào ngắt đọc giá trị thay ghi của PCA về xữ lý, sau đó lập trình tìm đuợc trạng thái thay đổi và biết được nút nào đã được nhấn. Nguyên tắc thì chỉ đơn giản vậy thôi. nhưng các bạn làm rồi sẽ biết nó rắc rối thế nào!!!!!
Đọc Datasheet PCA9555 là vậy, nhưng viết code mới thấy hiểu rõ nó như thế nào.!!!! thú vị lắm.....
In order not to waste time of you guys more, And It's here....Hope so It's helpful for you guys' projects
P/s It requires a MCU having I2C interface, INT interrupt ....That's all. On my layout attachment, I used 2 PCA9555 ICs, one for I2C keypad and another for expand-port application, but wait, I forgot to connect 2 wires SCL and SDA of those ICs together. I suggest, you're better connect it by using wires or relayout. Ok /.
Beside, It also encloses a LCD.h and a LCD.c by using this IC..I think it'll help to save MCU's PIN....OK take a look now.