|
面是書上習(xí)慣4X4鍵盤掃描電路用法:軟件部分請(qǐng)參考:4X4鍵盤掃描程序
上面4X4鍵盤掃描電路是比較常見的,發(fā)表一下個(gè)人意見:
1、ABCD組的掃描線上可以不加上拉電阻,可以使用AVR單片機(jī)的內(nèi)部上拉電阻。
2、AVR單片機(jī)的I/O口為標(biāo)準(zhǔn)I/O口,可以高低電平驅(qū)動(dòng)輸出,鍵盤掃描線直接與I/O口相連存在一定的風(fēng)險(xiǎn)。
下面為建議使用4X4鍵盤電路用法:
建議使用上面的4X4鍵盤接法,用電阻緩沖一下,一來可以防止鍵盤輸出高低電平出現(xiàn)短路,對(duì)鍵盤部分過來的干擾也有好處。
下面再說說軟件設(shè)計(jì)部分:
現(xiàn)在就我知道的鍵盤一般有兩種讀取方式,循環(huán)掃描法、查表法。
循環(huán)掃描法:4X4鍵盤分為4行和4列,CPU對(duì)每一條掃描線進(jìn)行讀取,然后計(jì)數(shù)得到按鍵值,這種方式用的比較多。
查表法:對(duì)行和列讀取一次,然后通過查表得到按鍵值。程序很簡(jiǎn)單,建議使用這種方式。
循環(huán)掃描法在C51上應(yīng)用很多,可以正常使用。但在AVR單片機(jī)上采用這種方式就不大好了,因?yàn)锳VR單片機(jī)輸出的高低電平都有相同驅(qū)動(dòng)能力。按照上面圖紙,如果S1S4同時(shí)按下的話,就會(huì)出現(xiàn)短路現(xiàn)象,原理如下圖:
如果使用第二張圖紙的接法可以得到一減經(jīng),但錯(cuò)誤現(xiàn)象還是存在。最主要的是鍵盤上不可以同時(shí)出現(xiàn)兩個(gè)不同的電平,這樣才不會(huì)出現(xiàn)短路。但這要是在循環(huán)掃描法上實(shí)現(xiàn)起來就話,I/O狀態(tài)變換就很復(fù)雜。
如果要使用查表法的話就完全沒有這種問題,如果有不同的見解請(qǐng)?zhí)岢鰜硪煌接憽?/td> |
|