導航:首頁 > 電器電路 > 滑鼠介面電路

滑鼠介面電路

發布時間:2022-02-16 15:06:07

㈠ USB暖手滑鼠的電路圖和作法

你指的應該是滑鼠墊

用的是散熱材料

通過U口供電發熱

U口5V電 所以是非常安全地

通常能保持溫度在45度左右

至於電路圖 這個是專利 你可以買一個研究一下

㈡ 有些滑鼠晶元是同時支持USB和PS/2介面的,兩種介面的外圍電路一樣么

你需要研究晶元的手冊啦。應該有外圍電路的

㈢ usb滑鼠怎麼接線

老大,,我教你 一個方法,,保證成功...滑鼠裡面不知你會不會看點簡單的電路,,,那四個接點你看一下哪個是地線,,,確定好地線後,,安裝上黑色線,,黑色過來就是綠色線,,綠色過來就是白色線,,白色過來就是紅色線,,保證OK..不行聯系我!!

㈣ 滑鼠線接法(定義)

主板USB介面供電方式匯總2006年09月20日 星期三 09:03主板板載的USB介面使用方便,可提供5V/500mA電源(其實在USB的設計規范中已指出了USB系統中允許的最小電壓。對於主板上板載的USB介面,這個值為4.75V)。主板USB介面提供的+5V電源一般有兩個來源:電腦電源的+5V或+5VStandBy,當選用+5V(紅色線,電流最大可達25A)時,供電電流可達數安倍;如果使用+5VSB(紫色線),因一般是用集成電路7805穩壓,理論最大輸出電流為1.5A,實際生產中廠家為節約成本,都不加散熱片或散熱片很小,供電電流就限制在500mA左右,因為該路電源的主要設計功能是為鍵盤開機,數據機遠程喚醒,網卡啟動,定時開機供電用,500mA足夠用了。

不同的主板因設計不同,其板載USB口供電的方式也不同,一般有如下幾種:

一、USB的供電部分與鍵盤/滑鼠相同

1、由跳線選擇使用+5V或+5VStandBy,當使用+5VStandBy時USB介面的供電能力十分有限(但是好處是即使關機時USB介面也可供電,可用來給一些手持設備充電)。這個跳線通常就是「允許/禁止鍵盤開機」。

2、由+5V電源通過一隻三極體為介面供電,供電方式可控,電流有限制(通常是三極體自身功率限制了輸出能力)。輸出端一般有自恢復保險絲,該保險絲的熔斷電流應小於三極體的極限電流。

3、直接與+5V電源相連,由串聯的自恢復保險絲提供過流保護,能提供的電流通常較大,例如:在技嘉GA-6OXT主板上,自恢復保險絲正常工作電流為2.5A,過載保護電流為4.7A。

4、通過跳線選擇是「通過三極體與+5V連接」還是「直接與+5V連接」,選擇通過三極體與+5V連接時,情況與第2點相同(受限於三極體的輸出功率,串聯的自恢復保險絲是與三極體匹配的);選擇直接連接時,還要看是不是與前者使用同一個自恢復保險絲,如果是的話,供電電流也不會大。如果是獨立的,那情況與第3點類似。

5、鍵盤,滑鼠與USB供電不在一起,鍵盤和滑鼠通過保險電阻直接與電源+5V相連,而前後USB介面供電由三極體供給。如:捷波PR22-S。

二、USB的供電部分是獨立的

1、由+5V電源通過一隻三極體供電,供電方式可控,電流有限制(通常是三極體自身功率限制了輸出能力)。輸出端一般有自恢復保險絲,該保險絲的熔斷電流應小於三極體的極限電流。

2、直接與+5V電源相連,由串聯的自恢復保險絲提供過流保護,能提供的電流通常較大。

在USB介面獨立供電的設計下,「允許/禁止鍵盤開機」的跳線跟USB口的供電能力就沒什麼關系了。正常情況下不應該出現的設計是:USB獨立供電,但是連接的是+5VStandBy;USB供電電路中沒有串接自恢復保險絲(一旦出現短路,影響面極大)。

電腦的前置USB介面也是從主板上接出來的,一般來講前置USB口的供電方式有兩種選擇:一是和後置口的供電方式一樣,二是直接與+5V相連(要串聯自恢復保險絲)。不過前置介面真實的供電能力、包括實際的傳輸速度,還要受制於連接線和中間各環節插接頭的質量。

