• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      鄔法磊,李曉陽(yáng),塵 源

      (青島理工大學(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é)約了制造成本,又可以滿足按鍵要求多的諸多場(chǎng)合,具有一定的實(shí)際意義。

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

      2.1 接口的物理特性

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

      圖1 接口物理特性

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

      ps/2通訊協(xié)議是一種雙向同步串行通訊協(xié)議。通訊的兩端通過(guò)CLOCK同步,時(shí)鐘信號(hào)總是由鍵盤發(fā)出,并通過(guò)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í),鍵盤會(huì)將該鍵的通碼發(fā)送給主機(jī)。而當(dāng)一個(gè)鍵被釋放時(shí),鍵盤會(huì)將該鍵的斷碼發(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ū)動(dòng)程序設(shè)計(jì)中,就是根據(jù)按鍵的分類對(duì)其分別進(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ù)線上的信號(hào)在時(shí)鐘為低時(shí)已經(jīng)穩(wěn)定,所以可以采用中斷方式實(shí)現(xiàn)接收數(shù)據(jù)(圖3)。

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

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

      軟件流程如圖4。

      本文程序通過(guò)中斷的方式接收按鍵值,轉(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)識(shí)有字符輸入完了

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

      4 結(jié)語(yǔ)

      本文著重介紹了PS/2通信協(xié)議,并將其應(yīng)用到單片機(jī)系統(tǒng)中,可以應(yīng)用到按鍵要求多的一些場(chǎng)合,而且對(duì)于設(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信號(hào)中斷的導(dǎo)航濾波算法
      Linux中斷線程化分析及中斷延時(shí)測(cè)試
      第三方編織數(shù)據(jù)線材質(zhì)更抗拉、更耐用
      官方數(shù)據(jù)線未必靠譜:小米抗拉強(qiáng)度落后其他品牌近5倍!
      車載網(wǎng)絡(luò)通信協(xié)議標(biāo)準(zhǔn)化問題研究
      跟蹤導(dǎo)練(二)(5)
      電動(dòng)汽車充電接口及通信協(xié)議新國(guó)標(biāo)發(fā)布
      會(huì)叫喚的數(shù)據(jù)線
      基于R8C的汽車OBD通用故障診斷儀設(shè)計(jì)
      盐山县| 博野县| 玛沁县| 湟中县| 高陵县| 云安县| 青河县| 大安市| 陇南市| 通海县| 赞皇县| 石家庄市| 泽州县| 抚顺县| 瓦房店市| 翁牛特旗| 历史| 吉隆县| 象州县| 泸定县| 临沭县| 平江县| 贵州省| 当阳市| 大悟县| 龙川县| 上林县| 蓝山县| 罗定市| 宕昌县| 德惠市| 靖边县| 于都县| 吴堡县| 务川| 芦溪县| 泾川县| 肥西县| 都匀市| 深水埗区| 崇阳县|