51單片機系統與標準PC鍵盤的接口模塊設計

2021-01-04 電子產品世界

概述
在單片機系統中,當輸入按鍵較多時,在硬體設計和軟體編程之間總存在著矛盾。對於不同的單片機系統需要進行專用的鍵盤硬體設計和編程調試,通用性差,使項目開發複雜化。標準PC鍵盤在工藝與技術上都已相當成熟,而且工作穩定,價格低廉。本設計實現了一個接口模塊,它將標準PC鍵盤發出的位置掃描碼,變換為標準的ASCII碼和OEM掃描碼或Windows虛擬鍵代碼,再以並行或串行方式傳送給上位單片機。

接口模塊的特點
該模塊在PC鍵盤與上位單片機之間起轉換作用,它屏蔽了與PC鍵盤進行數據和命令交互的複雜過程,大大簡化了上位單片機系統的輸入設計;它實現了類似DOS作業系統中鍵盤中斷服務程序的功能,使設計人員只需關心接收按鍵的結果,並可使用標準的鍵盤編碼進行編程;它要求上位單片機通過8位並行接口與其相接,對於不能提供並行接口的系統,可使用SPI兼容的同步串行接口與其相接,特別是對於那些希望佔用單片機的系統資源少而需要擴展的鍵數較多、儀器整體需要美觀大方的應用場合,其性能價格比更具優勢。該模塊與單片機系統的連接關係如圖1所示,在圖中也給出與上位單片機相接的20腳接插件的信號定義。

計算機中標準PC機鍵盤的工作原理


圖1 該模塊與上位單片機系統的連接關係及信號定義

圖2 鍵盤接口時序(a) 鍵盤發送時序;(b) 鍵盤接收時序

圖3 單片機系統與標準PC鍵盤接口模塊原理框圖

鍵盤與主機通過鍵盤插頭相接,鍵盤插頭有5芯大插頭和6芯小插頭(PS/2接口)兩種。接口信號有:電源、地、鍵盤時鐘KB_CLK、鍵盤數據KB_DAT。正常工作時,鍵盤電路不斷地掃描鍵盤矩陣。若有鍵按下,則以串行方式發送按鍵的位置掃描碼給主板鍵盤接口電路。按下鍵時,發送接通掃描碼,鬆開鍵時,發送該鍵的斷開掃描碼。斷開掃描碼一般是在接通掃描碼前加一個斷開標誌字節F0H。若某鍵一直按下,則以按鍵重複率連續發送該鍵的接通掃描碼。掃描碼與按鍵的位置有關,與該鍵的ASCII碼並無對應關係。表1第二列給出經實際測試得到的若干按鍵的位置掃描碼。由表1可見,根據鍵的按下或釋放及所按鍵的不同,這個序列可以是1、2、3、4、6、或8位元組,可稱之為位置掃描碼序列。

標準鍵盤與主機的通信是雙向的,並採用11位的串行異步通信格式,這11位數據包括:起始位0、8位數據位(LSB在先)、奇校驗位P、停止位1。圖2(a)給出了鍵盤發送時序。數據(KB_DAT)在時鐘(KB_CLK)的上升沿改變,下降沿時有效,可被主機讀取。圖2(b)給出鍵盤接收時序。主機發送前,先將KB_CLK拉低,以抑制鍵盤發送,再將KB_DAT拉低發送起始位,然後釋放KB_CLK線,鍵盤接管KB_CLK並產生時鐘信號,主機在KB_CLK信號同步下發送其他位。

標準PC鍵盤接口模塊的工作原理
基本工作原理概述
該模塊的原理框圖如圖3所示。PC鍵盤與該模塊通過專用插座相連,數據KB_DAT接到AT89C2051的P3.0引腳,時鐘KB_CLK接到引腳。在PC鍵盤有鍵按下時,KB_CLK信號會引起AT89C2051的連續中斷,通過定時器T0與外中斷的協同工作,可將PC鍵盤發出的位置掃描碼序列接收至緩衝區中。然後,在主程序中將位置掃描碼解碼、查表換算,再編碼成一字節的WINDOWS虛擬鍵代碼或兩字節的OEM掃描碼與ASCII碼,並存入系統中FIFO棧。在上位單片機可以接收新鍵值時,將FIFO棧中編碼數據以並行或串行方式傳送給上位單片機。

為了能更清楚地指示系統當前的工作狀態,在硬體上加裝了電源、正在解碼、FIFO棧溢出、碼值準備好等指示燈。