從外在現象判斷USB供電類型的一些方法:板載USB介面如果是可控供電,在剛開機時或機器休眠後,USB光電滑鼠的燈是熄滅狀態。只有當開始載入系統或進入正常工作模式時,光電滑鼠的燈才會亮;而USB介面採用+5V直供的主板,只要一開機上電,USB光電滑鼠的燈就會亮,在休眠狀態下也不會熄滅;USB介面採用+5VSB直供電的主板,無法是否關機開機或休眠,USB介面的光電滑鼠和PS/2介面的鍵盤滑鼠的燈都會始終常亮。

三、USB擴展卡的介面供電方式

1、通過可控制、帶過流保護的電源模塊供電。我手裡有一塊USB2.0擴展卡,提供四個USB口,使用兩個AIC1526晶元供電,查了一下資料,該晶元專用於USB通道的供電,每片可提供兩個通道、每通道500mA的電流。

2、直接與+5V電源相連,由串聯的自恢復保險絲提供過流保護。市面上不少廉價的擴展卡都是這樣做的。

四、使用另一個USB介面作為輔助供電口

按一般的聯想,每個介面500mA,我接上了兩個介面,就應該有1000mA左右的供電能力,隨便接哪兩個USB口都是相同的表現——但實際並不如此。通常USB介面的供電為一個USB Host Hub支持兩個USB介面,使用同一路電源供應。主板後置(或前置)的板載USB介面如果只有兩個,供電應該是取自同一路電源,無論使用一個或兩個USB設備,其總的供電電流被限制在一定范圍之內,特別是在PC的電源性能較差或使用功率偏小的電源時表現更為明顯。如果我們使用的是耗電大的外置USB設備(大容量、高轉速的2.5寸移動硬碟),即使兩個USB介面都接上了,未必能達到500mA+500mA的效果。

不過,對於後置(或前置)的板載USB介面為四個或六個的情況,就可以避免這個問題,但是要注意不要接在同一個USB Host Hub出來的兩個口上。當已經接在了某兩個USB口上,卻不能正常工作,可以嘗試調換一下輔助供電介面的位置,或許就可以解決。

在使用USB2.0擴展卡時,通常也可以參照上述原則。但有時候也有不同情況:上面說的使用AIC1526供電的卡,第一片1526供應給Port1、Port2,第二片1526供應給Port3、Port4,在將某外置硬碟盒接到Port2、Port3時,會出現供電不足,但是如果接到Port1、Port3就一切正常,按理說一片AIC1526上的兩個通道都能提供500mA的電流,何況接到Port2、Port3時是兩個1526晶元一起供電,不存在同一片晶元總供應電流大了導致發熱的問題——特別是換接為Port1、Port3時仍是兩個晶元供電,只不過使用晶元一的另一個通道。只能解釋為該供電晶元的兩個通道可能在設計上就有供電不對稱,不過未對該卡電路深入分析。

下面有幾個實際例子可參考分析:

1.一隻愛國者USB介面的10G移動硬碟,客戶買回家後,在後置的USB介面上能夠使用,而在前置的USB介面上根本找不到硬碟。最後客戶認為是主板有問題,所以找到公司,要求換主板,最後向客戶解釋了其中的原委:因USB介面引線的長短不同,其供電電流會受到影響。後置USB介面直接由主板焊接,而前置USB介面經過多次連接,其接觸電阻較大,損耗也大,所以引起前置USB介面供電不足,造成如此現象,這並不是主板的問題。要不,移動硬碟都帶有一個鍵盤/滑鼠介面,這是當USB介面供電不足時,可從鍵盤/滑鼠介面提供部分輔助電流。所以後面的USB介面我們一般用於不經常更換的USB設備,一般也是耗電量大的設備,如USB介面的掃描儀和移動硬碟等,而前置介面用於經常拔插的設備,如U盤,MP3播放機等。

