資源描述:
《矩陣式鍵盤的輸入實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、實(shí)驗(yàn)六、矩陣式鍵盤的輸入實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)矩陣式鍵盤工作原理學(xué)習(xí)矩陣式鍵盤接口的電路設(shè)計(jì)和程序設(shè)計(jì)實(shí)驗(yàn)設(shè)備仿真器單片機(jī)最小系統(tǒng)實(shí)驗(yàn)教學(xué)模塊矩陣式鍵盤實(shí)驗(yàn)?zāi)K動(dòng)態(tài)掃描數(shù)碼管顯示模塊實(shí)驗(yàn)要求要求實(shí)現(xiàn):在矩陣式鍵盤中的某個(gè)鍵被按下時(shí),8位LED動(dòng)態(tài)顯示器上最低位顯示該鍵對(duì)應(yīng)的字符,以前的字符向高位推進(jìn)一位實(shí)驗(yàn)原理矩陣式由行線和列線組成,按鍵位于行、列的交叉點(diǎn)。一個(gè)4*4的行列結(jié)構(gòu)可以構(gòu)成一個(gè)16個(gè)按鍵的鍵盤。很明顯,在按鍵數(shù)量較多的場(chǎng)合,矩陣式鍵盤與獨(dú)立式鍵盤相比,要節(jié)省很多的I/O端口矩陣式鍵盤工作原理按鍵
2、是設(shè)置在行列的交接點(diǎn)上,行列分別連接到按鍵開關(guān)的兩端。行線通過(guò)上拉電阻接到+5V上。平時(shí)無(wú)按鍵按下時(shí),行線處于高電平狀態(tài),而當(dāng)有按鍵按下時(shí),行線電平狀態(tài)將由與此行線相連的列線電平?jīng)Q定。列線電平如果為低,則行線電平為低,列線電平如果為高,則行線電平則為高。這一點(diǎn)是識(shí)別矩陣式鍵盤是否被按下的關(guān)鍵所在。由于行列式鍵盤中行列線為多鍵共用,各按鍵均影響該鍵所在行和列的電平。因此,各按鍵彼此將相互發(fā)生影響,所以必須將行列線信號(hào)配合起來(lái)并作適當(dāng)?shù)某鰜?lái),才能確定閉合鍵的位置。鍵被按下時(shí),與此鍵相連的行線電平將由與此相
3、連的列線電平?jīng)Q定,而行線電平在物件按顯示處于高電平狀態(tài)。如果讓所有列線出于高電平時(shí)沒(méi)法識(shí)別出按鍵的,現(xiàn)在發(fā)過(guò)來(lái),讓所有列線處于低電平,很明顯,按下的鍵所在行電平將也被置為低電平,根據(jù)此變化,便能判定該行一定又鍵被按下。但我們還不能確定是這一行的哪個(gè)鍵被按下。所以,為了進(jìn)一步判定到底是哪一列的鍵被按下,可在某一時(shí)刻只讓一列線處于低電平。而其余所有列線處于高電平。當(dāng)?shù)谝涣袨榈碗娖?,其余各列為高電平時(shí),因?yàn)殒I4被按下,所以死一行扔處于高電平狀態(tài);當(dāng)?shù)诙袨榈碗娖?,其余各列為高電平時(shí),同樣哦我們會(huì)發(fā)現(xiàn)第一行仍
4、處于高電平狀態(tài)。知道讓第四列為低電平,其余各列為高電平時(shí),因?yàn)槭?號(hào)鍵被按下,所以第一行的高電平狀態(tài)轉(zhuǎn)換到第四列所處的低電平,據(jù)此,我們確信第一行第四列交叉點(diǎn)處的按鍵即4號(hào)鍵被按下。識(shí)別鍵盤有無(wú)鍵被按下的方法是:讓所有列線均為低電平,檢查各行線電平是否有低電平,如果有。則說(shuō)明有鍵被按下,如果沒(méi)有,則說(shuō)明無(wú)鍵被按下識(shí)別具體按鍵的方法是:逐列置零電平,并檢查各行線電平的變化,如果某行電平由高電平變?yōu)榈碗娖?,則可確定此行此列交叉點(diǎn)處按鍵被按下。請(qǐng)注意由于鍵盤模塊做了特殊的處理,是的矩陣式鍵盤的行線輸出的電平
5、狀態(tài)與前賣弄所述正好相反。即,行線的輸出電平,在平時(shí)為低電平,有鍵按下時(shí),該鍵對(duì)應(yīng)的行線輸出為高電平。電路圖KEYVALUEEQU40HDISPPTREQU37HFIRSTPTREQU30HORG0000HAJMPINITORG0030HINIT:MOVR0,#FIRSTPTRMOVR1,#08HINITLOOP:MOVA,#10HMOV@R0,AINCR0DJNZR1,INITLOOPLOOP:MOVP2,#00HMOVR4,#04HMOVR5,#0EFHKEY:MOVA,R5MOVP1,AMOVA
6、,P1MOVKEYVALUE,AORLA,#0F0HCJNEA,#0F0H,KEY_ONACALLDISPMOVA,R5RLAMOVR5,ADJNZR4,KEYJMPLOOPKEY_ON:ACALLDL10MSMOVA,P1CJNEA,KEYVALUE,KEYK1:CJNEA,#0E1H,K2LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK2:CJNEA,#78H,K3LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK3:C
7、JNEA,#74H,K4LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK4:CJNEA,#72H,K5LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK5:CJNEA,#071H,K6LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK6:CJNEA,#0B8H,K7LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK7:CJNEA,#0B4H,K8LC
8、ALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK8:CJNEA,#0B2H,K9LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK9:CJNEA,#0B1H,K10LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK10:CJNEA,#0D8H,K11LCALLMOVDISPMOVFIRSTPTR,#0ACALLDISPLJMPLOOPK11:C