實用文檔>按鍵掃描處理總結

    按鍵掃描處理總結

    時間:2024-08-17 04:54:44

    按鍵掃描處理總結范文

    按鍵掃描處理總結范文

    按鍵掃描處理總結范文

      一、 矩陣按鍵掃描方法

      1、現在的矩陣掃描主要有兩種方法:

      (1)行列掃描法

      (2)反轉法。

      2、行列掃描法

      (1)行列掃描法的基本思想:

      行列掃描法是將其中的一行輸出為低電平,其他行輸出為高電平,列設為輸入,然后判斷哪一列為低電平,從而確認出是哪一行哪一列有鍵按下。

      (2)行列掃描法舉例

      如圖1所示的2*2矩陣鍵盤,首先:將PB1,PB2作為行,并設置為輸出;PA1,PA2作為列,并設置為輸入。

      其次:PB1設置為低電平輸出,PB2設置為高電平輸出,查看此時PA1和PA2的輸入狀態,假設此時S1按下,則此時PB1輸出低電平通過S1傳到了PA1上,使得PA1輸入為低電平,而PA2仍然為高電平。說明第一行有鍵按下,并且是第一列有鍵按下

      然后:再將PB1設置為高電平輸出,PB2設置為低電平輸出,此時PA1,PA2輸入都為高電平。說明第二行上沒有按鍵按下。

      最后:至此可以判斷此時的PA1與PB1上的按鍵被按下,即第一行第一列的S1被按下。整個按鍵掃描過程結束。

      3、反轉法

      (1)反轉法的基本思想:

      將行設為輸出為低電平,列設為輸入,判斷此時列的輸入狀態;然后在將列設為輸出位低電平,行設為輸入,判斷此時行的輸入狀態。如果有鍵按下,則其中的列輸入狀態必然有其中一列為低,行的輸入狀態也必然有其中一行為低,記錄此時的行列號即可判斷出是哪一行哪一列有鍵按下。

      (2)反轉法舉例:

      如圖1所示的2*2矩陣鍵盤,首先:將PB1,PB2作為行,并設置為輸出;PA1,PA2作為列,并設置為輸入。

      其次:將PB1,PB2輸出為低,查看PA1,PA2輸入狀態,假設還是S1被按下,則此時PA1輸入為低電平,PA2輸入為高電平。說明第一列有鍵按下。

      然后:將PB1,PB2作為行,并設置為輸入;PA1,PA2作為列,并設置為輸出。

      最后:將PA1,PA2輸出為低,查看PB1,PB2輸入狀態,則此時PB1輸入為低電平,PB2輸入為高電平。說明第一行有鍵按下。至此可以判斷是第一行第一列有鍵按下,即S1鍵被按下,整個反轉法掃描過程結束。

      二、兩種掃描法存在的問題:

      1、行列式掃描法存在的問題

      行列掃描法雖然能夠掃描出多個按鍵按下的情況,但是行列掃描法在掃描時,如果同一列有兩個或者兩個以上的按鍵按下,比如S1和S3被同時按下,這時開始行列掃描,當PB1輸出為低電平,PB2輸出為高電平時。由于S1和S3被同時按下,相當于PB1和PB2被短接,導致PB1輸出的低電平和PB2輸出的高電平被短接到了一起,如此一來將會存在高低電平的沖突,這個沖突雖然低電平占優勢,但是對整個電路來說是一種隱患。

      2、反轉法存在的問題

      現在反轉法只適合單個按鍵按下的情況,如果一旦遇到多個按鍵按下,反轉法便存在缺陷了。比如S1和S4被同時按下,當進行反轉法掃描時,將PB1,PB2輸出為低,此時PA1,PA2輸入狀態都為低;當進行反轉法掃描時,將PA1,PA2輸出為低,此時PB1,PB2輸入狀態都為低。此時只能判斷出第一行,第二行都有鍵按下,同時第一列和第二列也有鍵按下。但是無法具體判斷出是哪幾個鍵按下。

      3、共同存在的問題

      如果如圖1所示的矩陣鍵盤,如果同時有三個按鍵按下,比如S1,S2,S3被同時按下,則反轉法肯定掃描不出來,但是此時的行列掃描法也無法將掃描出來具體是哪幾個按鍵按下。比如當PB1輸出為低電平,PB2輸出為高電平時,PA1,PA2都輸入為低;當PB2輸出為低電平,PB1輸出為高電平時,PA1,PA2也都輸入為低。此時只能判斷出第一行,第二行都有鍵按下,同時第一列和第二列也有鍵按下。而無法判斷具體是哪幾個按鍵按下。而且此時行列掃描存在的電平沖突問題依然存在。

      三、改進的行列掃描法

      1、改進掃描法的基本思想

      由于傳統的行列掃描法存在上述的高低電平沖突,所以對普通的行列掃描法做了修改,當其中一行輸出為低電平的時候,將其他行設置為輸入,這樣就不會因為同一列上有多個按鍵按下的時候造成高低電平的沖突了。

      2、改進掃描法的舉例

      如圖1所示的2*2矩陣鍵盤,首先:將PB1設置為輸出;PA1,PA2,PB2并設置為輸入。

      其次:PB1設置為低電平輸出,查看此時PA1和PA2的輸入狀態,假設此時S1和S3同時被按下,則此時PB1輸出低電平通過S1傳到了PA1上,使得PA1輸入為低電平,而PA2仍然為高電平。說明第一行有鍵按下,并且是第一列有鍵按下,即S1被按下。雖然S1和S3同時按下,導致PB1和PB2被短接,但是由于由于此時的PB1設置為輸入,就不存在傳統行列掃描法所存在的高低電平沖突。

      然后:PB2設置為低電平輸出,PA1,PA2,PB2并設置為輸入。此時PA1輸入為低電平。說明說明第二行有鍵按下,并且是第一列有鍵按下,即S3被按下。同理也不會出現上述的高低電平沖突。

      最后:至此可以判斷S1和S3被同時按下。整個按鍵掃描過程結束。

      3、改進式行列掃描法的意義

      改進式行列掃描法避免了傳統掃描法在掃描過程中,如果同一列有多個按鍵按下時出現的高低電平沖突,并且程序量不會增加。但是對于上述提到的S1,S2,S3被同時按下的情況,改進式行列掃描法也無法解決,有待進一步探究。

    【按鍵掃描處理總結】相關文章:

    填報高考志愿四大問題處理總結02-13

    地基處理和樁基礎報告03-19

    污水處理廠檢修計劃范文(通用5篇)03-28

    海雅廣場地下室側墻裂縫處理的報告(精選10篇)03-19

    小學四年級綜合實踐活動《垃圾的處理》教案(精選10篇)03-15

    對老板總結感想總結二篇03-20

    學科總結03-20

    電場公式總結06-08

    離?偨Y精選范文03-19

    工會總結范本03-19

    用戶協議
    国产一级a爱做免费播放_91揄拍久久久久无码免费_欧美视频在线播放精品a_亚洲成色在线综合网站免费

      一本久久a久久精品vr综合 | 天天在线精品视频一区二区 | 亚洲欧美久久夜夜综合网 | 在线白嫩萝福利莉视频动漫 | 宅男网免费在线无毒不卡 | 亚洲欧美中文日韩在线v日本 |