Lập Trình Quét Phím Matrix 4x4 Hiển Thị Lên LCD 16x2
Có thể bạn quan tâm
Chào các bạn, ở các bài trước chúng ta đã tìm hiểu về quét nút nhấn đơn thì hôm nay mình sẽ hướng dẫn các bạn lập trình với matrix nút nhấn 4x4 - có thể mở rộng lên tùy thích. Quét ma trận phím hơi phức tạp hơn so với kiểm tra logic của chân MCU như ở các bài trước cụ thể nguyên lý như sau: Khi ta cấp logic 0 ra all hàng để chờ sự kiện nút được nhấn, nếu nút được nhấn thì ta mới cấp lần lượt mức logic 0 ra từng hàng (VD cấp cho hàng 1 logic 0 thì các hàng khác phải lên login 1) sau đó kiểm tra cột xem nó ở cột thứ bao nhiêu, nếu trùng cột và hàng cùng logic 0 thì ta sẽ xác định được vị trí nút được nhấn.
1. Sơ đồ phần cứng ma trận nút nhấn 4x4:

2. Code lập trình: Áp dụng cho mọi vi điều khiển, khai báo lại để tương thích với trình biên dịch
unsigned char check_but(){ //Kiểm tra nút nhấn row0=row1=row2=row3=0; //Xuất logic 0 ra các hàng để kiểm tra if(!col0 || !col1 || !col2 || !col3 )return 1; //OK có nút được nhấn return 0; //Bỏ qua, không có nút nào được nhấn}void scan_row(unsigned char r){ //Quét hàng row0=row1=row2=row3=1; if(r==0)row0=0; else if(r==1)row1=0; else if(r==2)row2=0; else if(r==3)row3=0;}unsigned char check_col(){ //Kiểm tra cột unsigned char c=0; if(!col0)c=1; else if(!col1)c=2; else if(!col2)c=3; else if(!col3)c=4; return c; //Trả về vị trí cột}unsigned char get_key(){ //Hàm trả về vị trí nút nhấn 1-16, bằng 0 là không nhấn unsigned char row,col; if(check_but()){ //Kiểm tra xem có nút nào được nhấn không delay_ms(5); //Chống rung phím do tiếp xúc kém if(check_but()){ //Nếu đúng là nút đang nhấn không phải do rung phím for(row=0;row<4;row++){ scan_row(row); // Quét hàng col=check_col(); //Lấy vị trí cột if(col>0)return ((row*4)+col); //Trả về hàm vị trí nút nhấn } } } return 0; //Không có nút nào được nhấn hoặc đã nhả nút}
3. Mạch mô phỏng trên proteus:

** Các bạn tải code đầy đủ về trong file đính kèm............
Chúc các bạn học tốt!
Tải về đính kèm:Từ khóa » Nguyên Lý Quét Bàn Phím
-
Lập Trình STM32 Quét Ma Trận Phím Keypad 3×4 - Khuê Nguyễn
-
Giao Tiếp Bàn Phím Ma Trận 4×4 - Learn By Sharing
-
MẠCH QUÉT MA TRẬN PHÍM 4x4 (có Code) - Tài Liệu Text - 123doc
-
8051 | Bai 9 - Hướng Dẫn Giải Mã Bàn Phím - Keypad 4x4 - YouTube
-
Hỏi Về Quét Bàn Phím - Dien Tu Viet Nam
-
Giao Tiếp Giữa Bàn Phím 16 Phím Với Vi điều Khiển 8051
-
Ngoại Vi Và Giao Diện: Bàn Phím - VOER
-
Tìm Hiểu Bàn Phím Laptop
-
Giao Tiếp Với KeyPad 4×4 - Univ.Tech Hơn Cả Thực Hành
-
Bàn Phím Máy Tính Hoạt động Như Thế Nào
-
Đọc Giá Trị Phím Nhấn Từ Bàn Phím Ma Trận, Hiển Thị Lên OLED
-
Bàn Phím Máy Tính Là Gì Chức Năng Của Nó - .vn