日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 基礎(chǔ)入門 >> 其他技術(shù) >> 正文

PS/2 PC鍵盤編程參考資料

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2008-10-31

   PS/2 PC鍵盤編程的參考資料

一.電氣特性

1

DATA

Key Data

2

n/c

Not connected

3

GND

Gnd

4

VCC

Power , +5 VDC

5

CLK

Clock

6

n/c

Not connected

 

二.數(shù)據(jù)格式

1個(gè)起始位 總是邏輯0
8個(gè)數(shù)據(jù)位 (LSB)低位在前
1個(gè)奇偶校驗(yàn)位 奇校驗(yàn)
1個(gè)停止位 總是邏輯1
1個(gè)應(yīng)答位 僅用在主機(jī)對(duì)設(shè)備的通訊中

表中,如果數(shù)據(jù)位中1的個(gè)數(shù)為偶數(shù),校驗(yàn)位就為1;如果數(shù)據(jù)位中1的個(gè)數(shù)為奇數(shù),校驗(yàn)位就為0;總之,數(shù)據(jù)位中1的個(gè)數(shù)加上校驗(yàn)位中1的個(gè)數(shù)總為奇數(shù),因此總進(jìn)行奇校驗(yàn)。

 

三.PS/2 發(fā)送數(shù)據(jù)到PC的時(shí)序

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

注:在時(shí)鐘的下降沿讀取數(shù)據(jù).以下可做具體寫程序參考

從PS/2向PC機(jī)發(fā)送一個(gè)字節(jié)可按照下面的步驟進(jìn)行:

 

 

(1)檢測(cè)時(shí)鐘線電平,如果時(shí)鐘線為低,則延時(shí)50μs;
          (2)檢測(cè)判斷時(shí)鐘信號(hào)是否為高,為高,則向下執(zhí)行,為低,則轉(zhuǎn)到(1);
          (3)檢測(cè)數(shù)據(jù)線是否為高,如果為高則繼續(xù)執(zhí)行,如果為低,則放棄發(fā)送(此時(shí)PC機(jī)在向 PS/2設(shè)備發(fā)送數(shù)據(jù),所以PS/2設(shè)備要轉(zhuǎn)移到接收程序處接收數(shù)據(jù));
          (4)延時(shí)20μs(如果此時(shí)正在發(fā)送起始位,則應(yīng)延時(shí)40μs);
         (5)輸出起始位(0)到數(shù)據(jù)線上。這里要注意的是:在送出每一位后都要檢測(cè)時(shí)鐘線,以確保PC機(jī)沒有抑制PS/2設(shè)備,如果有則中止發(fā)送;
          (6)輸出8?jìng)(gè)數(shù)據(jù)位到數(shù)據(jù)線上;
          (7)輸出校驗(yàn)位;
          (8)輸出停止位(1);
          (9)延時(shí)30μs(如果在發(fā)送停止位時(shí)釋放時(shí)鐘信號(hào)則應(yīng)延時(shí)50μs);


通過以下步驟可發(fā)送單個(gè)位:
          (1)準(zhǔn)備數(shù)據(jù)位(將需要發(fā)送的數(shù)據(jù)位放到數(shù)據(jù)線上);
          (2)延時(shí)20μs;
          (3)把時(shí)鐘線拉低;
          (4)延時(shí)40μs;
          (5)釋放時(shí)鐘線;
          (6)延時(shí)20μs。

PS/2設(shè)備從PC機(jī)接收一個(gè)字節(jié)

