鍵鍵盤管理晶元

2021-08-07 03:02:20 字數 2608 閱讀 6209

在微控制器應用系統中,存在多種形式的外部資料輸入介面介面,例如rs-232c序列通訊、鍵盤輸入等[1,4]。其中利用鍵盤介面輸入資料,是實現現象實時除錯、資料調整和控制最常用的方法。微控制器的外圍鍵盤擴充套件電路有多種實現方式,例如直接利用i/o介面線或外接8255a介面晶元,配合適當的介面管理程式,就可以實現外圍鍵盤擴充套件功能。

但是,在這些方法中,鍵盤擴充套件電路需要占用微控制器的資源對按鍵進行監控和處理,這對要求高實時性處理的微控制器系統是不實現的。為了解決這一問題,可以使用專用鍵盤介面晶元(例如intel8279)[2]來組建鍵盤子系統。而且,這類專用鍵盤介面晶元在使用靈活性方面尚有欠缺,尤其當使用者需要實現某些特定功能時,其缺點更為明顯。

針對上述問題,本文提出一種利用複雜可程式設計邏輯器件(complex programmable logic device,cpld)設計技術[3]實現專用鍵盤介面晶元的方案。

1 系統原理

圖1是微控制器系統中鍵盤子系統的構成原理框圖。其中鍵盤介面晶元kb-core是該子系統的核心部分,它應具備如下功能:第一,產生按鍵掃瞄時序,並進行硬體去抖動。

如果直按鍵按下,實現按鍵編碼、中斷處理等功能。第二,可以區分處理數字鍵和功能鍵。數字鍵鈄由介面晶元暫存,而當功能鍵被按下時申請cpu中斷處理;對多個按鍵同時按下,按一定的編碼優先順序處理。

第三,提供與mcs-51系列微控制器相容的介面,微控制器可以讀取晶元中儲存的資料或功能**。第四,提供資料顯示介面,可以直接驅動4位七段led數碼管,並進行動態掃瞄顯示。

按鍵根據鍵盤子系統的服務物件擬設定子數字鍵(0~9)、功能鍵(row、col、dat)、清零鍵(clr)共14個,排成4×4的矩陣,有兩個未定義。

2 專用鍵盤介面晶元功能結構設計

根據上述專用鍵盤晶元kb-core的功能要求,圖2示出本晶元內部應有的結構框圖。

其工作原理如下:(1)鍵盤掃瞄控制及編碼電路中內含乙個環形計數器。該計數器計數輸出至ksl[0~3]端作為鍵盤掃瞄訊號。

每當掃瞄訊號發生變化時,鍵盤掃瞄控制器從krl[0~3]端讀入某一行按鍵的狀態訊號。如果沒有按鍵被按下,則掃瞄下一行;如果有按鍵被按下,則控制器鎖定被掃瞄行,並延遲約10ms去抖動,然後再次掃瞄被鎖定行以確定按鍵是否誤讀。如果按鍵被證實按下,則一直等待直至使用者鬆開該鍵。

與此同時,數字鍵碼將被儲存到先進先出儲存器,功能鍵則直接產生中斷請求訊號irq,通知cpu讀取鍵碼dbo[0~7]。(2)fiforam中資料容量為16位。每4位對應乙個字形符,所以七段led數碼管需要4位。

(3)掃瞄發生器一方面產生led的位選訊號dsl[0~3],另一方面產生掃瞄顯示輸出控制電路的位資料選通訊號。掃瞄顯示輸出控制電路根據位資料選通訊號讀取fifo ram中相對應的資料,然後送七段解碼電路輸出dp[0~6]驅動led顯示屏的段選訊號電極。(4)介面控制電路一方面用來識別cpu的讀時序;另一方面用來對位址訊號線a1a0解碼,實現對輸出資料的選擇。

若a0a1=「00」,則輸出fifo ram中的低位元組資料;若a0a1=「01」,則輸出fifo ram中的高位元組資料;若a0a1=「10」,則輸出控制資料(表明row、col、dat中哪乙個被按下);若a0a1=「11」,則不輸出fifo ram中的任何資料。

3 專用鍵盤介面晶元核心部分的狀態描述與實現

