zoukankan      html  css  js  c++  java
  • keyboard scan code 表

    当按下一键时,产生 mark 码,产生一次 IRQ1 中断。

    放开键时,产生 break 码,产生一次 IRQ1 中断。

    因此:当按下 键放开,实际上产生了两次 IRQ1 中断

    break 是 mark 码的 bit7 置 得来,也就是: break = mark + 0x80

     

    1scan code 

    这里只说一般日常应用中的键盘码集 set 2(有 set 1set 2 以及 set 3

    • 基本 scan code:绝大多数 scan code 是 1 byte 的。
    • 扩展 scan code:由 e0、e1 或e2 引导
    • 特殊的 PrintScreen/SysRq 键:e0 2a e0 37
    • 物殊的 Pause/Break 键:e1 1d 45 e1 9d c5

     

     

    2、小键盘 scan code 

    key

    markHex

    breakHex

    描述

    NumLock

    45

    c5

    break = mark + 0x80

    /

    e0 35

    e0 b5

    由 e0 引导出 extend scan code

    *

    37

    b7

    break = mark + 0x80

     

    -

    4a

    ca

    同上

    7/Home

    47

    c7

    同上

    8/Up

    48

    c8

    同上

    9/PgUp

    49

    c9

    同上

    4/Left

    4b

    cb

    同上

    5

    4c

    cc

    同上

    6/Right

    4d

    cd

    同上

    1/End

    4f

    cf

    同上

    2/Down

    50

    d0

    同上

    3/PgDn

    51

    d1

    同上

    0/Ins

    52

    d2

    同上

    ./Del

    53

    d3

    同上

    +

    4e

    ce

    同上

    Enter

    e0 1c

    e0 9c

    extend scan code

    小键盘中的<home><Up><PgUp><Left><Right><End><Down><PgDn><Ins><Del>由 NumLock 按下后再按得来。

    因此,会产生一个 <NumLock> mark 码后,再产生上述的mark 码。 释放 <NumLock> 又产生一个 break码。

     

    3、附加键 scan code 

    key

    markHex

    breakHex

    描述

    PrintScreen/SysRq

    e0 2a e0 37

    e0 b7 e0 aa

    extend scan code

    Scroll Lock

    46

    c6

    同上

    Pause/Break

    e1 1d 45 e1 9d c5

    *

    同上

     

    Insert

    e0 52

    e0 d2

    同上

    Home

    e0 47

    e0 c7

    同上

    Page Up

    e0 49

    e0 c9

    同上

    Delete

    e0 53

    e0 d3

    同上

    End

    e0 4f

    e0 cf

    同上

    Page Down

    e0 51

    e0 d1

    同上

    left

    e0 46

    e0 c6

    同上

    right

    e0 4d

    e0 cd

    同上

    up

    e0 48

    e0 c8

    同上

    down

    e0 50

    e0 d0

    同上

    抱歉:我对 PrintScreen/SysRq 和 Pause/Break 的理解未透彻。在这不便讲解。

    如果您知道,请留言赐教。

     

     

    4、功能键 scan code 

    key

    markHex

    breakHex

    描述

    <esc>

    01

    81

    scan code

    F1

    3b

    bb

    同上

    F2

    3c

    bc

    同上

     

    F3

    3d

    bd

    同上

    F4

    3e

    be

    同上

    F5

    3f

    bf

    同上

    F6

    40

    c0

    同上

    F7

    41

    c1

    同上

    F8

    42

    c2

    同上

    F9

    43

    c3

    同上

    F10

    44

    c4

    同上

    F11

    57

    d7

    同上

    F12

    58

    d8

    同上

     

     

    5、主键盘 scan code 

    key

    mark

     

    break

     

    key

    mark

    break

    key

    mark

    break

    key

    mark

    break

    ~/·

    29

    a9

    <tab>

    0f

    8f

    <scapslock>

    3a

    ba

    <L-shift>

    2a

    aa

    !/1

    02

    82

    q

    10

    90

    a

    1e

    9e

    z

    2c

    ac

    @/2

    03

    83

    w

    11

    91

    s

    1f

    9f

    x

    2d

    ad

    #/3

    04

    84

    e

    12

    12

    d

    20

    a0

    c

    2e

    ae

    $/4

    05

    85

    r

    13

    93

    f

    21

    a1

    v

    2f

    af

    %/5

    06

    86

    t

    14

    94

    g

    22

    a2

    b

    30

    b0

    ^/6

    07

    87

    y

    15

    95

    h

    23

    a3

    n

    31

    b1

    &/7

    08

    88

    u

    16

    96

    j

    24

    a4

    m

    32

    b2

    */8

    09

    89

    i

    17

    97

    k

    25

    a5

    </,

    33

    b3

    (/9

    0a

    8a

    o

    18

    98

    l

    26

    a6

    >/.

    34

    b4

    )/0

    0b

    8b

    p

    19

    99

    :/;

    27

    a7

    ?//

    35

    b5

    _/-

    0c

    8c

    {/[

    1a

    9a

    "/'

    28

    a8

    <R-shift>

    36

    b6

    +/=

    0d

    8d

    }/]

    1b

    9b

    <Enter>

    1c

    9c

    <L-ctrl>

    1d

    9d

    |/\

    2b

    ab

     

     

     

     

     

     

    <L-alt>

    38

    b8

    <backspace>

    0e

    8e

     

     

     

     

     

     

    <space>

    39

    b9

     

     

     

     

     

     

     

     

     

    <R-alt>

    e0 38

    e0 b8

     

     

     

     

     

     

     

     

     

    <R-ctrl>

    e0 1d

    e0 9d

    若输入字符ABCD有两种方法

    1)按下 <CapsLock> 键后,再输入 abcd 键,再按<CapsLock> 

    这样会产生一个 <CapsLock> 键 mark 和 break码,然后依次是 abcd 的 mark 和 break 码, 最后是<CapsLock> 的 mark 和 break 

     

    2)按着 <L-shift> <R-shift> 不放,再按 abcd 键,再放开<L-shift> <R-shift> 

    这样会产生一个 <L-shift> <R-shift> 键的 mark 码,然后依次是 abcd 的 mark和 break 码,最后是一个 <L-shift> <R-shift> 键的 break 

     

  • 相关阅读:
    Linux架构浅谈
    SP3精密星历简介
    sprintf的用法
    插值 回归 拟合 逼近的区别
    Linux grep命令
    看我如何下载韩寒博客文章笔记
    多线程下载
    网络爬虫python教程
    爬虫——博客实例
    Android Studio安装
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3135658.html
Copyright © 2011-2022 走看看