<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于CPLD的矩陣鍵盤掃描模塊設(shè)計(jì)

          基于CPLD的矩陣鍵盤掃描模塊設(shè)計(jì)

          作者: 時(shí)間:2010-12-20 來(lái)源:網(wǎng)絡(luò) 收藏


          鍵盤編碼輸出模塊的時(shí)序仿真圖如圖5所示。

          本文引用地址:http://www.ex-cimer.com/article/191430.htm


          2.4 接口模塊(PCPORT)的功能與時(shí)序仿真
          該模塊用于實(shí)現(xiàn)CPU讀入鍵盤碼以及鍵盤控制信號(hào)的輸出。開(kāi)始時(shí),CPU首先應(yīng)通過(guò)該模塊送出OSCEn=‘1’信號(hào),使振蕩器模塊(OSC)和時(shí)鐘產(chǎn)生模塊(CreatClock)開(kāi)始工作,產(chǎn)生驅(qū)動(dòng)掃描模塊工作的時(shí)鐘信號(hào)F3kHz:接下來(lái)送出鍵盤禁止信號(hào)enKeyOut=0;禁止
          盤在穩(wěn)定工作前隨機(jī)輸出按鍵值;其次送出清除鍵盤緩存狀態(tài)指示位的ClrKey信號(hào);最后再送出鍵盤使能信號(hào)enKeyOut=‘1’,開(kāi)始模塊掃描鍵盤工作。接口模塊的時(shí)序仿真圖如圖6所示。


          2.5 其他模塊的功能
          振蕩器模塊(OSC)為利用Altera公司的IP核產(chǎn)生的MAXII系列內(nèi)帶的振蕩器,用于在使能信號(hào)的控制下產(chǎn)生3.3 MHz的時(shí)鐘輸出。
          時(shí)鐘產(chǎn)生模塊(CreatClock),用于將3.3 MHz的時(shí)鐘分頻產(chǎn)生3 KHz的時(shí)鐘,驅(qū)動(dòng)整個(gè)模塊工作。

          3 控制軟件的設(shè)計(jì)
          本文軟件設(shè)計(jì)的基本思想是:CPU利用定時(shí)中斷查詢鍵盤狀態(tài)并讀入矩陣鍵盤的按鍵碼,如果按鍵碼為需要立即響應(yīng)的特殊功能鍵(如熱啟動(dòng)鍵),即在中斷服務(wù)程序中作出處理,否則直接送入與標(biāo)準(zhǔn)鍵盤共用的鍵盤緩沖區(qū),在鍵盤緩沖區(qū)與標(biāo)準(zhǔn)鍵盤送來(lái)的按鍵碼一起排隊(duì)等待CPU響應(yīng)處理,從而實(shí)現(xiàn)雙鍵盤同時(shí)工作。在向鍵盤緩沖區(qū)寫入按鍵值時(shí),必須使用DOS軟中斷,否則會(huì)由于中斷優(yōu)先級(jí)的原因而使新寫入的按鍵碼得不到響應(yīng)。
          矩陣鍵盤的控制軟件采用C語(yǔ)言編制,利用PC104的定時(shí)器中斷定時(shí)查詢矩陣鍵盤,如果有鍵值,將其存入PC104的鍵盤緩沖區(qū),等待PC104使用??刂瞥绦虻脑创a如下:


          4 測(cè)試結(jié)果
          本文所述的模塊已經(jīng)在多功能電法接收機(jī)中使用,在使用過(guò)程中對(duì)矩陣鍵盤的響應(yīng)時(shí)間、準(zhǔn)確度、CPU處理時(shí)間占用、以及雙鍵盤同時(shí)工作性能等指標(biāo)進(jìn)行了測(cè)試分析,結(jié)果如下:
          1)矩陣鍵盤響應(yīng)時(shí)間和準(zhǔn)確度測(cè)試,理論上計(jì)算矩陣鍵盤的最短響應(yīng)時(shí)間為T=t1+t2+t3+t4=55.9 ms(其中,t1為防抖動(dòng)延時(shí)時(shí)間30ms;t2鍵盤掃描最短用時(shí),共掃描2次用22個(gè)F3 kHz時(shí)鐘周期6.6 ms;t3為鍵盤值暫存時(shí)間,3個(gè)F3kHz時(shí)鐘周期1 ms;t4為查詢鍵盤中斷間隔18.3 ms),考慮到操作鍵盤的速度,測(cè)試方法為全部16個(gè)鍵以3次/s的速度連續(xù)按6次,間隔5 s換一個(gè)鍵,將鍵值輸出到顯示器觀察輸入情況,測(cè)試結(jié)果為:總按鍵數(shù):96;顯示按鍵數(shù):96;漏判按鍵數(shù):0;錯(cuò)判按鍵數(shù):0;準(zhǔn)確率:100%。
          2)矩陣鍵盤占用CPU時(shí)間分析,通過(guò)對(duì)矩陣鍵盤按鍵值的讀入程序分析可知,當(dāng)允許矩陣鍵盤輸出且有鍵按下時(shí),每次中斷服務(wù)程序需要額外執(zhí)行8條語(yǔ)句,大約用時(shí)4μs;當(dāng)允許矩陣鍵盤輸出且沒(méi)有鍵按下時(shí),每次中斷服務(wù)程序需要額外執(zhí)行3條語(yǔ)句,大約用時(shí)1.5μs;與CPU完成矩陣鍵盤掃描工作(假設(shè)從鍵按下到釋放一般用時(shí)300 ms)相比,一次按鍵讀入CPU占用時(shí)間節(jié)省99.998%。
          3)雙鍵盤同時(shí)工作測(cè)試,測(cè)試方法將矩陣鍵盤和標(biāo)準(zhǔn)鍵盤同時(shí)接入系統(tǒng),按1次/s的速度交替按兩鍵盤的按鍵100個(gè),在顯示器上觀察按鍵輸出情況,得出雙鍵盤工作可靠性數(shù)據(jù)如下:總按鍵數(shù):200;顯示按鍵數(shù)200;漏判按鍵數(shù):0;錯(cuò)判按鍵數(shù):0;準(zhǔn)確率:100%。因此,該模塊可以實(shí)現(xiàn)雙鍵盤同時(shí)工作。

          5 結(jié)論
          該模塊經(jīng)過(guò)測(cè)試和使用,得出如下結(jié)論:1)基于的矩陣鍵盤掃描模塊占用CPU時(shí)間很少;2)可以實(shí)現(xiàn)雙鍵盤同時(shí)工作;3)誤判、漏判率低;4)反應(yīng)速度快,能夠處理組合鍵。測(cè)試結(jié)果表明,該方案滿足設(shè)計(jì)要求。該模塊以按鍵的放開(kāi)控制按鍵編碼輸出,因此在鍵按下一段時(shí)間后到釋放按鍵之前不能按一定的間隔連續(xù)輸出按下鍵的鍵值,矩陣鍵盤沒(méi)有連續(xù)按鍵輸出功能。鍵盤碼的讀入采用PC104定時(shí)器中斷(18.3 ms一次)定時(shí)查詢的方式實(shí)現(xiàn),在大多數(shù)情況下都不會(huì)查詢到按鍵事件發(fā)生,也就是說(shuō)矩陣鍵盤占用的比較少的CPU處理時(shí)間中絕大部分被白白浪費(fèi)。如果能夠修改接口模塊實(shí)現(xiàn)更靈活的按鍵外中斷觸發(fā)方式讀入鍵值,還可以節(jié)省更多的時(shí)間。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();