由于PS/2設(shè)備能提供串行同步時(shí)鐘,因此,如果PC機(jī)發(fā)送數(shù)據(jù),則PC機(jī)要先把時(shí)鐘線和數(shù)據(jù)線置為請(qǐng)求發(fā)送的狀態(tài)。PC機(jī)通過下拉時(shí)鐘線大于100μs來抑制通訊,并且通過下拉數(shù)據(jù)線發(fā)出請(qǐng)求發(fā)送數(shù)據(jù)的信號(hào),然后釋放時(shí)鐘。當(dāng)PS/2設(shè)備檢測(cè)到需要接收的數(shù)據(jù)時(shí),它會(huì)產(chǎn)生時(shí)鐘信號(hào)并記錄下面8?jìng)(gè)數(shù)據(jù)位和一個(gè)停止位。主機(jī)此時(shí)在時(shí)鐘線變?yōu)榈蜁r(shí)準(zhǔn)備數(shù)據(jù)到數(shù)據(jù)線,并在時(shí)鐘上升沿鎖存數(shù)據(jù)。而PS/2設(shè)備則要配合PC機(jī)才能讀到準(zhǔn)確的數(shù)據(jù)。具體連接步驟如下:

(1)等待時(shí)鐘線為高電平。
          (2)判斷數(shù)據(jù)線是否為低,為高則錯(cuò)誤退出,否則繼續(xù)執(zhí)行。
          (3)讀地址線上的數(shù)據(jù)內(nèi)容,共8?jìng)(gè)bit,每讀完一個(gè)位,都應(yīng)檢測(cè)時(shí)鐘線是否被PC機(jī)拉低,如果被拉低則要中止接收。
          (4)讀地址線上的校驗(yàn)位內(nèi)容,1個(gè)bit。
          (5)讀停止位。
          (6)如果數(shù)據(jù)線上為0(即還是低電平),PS/2設(shè)備繼續(xù)產(chǎn)生時(shí)鐘,直到接收到1且產(chǎn)生出錯(cuò)信號(hào)為止(因?yàn)橥V刮皇牵,如果PS/2設(shè)備沒有讀到停止位,則表明此次傳輸出錯(cuò))。          
          (7 輸出應(yīng)答位。
          (8) 檢測(cè)奇偶校驗(yàn)位,如果校驗(yàn)失敗,則產(chǎn)生錯(cuò)誤信號(hào)以表明此次傳輸出現(xiàn)錯(cuò)誤。
          (9)延時(shí)45 μs,以便PC機(jī)進(jìn)行下一次傳輸。

讀數(shù)據(jù)線的步驟如下:

(1)延時(shí)20μs;
          (2)把時(shí)鐘線拉低??
          (3)延時(shí)40μs??
          (4)釋放時(shí)鐘線??
          (5)延時(shí)20μs??
          (6)讀數(shù)據(jù)線。

下面的步驟可用于發(fā)出應(yīng)答位;

(1)延時(shí)15μs;
          (2)把數(shù)據(jù)線拉低;
          (3)延時(shí)5μs;
          (4)把時(shí)鐘線拉低;
          (5)延時(shí)40μs;
          (6)釋放時(shí)鐘線;
          (7)延時(shí)5μs;
          (8)釋放數(shù)據(jù)線。

四.鍵盤返回值介紹:

注意:鍵盤的返回值并不是和一般ASCII碼相對(duì)應(yīng)!

鍵盤的處理器如果發(fā)現(xiàn)有鍵被按下釋放或按住鍵盤將發(fā)送掃描碼的信息包到計(jì)算機(jī)掃描碼有兩種不同的類型通碼和斷碼當(dāng)一個(gè)鍵被按下或按住就發(fā)送通碼當(dāng)一個(gè)鍵被釋放就發(fā)送斷碼每個(gè)按鍵被分配了唯一的通碼和斷碼這樣主機(jī)通過查找唯一的掃描碼就可以測(cè)定是哪個(gè)按鍵每個(gè)鍵一整套的通斷碼組成了掃描碼集有三套標(biāo)準(zhǔn)的掃描碼集分別是第一套第二套和第三套所有現(xiàn)代的鍵盤默認(rèn)使用第二套掃描碼
       雖然多數(shù)第二套通碼都只有一個(gè)字節(jié)寬但也有少數(shù)擴(kuò)展按鍵的通碼是兩字節(jié)或四字節(jié)寬這類的通碼第一個(gè)字節(jié)總是為E0h
       正如鍵按下通碼就被發(fā)往計(jì)算機(jī)一樣只要鍵一釋放斷碼就會(huì)被發(fā)送每個(gè)鍵都有它自己唯一的通碼它們也都有唯一的斷碼幸運(yùn)的是你不用總是通過查表來找出按鍵的斷碼在通碼和斷碼之間存在著必然的聯(lián)系多數(shù)第二套斷碼有兩字節(jié)長(zhǎng)它們的第一個(gè)字節(jié)是F0h 第二個(gè)字節(jié)是這個(gè)鍵的通碼擴(kuò)展按鍵的斷碼通常有三個(gè)字節(jié)它們前兩個(gè)字節(jié)是E0h,F0h 最后一個(gè)字節(jié)是這個(gè)按鍵通碼的最后一個(gè)字節(jié)作為一個(gè)例子我在下面列出了幾個(gè)按鍵的第二套通碼和斷碼

No.

KEY

通碼(第二套)

斷碼(第二套)

1

"A"

1C

F0 1C

2

"5"

2E

F0 2E

3

"F10"

09

F0 09

4

Right Arrow

E0 74

E0 F0 74

5

Right "Ctrl"

E0 14

E0 F0 14

一個(gè)鍵盤發(fā)送值的例子:
      通碼和斷碼是以什么樣的序列發(fā)送到你的計(jì)算機(jī)從而使得字符G 出現(xiàn)在你的字處理軟件里的呢因?yàn)檫@是一個(gè)大寫字母需要發(fā)生這樣的事件次序按下Shift 鍵按下G鍵釋放G 鍵釋放Shift 鍵與這些時(shí)間相關(guān)的掃描碼如下Shift 鍵的通碼12hG 鍵的通碼34h G 鍵的斷碼F0h 34h Shift 鍵的斷碼F0h 12h 因此發(fā)送到你的計(jì)算機(jī)的數(shù)據(jù)應(yīng)該是

