日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
矩陣式鍵盤
矩陣式鍵盤
 更新時間:2008-7-26 19:54:51  點擊數(shù):3
【字體: 字體顏色

確定矩陣式鍵盤上何鍵被按下,介紹一種“行掃描法”。

行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法.

     判斷鍵盤中有無鍵按下: 將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。

     判斷閉合鍵所在的位置: 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。

org  0000h

ajmp main

org  0030h

main:

     MOV  dptr,#tab     ;將表頭放入dptr

     lcall    key      ;調(diào)用鍵盤掃描程序

     MOVc a,@a+dptr    ;查表后將鍵值送入acc

     MOV  p0,a           ;將acc值送入p0口

     clr p2.1            ;開顯示

     ljmp main         ;返回反復(fù)循環(huán)顯示

key: lcall ks        ;調(diào)用檢測按鍵子程序

     jnz k1                 ;有鍵按下繼續(xù)

     lcall delay2      ;無鍵按調(diào)用延時去抖

     ajmp key          ;返回繼續(xù)檢測按鍵

k1:  lcall delay2

     lcall delay2     ;有鍵按下延時去抖動

     lcall ks          ;再調(diào)用檢測按鍵程序

     jnz k2          ;確認有按下進行下一步

     ajmp key         ;無鍵按下返回繼續(xù)檢測

k2:  MOV r2,#0efh      ;將掃描值送入 r2暫存

MOV r4,#00h   ;將第一列值送入r4暫存

k3: MOV p1,r2     ;將r2的值送入p1口

l6:  jb p1.0,l1        ;p1.0等于1跳轉(zhuǎn)到l1

     MOV a,#00h       ;將第一行值送入acc

     ajmp lk         ;跳轉(zhuǎn)到鍵值處理程序

l1:  jb p1.1,l2       ;p1.1等于1跳轉(zhuǎn)到l2

     MOV a,#04h   ;將第二行的行值送入acc

     ajmp lk  ;跳轉(zhuǎn)到鍵值理程序進行鍵值處理

l2: jb p1.2,l3      ;p1.2等于1跳轉(zhuǎn)到l3

     MOV a,#08h     ;將第三行的行值送入acc

     ajmp lk          ;跳轉(zhuǎn)到鍵值處理程序

l3:  jb p1.3,next   ;p1.3等于1跳轉(zhuǎn)到next處

     MOV a,#0ch       ;將第四行的行值送入acc

lk:  add a,r4     ;行值與列值相加后的鍵值送入a

     push acc         ;將a中的值送入堆棧暫存

k4:  lcall delay2        ;調(diào)用延時去抖動程序

     lcall ks          ;調(diào)用按鍵檢測程序

     jnz k4        ;按鍵沒有松開繼續(xù)返回檢測

     pop acc      ;將堆棧的值送入acc

     ret

next:

    inc  r4           ;將列值加一

    MOV a,r2          ;將r2的值送入a

    jnb acc.7,key  ;掃描完至key處進行下一掃描

    rl a    ;掃描未完將a中的值右移一位進行下一列的掃描

    MOV r2,a      ;將acc的值送入r2暫存

    ajmp k3       ;跳轉(zhuǎn)到k3繼續(xù)

ks:  MOV p1,#0fh   ;將p1口高四位置0低四位值1

     MOV a,p1     ;讀p1口

     xrl a,#0fh    ;將a中的值與a中的值相異或

     ret          ;子程序返回

delay2:         ;40ms延時去抖動子程序

      MOV r5,#08h

l7:  MOV r6,#0fah

l8:  djnz r6,l8

     djnz r5,l7

     ret

tab:

db 28h,34h,28h,34h,0a9h,60h,20h,7ah,

20h,21h,61h,74h,30h,62h,0a2h,7eh

    ;0h0hc9878654a321 輪流顯示鍵盤因為無法表達*# 就用h表示,b用8表示

end

  • 上一篇: 在MCS51系列單片機中的實現(xiàn)方法
  • 下一篇: 定時計數(shù)2
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

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

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