<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 基礎入門 >> 其他技術 >> 正文

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

      作者:佚名    文章來源:本站原創    點擊數:    更新時間: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

       

      二.數據格式

      1個起始位 總是邏輯0
      8個數據位 (LSB)低位在前
      1個奇偶校驗位 奇校驗
      1個停止位 總是邏輯1
      1個應答位 僅用在主機對設備的通訊中

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

       

      三.PS/2 發送數據到PC的時序

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

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

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

       

       

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


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

      PS/2設備從PC機接收一個字節

      由于PS/2設備能提供串行同步時鐘,因此,如果PC機發送數據,則PC機要先把時鐘線和數據線置為請求發送的狀態。PC機通過下拉時鐘線大于100μs來抑制通訊,并且通過下拉數據線發出請求發送數據的信號,然后釋放時鐘。當PS/2設備檢測到需要接收的數據時,它會產生時鐘信號并記錄下面8個數據位和一個停止位。主機此時在時鐘線變為低時準備數據到數據線,并在時鐘上升沿鎖存數據。而PS/2設備則要配合PC機才能讀到準確的數據。具體連接步驟如下:

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

      讀數據線的步驟如下:

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

      下面的步驟可用于發出應答位;

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

      四.鍵盤返回值介紹:

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

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

      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 出現在你的字處理軟件里的呢因為這是一個大寫字母需要發生這樣的事件次序按下Shift 鍵按下G鍵釋放G 鍵釋放Shift 鍵與這些時間相關的掃描碼如下Shift 鍵的通碼12hG 鍵的通碼34h G 鍵的斷碼F0h 34h Shift 鍵的斷碼F0h 12h 因此發送到你的計算機的數據應該是

      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鍵盤,編程,資料  
      責任編輯:admin
    4. 上一個文章: 沒有了
    5. 下一個文章:
    6. 相關文章列表
      沒有相關文章
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 国产在线视频色综合| 伊人丁香狠狠色综合久久| 狠狠色伊人久久精品综合网| 国产精品综合一区二区三区| 色综合天天娱乐综合网| 69国产成人综合久久精品91| 亚洲综合另类小说色区色噜噜| 亚洲第一页综合图片自拍| 久久综合香蕉久久久久久久| 天天做天天爱天天综合网2021| 国产福利电影一区二区三区久久久久成人精品综合 | 国产亚洲综合成人91精品| 五月天婷五月天综合网站| 91久久婷婷国产综合精品青草| 国产成人综合网在线观看| 伊人久久大香线蕉综合电影网| 激情五月激情综合| 久久99国产综合精品免费| 久久综合九色综合91| 狠狠色伊人久久精品综合网| 亚洲欧洲av综合色无码| 亚洲欧美成人综合久久久| 97色婷婷成人综合在线观看| 亚洲综合精品香蕉久久网| 丁香狠狠色婷婷久久综合| 久久九色综合九色99伊人| 国产香蕉尹人综合在线观看| 激情五月婷婷综合| 天天综合色天天综合| 国产精品国产色综合色| 亚洲国产成人久久综合一区| 一个色综合国产色综合| 天天综合天天添夜夜添狠狠添| 国产精品免费综合一区视频| 婷婷亚洲综合一区二区 | 伊色综合久久之综合久久| 伊人久久大香线蕉综合网站| 六月婷婷国产精品综合| 国产综合视频在线观看一区| 狠狠综合久久久久综合网| 一本色道久久综合狠狠躁|