中斷解碼的工作原理
由於鍵盤的按鍵輸入是隨機的,為了能實時地響應,在程序中使用定時器T0中斷和中斷協同工作,將位置掃描碼序列恢復至鍵盤接收緩衝區中。中斷服務程序用來將碼值的一位移入緩衝區中,T0溢出的中斷服務程序主要用來判斷一次按鍵所發出的碼是否已全部接收。系統設置T0的定時間隔為5ms,並在系統啟動後就開始定時。由於在正常接收每個按鍵的碼值序列過程中,鍵盤發送的每位數據間隔不會大於5ms,因此在每次中斷服務中,首先要判斷T0是否溢出過,若曾經溢出,則認為該次中斷是一次新碼值接收的開始,需將位計數器清零,否則只需移入一位數據即可,然後重新啟動定時器,退出中斷服務程序。在新按鍵碼值序列接收完成後,設置blnDataValid標誌,以通知主程序。

主程序的工作原理
主程序主要有四個任務:①將鍵盤接收緩衝區的位置掃描碼通過查表等算法換成統一編碼的一個字節Windows虛擬鍵代碼或兩個字節的OEM掃描碼與ASCII碼;②根據系統中CAPS LOCK鍵、NUM LOCK鍵及SCROLL LOCK鍵的狀態信息控制鍵盤上三個指示燈的亮滅;③系統中設立的FIFO棧的維護;④與上位單片機碼值傳送的握手交互過程。主程序的流程圖如圖4所示。


