www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]概述在單片機系統(tǒng)中,當輸入按鍵較多時,在硬件設(shè)計和軟件編程之間總存在著矛盾。對于不同的單片機系統(tǒng)需要進行專用的鍵盤硬件設(shè)計和編程調(diào)試,通用性差,使項目開發(fā)復雜化。標準PC鍵盤在工藝與技術(shù)上都已相當成熟,

概述

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

接口模塊的特點

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

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

 


圖1 該模塊與上位單片機系統(tǒng)的連接關(guān)系及信號定義

 


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

 


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

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

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

標準PC鍵盤接口模塊的工作原理

基本工作原理概述

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

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

中斷解碼的工作原理

由于鍵盤的按鍵輸入是隨機的,為了能實時地響應(yīng),在程序中使用定時器T0中斷和中斷協(xié)同工作,將位置掃描碼序列恢復至鍵盤接收緩沖區(qū)中。中斷服務(wù)程序用來將碼值的一位移入緩沖區(qū)中,T0溢出的中斷服務(wù)程序主要用來判斷一次按鍵所發(fā)出的碼是否已全部接收。系統(tǒng)設(shè)置T0的定時間隔為5ms,并在系統(tǒng)啟動后就開始定時。由于在正常接收每個按鍵的碼值序列過程中,鍵盤發(fā)送的每位數(shù)據(jù)間隔不會大于5ms,因此在每次中斷服務(wù)中,首先要判斷T0是否溢出過,若曾經(jīng)溢出,則認為該次中斷是一次新碼值接收的開始,需將位計數(shù)器清零,否則只需移入一位數(shù)據(jù)即可,然后重新啟動定時器,退出中斷服務(wù)程序。在新按鍵碼值序列接收完成后,設(shè)置blnDataValid標志,以通知主程序。

主程序的工作原理

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

在主程序中檢測到blnDataValid標志后,即說明在鍵盤接收緩沖區(qū)中已接收到一個新的位置掃描碼序列,程序根據(jù)這個序列的不同特點做不同的處理,最后再根據(jù)硬件跳線的設(shè)置得到相應(yīng)按鍵的Windows虛擬鍵代碼或ASCII碼與OEM掃描碼,圖4中的跳線接至“W”位時,編碼為Windows 虛擬鍵代碼。虛擬鍵代碼是Windows系統(tǒng)中引入的一組按鍵編碼常量,每一個按鍵都有惟一的碼值與之對應(yīng)。ASCII碼與OEM掃描碼則是在DOS系統(tǒng)定義的,但在Windows系統(tǒng)中沿用的按鍵碼值定義,每一個按鍵都有兩個碼值與之對應(yīng),對于功能鍵,例如F1、HOME、UP等,只存在OEM掃描碼,其ASCII碼為0,參見表1。

FIFO棧是程序中設(shè)置的發(fā)送緩沖區(qū),它是按“先進先出”原則建立的32字節(jié)循環(huán)隊列,有一個隊列頭指針和一個隊列尾指針。進隊列時,編碼數(shù)據(jù)進入由隊列尾指針所指單元,同時隊列尾指針增量,指向下一個單元,當數(shù)據(jù)不斷進入隊列,使尾指針指向隊列末端時,尾指針循環(huán)重新繞回隊列始端;出隊列時,編碼數(shù)據(jù)從隊列頭指針所指的單元取出,同時隊列頭指針增量,指向下一個單元,在頭指針指向隊列末端時,也要重新繞回隊列始端,但頭指針始終不能“超過”尾指針。如果按鍵速度快于上位單片機接收碼值的速度,有可能尾指針繞回后與頭指針再次相等,這時表明隊列已滿,不能再存入數(shù)據(jù),如果此時再有鍵按下,那么棧溢出指示燈將點亮。

在系統(tǒng)中設(shè)立了三個標志分別對應(yīng)于CAPS LOCK鍵、NUM LOCK鍵及SCROLL LOCK鍵的狀態(tài),每次有這三個鍵按下時,程序都要翻轉(zhuǎn)相應(yīng)標志,然后向鍵盤發(fā)送EDH命令,命令鍵盤對其上的三個LED指示燈做相應(yīng)激勵。