2.移動硬碟在其他機子上使用正常,而在客戶自己的機子後置USB介面上卻不能使用,即使關機了,硬碟也會嘩嘩的響,硬碟指示燈常亮。 (註:這款機子沒有前置USB介面)。在WIN ME系統下能夠發現「Unknown USB Device」,「我的電腦」屬性里USB設備前面有個黃色嘆號,不能夠安裝使用。實際上這也是USB介面供電不足的問題。這款主板的USB介面後面有一個JP3跳線,是用來允許鍵盤開關機的,其功能的實現就是通過改變鍵盤,滑鼠和USB介面的供電方式,是選擇+5V還是+5VSB的副電源。最後改變一下跳線,由副電源的5VSB改為主電源5V供電後,就沒有問題了。不過如果想用USB介面給你的手機或掌上電腦充電時最好還是使用副電源供電,因為無論你是否開機都可以進行充電。

3.一台USB介面掃描儀(紫光3880),在銷售商那裡試機時正常,但客戶拿回家後,在前置USB介面上工作正常,而在後置USB介面上卻無法工作。當客戶拿來後,非說主板有問題,公司的小夥子們也忙了老長時間,不知其所以然。其實這款主板的前後置USB介面供電方法不一樣,前置的USB介面直接使用+5V主電源供電,而後置的USB介面與鍵盤,滑鼠在一起供電,並且有一跳線可選擇供電來源。最後把跳線帽一換位置,問題就解決了。

4、某兼容機前置USB介面能夠使用移動硬碟,後置USB介面不能使用。客戶反映新買了一個20G的移動硬碟,在自己的電腦上使用時出現了問題,在前置的USB介面上使用時硬碟的讀寫正常,沒有問題。但插在後置的 USB介面上使用時,只能聽見硬碟「嘩嘩」的聲音,有盤符出現,但無法讀寫硬碟數據。此問題就是因為前置的USB介面的供電是直接取自+5V電源,而後置的USB介面和鍵盤,滑鼠介面使用的是同一組電源,在鍵盤介面旁邊有一跳線帽,可以用來改變鍵盤和USB介面的供電來源。當移動硬碟出現問題時,主板跳線所置的位置使用的是+5VSB供電,所以就出現了上述的故障現象。只要把跳線變一下位置就可以了,同時也會解決客戶打電話反映的關機後光電滑鼠或鍵盤的指示燈常亮的問題。

5、前後置USB介面不能使用移動硬碟。這種情況一般出現在前後置硬碟都使用副電源或者是主板的USB介面被嚴格限制的主板上,對於此問題,主板上如果沒有跳線帽時,只能通過輔助電流介面從PS/2或者USB介面取電,或者使用單獨的外接電源供電。

6、藍天使WX-218移動硬碟(USB2.0)拷貝大文件時容易丟失文件尾部數據。客戶反映該硬碟在拷貝大文件時總丟失,拷貝不全,拷貝小文件沒有問題。這種故障也屬於因為USB供電不足,在大文件拷貝時所需電流大,造成 USB介面的+5V供電電壓不穩,從而導致數據傳輸過程中信號電平離散性加大,錯誤率上升,也就表現為文件拷貝過程中丟失或死機,長時間拷貝不能結束。我把該硬碟接到我的主機(主板為微星MS6309)啟動計算機,硬碟發出「咔咔」的聲音,在系統中不能發現新硬體;在關機接入輔助電流介面 PS/2,再開機,仍然和剛才一樣的表現,還是不能發現硬碟。當把該移動硬碟接入筆記本的USB介面時,拷貝三四百兆的大文件沒有發現問題,播放電影也沒有問題。這種故障其實根本就不是故障,其原因就是因為台式機主板的USB介面的電流輸出限制才造成了移動硬碟的使用不正常。

㈤ 鍵盤滑鼠介面電路跑線路

PS/2(鍵盤滑鼠復)介面:

1.紫色為制鍵盤Keyboard,綠色為滑鼠MOUSE

2.陣腳功能:1:數據腳data

5:時鍾腳clk

4:5v供電腳power

3:接地腳gnd

6、2:空腳nc

3.PS/2電路簡圖:(見圖)

4.PS/2介面故障檢修:

(1)查4#5V供電有無電壓,沒有則追線;

(2)1#和5#對地阻值在400—700歐,誤差在10歐內;

阻值偏小:拆除與1#和5#相連的排容(多數為此問題);

換I/O或SB(南橋)。

阻值偏大:查偏大腳相連電阻或電感有無損壞;

追介面到I/O或SB的線路有無open;

