日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

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

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

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

作者:佚名    文章來源:本站原創(chuàng)    點擊數(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個起始位 總是邏輯0
8個數(shù)據(jù)位 (LSB)低位在前
1個奇偶校驗位 奇校驗
1個停止位 總是邏輯1
1個應(yīng)答位 僅用在主機對設(shè)備的通訊中

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

 

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

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

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

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

 

 

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


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

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

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

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

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

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

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

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

四.鍵盤返回值介紹:

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

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

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

一個鍵盤發(fā)送值的例子:
      通碼和斷碼是以什么樣的序列發(fā)送到你的計算機從而使得字符G 出現(xiàn)在你的字處理軟件里的呢因為這是一個大寫字母需要發(fā)生這樣的事件次序按下Shift 鍵按下G鍵釋放G 鍵釋放Shift 鍵與這些時間相關(guān)的掃描碼如下Shift 鍵的通碼12hG 鍵的通碼34h G 鍵的斷碼F0h 34h Shift 鍵的斷碼F0h 12h 因此發(fā)送到你的計算機的數(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
  • 上一個文章: 沒有了
  • 下一個文章:
  • 相關(guān)文章列表
    沒有相關(guān)文章
    請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網(wǎng)友評論
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