国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

PS/2標(biāo)準(zhǔn)鍵盤與單片機(jī)的連接

2012-07-19 01:52鄔法磊李曉陽
綠色科技 2012年3期
關(guān)鍵詞:數(shù)據(jù)線通信協(xié)議中斷

鄔法磊,李曉陽,塵 源

(青島理工大學(xué),山東 青島266033)

1 引言

專用鍵盤常用作單片機(jī)系統(tǒng)中的輸入設(shè)備,因?yàn)橐獑为?dú)設(shè)計(jì),不免存在設(shè)計(jì)制作成本高,通用性差,可靠性不高等諸多不足。在一些按鍵要求較多的應(yīng)用系統(tǒng)中使用專用鍵盤顯得更不合時(shí)宜。由于PS/2鍵盤應(yīng)用較為廣泛,且滿足多系統(tǒng)要求,所以本文考慮將PS/2標(biāo)準(zhǔn)鍵盤應(yīng)用到單片機(jī)系統(tǒng)中,既節(jié)約了制造成本,又可以滿足按鍵要求多的諸多場合,具有一定的實(shí)際意義。

2 PS/2鍵盤的接口和通信協(xié)議

2.1 接口的物理特性

與單片機(jī)相連的是CLOCK和DATA引腳,單片機(jī)通過這兩個(gè)引腳實(shí)現(xiàn)了與PS/2鍵盤的通信,接口物理特性見圖1。

圖1 接口物理特性

2.2 PS/2的通信協(xié)議

ps/2通訊協(xié)議是一種雙向同步串行通訊協(xié)議。通訊的兩端通過CLOCK同步,時(shí)鐘信號總是由鍵盤發(fā)出,并通過DATA交換數(shù)據(jù)。鍵盤向主機(jī)發(fā)送數(shù)據(jù)時(shí),首先檢查CLOCK是否為高電平。如果不是,那么主機(jī)抑制了通訊。具體時(shí)序如圖2所示,其中主機(jī)一直為高電平。

每一幀數(shù)據(jù)中開始位總是為0,數(shù)據(jù)校驗(yàn)采用奇校驗(yàn)方式,停止位始終為1。從設(shè)備到主設(shè)備通信時(shí),從設(shè)備總是在時(shí)鐘線為高時(shí)改變數(shù)據(jù)線狀態(tài),主設(shè)備在時(shí)鐘下降沿讀入數(shù)據(jù)線狀態(tài)。

圖2 單片機(jī)接收時(shí)序

2.3 掃描碼

目前,PC機(jī)使用的PS/2鍵盤都默認(rèn)采用第二套掃描碼。掃描碼有兩種不同的類型:“通碼(make code)”和“斷碼(break code)”。當(dāng)一個(gè)鍵被按下或持續(xù)按住時(shí),鍵盤會將該鍵的通碼發(fā)送給主機(jī)。而當(dāng)一個(gè)鍵被釋放時(shí),鍵盤會將該鍵的斷碼發(fā)送給主機(jī)。例如,按下A鍵,通碼為0x1c,松開按鍵時(shí),斷碼為0xF0 0x1c.

根據(jù)鍵盤按鍵掃描碼的不同,可將按鍵分為3類:

第1類按鍵通碼為一個(gè)字節(jié),斷碼為0xF0+通碼形式。如A鍵,其通碼為0x1C;斷碼為0xF0 0x1C。

第2類按鍵通碼為兩字節(jié)0xE0+0xXX形式,斷碼為0xE0+0xF0+0xXX形式。如Right Ctrl鍵,其通碼為0xE0 0x14;斷碼為0xE0 0xF0 0x14。

第3類特殊按鍵有兩個(gè),Print Screen鍵,其通碼為0xE0 0x12 0xE0 0x7C;斷碼為0xE0 0xF0 0x7C0xE0 0xF0 0x12.Pause鍵,其通碼為0xE1 0x14 0x77 0xE1 0xF0 0xl4 0xF0 0x77;斷碼為空。