換I/O或SB。

(3)確定PS/2介面有無損壞;(可放在第一時間)

(4)換I/O或SB;

(5)刷Bios。

基本知識點就這些,具體報告還要你自己整理。(手工辛苦啊)

㈥ 鍵盤和滑鼠的工作原理

太復雜了額~~~~~
原理:滑鼠器按其工作原理可分為機械式和光電式兩種,最常見的是機械式滑鼠器。現在的機械滑鼠器實際上是光機滑鼠器,即將滾輪的機械轉動轉換成光信號,再變為電信號。下面以這種滑鼠器為例說明其工作原理。
在機械式滑鼠器底部有一個露出一部分的塑膠小球,當滑鼠器在操作桌面上移動時,小球隨之轉動,在滑鼠器內部裝有三個滾軸與小球接觸,其中有兩個分別是X軸方向和Y軸方向滾軸,用來分別測量X軸方向和Y軸方向的移動量,另一個是空軸,僅起支撐作用。拖動滑鼠器時,由於小球帶動三個滾軸轉動,X軸方向和Y軸方向滾軸又各帶動一個轉軸(稱為解碼輪)轉動。解碼輪的兩側分別裝有紅外發光二極體和光敏感測器,組成光電耦合器。光敏感測器內部沿垂直方向排列有兩個光敏晶體管A和B。由於解碼輪有間隙,故當解碼輪轉動時,紅外發光二極體發出的紅外線時而照在光敏感測器上,時而被阻斷,從而使光敏感測器輸出脈沖信號。光敏晶體管A和B被安放的位置使得其光照和阻斷的時間有差異,從而產生的脈沖A和脈沖B有一定的相位差,利用這種方法,就能測出滑鼠器的拖動方向。也就是說,脈沖A比脈沖B的相位提前時,表示一個移動方向;反之,脈沖B比脈沖A的相位提前時,表示另一個移動方向。同時,脈沖信號周期也能反映出移動速度。檢測到的X軸方向和Y軸方向移動的合成即代表了滑鼠器的移動方向。將上述電信號重新編碼後形成串列信號,再通過串列口COM1或COM2輸入計算機,計算機即可判斷滑鼠器的移動方向。由以上的敘述可以得出結論:如果給X軸方向和Y軸方向光敏感測器的輸出端送入兩組脈沖信號,控制每一組脈沖的相位差即能達到與拖動滑鼠器相同的作用。
無線滑鼠實現原理

DRF(Digital radio frequency,數字無線電頻率)技術能夠對短距離通訊提供充足的帶寬,非常適合滑鼠和鍵盤這樣的外圍設備使用,其原理非常簡單,滑鼠部分工作與傳統滑鼠相同,再用無線發射器把滑鼠在X或Y軸上的移動,按鍵按下或抬起的信息轉換成無線信號並發送出去,無線接收器收到信號後經過解碼傳遞給主機,驅動程序告訴操作系統滑鼠的動作,該把滑鼠指針移向哪個方向或是執行何種指令。

採用高頻無線電(射頻)技術,只要在限定距離以內,就可以在任何位置使用,幾乎不受障礙物的影響。一般傳輸的距離達10~20米,已經足夠用戶使用。

無線電的最大特點是可以進行360度全方位無線射頻遙控,而且耗電量較低,具有觸發工作待機休眠。無線設備的接受端已經內置接收器,發射器裝在主機的設備口上,均不會影響產品外觀。

無線電接收器本身所具有的介面是USB或PS2的,可以從計算機的PS/2介面取電,不需要另加電池。它具有雙或多波段,如果有多個無線設備,均可以通過這一個接收器進行管理,鍵盤工作頻率一般佔用通道1(如:27.185M和27.035M),滑鼠工作頻率佔用通道2(如:27.085M和27.135M),工作時滑鼠和鍵盤或多個滑鼠之間干擾性較低,而且不會影響無線電話等數字無線設備。

