isp1016實(shí)現(xiàn)機(jī)載導(dǎo)航系統(tǒng)的鍵盤控制_第1頁
isp1016實(shí)現(xiàn)機(jī)載導(dǎo)航系統(tǒng)的鍵盤控制_第2頁
isp1016實(shí)現(xiàn)機(jī)載導(dǎo)航系統(tǒng)的鍵盤控制_第3頁
isp1016實(shí)現(xiàn)機(jī)載導(dǎo)航系統(tǒng)的鍵盤控制_第4頁
isp1016實(shí)現(xiàn)機(jī)載導(dǎo)航系統(tǒng)的鍵盤控制_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

isp1016實(shí)現(xiàn)機(jī)載導(dǎo)航系統(tǒng)的鍵盤控制摘要介紹了用可編程邏輯芯片設(shè)計機(jī)載導(dǎo)航系統(tǒng)鍵盤控制器的設(shè)計要點(diǎn),給出了接口信號及驅(qū)動程序的核心代碼。該設(shè)計具有典型性、通用性和實(shí)用性,并可用到各種鍵盤控制器中。關(guān)鍵詞鍵盤控制器在線可編程掃描線10161鍵盤控制器的外部接口信號無論在任何計算機(jī)系統(tǒng)中,鍵盤都是最重要的輸入設(shè)備,但是普通鍵盤不能滿足機(jī)載要求。筆者在新一代電子航空圖導(dǎo)航系統(tǒng)中,用公司的1016設(shè)計了一個4x5鍵盤控制器以下簡稱,經(jīng)實(shí)際應(yīng)用,該鍵盤控制器通用性較強(qiáng)。圖1是其鍵盤和顯示器外觀示意圖。一航情況下,應(yīng)該是的一個外部設(shè)備,它一方面監(jiān)測各按鈕狀態(tài),另一方面接受的查詢并主動向請求中斷。因此,外部接口信號分接口信號和鍵盤按鈕矩陣狀態(tài)信號。圖2為通用外部接口信號示意圖,其定義如下*復(fù)位,低有效。該信號有效時將異步復(fù)位內(nèi)部所有寄存器,以對進(jìn)行初始化;*工作時鐘,頻率為100;*片選,低有效;*讀信號,低有效;*0片內(nèi)地址,用于區(qū)分片內(nèi)寄存器;*中斷請求,高有效。當(dāng)鍵盤控制器檢測到有效按鍵時,該腳為高,當(dāng)讀走按鍵編碼時,自動撤銷中斷請求;*4—0三態(tài)數(shù)據(jù)線;*3-0掃描輸出,按鍵盤矩陣的列線;*4—0回復(fù)線,接鍵盤矩陣的行線。實(shí)際上,大部分矩陣鍵盤的行列是可對換的。2接口寄存器定義及驅(qū)動程序針對接口設(shè)計有2個只讀寄存器,即數(shù)據(jù)寄存器和狀態(tài)寄存器。數(shù)據(jù)寄存器用于保持有效按鍵的編碼值,該編碼值就是按鍵所在的行列;而狀態(tài)寄存器則用于保持按鍵的狀態(tài)信息,以供查詢。當(dāng)訪問時即和同時有效,0=0則訪問數(shù)據(jù)寄存器,否則訪問狀態(tài)寄存器。表1、表2分別是數(shù)據(jù)寄存器和狀態(tài)寄存器的定義。表1數(shù)據(jù)寄存器定義76543210列值行值表2狀態(tài)寄存器定義765432100000顯然,的編程可以有2種模式,一種是軟件查詢,另一種是中斷驅(qū)動。由于本系統(tǒng)采用為運(yùn)行環(huán)境,對應(yīng)用程序透明,所以,將請求直接和的某一空閑中斷9相連接,以便使驅(qū)動程序能將作為一個設(shè)備打開。在初始化加載時,應(yīng)將對應(yīng)中斷觸發(fā)設(shè)置為電平敏感。其核心代碼如下#0401鍵盤狀態(tài)寄存器地址#0400鍵盤數(shù)據(jù)寄存器地址….,,;>…=&01;讀數(shù)據(jù)寄存器,低6位有效=>>3;右移3位,提取按鍵列值=&007;提取按鍵行值}至此,就可根據(jù)和的值將它翻譯為某一標(biāo)準(zhǔn)鍵,并存入鍵盤緩沖區(qū)。3內(nèi)部邏輯設(shè)計內(nèi)部控制邏輯設(shè)計的關(guān)鍵是掌握按鍵識別原理。圖3所示是其鍵盤識別原理圖。設(shè)計時,可將按鍵設(shè)置在行線、列線的交點(diǎn)上。行線通過上拉電阻接到+5,無按鍵時處于高電平。有按鍵時行線電平狀態(tài)由列線決定。所有列線均為高則行線高,任一列線為低則行線低。處理的核心就在于確認(rèn)某一行線為低時,能定位出對應(yīng)的列線。31輸出掃描線30在設(shè)計輸出掃描線時,可以使用一個2"狀態(tài)機(jī)5[10來依次輪流使掃描線輸出為低電平。驅(qū)動時鐘的周期為640,亦即每即掃描線持續(xù)640的低電平。將狀態(tài)機(jī)的狀態(tài)編碼值和當(dāng)前周期為低電平的掃描線序號對應(yīng)起來,即可簡化后續(xù)處理。圖4是掃描線輸出波形。注意,無論何種按鍵組合,在任一狀態(tài),有且僅有一個掃描線為低電平,否則后續(xù)處理將無法正確識別。32鍵盤編碼處理回復(fù)線40時,應(yīng)該對其中為低電平的行線進(jìn)行編碼。5個行線需要3"寄存器,記為[50]其真值表如下[40]->[20][,,,,]->[0,0,0];0[,,,,]->[0,0,1];1[,,,,]->[0,1,0];2[,,,,]->[0,1,1];3[,,,,]->[1,0,0];4當(dāng)確認(rèn)是有效按鍵后,應(yīng)把行列編碼值放入緩沖,以供讀取,其邏輯表達(dá)如下式中,[1,0是記錄有效按鍵的掃描線編碼,即當(dāng)時的[10狀態(tài)。33的讀操作讀狀態(tài)寄存器時,系統(tǒng)把中斷請求寄存器的值送出,而讀數(shù)據(jù)寄存器時,它將把緩沖的按鍵值送出,處理讀操作的表達(dá)式如下[40]=!&!寄存器由三態(tài)控制[40]=!0&[40#0=0送按鍵數(shù)據(jù)0&[,,,;]0=1;送狀態(tài)二!#!&!&!0讀數(shù)據(jù)寄存器時應(yīng)撤銷中斷34鍵盤處理狀態(tài)機(jī)該狀態(tài)處理機(jī)是處理的核心。圖5是其狀態(tài)轉(zhuǎn)移圖,其驅(qū)動時鐘應(yīng)該比掃描周期快而且應(yīng)該是它的整數(shù)倍。此處采用的80時鐘周期是掃描周期的8倍。下面討論其狀態(tài)轉(zhuǎn)移條件。0復(fù)位狀態(tài)1記錄當(dāng)前掃描周期2若有低電平的回復(fù)線10;11啟動延時去抖計數(shù)器,延時10242無條件進(jìn)入下一狀態(tài)22去抖狀態(tài)去抖正確303確認(rèn)狀態(tài)1將有效鍵值打入緩沖2設(shè)置4改進(jìn)建議上述完全可以滿足一般系統(tǒng)對鍵盤的要求,但仍然可以改進(jìn)以使之更加智能化。例如使能夠?qū)Φ淖x操作和寫入

溫馨提示

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

評論

0/150

提交評論