組合按鍵掃描碼的發(fā)送是按照按鍵發(fā)生的次序,如按下面順序按左Shift+A鍵:按下左Shift鍵;按下A鍵;釋放A鍵;釋放左Shift鍵,那么計(jì)算機(jī)上接收到的一串?dāng)?shù)據(jù)為0×12 0×1C0×F0 0×1C0×F0 0×12.在文中的驅(qū)動程序設(shè)計(jì)中,就是根據(jù)按鍵的分類對其分別進(jìn)行處理。

3 軟硬件設(shè)計(jì)

3.1 硬件設(shè)計(jì)

PS/2鍵盤與單片機(jī)的連接方式如圖3所示。P3.0接 PS/2數(shù)據(jù)線;P3.2(INT0)接 PS/2時(shí)鐘線。因?yàn)閱纹瑱C(jī)的P3口內(nèi)部是帶上拉電阻的,所以PS/2的時(shí)鐘線和數(shù)據(jù)線可以直接與單片機(jī)的P3相連接。單片機(jī)接收鍵盤數(shù)據(jù)時(shí),數(shù)據(jù)線上的信號在時(shí)鐘為低時(shí)已經(jīng)穩(wěn)定,所以可以采用中斷方式實(shí)現(xiàn)接收數(shù)據(jù)(圖3)。

圖3 硬件設(shè)計(jì)

3.2 軟件設(shè)計(jì)

軟件流程如圖4。

本文程序通過中斷的方式接收按鍵值,轉(zhuǎn)換代碼后送給LCD1602顯示,中斷程序如下:

void Keyboard_out(void)interrupt 0

if((IntNum >0)&&(IntNum <9))

KeyV=KeyV>>1;//因鍵盤數(shù)據(jù)是低>>高,結(jié)合上一句所以右移一位

圖4 軟件流程

if(Key_Data)

KeyV= KeyV|0x80;//當(dāng)鍵盤數(shù)據(jù)線為1時(shí)到最高位

IntNum++;

while(!Key_CLK);//等待PS/2CLK拉高

if(IntNum >10)

IntNum=0;//當(dāng)中斷11次后表示一幀數(shù)據(jù)收完,清變量準(zhǔn)備下一次接收

BF=1;//標(biāo)識有字符輸入完了

EA=0;//關(guān)中斷等顯示完后再開中斷

4 結(jié)語

本文著重介紹了PS/2通信協(xié)議,并將其應(yīng)用到單片機(jī)系統(tǒng)中,可以應(yīng)用到按鍵要求多的一些場合,而且對于設(shè)計(jì)專用鍵盤也有一定的指導(dǎo)意義。

[1]胡汗才.單片機(jī)原理及系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002.

[2]孫德文.微型計(jì)算機(jī)技術(shù)[M].北京:高等教育出版社,2002.

[3]寧 飛,王維華,孔 宇.微型計(jì)算機(jī)原理與接口實(shí)踐[M].北京:清華大學(xué)出版社,2006.

猜你喜歡
數(shù)據(jù)線通信協(xié)議中斷
“單片機(jī)中斷概述”微課教學(xué)設(shè)計(jì)
一種考慮GPS信號中斷的導(dǎo)航濾波算法
Linux中斷線程化分析及中斷延時(shí)測試
第三方編織數(shù)據(jù)線材質(zhì)更抗拉、更耐用
官方數(shù)據(jù)線未必靠譜:小米抗拉強(qiáng)度落后其他品牌近5倍!
車載網(wǎng)絡(luò)通信協(xié)議標(biāo)準(zhǔn)化問題研究
跟蹤導(dǎo)練(二)(5)
電動汽車充電接口及通信協(xié)議新國標(biāo)發(fā)布
會叫喚的數(shù)據(jù)線
基于R8C的汽車OBD通用故障診斷儀設(shè)計(jì)
兴山县| 辽宁省| 广灵县| 万源市| 北票市| 钟祥市| 靖江市| 鄱阳县| 邳州市| 图片| 环江| 穆棱市| 高青县| 绥棱县| 巴中市| 江阴市| 龙岩市| 遂溪县| 吴堡县| 习水县| 德阳市| 类乌齐县| 灯塔市| 宿迁市| 城市| 茶陵县| 张家港市| 高阳县| 绥德县| 峡江县| 阜新市| 云阳县| 玛纳斯县| 张家川| 盐亭县| 正镶白旗| 昭苏县| 浑源县| 静安区| 泰顺县| 余姚市|