無線滑鼠具有節能模式,採用低功耗晶元之餘,還有多重省電措施,在運行模式下LED閃爍速度是1500次/s,而在最省電的模式下閃爍速度只有2次/s,移動滑鼠或是按下滑鼠按鍵,滑鼠再迅速恢復到正常模式。此外,有的滑鼠支持手動喚醒節能技術,在滑鼠的兩側裝配有導電橡膠,通過滑鼠上的觸摸開關來隨意控制電源,當用戶的手離開滑鼠2秒鍾後,滑鼠就馬上進入睡眠狀態,用戶需要使用滑鼠時,只要手一觸到導電橡膠,滑鼠立即被激活,效率比多重節能模式更高。以上種種方式,都延長了電池的使用壽命,接近一般無線滾球滑鼠的水平,約為三至六個月。當然,其耗電量再小也小不過傳統滑鼠。
鍵盤的工作原理

鍵盤是計算機中使用最普遍的輸入設備,它一般由按鍵、導電塑膠、編碼器以及介面電路等組成。
在鍵盤上通常有上百個按鍵,每個按鍵負責一個功能,當用戶按下其中一個時,鍵盤中的編碼器能夠迅速將此按鍵所對應的編碼通過介面電路輸送到計算機的鍵盤緩沖器中,由CPU進行識別處理。通俗地說也就是當用戶按下某個按鍵時,它會通過導電塑膠將線路板上的這個按鍵排線接通產生信號,產生了的信號會迅速通過鍵盤介面傳送到CPU中

很復雜吧......

㈦ 滑鼠中的光敏感測器有十二個介面,該如何接入其他電路中

暈死。。。直接買一個。。。

㈧ 滑鼠介面的電學引腳

1: 數據
2: 空
3:地
4:+5V
5:時鍾
6: 空

PS/2介面是目前最常見的滑鼠介面,最初是IBM公司的專利,俗稱「小口」。這是一種滑鼠和鍵盤的專用介面,是一種6針的圓型介面。但滑鼠只使用其中的4針傳輸數據和供電,其餘2個為空腳。PS/2介面的傳輸速率比COM介面稍快一些,而且是ATX主板的標准介面,是目前應用最為廣泛的滑鼠介面之一,但仍然不能使高檔滑鼠完全發揮其性能,而且不支持熱插拔。在BTX主板規范中,這也是即將被淘汰掉的介面。
需要注意的是,在連接PS/2介面滑鼠時不能錯誤地插入鍵盤PS/2介面(當然,也不能把PS/2鍵盤插入滑鼠PS/2介面)。一般情況下,符合PC99規范的主板,其滑鼠的介面為綠色、鍵盤的介面為紫色,另外也可以從PS/2介面的相對位置來判斷:靠近主板PCB的是鍵盤介面,其上方的是滑鼠介面

摘 要分析PS/2協議;介紹PS/2標准健盤的第二套掃描碼和命令集,並給出在單片機系統中支持PS/2健盤的硬體連接方式和利用Keil C51語言實現的驅動程序設計及部分代碼。該驅動程序可以方便地移植到其他單片機或嵌入式系統中。
關健詞 PS/2協議 PS/2健盤 單片機 驅動程序

在單片機系統中,經常使用的鍵盤都是專用鍵盤。這類鍵盤都是單獨設計製作的,成本高,連線多,且可靠性不高。這些問題在那些要求鍵盤按鍵較多的應用系統中顯得更加突出。與此相比,在 PC系統中廣泛使用的PS/2鍵盤具有價格低、通用可靠,且使用的連線少(僅使用2根信號線)的特點,並可滿足多數系統的要求。因此,在單片機系統中應用PS/2鍵盤是一種很好的選擇。

本文在分析PS/2協議和PS/2鍵盤工作原理與特點的基礎上,給出在AT89C51單片機上實現對PS/2鍵盤支持的硬體連接方法以及驅動程序的設計實現。

1 PS/2協議
現在PC機廣泛採用的PS/2介面為mini - DIN 6引腳的連接器。其引腳如圖1所示。

740)this.width=740" border=undefined>

PS/2設備有主從之分,主設備採用female插座,從設備採用male插座。現在廣泛使用的PS/2鍵盤滑鼠均工作在從設備方式下。PS/2介面的時鍾與數據線都是集電
極開路結構的,必須外接上拉電阻。一般上拉電阻設置在主設備中。主從設備之間數據通信採用雙向同步串列方式傳輸,時鍾信號由從設備產生。

