Tư vấn: 0979.466.469 / 0938.128.290

MENU

Kết nối bàn phím hex với 8051

Gia cong pcb 600*150px

Bài viết này nói về việc giao tiếp một bàn phím hex với vi điều khiển 8051. Kiến thức rõ ràng về việc giao tiếp bàn phím hex với 8051 rất quan trọng khi thiết kế các dự án hệ thống nhúng yêu cầu đầu vào ký tự hoặc số hoặc cả hai. Ví dụ, các dự án như khóa mã số kỹ thuật số, máy tính số, v.v. Trước khi đi vào việc giao tiếp chi tiết, hãy xem xét về bàn phím hex.

Bàn phím hex. Bàn phím hex về cơ bản là một bộ sưu tập gồm 16 phím được sắp xếp dưới dạng ma trận 4x4. Bàn phím hex thường có các phím đại diện cho các số từ 0 đến 9 và các ký tự A đến F. Sơ đồ đơn giản của một bàn phím hex tiêu biểu được hiển thị trong hình dưới đây.

Bàn phím 4x4 Bàn phím hex

Bàn phím hex có 8 dây liên lạc, gồm R1, R2, R3, R4, C1, C2, C3 và C4. R1 đến R4 đại diện cho bốn hàng và C1 đến C4 đại diện cho bốn cột. Khi một phím cụ thể được nhấn, các hàng và cột tương ứng mà các đầu của phím được kết nối sẽ ngắn mạch. Ví dụ, nếu phím 1 được nhấn, hàng R1 và cột C1 bị ngắn mạch và cứ thế. Chương trình xác định phím nào được nhấn thông qua phương pháp quét theo cột. Trong phương pháp này, một hàng cụ thể được giữ ở mức thấp (các hàng khác được giữ ở mức cao) và các cột được kiểm tra xem có mức thấp hay không. Nếu một cột cụ thể được tìm thấy ở mức thấp thì điều đó có nghĩa rằng phím được kết nối giữa cột đó và hàng tương ứng (hàng được giữ ở mức thấp) đã được nhấn. Ví dụ, nếu ban đầu hàng R1 được giữ ở mức thấp và cột C1 được tìm thấy ở mức thấp trong quá trình quét, điều đó có nghĩa rằng phím 1 đã được nhấn.

Giao tiếp bàn phím hex với 8051. Sơ đồ mạch để thể hiện việc giao tiếp bàn phím hex với vi điều khiển 8051 được hiển thị dưới đây. Tương tự như các dự án 8051 trước đó, AT89S51 là vi điều khiển được sử dụng ở đây. Mạch sẽ hiển thị ký tự/số đã nhấn lên màn hình hiển thị đa đoạn LED bảy đoạn. Mạch rất đơn giản và chỉ sử dụng hai cổng của vi điều khiển, một cổng cho bàn phím hex và cổng kia cho màn hình hiển thị đa đoạn LED bảy đoạn.

Quảng cáo đặt hàng nhập

Giao tiếp bàn phím 4x4 với 8051 Giao tiếp bàn phím hex với 8051

Bàn phím hex được giao tiếp với cổng 1 và màn hình hiển thị đa đoạn LED bảy đoạn được giao tiếp với cổng 0 của vi điều khiển. Các trở R1 đến R8 giới hạn dòng đi qua các đoạn tương ứng của màn hình LED. Các tụ C1, C2 và cầu quạt X1 hoàn thành mạch xung cho vi điều khiển. Tụ C3, trở R9 và nút bấm S1 tạo thành một cơ cấu đặt lại ổn định.

ORG 00H 
MOV DPTR,#LUT // di chuyển địa chỉ bắt đầu của LUT sang DPTR 
MOV A,#11111111B // tải A với tất cả 
MOV P0,#00000000B // khởi tạo P0 làm cổng đầu ra 

BACK:MOV P1,#11111111B // tải P1 với tất cả 1 
     CLR P1.0 // làm cho hàng 1 ở mức thấp 
     JB P1.4,NEXT1 // kiểm tra xem cột 1 có thấp không và nhảy tới NEXT1 nếu không thấp 
     MOV A,#0D // tải a với 0D nếu cột ở mức thấp (nghĩa là phím 1 được nhấn) 
     ACALL DISPLAY // gọi chương trình con DISPLAY 
NEXT1:JB P1.5,NEXT2 // kiểm tra xem cột 2 có ở mức thấp hay không, v.v... 
      MOV A,#1D 
      ACALL DISPLAY 
NEXT2:JB P1.6 ,NEXT3 
      MOV A,#2D 
      ACALL DISPLAY 
NEXT3:JB P1.7,NEXT4 MOV 
      A,#3D 
      ACALL DISPLAY 
NEXT4:SETB P1.0 
      CLR P1.1 
      JB P1.4,NEXT5 
      MOV A,#4D 
      ACALL DISPLAY 
NEXT5:JB P1.5,NEXT6 
      MOV A,#5D 
      ACALL DISPLAY 
NEXT6:JB P1.6,NEXT7 
      MOV A,#6D 
      ACALL DISPLAY 
