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