(1)從設備到主設備的通信
當從設備向主設備發送數據時,首先會檢查時鍾線,以確認時鍾線是否是高電平。如果是高電平,從設備就可以開始傳輸數據;否則,從設備要等待獲得匯流排的控制權,才能開始傳輸數據。傳輸的每一幀由11位組成,發送時序及每一位的含義如圖2所示。

740)this.width=740" border=undefined>

每一幀數據中開始位總是為0,數據校驗採用奇校驗方式,停止位始終為1。從設備到主設備通信時,從設備總是在時鍾線為高時改變數據線狀態,主設備在時鍾下降沿讀人數據線狀態。
(2)主設備到從設備的通信
主設備與從設備進行通信時,主設備首先會把時鍾線和數據線設置為「請求發送」狀態。具體方式為:首先下拉時鍾線至少100 us來抑制通信,然後下拉數據線「請求發送」,最後釋放時鍾線。在此過程中,從設備在不超過 10us的間隔內就要檢查這個狀態。當設備檢測到這個狀態時,將開始產生時鍾信號。
此時數據傳輸的每一幀由12位構成,其時序和每一位含義如圖3所示。

740)this.width=740" border=undefined>

與從設備到主設備通信相比,其每幀數據多了一個ACK位。這是從設備應答接收到的位元組的應答位,由從
設備通過拉低數據線產生,應答位ACK總是為。。主設備到從設備通信過程中,主設備總是在時鍾為低電平時改變數據線的狀態,從設備在時鍾的上升沿讀入數據線狀態。

2 PS/2鍵盤的編碼與命令集

(1) PS/2扭盤的編碼
現在PC機使用的PS/2鍵盤都默認採用第二套掃描碼集。該掃描碼集可參考文獻[1]。掃描碼有兩種不同的
類型:通碼(make code)和斷碼(break code)。當一個鍵被按下或持續按住時,鍵盤會將該鍵的通碼發送給主機;而當一個鍵被釋放時,鍵盤會將該鍵的斷碼發送給主機。
根據鍵盤按鍵掃描碼的不同,在此可將按鍵分為如下幾類:
第一類按鍵,通碼為1位元組,斷碼為OxFO+通碼形式。如A鍵,其通碼為Ox1C,斷碼為OxFO Ox1C, 第二類按鍵,通碼為2位元組0 xEO + 0 xXX形式,斷碼為OxEO+OxFO+OxXX形式。如 right ctrl鍵,其通碼為OxEO 0x14,斷碼為OxEO OxFO 0x14, 第三類特殊按鍵有兩個,print screen鍵通碼為OxEO 0x12 OxEO Ox7C,斷碼為 OxEO OxFO Ox7C OxEO OxFO 0x12; pause鍵通碼為Ox El 0x14 0x77 OxEl OxFO 0x14 OxFO 0x77,斷碼為空。
組合按鍵的掃描碼發送按照按鍵發生的次序,如以下面順序按左SHIFT+A鍵:1按下左SHIFT鍵,2按下 A
鍵,3釋放A鍵,4釋放左SHIFT鍵,那麼計算機上接收到的一串數據為0x12 Ox1C OxFO Ox1C OxFO 0x12, 在驅動程序設計中,就是根據這樣的分類來對不同的按鍵進行不同處理的。

(2) PS/2鍵盤的命令集
主機可以通過向PS/2鍵盤發送命令來對鍵盤進行設置或者獲得鍵盤的狀態等操作。每發送一個位元組,主機都會從鍵盤獲得一個應答0 xFA「重發resend"和「回應echo',命令例外)。下面簡要介紹驅動程序在鍵盤初始化過程中所用的指令(詳細鍵盤命令集見參考文獻[1]): OxED主機在本命令後跟隨發送一個參數位元組,用於指示鍵盤上num lock, caps lock, scroll lock led的狀態; OxF3主機在這條命令後跟隨發送一個位元組參數來定義鍵盤機打的速率和延時; OxF4用於在當主機發送OxF5禁止鍵盤後,重新使能鍵盤。

3 PS/2鍵盤與單片機的連接電路
PS/2鍵盤與AT89C51單片機的連接方式如圖4所示。Pi. 0接 PS/2數據線,P3. 2 (INTO)接 PS/2時鍾線。
因為單片機的P1,P3口內部是帶上拉電阻的,所以PS/2的時鍾線和數據線可以直接與單片機的P1,P3相連接。

740)this.width=740" border=undefined>