相關焦點

  • 基於51單片機的異步串行接口鍵盤設計
    特別是在處理信息量大,人機互動頻繁的系統中,對人工幹預手段的要求更高。 筆者結合工作實際,圍繞單片機89C51設計了通用異步串行接口鍵盤作為顯示分系統的擴展鍵盤。目的在於為顯示分系統增加一種幹預手段。實踐表明:此鍵盤改善了系統的人機界面,提高了系統的處理效率。
  • 基於51單片機的人體紅外模塊的自動門設計
    再由單片機通過ULN2003驅動步進電機動作,電機的正反轉分別表示自動門的開啟和閉合,通過15個LED燈的逐次亮滅來模擬開關門狀態。一. 方案的選擇與論證根據設計要求目的,本系統可以劃分為若干個基本模塊。
  • 跟我學51單片機(四):獨立-矩陣鍵盤應用與設計
    上講介紹並應用了單片機的串口通信,並給出了實例。從這一講開始將介紹單片機的外圍電路。這講向大家介紹單片機外接鍵盤電路,通過該講,讀者可以掌握單片機外接鍵盤的工作原理從而實現電路與程序設計。
  • 51單片機+PID算法水溫控制系統設計
    本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。
  • 51單片機之4位數加法計算器的設計報告
    二、系統設計2.1 設計任務    1、通過4*4矩陣鍵盤輸入數字及運算符;    2、可以進行4位十進位數以內的加法預算。如果計算結果超出四位數,則全部顯示「E」;    3、可以進行加減乘除所有運算;    4、添加其他功能。
  • 基於51單片機的兩路溫度控制器的設計方案
    本方案設計的實現基於C51單片機的兩路溫度控制器,做到成本最低化,精確度高,兩路溫度的顯示和控制,能在溫度超出設定的最高溫度時啟動電風扇進行降溫,在溫度低於設定的最低溫度時啟動蜂鳴器報警,能夠用戶設定最高最低溫。  2.系統結構  溫度控制器系統包括以下幾個主要部分:溫度傳感器,報警電路,LED顯示電路,鍵盤控制,89C51控制部分。
  • 基於51單片機的電子時鐘課程設計
    2.題目與要求本次課程設計的題目為:電子時鐘的設計,其具體要求為:(1)能實現時、分、秒的顯示;(2)能實現12、24小時制的切換;(3)能設定時間;(4)能設定鬧鐘;整個系統要設計鍵盤和顯示器,利用單片機內部時鐘完成定時器的定時設計。
  • 《電子發燒友網51單片機設計方案TOP10》
    其優異的性能及高度靈活性,是床邊的呼叫系統的發展趨勢,是醫院提高身價的籌碼。該系統的核心是MCS-51多機半雙工通信,要求各子機僅能和主機通信,子機之間的通信要通過主機進行,不允許子機之間通信,主要由主機系統、分機系統、通信接口3部分組成。其系統結構框圖如圖1所示。
  • 51單片機教程:矩陣式鍵盤接口技術及程序設計
    在單片機系統中鍵盤中按鈕數量較多時,為了減少I/O口的佔用,常常將按鈕排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鈕加以連接。
  • 基於51單片機的嵌入式SNMP代理器設計與實現
    2 嵌入式代理器的硬體實現 我們設計的基於SNMP的控制系統原理見圖2。 控制現場的信號採集由A/D轉換模塊輸入單片機。單片機對信號進行處理,並且執行SNMP代理器的任務,硬體部分主要包括A/D、串口、乙太網、小邏輯、單片機、監控信號採集、電源及監控等模塊,本文著重介紹與嵌入式SNMP代理器密切相關的部分。
  • 基於AT89C51單片機的十進位計算器系統設計
    AT89C51 單片機進行的十進位計算器系統設計,可以完成計算器的鍵盤輸入,進行加、減、乘、除4 位無符號數字的簡單四則運算,並在LED 上相應的顯示結果。硬體方面從功能考慮,首先選擇內部存儲資源豐富的AT89C51 單片機,輸入採用4×4 矩陣鍵盤。顯示採用4 位7 段共陽極LED 動態顯示。軟體方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計。  引言  本系統採用AT89C51 單片機作為控制器,用來實現實現四位數的「+」,「-」,「*」,「/」運算,運算結果通過數碼管顯示,並具有有清零功能。
  • 單片機系統鍵盤的設計小結
    這種鍵盤易於使用,但硬體比較複雜,對於主機任務繁重之情況,採用8279可編程鍵盤管理接口晶片構成編碼式鍵盤系統是很實用的方案。 二、鍵盤系統設計  首先,確定鍵盤編碼方案:採用編碼鍵盤或非編碼鍵盤。隨後,確定鍵盤工作方式:採用中斷或查詢方式輸入鍵操作信息。然後,設計硬體電路。
  • 單片機的智能溫度預警系統教學案例
    2.系統設計的總體方案  本設計方案總體框圖如圖1所示,它是由單片機、四路數據採集模塊、集成功放模塊、人機互動界面和系統電源等組成。期間採用ATMEL公司的高密度、非易失性存儲技術製造,兼容標準MCS-51指令系統及80C51引腳結構。晶片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統提供高性價比的解決方案。  3.2 溫度採集電路  由單片機獲取非電信號的溫度信息,必須通過溫度傳感器。
  • 如何使用通用單片機製作MIDI鍵盤
    隨著計算機技術的發展,音效卡已經成為普通計算機的標準設備,通過音效卡的MIDI接口,可以連接各種各樣的MIDI設備。連上專供輸入的MIDI鍵盤,再配上相應的軟體,計算機就可以完成電子琴的功能,甚至可以進行電子音樂的製作。由於 MIDI自身的特點,它形成的音樂易於進行後期製作,越來越為廣大音樂工作者所喜愛,而MIDI鍵盤作為輸入最有效的工具,也越來越普及。
  • 單片機4×4矩陣鍵盤設計方案
    1、設計原理本文引用地址:http://www.eepw.com.cn/article/172439.htm  (1)如圖14.2所示,用單片機的並行口P3連接4×4矩陣鍵盤,並以單片機的P3.0-P3.3各管腳作輸入線,以單片機的P3.4-
  • 基於51系列單片機的智能照明控制系統設計方案
    目前我國高校的教學樓和學生宿舍的照明系統大多採用定時方式控制,存在電能的大量浪費和照明模式不靈活等問題。本文基於51單片機,通過設置時間、感應光照與聲音,針對教學樓和宿舍的不同需求設定照明狀態,實現對照明系統智能動態的控制。測試結果表明該系統可以在不同條件下改變照明狀態,適應不同場所的需求,達到智能控制的目的。
  • 基於51單片機設計的簡易智慧機器人
    引言 隨著微電子技術的不斷發展,微處理器晶片的集成程度越來越高,單片機已可以在一塊晶片上同時集成cpu、存儲器、定時器/計數器、並行和串行接口、看門狗、前置放大器、a/d轉換器、d/a轉換器等多種電路,這就很容易將計算機技術與測量控制技術結合,組成智能化測量控制系統
  • 串行接口鍵盤控制器SK5278在單片機系統中的應用
    SK5278是一種可管理16個按鍵的鍵盤控制器,該器件內部具有去抖動處理電路,可直接輸出按鍵的鍵值編碼,並採用串行方式與單片機或微處理器進行接口,使用該器件可簡化單片機系統軟硬體的鍵盤接口。
  • 基於AT89S51單片機的PID溫度控制系統設計
    本文對系統進行硬體和軟體的設計,在建立溫度控制系統數學模型的基礎之上,通過對PID控制的分析設計了系統控制器,完成了系統的軟、硬體調試工作。算法簡單、可靠性高、魯棒性好,而且PID控制器參數直接影響控制效果。
  • MCS_51單片機與8255A的接口設計
    所謂可編程的接口晶片是指其功能可由微處理機的指令來加以改變的接口晶片,利用編程的方法,可以使一個接口晶片執行不同的接口功能。目前,各生產廠家已提供了很多系列的可編程接口,MCS-51單片機常用的兩種接口晶片是8255以及8155。本文引用地址:http://www.eepw.com.cn/article/170507.htm8255和MCS-51相連,可以為外設提供三個8位的I/O埠:A口、B口和C口,三個埠的功能完全由編程來決定。