為了實現上述專用鍵盤介面晶元功能結構,利用可程式設計邏輯技術對各個功能塊進行邏輯的序描述和實現。由於鍵盤掃瞄控制和去抖的邏輯時序設計較複雜並具典型性,因此下面將對鍵盤掃瞄控制和去抖部分的設計思想進行介紹。

鍵盤掃瞄時序的基本原理[4]可能用圖3所示的狀態圖表示。狀態圖的輸入變數為rst(復位)、key-press(有按鍵)、timer-over(去抖動延時結束);輸出變數包括en-scan(掃瞄行轉移)、en-coded(鍵盤編碼啟動)、start-timer(開啟去抖動延時)。從圖3中知道,狀態s0→s1→s2為按鍵掃瞄狀態鍵,狀態s3→s4→s5為去抖延時狀態鏈,狀態s6為按鍵保持期。

當按鍵被按下時,進入啟動(s3)去抖延時狀態鏈;去抖延時結束後(s5),若按鍵沒有按下則恢復掃瞄狀態鍵(s0);若按鍵確認被按下則進入保持期(s6),並輸出按鍵編碼,維持至按鍵鬆開。

根據狀態圖3和上述的狀態轉移描述,進行鍵盤掃瞄控制電路的設計,結果如圖4所示。其中h3是6位迴圈移位暫存器,由時鐘clk觸發實時狀態移位。移位暫存器的輸出q0~q5分別代表鍵盤掃瞄控制電路的狀態s0~s6,當然它們並非一一對應,但實現的功能相同。

值得一提的是,如果專用鍵盤晶元kb-core的外部時鐘clk來自微控制器的ale訊號(如圖1所示),當微控制器時鐘為6mhz時,則專用鍵盤晶元kb-core的外接時鐘為1mhz的方波訊號,訊號週期為1μs。如果將該時鐘訊號經過乙個分頻器,使其輸出的訊號週期約為tclk=1μs×2 12≈4ms,然後再作為h3的時鐘訊號。這意味著鍵盤掃瞄控制電路約4ms掃瞄一行按鍵。

如果h3中的q2態沒有被使用,則可以實現約8ms的去抖動延時。通過這樣的設計,可以免除延時計數器,簡化電路。

4 專用鍵盤介面晶元的實現

根據實時資料校正系統的設計要求,使用了34上自定義i/o引腳和pc44封裝的cpld來實現專用鍵盤介面晶元kb-core。晶元型號的選擇依據綜合所需要的巨集單元(macrocells)個數決定。如果借助硬體描述語言vhdl[5]對上述設計進行描述,綜合結果需要約140個巨集單元;如果改用原理圖輸入方式,則只需約60個巨集單元。

因此選用xc9572晶元可以滿足上述專用鍵盤介面晶元kb-core的要求。實際使用如圖1和圖2所示。操作結果表明鍵盤介面晶元效能穩定。

鍵盤快捷鍵

alt 空格 r 恢復最小化視窗 alt 空格 x 最大化當前視窗 alt 空格 m 移動視窗 alt 空格 s 改變視窗大小 alt tab 兩個程式交換 alt 255 qq號中輸入無名人 alt f 開啟檔案選單 alt v 開啟檢視選單 alt e 開啟編輯選單 alt i 開啟插入選單 a...

鍵盤快捷鍵

ctrl s 儲存 ctrl w關閉程式 ctrl n 新建 ctrl o 開啟 ctrl z 撤銷 ctrl f 查詢 ctrl x 剪下 ctrl c 複製 ctrl v 貼上 ctrl a 全選 ctrl 縮小文字 ctrl 放大文字ctrl b 粗體 ctrl i 斜體 ctrl u 下劃線...

鍵盤快捷鍵

ctrl組合鍵 ctrl a 全選 ctrl b 整理收藏夾 ctrl c 複製 ctrl d 刪除 新增收藏 在word中是修改選定字元格式,在ie及傲遊中是儲存為收藏 ctrl e 搜尋助理在word中是段落居中 ctrl f 查詢 ctrl g 在word中是定位 ctrl h 歷史記錄在wo...