NEXT7:JB P1.7,NEXT8 
      MOV A,#7D 
      ACALL DISPLAY 
NEXT8:SETB P1.1 
      CLR P1 .2 
      JB P1.4,NEXT9 
      MOV A,#8D 
      ACALL DISPLAY 
NEXT9:JB P1.5,NEXT10 
      MOV A,#9D 
      ACALL DISPLAY 
NEXT10:JB P1.6,NEXT11 
       MOV A,#10D 
       ACALL DISPLAY 
NEXT11:JB P1. 7,NEXT12 
       MOV A,#11D 
       ACALL HIỂN THỊ 
NEXT12:SETB P1.2 
       CLR P1.3 
       JB P1.4,NEXT13 
       MOV A,#12D 
       ACALL HIỂN 
THỊ TIẾP THEO13:JB P1.5,NEXT14 
       MOV A,#13D 
       ACALL HIỂN THỊ TIẾP 
THEO14: JB P1.6,NEXT15 
       MOV A,#14D 
       ACALL DISPLAY 
NEXT15:JB P1.7,BACK 
       MOV A,#15D 
       ACALL DISPLAY 
       LJMP BACK 

DISPLAY:MOVC A,@A+DPTR // lấy mẫu ổ đĩa chữ số cho khóa hiện tại từ LUT 
        MOV P0,A // đặt mẫu ổ đĩa số tương ứng vào P0 
        RET 

LUT: DB 01100000B // Bảng tra cứu bắt đầu từ đây 
     DB 11011010B 
     DB 11110010B 
     DB 11101110B DB 01100110B DB 10110110B 
     DB 
     10111110B 
     DB 00111110B DB 11100 000B DB 11111110B 
     DB 
     11110110B 
     DB 
     10011100B 
     DB 
     10011110B 
     ĐB 11111100B 
     ĐB 10001110B
     DB 01111010B 
     KẾT THÚC

Về chương trình. Trước tiên, chương trình khởi tạo cổng 0 làm cổng đầu ra bằng cách ghi toàn bộ 0 và cổng 1 làm cổng đầu vào bằng cách ghi toàn bộ 1. Sau đó, chương trình làm cho hàng 1 ở mức thấp bằng cách xóa P1.0 và quét từng cột một để tìm mức thấp sử dụng lệnh JB. Nếu cột C1 được tìm thấy ở mức thấp, điều đó có nghĩa là số 1 được nhấn và thanh ghi tích lũy được nạp bằng 0 và gọi tới phụ trình DISPLAY. Phụ trình hiển thị thêm nội dung trong A với địa chỉ bắt đầu của bảng tra cứu được lưu trong DPTR và nạp A với dữ liệu mà địa chỉ kết quả trỏ tới (sử dụng lệnh MOVC A,@A+DPTR). Dữ liệu hiện tại trong A sẽ là mẫu đèn số cho phím được nhấn và mẫu này được đưa vào Cổng 0 để hiển thị. Như vậy, chương trình quét từng phím một và đưa nó lên màn hình nếu phím được xác định đã được nhấn.

Ghi chú. Nguồn cung cấp điện áp 5V DC phải được điều chỉnh và lọc tốt. Quét theo cột không phải là phương pháp duy nhất để xác định phím đã được nhấn. Bạn cũng có thể sử dụng quét theo hàng. Trong quét theo hàng, một cột cụ thể được giữ ở mức thấp (các cột khác được giữ ở mức cao) và các hàng được kiểm tra xem có mức thấp sử dụng một lệnh nhảy thích hợp. Nếu phát hiện một hàng cụ thể ở mức thấp, điều đó có nghĩa rằng phím được kết nối giữa hàng đó và cột tương ứng (cột được giữ ở mức thấp) đã được nhấn. Ví dụ, nếu ban đầu cột C1 được giữ ở mức thấp và hàng R1 được quét thấy ở mức thấp, điều đó có nghĩa là phím 1 đã được nhấn. Loại bàn phím hex dạng màng đã được sử dụng trong quá trình thử nghiệm. Loại bàn phím dạng nút bấm và dạng nút màng cũng sẽ hoạt động. Tôi chưa kiểm tra các loại bàn phím khác.

Màn hình hiển thị được sử dụng là màn hình hiển thị đa đoạn LED bảy đoạn chung cực với số hiệu loại ELK5613A. Điều này chỉ để biết và bất kỳ màn hình hiển thị đa đoạn LED bảy đoạn chung cực thông thường khác nào cũng có thể hoạt động ở đây.

Gia công pcb 932*150
Sản phẩm nổi bật
Sale 0%
35000 /Cái
/ Cái

Code: 7201-001 Còn hàng

Lưu xem sau
Sale 0%
15000 /Cái
/ Cái

Code: 7201-019 Còn hàng

Lưu xem sau
Sale 0%
Liên hệ /Cái
/ Cái

Code: 7201-023 Còn hàng

Lưu xem sau
Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469
0868565469
0868565469

Hotline: 0979 466 469

Loading
0964238397
Bạn cần linh kiện mẫu ? 7-11 ngày