在向上位單片機發(fā)送FIFO棧首的碼值之前要先檢測ACK信號狀態(tài)以確定上位單片機是否已取走上次碼值。若ACK信號有效,則將碼值鎖存在P1口上,然后由P3.7產(chǎn)生模擬的時鐘脈沖信號,一方面將8位并行碼值置入串-并轉(zhuǎn)換芯片(74LS165)中,另一方面將觸發(fā)器(74LS74)置為1,使端變?yōu)? 0,為上位單片機提供碼值準備好(PS_READY#)的狀態(tài)信號,并點亮指示燈。在上位單片機中,可查詢此狀態(tài)信號也可利用此狀態(tài)信號申請中斷。上位單片機若采用并行接口方法,則發(fā)出讀緩沖器信號(P_RD#)和片選信號(P_CS#),便可通過三態(tài)緩沖器(74LS244)取得鍵值;若采用串行接口方法,則需發(fā)出串行時鐘(S_CLK),從74LS165的串行數(shù)據(jù)端(S_DAT)讀回8位碼值。在上位單片機讀取完當前的鍵值后,ACK信號將由握手邏輯自動置為有效,系統(tǒng)可通過檢測ACK信號的狀態(tài)以發(fā)送下一個碼值。

 


圖4 主程序流程圖

結(jié)語

實踐證明應(yīng)用該模塊不但可大大地簡化鍵盤輸入電路及程序設(shè)計,而且在使用高級語言書寫程序時更加方便。該模塊可識別標準PC鍵盤上的所有按鍵,并能自動考慮SHIFT、NUMLOCK及CAPLOCK鍵對編碼的影響。對于DOS系統(tǒng)中CRTL+按鍵、ALT+按鍵等組合鍵,該模塊并未考慮,但相對上位的單片機系統(tǒng)而言,目前所提供的按鍵數(shù)量已足夠用了。

參考文獻

1 榮振,梁華,王春生.單片機擴展標準微機鍵盤的技術(shù).微型機與應(yīng)用,2000(7)

2 于印泉,佴曉東,王兆娟.單片機與PC鍵盤接口.內(nèi)燃機車,2000(5)

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

大家好,歡迎回來。在這個項目中,我們將學習如何使用鍵盤和LCD顯示制作一個安全的基于Arduino的門鎖。你可以用它來保護你的辦公室、房間或家里的保險箱。要鎖門和開鎖,你需要在安全系統(tǒng)中輸入密碼。這確保了只有經(jīng)過授權(quán)的人...

關(guān)鍵字: 鍵盤 LCD Arduino 電子門鎖

電磁兼容(EMC)是對電子產(chǎn)品在電磁場方面干擾大小(EMI)和抗干擾能力(EMS)的綜合評定,是評價產(chǎn)品質(zhì)量的重要指標。。本文將詳細介紹EMC測試的流程及范圍,幫助讀者更好地理解和應(yīng)用這一技術(shù)。

關(guān)鍵字: EMC 單片機系統(tǒng)

隨著單片機系統(tǒng)的廣泛應(yīng)用和計算機網(wǎng)絡(luò)技術(shù)的普及,單片機的通信功能愈來愈顯得重要。單片機通信是指單片機與計算機或單片機與單片機之間的信息交換。

關(guān)鍵字: 單片機系統(tǒng) UART

隨著電腦科技的飛速發(fā)展,作為電腦輸入設(shè)備的重要組成部分,鍵盤的種類和功能也在不斷演變。其中,機械鍵盤以其出色的手感、長久的使用壽命和高度個性化的特點,深受眾多電腦用戶的喜愛。而機械鍵盤的核心——鍵盤軸,更是決定鍵盤使用體...

關(guān)鍵字: 電腦 鍵盤 機械

一切電子設(shè)備都要用電,電源也就無處不在。電源在我們印象中就是輸入端進電,輸出端對用電設(shè)備供電,它的電路是由一堆的電阻、電容、電感還有變壓器、風扇之類構(gòu)成。

關(guān)鍵字: 處理器 電源管理 模塊設(shè)計

鍵盤包括編碼鍵盤和非編碼鍵盤兩種。編碼鍵盤帶有能夠自動識別按鍵的硬件電路,當按鍵被按下閉合時,硬件可以提供按鍵的編號(也被稱“鍵值”),這種鍵盤使用方便,但是硬件復雜,價格相對較高。非編碼鍵盤不附帶按鍵識別電路,需要利用...

關(guān)鍵字: 鍵盤 人機交互 編碼鍵盤 非編碼鍵盤

自俄烏沖突爆發(fā)之后,以蘋果、戴爾、三星等為代表的科技企業(yè),紛紛暫停了自己在俄羅斯當?shù)氐南嚓P(guān)業(yè)務(wù)。在被這些企業(yè)斷供之后,俄羅斯當?shù)赜龅搅恕耙枣I盤為代表的PC外設(shè)出現(xiàn)缺貨”的困擾。

關(guān)鍵字: PC 鍵盤

摘要:結(jié)合無線充電產(chǎn)品設(shè)計經(jīng)驗,對無線充電設(shè)計細節(jié)進行探究。介紹了無線充電劃分及電磁感應(yīng)無線充電結(jié)構(gòu)、測試指標,在此基礎(chǔ)上對電磁感應(yīng)無線充電設(shè)計進行了分析,并總結(jié)了電磁感應(yīng)無線充電產(chǎn)品常見問題及改善措施,闡述了電磁感應(yīng)無...

關(guān)鍵字: 模塊設(shè)計 線圈 散熱

英國里士滿2022年7月11日 /美通社/ -- 2022年7月11日,高性能電子產(chǎn)品壓力傳感觸控用戶界面的領(lǐng)先創(chuàng)新者Peratech公司宣布,其全系列壓力傳感技術(shù)將應(yīng)用于最新的聯(lián)想Legion 7i和7(16...

關(guān)鍵字: 聯(lián)想 鍵盤 TE IO
關(guān)閉