基于arm鍵盤課程設(shè)計(jì)2_第1頁(yè)
基于arm鍵盤課程設(shè)計(jì)2_第2頁(yè)
基于arm鍵盤課程設(shè)計(jì)2_第3頁(yè)
基于arm鍵盤課程設(shè)計(jì)2_第4頁(yè)
基于arm鍵盤課程設(shè)計(jì)2_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基arm課程設(shè)計(jì) 專 業(yè):自動(dòng)化學(xué) 號(hào):17 號(hào)姓 名: 在arm嵌入式應(yīng)用中,人機(jī)交互對(duì)話最通用的方法就是通過(guò)鍵盤和lcd顯示進(jìn)行的,本設(shè)計(jì)是通過(guò)鍵盤向系統(tǒng)發(fā)送各種指令或置入必要的數(shù)據(jù)信息。鍵盤模塊設(shè)計(jì)的好壞,直接關(guān)系到系統(tǒng)的可靠性和穩(wěn)定性。1實(shí)例說(shuō)明在arm應(yīng)用系統(tǒng)中,鍵盤掃描只是arm的工作之一,arm在忙于各項(xiàng)工作任務(wù)時(shí),如何兼顧鍵盤的輸入,則取決于鍵盤的工作方式。鍵盤工作方式的選取原則是既要保證能及時(shí)響應(yīng)按鍵操作,又要不過(guò)多占用arm的工作時(shí)間。本實(shí)例介紹arm系統(tǒng)中常用的行列式鍵盤電路的硬件設(shè)計(jì)、鍵盤掃描及鍵盤測(cè)試,行列式鍵盤適應(yīng)于按鍵數(shù)量較多,又不想使用專用鍵盤芯片的場(chǎng)合。這種方

2、式的按鍵接口由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。2鍵盤工作原理2.1常用鍵盤接口常用按鍵接門可分為獨(dú)立式按鍵接口、行列式按鍵接口和專用芯片式等。具體采用哪 種方式,可根據(jù)所設(shè)計(jì)系統(tǒng)的實(shí)際情況而定。下面分別介紹這幾種接口方式的優(yōu)缺點(diǎn)及適用場(chǎng)合。1.獨(dú)立式按鍵接口獨(dú)立式按鍵接口設(shè)計(jì)優(yōu)點(diǎn)是電路配置靈活,軟件實(shí)現(xiàn)簡(jiǎn)單。但缺點(diǎn)也很明顯,每個(gè)按鍵需要占用一根口線,若按鍵數(shù)量較多,資源浪費(fèi)將比較嚴(yán)重,電路結(jié)構(gòu)也變得復(fù)雜。因此本方法主要用于按鍵較少或?qū)Σ僮魉俣纫筝^高的場(chǎng)合。軟件實(shí)現(xiàn)時(shí),可以采用中斷方式,也可以采用查詢方式,示意圖如圖13-1所示。2.行列式按鍵接口行列式按鍵接口示意圖如圖13-4(a

3、)所示,其使用原理將在下節(jié)詳細(xì)講述。行列式按鍵接口適應(yīng)于按鍵數(shù)量較多,又不想使用專用鍵盤芯片的場(chǎng)合。這種方式的按鍵接口由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。這種方式的優(yōu)點(diǎn)就是相對(duì)于獨(dú)立接口方式可以節(jié)省很多i/o資源,相對(duì)于專用芯片鍵盤可以節(jié)省成本,且更為靈活。缺點(diǎn)就是需要用軟件處理消抖、重鍵等。行列式按鍵接口是一種老式的鍵盤接口,其鍵掃描方法是幾乎所有pc鍵盤所采用的方法。3專用芯片式設(shè)計(jì)專用鍵盤處理芯片一般功能比較完善,芯片本身能完成對(duì)按鍵的編碼、掃描、消抖和重鍵等問(wèn)題的處理,甚至還集成了顯示接口功能。專用鍵盤處理芯片的優(yōu)點(diǎn)很明顯,可靠性高,口簡(jiǎn)單,使用方便,適合處理按鍵較多的情況。但

4、在很多應(yīng)用場(chǎng)合,考慮成本因素,可能并不是最佳選擇。2.2行列式鍵盤工作原理arm嵌入式系統(tǒng)使用常用的行列式鍵盤電路,此電路的優(yōu)點(diǎn)是比較節(jié)省i/0口線,并且接口簡(jiǎn)單。它的工作模式如圖13-2所示。它的行線與按鍵的一個(gè)引腳相連,列線與按鍵的另一個(gè)引腳相連。平時(shí)列線被置成低電平,沒(méi)有按鍵被按下時(shí),行線保持高電平,而有按鍵被按下時(shí),行線被拉成低電平。這時(shí)候控制器知道有按鍵被按下,但只能判斷出在哪一行,不能判斷出在哪一列,因此接下來(lái)就要進(jìn)行鍵盤掃描,以確定具體是哪個(gè)按鍵被按下。2.3鍵盤掃描流程在行列式鍵盤方式中,arm對(duì)鍵盤的掃描采取程序控制方式,一旦進(jìn)入鍵掃描狀態(tài),則反復(fù)地掃描鍵盤,等待用戶從按鍵上