4 驅動程序設計
驅動程序使用Keil C51語言,Keil uVision2編程環境。PS/2 104鍵盤驅動程序的主要任務,是實現單片機與鍵盤間PS/2通信,以及將接收到的按鍵掃描碼轉換為該按鍵的鍵值KeyVal,提供給系統上層軟體使用。
(1)單片機與健盤間PS/2通信的程序設計
在PS/2通信過程中,主設備(單片機)是在時鍾信號為低時發送和接收數據信號的。因為單片機到鍵盤發送的是指令,需要鍵盤回應,所以這部分程序採用查詢方式;而單片機接收鍵盤數據時,數據線上的信號在時鍾為低時已經穩定,所以這部分程序採用中斷方式,且不需要在程序中加人延時程序。

(2)健盤掃描碼轉換程序設計
由於鍵盤掃描碼無規律可循,因此由鍵盤掃描碼獲得相應按鍵的鍵值(字元鍵為其ASCII值,控制鍵如Fl,
CTRL等為自定義值),只能通過查表的方式。由於按鍵的三種類型及部分按鍵對應著兩個鍵值(如A鍵的鍵值
根據CAPS和 SHIFT鍵狀態有 0x41 (A)和 Ox61(a)兩種),因此綜合考慮查表轉換速度和資源消耗,設計中使用4個鍵盤表:鍵盤掃描碼轉換基本集和切換集kb-plain_map[ NR_ KEYS]與kb- shift- map[ NR_ KEYS];包含EO前綴的鍵盤掃描碼轉換基本集和切換集kbe0_plain_map[N又KEYS〕與kbe0_ shift-map [ NR_ KEYS]。PS/2 104鍵盤按鍵掃描碼最大值為0x83,所以設置NR_ KEYS為132。所有四個鍵盤表的定義均為如下形式:KB_ MAP
[ MAKE CODE] = KEYVAL,如果掃描碼對應的按鍵為空,如KB_MAP[0x00],則定義相應鍵值為NULL-KEY(0x00)。以下是鍵盤掃描碼基本集的部分代碼實例:
kb_plain_map[NIZKEYS] ={……
NULL- KEY; Ox2C; Ox6B; 0x69;Ox6F;Ox3O;0x39;NULL_
KEY;//掃描碼Ox4O-Ox47
刀對應按鍵 空,逗號,K,I,0,0,9,空
//對應鍵值0x00,』,』,'k','i','o','0','9',0x00
……};

如此設計鍵盤轉換表的另一個好處在於,以後如需擴展支持有ACPI, Windows多媒體按鍵鍵盤時,只需要將鍵表中相應處修改即可。如ACPI power按鍵通碼為OxEO 0x37,修改 kbeO _ plain- map [ 0x37 ] = KB _ACPI_PWR即可。
特殊按鍵PAUSE使用單獨程序處理,如果接收到OxEl就轉入這段程序;而print screen鍵則將其看作是兩
個通碼分別為OxEO 0x12和OxEO Ox7C的「虛鍵,,的組合鍵來處理。
在驅動程序中聲明如下全局變數:led-status其bit0一scroll lock led關0、開 1; bitl一num lock led關為。,開為1; bit2一caps lock led關為0,開為1; bit3-bit?總是。;agcs_status記錄左右shift ctrl gui alt狀態,bit0一左shift鍵,bitl一左。trl鍵,bit2一左gui鍵, bit3一左alt鍵,bit4-右shift鍵,bit5一右ctrl鍵,bit6一右gui鍵,bit7一右alt鍵,相應鍵按下則對應位為I,釋放為。。EO_FLAG接到
OxEO置1; El FLAG接收到OxEl置1; FO-FLAG接收到OxFO置1。按鍵鍵值通過Keyval提供給上層使用。
PS/2鍵盤掃描碼鍵值轉換程序ps2_codetrans()流程如圖5所示。
第一類按鍵的掃描碼鍵值轉換程序代碼:
if (FO-FLAG) t//接收掃描碼為斷碼
switch (mcu_revchar){//處理控制鍵
case 0x11:agcs_status& = OxF7;break;//左alt釋放
case 0x12:agcs_status & =0xFE; break; //左shift釋放
case 0x14:agcs_status&=OxFD; break;//左ctrl釋放
case 0x58:if (1e走status&0x04)
le走status&二0x03; //caps lock鍵
else led_statusl =0x04;
ps2_ledchange();
break;

case 0x59; agcs_status&二OxEF;break;//右shift釋放
case 0x77:if (led status&0x02 )
led_status& = 0x05; //num lock鍵
else led_status{ =0x02;
ps2_ledchange();
break;
case Ox7E; if(led_status&0x01)
led_status&=0x06; //scroll lock鍵
else led_statusI =0x01;
ps2_ledchange();
break;
default; break;
}
FO-FLAG = 0;lse { //接收掃描碼為通碼
if (1e走status衣0x04) caps flag=1;else caps-flag二0;
if (led-status & 0x02) num_flag=1;else num-flag二0;
if (scga_status&0x11) shift flag=1;else shift flag=0;
刀掃描碼鍵值轉換
if ((caps flag==shift-flag)}1(!num_flag)) KeyVal=b_plain_map[mciLrevchar];
else KeyVal二 kb-shift map[mcu_revcha];

switch (mcu-revchar){ //處理控制鍵或狀態鍵
case 0x11: agcs_statusl二0x08;//左alt按下
case 0x12: ages-status}二0x01;//左shift按下
case 0x14: ages-status}二0x02;//左ctrl按下
case 0x59:agcs_status}二0x10;//右shift按下
default: break;
}
}

