Trong hướng dẫn này, chúng ta sẽ giao diện bàn phím 4x4 (16 phím) với vi điều khiển ATMEGA32A. Chúng ta biết rằng bàn phím là một trong những thiết bị đầu vào quan trọng nhất được sử dụng trong các dự án điện tử. Bàn phím là một trong những cách dễ nhất để đưa ra lệnh hoặc hướng dẫn cho hệ thống điện tử.
Thành phần bắt buộc
Phần cứng: ATMEGA32, nguồn điện (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), tụ điện 100uF, tụ điện 100nF, điện trở 10KΩ (8 miếng).
Phần mềm: Atmel studio 6.1 hoặc Atmel studio 6.2, progisp hoặc flash magic.
Sơ đồ mạch và giải thích hoạt động
Trong mạch PORTB của ATMEGA32 được kết nối với LCD cổng dữ liệu. Ở đây người ta nên nhớ vô hiệu hóa giao tiếp JTAG trong PORTC ot ATMEGA bằng cách thay đổi các byte cầu chì, nếu người ta muốn sử dụng PORTC như một cổng giao tiếp thông thường. Trong LCD 16x2 có 16 chân trên tất cả nếu có đèn nền, nếu không có đèn nền sẽ có 14 chân. Người ta có thể cấp nguồn hoặc để lại các chân đèn sau. Bây giờ trong 14 chân có 8 dữ liệu ghim (7-14 hoặc D0-D7), 2 chân cung cấp điện (1 & 2 hoặc VSS & VDD hoặc GND & + 5V), 3 thứ pin cho điều khiển độ tương phản (VEE-điều khiển như thế nào dày các nhân vật nên được hiển thị), và 3 chân điều khiển (RS & RW & E).
Trong mạch, bạn có thể quan sát thấy tôi chỉ lấy hai chân điều khiển, điều này tạo ra sự linh hoạt, bit tương phản và READ / WRITE không thường xuyên được sử dụng nên chúng có thể được nối đất. Điều này đặt LCD ở chế độ đọc và độ tương phản cao nhất. Chúng ta chỉ cần điều khiển các chân ENABLE và RS để gửi các ký tự và dữ liệu cho phù hợp.
Các kết nối được thực hiện cho LCD được đưa ra dưới đây:
PIN1 hoặc VSS để nối đất
PIN2 hoặc VDD hoặc VCC đến nguồn + 5v
PIN3 hoặc VEE nối đất (mang lại độ tương phản tối đa tốt nhất cho người mới bắt đầu)
PIN4 hoặc RS (Lựa chọn đăng ký) đến PD6 của uC
PIN5 hoặc RW (Đọc / Ghi) nối đất (đặt màn hình LCD ở chế độ đọc giúp giảm bớt giao tiếp cho người dùng)
PIN6 hoặc E (Bật) đến PD5 của uC
PIN7 hoặc D0 đến PB0 của uC
PIN8 hoặc D1 đến PB1 của uC
PIN9 hoặc D2 đến PB2 của uC
PIN10 hoặc D3 đến PB3 của uC
PIN11 hoặc D4 đến PB4 của uC
PIN12 hoặc D5 đến PB5 của uC
PIN13 hoặc D6 đến PB6 của uC
PIN14 hoặc D7 đến PB7 của uC
Trong mạch các bạn có thể thấy chúng ta đã sử dụng giao tiếp 8bit (D0-D7) tuy nhiên đây không phải là điều bắt buộc, chúng ta có thể sử dụng giao tiếp 4bit (D4-D7) nhưng với giao tiếp 4 bit chương trình trở nên hơi phức tạp. Vì vậy, từ quan sát bảng trên, chúng ta đang kết nối 10 chân của LCD với bộ điều khiển trong đó 8 chân là chân dữ liệu và 2 chân để điều khiển.
Bây giờ chúng ta hãy nói về bàn phím, bàn phím không có gì khác ngoài các phím ghép. Các nút được kết nối theo dạng ghép kênh để giảm mức sử dụng pin của hệ thống điều khiển.
Hãy xem xét chúng ta có một bàn phím 4x4, trong bàn phím này chúng ta có 16 nút, trong trường hợp bình thường, chúng ta cần 16 chân điều khiển để giao diện 16 nút, nhưng điều này không tốt trong quan điểm hệ thống điều khiển. Việc sử dụng pin này có thể được giảm bớt bằng cách kết nối các nút ở dạng ghép kênh.
Ví dụ, hãy xem xét chúng ta có 16 nút và chúng ta muốn gắn nó vào bộ điều khiển để tạo thành bàn phím, các phím này được sắp xếp như trong hình:
Các nút này được nối với nhau bằng các cột chung như trong hình:
Như thể hiện trong hình, các đầu không được đánh dấu của mỗi bốn nút được kéo để tạo thành một cột và do đó, đối với 16 khóa, chúng ta có bốn cột.
Nếu chúng ta quên các kết nối cột ở trên và kết nối các đầu được đánh dấu chung của mỗi bốn nút với nhau để tạo thành một hàng:
Như trong hình, đối với 16 phím, chúng ta sẽ có bốn hàng như trong hình.
Bây giờ khi cả hai được nhìn thấy cùng nhau, chúng tôi nhận được một cái gì đó giống như mạch bên dưới:
Ở đây chúng tôi đã kết nối 16 phím ở dạng ghép để giảm việc sử dụng pin của bộ điều khiển. Khi so sánh với trường hợp đầu tiên của 16 phím được kết nối, chúng tôi cần 16 chân trên bộ điều khiển nhưng bây giờ sau khi ghép kênh, chúng tôi chỉ cần 8 chân của bộ điều khiển để kết nối 16 phím.
Thông thường đây là những gì được trình bày bên trong bàn phím:
Như trong hình trên, có 16 phím trong bàn phím trên và mỗi phím này đại diện cho một nút trong cấu hình nút ghép. Và cũng có 8 kết nối pin như trong hình trên tượng trưng cho kết nối đa hợp.
Bây giờ để làm việc:
Bàn phím ở đây có bốn cột và bốn hàng, để xác định nút được nhấn, chúng ta sẽ sử dụng phương pháp tham chiếu chéo. Ở đây đầu tiên chúng ta sẽ kết nối tất cả các cột hoặc tất cả các hàng với vcc, vì vậy nếu các hàng được kết nối với vcc chung, chúng ta sẽ lấy các cột làm đầu vào cho bộ điều khiển.
Bây giờ nếu nút một được nhấn như thể hiện trong hình:
Sau đó một dòng điện chạy qua đoạn mạch như hình vẽ bên:
Vì vậy, chúng tôi có C1 cao, cho một lần nhấn nút. Tại thời điểm này, chúng tôi sẽ thay đổi các cổng nguồn và cổng đầu vào, tức là chúng tôi sẽ cấp nguồn cho các cột và lấy các hàng làm đầu vào, Bằng cách đó, sẽ có một dòng điện như thể hiện trong hình dưới đây:
Vì vậy, đối với hàng, chúng tôi có R1 cao.
Hiện tại chúng ta có mức cao C1 trong trường hợp đầu tiên và mức cao R1 trong trường hợp thứ hai, vì vậy chúng tôi có vị trí ma trận của nút do đó là số “một”.
Nếu nút thứ hai được nhấn, chúng ta sẽ có C1 là cột nhưng logic cao mà chúng ta nhận được trong cột chung sẽ là 'R2'. Vì vậy, chúng ta sẽ có C1 và R2, do đó chúng ta sẽ có vị trí ma trận của nút thứ hai.
Đây là cách chúng ta sẽ viết chương trình, chúng ta sẽ kết nối tám chân của bàn phím với tám chân của bộ điều khiển. Và để bắt đầu, chúng tôi cấp nguồn cho bốn chân của bộ điều khiển để cấp nguồn cho bốn hàng bàn phím, tại thời điểm này bốn chân khác được lấy làm đầu vào. Khi nhấn nút, chân cột tương ứng được kéo lên và do đó chân điều khiển được kéo lên, điều này sẽ được công nhận để thay đổi đầu vào thành nguồn và công suất thành đầu vào, vì vậy chúng ta sẽ có các hàng làm đầu vào.
Bằng cách này, chúng tôi nhận được nút được nhấn bởi người dùng. Địa chỉ ma trận này được hướng đến số tương ứng và số này được hiển thị trên màn hình LCD.
Hoạt động của giao diện bàn phím với vi điều khiển avr được giải thích từng bước trong mã C đưa ra bên dưới. Bạn cũng có thể kiểm tra: giao diện bàn phím với vi điều khiển 8051.