按鍵掃描處理總結(jié)范文
按鍵掃描處理總結(jié)范文
一、 矩陣按鍵掃描方法
1、現(xiàn)在的矩陣掃描主要有兩種方法:
(1)行列掃描法
(2)反轉(zhuǎn)法。
2、行列掃描法
(1)行列掃描法的基本思想:
行列掃描法是將其中的一行輸出為低電平,其他行輸出為高電平,列設(shè)為輸入,然后判斷哪一列為低電平,從而確認出是哪一行哪一列有鍵按下。
(2)行列掃描法舉例
如圖1所示的2*2矩陣鍵盤,首先:將PB1,PB2作為行,并設(shè)置為輸出;PA1,PA2作為列,并設(shè)置為輸入。
其次:PB1設(shè)置為低電平輸出,PB2設(shè)置為高電平輸出,查看此時PA1和PA2的輸入狀態(tài),假設(shè)此時S1按下,則此時PB1輸出低電平通過S1傳到了PA1上,使得PA1輸入為低電平,而PA2仍然為高電平。說明第一行有鍵按下,并且是第一列有鍵按下
然后:再將PB1設(shè)置為高電平輸出,PB2設(shè)置為低電平輸出,此時PA1,PA2輸入都為高電平。說明第二行上沒有按鍵按下。
最后:至此可以判斷此時的PA1與PB1上的按鍵被按下,即第一行第一列的S1被按下。整個按鍵掃描過程結(jié)束。
3、反轉(zhuǎn)法
(1)反轉(zhuǎn)法的基本思想:
將行設(shè)為輸出為低電平,列設(shè)為輸入,判斷此時列的輸入狀態(tài);然后在將列設(shè)為輸出位低電平,行設(shè)為輸入,判斷此時行的輸入狀態(tài)。如果有鍵按下,則其中的列輸入狀態(tài)必然有其中一列為低,行的輸入狀態(tài)也必然有其中一行為低,記錄此時的行列號即可判斷出是哪一行哪一列有鍵按下。
(2)反轉(zhuǎn)法舉例:
如圖1所示的2*2矩陣鍵盤,首先:將PB1,PB2作為行,并設(shè)置為輸出;PA1,PA2作為列,并設(shè)置為輸入。
其次:將PB1,PB2輸出為低,查看PA1,PA2輸入狀態(tài),假設(shè)還是S1被按下,則此時PA1輸入為低電平,PA2輸入為高電平。說明第一列有鍵按下。
然后:將PB1,PB2作為行,并設(shè)置為輸入;PA1,PA2作為列,并設(shè)置為輸出。
最后:將PA1,PA2輸出為低,查看PB1,PB2輸入狀態(tài),則此時PB1輸入為低電平,PB2輸入為高電平。說明第一行有鍵按下。至此可以判斷是第一行第一列有鍵按下,即S1鍵被按下,整個反轉(zhuǎn)法掃描過程結(jié)束。
二、兩種掃描法存在的問題:
1、行列式掃描法存在的問題
行列掃描法雖然能夠掃描出多個按鍵按下的情況,但是行列掃描法在掃描時,如果同一列有兩個或者兩個以上的按鍵按下,比如S1和S3被同時按下,這時開始行列掃描,當PB1輸出為低電平,PB2輸出為高電平時。由于S1和S3被同時按下,相當于PB1和PB2被短接,導(dǎo)致PB1輸出的低電平和PB2輸出的高電平被短接到了一起,如此一來將會存在高低電平的沖突,這個沖突雖然低電平占優(yōu)勢,但是對整個電路來說是一種隱患。
2、反轉(zhuǎn)法存在的問題
現(xiàn)在反轉(zhuǎn)法只適合單個按鍵按下的情況,如果一旦遇到多個按鍵按下,反轉(zhuǎn)法便存在缺陷了。比如S1和S4被同時按下,當進行反轉(zhuǎn)法掃描時,將PB1,PB2輸出為低,此時PA1,PA2輸入狀態(tài)都為低;當進行反轉(zhuǎn)法掃描時,將PA1,PA2輸出為低,此時PB1,PB2輸入狀態(tài)都為低。此時只能判斷出第一行,第二行都有鍵按下,同時第一列和第二列也有鍵按下。但是無法具體判斷出是哪幾個鍵按下。
3、共同存在的問題
如果如圖1所示的矩陣鍵盤,如果同時有三個按鍵按下,比如S1,S2,S3被同時按下,則反轉(zhuǎn)法肯定掃描不出來,但是此時的行列掃描法也無法將掃描出來具體是哪幾個按鍵按下。比如當PB1輸出為低電平,PB2輸出為高電平時,PA1,PA2都輸入為低;當PB2輸出為低電平,PB1輸出為高電平時,PA1,PA2也都輸入為低。此時只能判斷出第一行,第二行都有鍵按下,同時第一列和第二列也有鍵按下。而無法判斷具體是哪幾個按鍵按下。而且此時行列掃描存在的電平?jīng)_突問題依然存在。
三、改進的行列掃描法
1、改進掃描法的基本思想
由于傳統(tǒng)的行列掃描法存在上述的高低電平?jīng)_突,所以對普通的行列掃描法做了修改,當其中一行輸出為低電平的時候,將其他行設(shè)置為輸入,這樣就不會因為同一列上有多個按鍵按下的時候造成高低電平的沖突了。
2、改進掃描法的舉例
如圖1所示的2*2矩陣鍵盤,首先:將PB1設(shè)置為輸出;PA1,PA2,PB2并設(shè)置為輸入。
其次:PB1設(shè)置為低電平輸出,查看此時PA1和PA2的輸入狀態(tài),假設(shè)此時S1和S3同時被按下,則此時PB1輸出低電平通過S1傳到了PA1上,使得PA1輸入為低電平,而PA2仍然為高電平。說明第一行有鍵按下,并且是第一列有鍵按下,即S1被按下。雖然S1和S3同時按下,導(dǎo)致PB1和PB2被短接,但是由于由于此時的PB1設(shè)置為輸入,就不存在傳統(tǒng)行列掃描法所存在的高低電平?jīng)_突。
然后:PB2設(shè)置為低電平輸出,PA1,PA2,PB2并設(shè)置為輸入。此時PA1輸入為低電平。說明說明第二行有鍵按下,并且是第一列有鍵按下,即S3被按下。同理也不會出現(xiàn)上述的高低電平?jīng)_突。
最后:至此可以判斷S1和S3被同時按下。整個按鍵掃描過程結(jié)束。
3、改進式行列掃描法的意義
改進式行列掃描法避免了傳統(tǒng)掃描法在掃描過程中,如果同一列有多個按鍵按下時出現(xiàn)的高低電平?jīng)_突,并且程序量不會增加。但是對于上述提到的S1,S2,S3被同時按下的情況,改進式行列掃描法也無法解決,有待進一步探究。
【按鍵掃描處理總結(jié)】相關(guān)文章:
填報高考志愿四大問題處理總結(jié)02-13
地基處理和樁基礎(chǔ)報告03-19
污水處理廠檢修計劃范文(通用5篇)03-28
海雅廣場地下室側(cè)墻裂縫處理的報告(精選10篇)03-19
小學(xué)四年級綜合實踐活動《垃圾的處理》教案(精選10篇)03-15
學(xué)科總結(jié)03-20
電場公式總結(jié)06-08
離?偨Y(jié)精選范文03-19
工會總結(jié)范本03-19