740)this.width=740" border=undefined>

第二類按鍵的掃描碼鍵值轉換程序與上相似。要注意的是在退出該程序段時對EO- FLAG和FO_FLAG標志的清0。
PAUSE鍵的處理程序:如果接收到OxEl,置El-FLAG= 1,然後順次將後續接收到的7個位元組數據和PAUSE的通碼後7個位元組比較,一致則返回KeyVal =KB PAUSE。在比較完所有 7個位元組後清除El_ FLAG標志。
鍵盤初始化程序kb_init()流程:
① 上電後,接收鍵盤上電自檢通過信號0 xAA,或者自檢出錯信號OxFC。單片機接收為OxAA,進人下一步,否則,進行出錯處理。
② 關 LED指示,單片機發送 OxED,然後接收鍵盤回應0 xFA,接著發送0x00接收O xFA,

③ 設置機打延時和速率。單片機發送 0xF3,接收0 xFA,發送OxOO(250ms,2. Ocps),接收OxFA,
④ 檢查LED,發送 0 xED,接收0 xFA,發送0x07開所有 LED),接收 OxFA。發送 0 xED,接收 0 xFA,發送0x00(關 LED),接收OxFA,
⑤允許鍵盤發送OxF4,接收0 xFA,鍵盤LED改變ps2_ledchange()函數流程:發送0 xED ~接收0 xFA~發送led-status~接收。xFA.

結 語
該驅動程序經Keil uVision2編譯,在AT89C51單片機上運行通過,實現了對 PS/2 104鍵盤的支持,以及對字元按鍵大小寫切換,num lock切換,控制鍵及組合按鍵的支持。該程序對其他嵌入式或單片機系統中PS/2鍵盤的應用也有借鑒意義。

閱讀全文

與滑鼠介面電路相關的資料

熱點內容
涪陵空調維修電話附近 瀏覽:247
宜昌工貿家電在哪裡 瀏覽:527
閃修俠龍崗維修點 瀏覽:845
翻新機怎麼變成真機 瀏覽:111
海清家居服 瀏覽:222
防水灑到啞光磚上怎麼辦 瀏覽:869
鐵路護欄翻新用什麼漆價格是多少 瀏覽:495
湘潭華為維修點查詢 瀏覽:623
史密斯熱水器售後維修這行 瀏覽:921
重慶九陽電器售後維修 瀏覽:91
廣州頂級傢具 瀏覽:807
偉威家電維修部怎麼樣 瀏覽:100
本地傢具回收哪裡好 瀏覽:511
電路板補點 瀏覽:973
西藏口碑好的傢具包括哪些 瀏覽:743
電路第五版第三章答案 瀏覽:528
常熟索尼電視機哪裡維修店 瀏覽:588
家居彩裝膜價格圖片 瀏覽:551
惠而浦特約維修點 瀏覽:684
惠而浦洗衣機維修電話是多少 瀏覽:483