12h 34h F0h 34h F0h 12h



五:第二套掃描碼:

101 102 和104 鍵的鍵盤:

KEY

通碼

斷碼

   KEY  通碼  斷碼    KEY  通碼 斷碼 

A

1C

F0 1C

    9 46 F0 46     [ 54  F0 54 

B

32

F0 32

  ` 0E F0 0E    INSERT E0 70  E0 F0 70

C

21

F0 21

  - 4E  F0 4E    HOME E0 6C  E0 F0 6C

D

23

F0 23

  = 55  F0 55    PG UP E0 7D  E0 F0 7D

E

24

F0 24

  \ 5D  F0 5D    DELETE E0 71  E0 F0 71 
F 2B F0 2B   BKSP 66  F0 66    END E0 69  E0 F0 69 
G 34  F0 34    SPACE 29  F0 29    PG DN E0 7A  E0 F0 7A 
33  F0 33    TAB 0D  F0 0D    U ARROW E0 75  E0 F0 75 
I 43  F0 43    CAPS 58  F0 58    L ARROW E0 6B  E0 F0 6B 
J 3B  F0 3B    L SHFT  12  F0 12    D ARROW E0 72 E0 F0 72 
42  F0 42    L CTRL 14  F0 14    R ARROW E0 74 E0 F0 74 
4B F0 4B    L GUI E0 1F  E0 F0 1F   NUM 77  F0  77
3A  F0 3A    L ALT 11  F0 11    KP / E0 4A  E0 F0 4A 
31  F0 31    R SHFT  59  F0 59    KP * 7C F0  7C
44  F0 44    R CTRL  E0 14  E0 F0 14    KP - 7B F0 7B 
4D  F0 4D   R GUI E0 27  E0 F0 27    KP + 79 F0 79 
15  F0 15    R ALT E0 11  E0 F0 11    KP EN E0 5A E0 F0 5A 
2D F0 2D    APPS E0 2F  E0 F0 2F    KP  71 F0 71 
1B  F0 1B    ENTER 5A F0 5A    KP 0 70 F0 70 
2C  F0 2C    ESC 76  F0 76    KP 1 69 F0 69 
3C F0 3C    F1 05  F0 05    KP 2  72 F0 72 
2A F0 2A    F2  06 F0 06    KP 3  7A F0 7A 
1D F0 1D    F3  04  F0 04    KP 4  6B F0 6B 
22 F0 22    F4  0C  F0 0C    KP 5  73 F0 73 
35  F0 35    F5  03  F0 03    KP 6  74 F0 74 
1A  F0 1A    F6  0B  F0 0B    KP 7  6C  F0 6C 
0 45  F0 45    F7  83  F0 83    KP 8  75 F0 75 
16  F0 16    F8  0A  F0 0A    KP 9  7D F0 7D 
1E  F0 1E    F9  01  F0 01    ] 58 F0 58 
26  F0 26    F10  09  F0 09    ; 4C F0 4C 
25  F0 25    F11  78  F0 78    ' 52 F0 52 
2E  F0 2E    F12  07  F0 07    , 41 F0 41 
36 F0 36    PRNT
SCRN
E0 12
E0 7C
E0 F0
7C E0
F0 12 
  . 49 F0 49 
3D  F0 3D    SCROLL 7E F0,7E    / 4A F0 4A 
3E  F0 3E    PAUSE E1 14 77
E1 F0 14
F0 77
 -NONE-        

ACPI 掃描碼:

KEY

通碼

斷碼

Power

E0, 37

E0, F0, 37

Sleep

E0, 3F

E0, F0, 3F

Wake

E0, 5E

E0, F0, 5E

Windows 多媒體掃描碼:

KEY

通碼

斷碼

Next Track

E0, 4D

E0, F0, 4D

Previous Track

E0, 15

E0, F0, 15

Stop

E0, 3B

E0, F0, 3B

Play/Pause E0, 34 E0, F0, 34 
Mute E0, 23  E0, F0, 23 
Volume Up  E0, 32 E0, F0, 32 
Volume Down  E0, 21  E0, F0, 21 
Media Select  E0, 50  E0, F0, 50 
E-Mail E0, 48  E0, F0, 48 
Calculator E0, 2B  E0, F0, 2b 
My Computer E0, 40  E0, F0, 40 
WWW Search  E0, 10  E0, F0, 10 
WWW Home  E0, 3A  E0, F0, 3a 
WWW Back E0, 38  E0, F0, 38 
WWW Forward E0, 30  E0, F0, 20 
WWW Stop E0, 28  E0, F0, 28 
WWW Refresh E0, 20 E0, F0, 20 
WWW Favorites  E0, 18  E0, F0, 18 

Tags:PS2,PC鍵盤,編程,資料  
責(zé)任編輯:admin
  • 上一個(gè)文章: 沒有了
  • 下一個(gè)文章:
  • 相關(guān)文章列表
    沒有相關(guān)文章
    請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個(gè)字
    [ 查看全部 ] 網(wǎng)友評(píng)論
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁(yè)面
    下到頁(yè)底
    晶體管查詢
    主站蜘蛛池模板: 宜川县| 玛纳斯县| 修水县| 德令哈市| 虎林市| 鹰潭市| 聊城市| 枣阳市| 仁怀市| 沂南县| 抚顺市| 依安县| 申扎县| 旌德县| 嵊泗县| 永兴县| 新宾| 双城市| 即墨市| 保靖县| 焉耆| 霍城县| 元江| 云林县| 宁河县| 金门县| 木兰县| 惠安县| 固阳县| 乌兰察布市| 德阳市| 隆安县| 桐城市| 辽阳市| 肥乡县| 登封市| 南汇区| 乌鲁木齐市| 攀枝花市| 大安市| 施秉县|