5、輸入命令或數(shù)據(jù)。而在執(zhí)行鍵入命令或處理鍵入數(shù)據(jù)過(guò)程中,arm將不再響應(yīng)鍵入要求,直到arm返回重新掃描鍵盤為止。編程掃描程序流程圖如圖13-3所示。3硬件電路設(shè)計(jì)3.1arm鍵盤接口arm由通用接口gpl支持鍵盤行掃描(scanning keyboard row)和支持鍵盤陣列掃描(scanning keyboard mattix)。其中,port a、port b、port d豐要用于外圍芯片信號(hào)的控制,port e有雙重作用。例如,port a控制鍵盤的行信號(hào),port b用于rs-232,port d用丁控制modem、fpga。arm內(nèi)置點(diǎn)陣式鍵盤,專用的8位列輸出col7:0 ,po

6、rt a口可復(fù)用作鍵盤的行輸入,任意一個(gè)鍵按下時(shí)都會(huì)產(chǎn)生中斷。其特點(diǎn)如下:列輸出能被驅(qū)動(dòng)成全低、全高或者全高阻,允許8x8鍵矩陣的任意組和按鍵;port a8位或的結(jié)果驅(qū)動(dòng)一個(gè)鍵盤中斷;鍵盤中斷能夠喚醒系統(tǒng)。3.2鍵盤電路原理圖實(shí)現(xiàn)的系統(tǒng)硬件構(gòu)成為44的行列式鍵盤,鍵盤的連接電路如圖13-4所示。行線通過(guò)一個(gè)電阻被上拉到vcc,vcc是+5v電壓。行線與按鍵的一個(gè)引腳相連,列線與按鍵的另一個(gè)引腳相連。平時(shí)列線被置成低電平,沒(méi)有按鍵被按下時(shí),行線保持高電平:而有按鍵被按下時(shí),行線被拉成低電平,這時(shí)候控制器知道有按鍵被按下,但只能判斷出在哪一行,不能判斷出在哪一列,因此接下來(lái)就要進(jìn)行鍵盤掃描,以確

7、定具體是哪個(gè)按鍵被按下。鍵盤掃描的過(guò)程是將列線逐列置成低電平,然后讀取行線狀態(tài),直到行線中出現(xiàn)低電平,這時(shí)可知哪一列是低電平;然后將行線與列線的狀態(tài)裝入鍵碼寄存器,進(jìn)行按鍵譯碼,得到按下的按鍵的相應(yīng)編碼,這樣就完成了按鍵掃描過(guò)程。當(dāng)然,一個(gè)完整的按鍵掃描過(guò)程還需要配合相應(yīng)的鍵盤去抖動(dòng)手段才能正確地識(shí)別按鍵,不會(huì)發(fā)生重鍵和錯(cuò)誤判斷等情況。對(duì)于使用者來(lái)說(shuō),利用此電路可以作為底層嵌入式的鍵盤控制器,即實(shí)現(xiàn)對(duì)鍵盤的掃描,識(shí)別出鍵碼??刂破髋carm的通信協(xié)議可以采用串口、并行、ps/2、usb等。4軟件設(shè)計(jì)4.1鍵盤掃描程序鍵盤掃描程序的實(shí)現(xiàn)是首先給兩個(gè)(矩陣中的2)口線上送高電平,然后在一個(gè)循環(huán)體內(nèi)依

8、次在端口po(矩陣中的8)經(jīng)鎖存器送一個(gè)只有一位為o其余為1的電平(即十六進(jìn)制數(shù)0xfe循環(huán)左移一位實(shí)現(xiàn)),判斷移位的次數(shù)和兩個(gè)口線中的哪個(gè)為低電平亦即邏輯o來(lái)實(shí)現(xiàn)。下面通過(guò)具體程序來(lái)說(shuō)明。當(dāng)然這只是最基本的鍵盤掃描子程序,當(dāng)掃捕到鍵號(hào)以后還要根據(jù)其他一些具體條件來(lái)進(jìn)行相應(yīng)的譯碼,才能決定最后按下的鍵代表什么具體值。鍵值有功能鍵、數(shù)字鍵和字母鍵,每種鍵值都有不同的譯碼處理。鍵盤掃描子程序是與硬件結(jié)構(gòu)相對(duì)應(yīng)的,因此考慮到端口資源的充分利用,改用44的矩陣鍵盤結(jié)構(gòu)可以節(jié)省兩個(gè)i/o端口,但是鍵盤掃描程序要稍微復(fù)雜一些;但由于arm其運(yùn)行速度遠(yuǎn)遠(yuǎn)超過(guò)傳統(tǒng)的微處理器,這一點(diǎn)帶來(lái)的影響可以忽略不計(jì)。下面是改進(jìn)后的鍵盤掃描子程序。這是改進(jìn)后鍵盤的掃描子程序,而鍵盤的譯碼處理與用傳統(tǒng)方式實(shí)現(xiàn)的系統(tǒng)基本相同。譯碼處理用了比較多的狀態(tài)變量,這是因?yàn)樵阪I盤上除功能鍵和數(shù)字鍵o以外,其他的數(shù)字鍵還有第二功能。岡此在譯碼過(guò)程中設(shè)置了一個(gè)結(jié)構(gòu)體變量,用來(lái)存放每個(gè)鍵對(duì)應(yīng)的所有狀態(tài),對(duì)應(yīng)的程序代碼如下所示。在每個(gè)鍵的譯碼處理中,只要根據(jù)相應(yīng)的狀態(tài)變量就可以得到每個(gè)鍵在什么狀態(tài)中應(yīng)該得到的是什么鍵值,因而在程序中不同的環(huán)境下就可以只設(shè)置不同的狀態(tài)變量,而不用去考慮按鍵及其處理情況。4.2鍵盤測(cè)試程序以下是鍵盤測(cè)試程序,當(dāng)結(jié)果正確時(shí),從串口輸出按下的鍵值,連續(xù)按鍵時(shí)鍵值將隨著改變

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論