機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
PS/2 PC鍵盤編程資料
PS/2 PC鍵盤編程資料
 更新時(shí)間:2008-7-27 16:11:27  點(diǎn)擊數(shù):2
【字體: 字體顏色
 

1.PS/2的電氣特性如下(電腦端):

1DATAKey Data
2n/cNot connected
3GNDGnd
4VCCPower , +5 VDC
5CLKClock
6n/cNot connected

2.數(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)。

3.PS/2發(fā)送時(shí)序

其中a為鍵盤到PC機(jī)的發(fā)送時(shí)序(如果你用單片機(jī)接收,就按照此時(shí)序),在時(shí)鐘的下降沿,數(shù)據(jù)被PC讀入。

b為PC機(jī)到鍵盤的時(shí)序。

4.鍵盤返回值

需要說(shuō)明的是:鍵盤的返回值并不是和ASCII碼相對(duì)應(yīng)!

一次按鍵過(guò)程至少會(huì)發(fā)送兩組碼,通碼和斷碼,通碼是按鍵被按下時(shí)發(fā)送,斷碼是當(dāng)按鍵釋放時(shí)發(fā)送,按住不動(dòng)將發(fā)送通碼。每個(gè)鍵的通碼和斷碼都是唯一的,因此通過(guò)查唯一的掃描碼,就可以知道哪個(gè)鍵被按下或釋放。

掃描碼集有三套標(biāo)準(zhǔn),分別是第一套,第二套和第三套,所有現(xiàn)代的鍵盤默認(rèn)使用第二套掃描碼。

就以大定字母“A”,首先得按住Shift鍵,然后按下A鍵,再松開(kāi)A鍵,再松開(kāi)Shift鍵。查下面的碼表,就得到這樣一組鍵碼:

12 1C F0 1C F0 12

5.第二套掃描碼

101 102 和104 鍵的鍵盤:

KEY通碼斷碼 KEY通碼斷碼 KEY通碼斷碼
A1CF0 1C946F0 46[54F0 54
B32F0 32`0EF0 0EINSERTE0 70E0 F0 70
C21F0 21-4EF0 4EHOMEE0 6CE0 F0 6C
D23F0 23=55F0 55PG UPE0 7DE0 F0 7D
E24F0 24\5DF0 5DDELETEE0 71E0 F0 71
F2BF0 2BBKSP66F0 66ENDE0 69E0 F0 69
G34F0 34SPACE29F0 29PG DNE0 7AE0 F0 7A
H33F0 33TAB0DF0 0DU ARROWE0 75E0 F0 75
I43F0 43CAPS58F0 58L ARROWE0 6BE0 F0 6B
J3BF0 3BL SHFT12F0 12D ARROWE0 72E0 F0 72
K42F0 42L CTRL14F0 14R ARROWE0 74E0 F0 74
L4BF0 4BL GUIE0 1FE0 F0 1FNUM77F0 77
M3AF0 3AL ALT11F0 11KP /E0 4AE0 F0 4A
N31F0 31R SHFT59F0 59KP *7CF0 7C
O44F0 44R CTRLE0 14E0 F0 14KP -7BF0 7B
P4DF0 4DR GUIE0 27E0 F0 27KP +79F0 79
Q15F0 15R ALTE0 11E0 F0 11KP ENE0 5AE0 F0 5A
R2DF0 2DAPPSE0 2FE0 F0 2FKP71F0 71
S1BF0 1BENTER5AF0 5AKP 070F0 70
T2CF0 2CESC76F0 76KP 169F0 69
U3CF0 3CF105F0 05KP 272F0 72
V2AF0 2AF206F0 06KP 37AF0 7A
W1DF0 1DF304F0 04KP 46BF0 6B
X22F0 22F40CF0 0CKP 573F0 73
Y35F0 35F503F0 03KP 674F0 74
Z1AF0 1AF60BF0 0BKP 76CF0 6C
045F0 45F783F0 83KP 875F0 75
116F0 16F80AF0 0AKP 97DF0 7D
21EF0 1EF901F0 01]58F0 58
326F0 26F1009F0 09;4CF0 4C
425F0 25F1178F0 78'52F0 52
52EF0 2EF1207F0 07,41F0 41
636F0 36PRNT SCRNE0 12
E0 7C
E0 F0
7C E0
F0 12
.49F0 49
73DF0 3DSCROLL7EF0 7E/4AF0 4A
83EF0 3EPAUSEE1 14 77
E1 F0 14
F0 77
-NONE-   

Widows多媒體碼:

KEY通碼斷碼
Next TrackE0 4DE0 F0 4D
Previous TrackE0 15E0 F0 15
StopE0 3BE0 F0 3B
Play/PauseE0 34E0 F0 34
MuteE0 23E0 F0 23
Volume UpE0 32E0 F0 32
Volume DownE0 21E0 F0 21
Media SelectE0 50E0 F0 50
E-MailE0 48E0 F0 48
CalculatorE0 2BE0 F0 2b
My ComputerE0 40E0 F0 40
WWW SearchE0 10E0 F0 10
WWW HomeE0 3AE0 F0 3a
WWW BackE0 38E0 F0 38
WWW ForwardE0 30E0 F0 20
WWW StopE0 28E0 F0 28
WWW RefreshE0 20E0 F0 20
WWW FavoritesE0 18E0 F0 18

以下是51單片機(jī)的讀取鍵碼程序,此程序僅僅是取得鍵盤的通碼和斷碼,要得到ASCII還需要解碼程序,要看到結(jié)果還得要顯示程序。其它請(qǐng)看本站相關(guān)文章。

#define sck P3_3//寫義時(shí)鐘線,選用中斷口#define dat P3_4//定義數(shù)據(jù)線unsigned char keyvalue;//鍵碼unsigned char intnum=0;//中斷次數(shù)bit bf=0//已經(jīng)取得一個(gè)鍵碼時(shí)為1/*------------------------------------------------------51單片機(jī)設(shè)為低電平觸發(fā)中斷當(dāng)時(shí)鐘線為低時(shí),觸發(fā)中斷,然后讀數(shù),等待高電平退出中斷*/------------------------------------------------------void int1(void) interrupt 2//中斷處理{        if( (intnum>0) && (intnum<9) )//只讀取第1--8位,也就是鍵碼位,拋棄起始位0,校驗(yàn)位9與停止位10        {                keyvalue>>=1;//因?yàn)殒I盤先發(fā)送的是最低位,所以右移一位                if(dat)                {                        keyvalue|=0x80;//當(dāng)數(shù)據(jù)線為1時(shí),將最高位置1                }        }        intnum++;//中斷次數(shù)加1        while(!sck);//當(dāng)時(shí)鐘線為低電平時(shí)循環(huán)至到時(shí)鐘線為高電平        if(intnum>10)//當(dāng)中斷11次后,表示一個(gè)字已經(jīng)發(fā)完,禁止中斷,等待處理,處理完后,清零bf        {                intnum=0;                bf=1;                EA=0;        }}
  • 上一篇: 單片機(jī)與PS/2鍵盤應(yīng)用實(shí)例
  • 下一篇: 硬盤控制源程序
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1