1. Trang chủ
  2. » Công Nghệ Thông Tin

Cách dùng bàn phím ma trận 4x4(for AVR)

4 785 8

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 39,5 KB

Nội dung

Cách dùng bàn phím ma trận 4x4(for AVR) Những điểm khác phần code so với code ví dụ đưa: - Ngắn gọn - Không tốn Timer - Chống rung phím đơn giản, hiệu (không dùng delay) - Dễ định nghĩa cho loại bàn phím khác Code: File Key4x4.h #ifndef _KEY4X4_H_ #define _KEY4X4_H_ // -// // - Define Hardware // #define KEY4X4_PORT PORTC #define KEY4X4_PIN PINC #define KEY4X4_DDR DDRC unsigned char KeyPad[4][4] = { '7', '4', '1', 'C', '8', '5', '2', '0', '9', '6', '3', '=', '/', 'x', '-', '+'}; '1', '4', '7', '#', '2', '5', '8', '0', '3', '6', '9', '*', 'A', 'B', 'C', 'D'}; /* unsigned char KeyPad[4][4] = { // - Define Firmware // */ #endif /* HARDWARE CONNECTION PD0 -0 | | | | PD1 -4 | | | | PD2 -8 10 -11 | | | | PD3 -12 -13 -14 -15 R1 | | | | PD4 -~~~~~-| | | | R2 | | | PD5 -~~~~~ | | | R3 | | PD6 -~~~~~ -| | R1 R4=10k 47k R4 | PD7 -~~~~~ | */ File Key4x4.c Code: /***************************************************** Project : Keypad Matrix 4x4 Version : 1.0 Date : 07-11-2007 Author : Nam Company : PYT Chip type : ATmega16 Program type : Application Clock frequency : 12 MHz Memory model : Small External SRAM size : Data Stack size : 256 *****************************************************/ #include #include #include "key4x4.h" // -// // Global variables uint8_t key_old_state[4][4]; // // void check_key() { for (uint8_t row=0; row input lcd_init(16); // Global enable interrupts sei(); while (1) { check_key(); }; //while } Ở phần Hadware connection: pins PD4 PD7 nhw hình vẽ nối qua R1 R4 vào nút nhấn Còn pull-up thi nối vào nút nhấn nối lên V+ Vậy xác kiểu nào? Tôi tìm hiểu hóa này: Đối với AVR có R pullups bên nên dùng phần mềm cài đặt, không cần R kéo lên Nếu có sơ đồ tintintin họ giải thích tránh ngắn mạch cực IC Các IC R pullups bên phải có R kéo lên V+ codevision có example vào mở file mà coi cách viết hay, dùng timer, lần quét cột, có chống rung, chống nhiễu, có thời gian release phím dùng cho trường hợp bạn cần nhận phím nhấn liên tục thay nhấn nhiều lần nhiên để dễ sử dụng điều chỉnh linh hoạt cần sửa exp tí Code C quét phím - chống dội phím cho AVR dùng codevision lập trình Khi bạn nhấn phím giữ được, nhả phím thực - Kết nối phần cứng bàn phím ma trận 4x4, chân nối vào bit thấp portB, chân nối vào bit cao portB - Phuơng pháp quét phím cấp điện chân bít thấp, kiểm tra thay đổi chân bit cao có thay đổi nhảy đến phần chống dội phím, sau xử lí kiện có phím nhấn Code quét phím: while(1) { DDRB=0x0F; PORTB=0; PORTB.0=1; delay_ms(5); if (PINB>15) break; PORTB=0; PORTB.1=1; delay_ms(5); if (PINB>15) break; PORTB=0; PORTB.2=1; delay_ms(5); if (PINB>15) break; PORTB=0; PORTB.3=1; delay_ms(5); if (PINB>15) break; } Code chống dội phím void chongdoi(void) { int i; loinhan:; for (i=0;i ... hoạt cần sửa exp tí Code C quét phím - chống dội phím cho AVR dùng codevision lập trình Khi bạn nhấn phím giữ được, nhả phím thực - Kết nối phần cứng bàn phím ma trận 4x4, chân nối vào bit thấp... example vào mở file mà coi cách viết hay, dùng timer, lần quét cột, có chống rung, chống nhiễu, có thời gian release phím dùng cho trường hợp bạn cần nhận phím nhấn liên tục thay nhấn nhiều lần... portB - Phuơng pháp quét phím cấp điện chân bít thấp, kiểm tra thay đổi chân bit cao có thay đổi nhảy đến phần chống dội phím, sau xử lí kiện có phím nhấn Code quét phím: while(1) { DDRB=0x0F;

Ngày đăng: 04/12/2015, 19:05

TỪ KHÓA LIÊN QUAN

w