發表於 2018-01-25 16:38:37
鍵盤是一組按壓式開關的集合,是微機系統不可缺少的輸入設備,用於輸入數據和命令。鍵盤的每一個按鍵都被賦予一個代碼,稱為鍵碼。鍵盤系統的主要工作包括及時發現有鍵閉合,求閉合鍵的鍵碼。根據這一過程的不同,鍵盤可以分為兩種,即編碼鍵盤和非編碼鍵盤。編碼鍵盤是通過一個編碼電路來識別閉合鍵的鍵碼,非編碼鍵盤是通過軟體來識別鍵碼。由於非編碼鍵盤的硬體電路簡單,用戶可以方便地增減鍵的數量,因此在單片機應用系統中,非編碼鍵盤得到廣泛的應用,有較好的應用價值。
2.設計原理首先應該了解本次設計的基本要求和目的,再通過查找資料了解80C51單片機的工作原理、結構圖,數碼顯示管的結構和工作原理。根據設計要求可以將單片機P3口接4×4鍵盤,P0口接數碼顯示管,根據掃描原理進行行掃描,用CJNE指令判斷P3口的狀態。採用軟體延時去抖動,用MOVCA,@A+DPTR取鍵值。
建立鍵值對應的顯示碼,通過查表指令實現鍵值的顯示。由此畫出設計流程圖和利用彙編語言進行編程。最後利用Proteus畫出電路圖進行仿真。其系統原理框圖如圖1所示。
3.1.顯示電路
按顯示方式分,用單片機驅動LED數碼管的方法有靜態顯示和動態(掃描)顯示兩種。
靜態顯示就是顯示驅動電路具有輸出鎖存功能,單片機將所要顯示的數據送出後需要刷新,直到下一次顯示內容需要更新時再傳送新的數據,這種方法顯示穩定,佔用CPU時間少。本設計主要是用的動態顯示,它的特點正好與靜態顯示相反,需要CPU時刻對顯示器件進行數據刷新,顯示數據有閃爍感,佔用的CPU時間多,但動態顯示所需硬體少,電路相對簡單,能節省線路板空間。採用1位8段共陰極LED,P0口作為LED顯示碼輸出端,因為只採用1位數碼管,因此線選端直接接地。
如圖2所示。
3.2.鍵盤電路
用AT89S51的並行口P3接4×4行列式鍵盤,以P3.0-P3.3作輸出線,以P3.4-P3.7作輸入線;在數碼管上顯示每個按鍵的「0-F」序號。對應的按鍵的序號排列如圖3所示。
3.3.電路仿真
採用Proteus仿真軟體進行仿真,在仿真之前先按照預設值好的電路圖進行連線,以及布局,最後確定線路已連接好,將彙編程序編譯生成。hex文件,加載到51晶片中,再運行開始仿真,電路仿真效果圖如圖4所示。
如圖2所示,用AT89S51的並行口P1接4×4矩陣鍵盤,以P1.0-P1.3作輸入線,以P1.4-P1.7作輸出線;在數碼管上顯示每個按鍵的「0-F」序號。對應的按鍵的序號排列如圖1所示:
圖1
1.把「單片機系統「區域中的P3.0-P3.7埠用8芯排線連接到「4X4行列式鍵盤」區域中的C1-C4R1-R4埠上;
2.把「單片機系統」區域中的P0.0/AD0-P0.7/AD7埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。
圖2
4X4行列式鍵盤控制電路(三) PIC單片機人機接口模塊4×4行列式鍵盤的電路設計本實例的4×4行列式鍵盤的原理圖如圖1所示,在輸出時,採用埠C的低4位來顯示按鍵的輸入值。
圖1 外部上電復位電路
單片機的時鐘電路和復位電路可以採用如圖2所示的電路,也可以採用一種更加簡單的時鐘電路,即如圖2所示的時鐘電路和復位電路。在實現時也可以用PIC16C5X埠作為輸入端,其電路如圖3所示。
圖2 時鐘電路和復位電路
圖3 4×4行列式鍵盤的電路圖
其中,RD0~RD3用來進行列掃描,RD4~RD7用來進行行掃描。RD4~RD7各自通過一個電阻接到電源上,並和RD0~RD3通過一個按鍵連接起來。
當一個按鍵按下時,對應的行輸入口的電平為通過按鍵連接的列輸入埠的電平。普通狀態下,各個列埠的輸出是低電平,在掃描到任一行埠的電壓變低後,再將4條列埠
的電平變為高電平,每一個列埠依次變低,然後判斷出現低電平的行埠是否為低電平,如果是,則可以確定是哪一個按鍵按下。
圖4 埠C的低4位輸出電路圖
在輸出顯示時,採用埠C的低4位作為輸出,4位二進位的輸出對應16個按健,按下按鍵後,就會在埠C的低4位輸出,直到再一次按動其他的按鍵輸出才會改變。埠C的低4位輸出電路圖如圖4所示。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