Giao tiếp với bàn phím:
Xét dạng đơn giản, giao diện bàn phím đòi hỏi cả vào và ra, được tổ chức theo kiểu ma trận các hàng và các cột, mỗi phím không yêu cầu dây riêng mà có sự phối hợp các dây theo hàng và cột. CPU truy cập cả hàng lẫn cột thông qua các cổng. Khi một phím được nhấn thì một hàng và một cột được tiếp xúc, các hàng và cột còn lại không có sự tiếp xúc nào. Bộ vi điều khiển 8051 ở đây sẽ quét liên tục các phím, xác định xem phím nào được nhấn và gửi thông tin ra màn hình LCD để điều khiển động cơ đóng mở cửa khi nhập vào chuỗi kí tự hợp lệ.
Quét và xác định phím:
Xét một bàn phím gồm 16 phím ( 0†9 và A† F) được bố trí thành ma trận 4 * 4 được nối trực tiếp với cổng Port 1 của 8051. Trong đó 4 hàng được nối tới 4 bit cổng Port 1 từ P1.0 đến P1.3 và 4 cột được nối tới 4 bít của cổng Port 1 từ P1.4 đến P1.7. Nếu không có phím nào được nhấn thì đọc cổng vào sẽ toàn là 1 vì tất cả các cột đều được nối tới nguồn Vcc. Nếu tất cả các hàng được nối đất và một phím được nhấn thì một trong các cột sẽ có giá trị 0 vì phím được nhấn nối cột xuống đất. Chức năng của bộ vi điều khiển là quét liên tục để phát hiện và xác định được phím nhấn.
Nối đất các hàng và đọc các cột: Để xác định phím nhấn, bộ vi điều khiển nối đất tất các hàng bằng cách đặt giá trị 0 lên các chốt ra. Sau đó đọc các cột. Nếu dữ liệu đọc được ở các cột có giá trị P1.4 - P1.7 = 1111 tức là không có phím nào được nhấn và quá trình này cứ tiếp tục cho đến khi xác định ra phím được nhấn. Nếu một trong các bít bằng 0, điều đó xác định có phím được nhấn. Ví dụ nếu P1.4 - P1.7 = 1101 có nghĩa là phím ở cổng P1.5 được nhấn. Sau khi một phím nhấn đã được phát hiện, bộ vi điều khiển sẽ chuyển qua quá trình xác định phím nhấn đó là phím gì. Bắt đầu từ hàng trên cùng, bộ vi điều khiển sẽ nối đất các hàng đó bằng cách đưa vào một điện áp thấp cho hàng P1.0 sau đó nó tiến hành đọc các cột. Nếu dữ liệu đọc được có giá trị toàn là 1 tức là không có phím nào ở hàng này được nhấn và quá trình sẽ chuyển sang hàng tiếp theo. Bộ vi điều khiển lại nối đất hàng tiếp theo, đọc giá trị ở các cột và kiểm tra xem có giá trị nào bằng 0 không. Quá trình này cứ tiếp tục cho đến khi có hàng được xác định. Sau khi xác định xong hàng có phím nhấn nhiệm vụ tiếp theo là tìm xem cột nào có phím nhấn. Việc này khá đơn giản bởi vì CPU biết được bất cứ thời điểm nào và cột nào được truy cập.
Chƣơng 3.
THIẾT KẾ BỘ ĐIỀU KHIỂN CỬA TỰ ĐỘNG CÓ BẢO MẬT.