Giao tiếp với bàn phím thường được cần đến đối với các thiết kế dựa trên bộ vi điều khiển. Cụ thể là điều chỉnh tăng giảm thời gian sáng cho các đèn khi cần thay đổi thời gian để phù hợp với từng thời điểm mà yêu cầu thiết kế đưa ra và có thể lựa chọn các chế độ.
a. Các phương án thiết kế : Phương án 1 :
Sử dụng ma trân bàn phím : cần nhiều phím thì sử dụng phương pháp này. Ở dạng đơn giản, bàn phím được tổ chức theo kiểu ma trận các hàng các cột, truy nhập cả hàng và cả cột thông qua các cổng của VĐK. Khi một phím được ấn thì một hàng và một cột được tiếp xúc với nha, các hàng và cột còn lại không có sự tiếp xúc nào. Nếu sử dụng phương pháp này thì ta phải quét liên tục để phát hiện và xác định phím nào được ấn, nhiệm vụ này được VĐK đảm nhiệm.
Phương án 2 :
Nối trực tiếp với chân của vi điều khiển : phương pháp này chỉ áp dụng cho bàn phím có ít phím chức năng. Ưu điểm là đơn giản. Phương pháp này không cần quét, mà ta sử dụng phần mềm để điều khiển.
Cụ thể trong đồ án này chúng em sử dụng phương án 2. Giao diện của bàn phím có thể thiết kế như sau :
A B C D
Mô tả chức năng các phím :
Phím A :cho phép ta lựa chọn đèn cần điều chỉnh.
Phím B và phím C : cho phép ta điều chỉnh tăng, giảm thời gian đếm lùi. Phím D : dùng để thoát khỏi chương trình khi hoan tất cài đặt.
b. Hướng dẫn sử dụng các phím chức năng.
- B1: bấm phím A, để cho ta lựa chọn điều chỉnh thời gian của các đèn như sau, bấm một lần là lựa chọn đèn đỏ, bấm 2 lần là đèn vàng, 3 lần là đèn xanh.
- B2: sau khi đã xong B1 thì ta dung 2 phím B&C để điều chỉnh tăng, giảm thời gian của đèn được chọn tương ứng, cụ thể mỗi lần bấm phím B thì thời gian được tăng lên 1s, còn phím C thì ngược lại.
- B3: sau khi đã điều chỉnh xong các giá trị thời gian của các đèn ta bấm phím D để kết thúc và thoát khỏi quá trình điều chỉnh đó.
c. Sơ đồ ghép nối khối bàn phím với VĐK.
Nguyên lý hoạt động :
- Khi phím nào được nhấn thì tại chân đó tương ứng với mức 0, vì phím nhấn
- được nối xuống đất.
- Nếu không có phím nào được nhấn thì tại chân đó tương ứng với mức 1.
- Để đảm bảo phím đó hoàn toàn là được nhấn thì chương trình phải kiểm
- tra nhiều lần xem phím đó có được nhấn không. - Khi nhả phím cũng vậy.