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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC單片機人機接口模塊獨立式按鍵的程序設(shè)計

          PIC單片機人機接口模塊獨立式按鍵的程序設(shè)計

          作者: 時間:2013-03-14 來源:網(wǎng)絡(luò) 收藏
            下面是查詢方式下的鍵盤程序,程序中沒有使用散轉(zhuǎn)指令,也沒有軟件防抖動措施,只包括按鍵查詢、鍵功能程序轉(zhuǎn)移。FP0~FP7為功能程序入口地址標(biāo)號,PROM0~PROM7分別為每個按鍵的功能程序。

            程序清單(設(shè)I/O口為P1口)如下:

            由此程序可以看出,各按鍵由軟件設(shè)置了優(yōu)先級,優(yōu)先級順序依次為0~7。

            本節(jié)所講的模塊中,在按鍵按下或彈起時經(jīng)常會出現(xiàn)一些毛刺,所以在首次檢測到輸入的值后應(yīng)添加一個延時程序DELAY。

            這個延時程序延時100ms左右,延時后再檢測輸入的值,如果改變了,則證明此時按鍵按下或彈起時讀出的值是不準(zhǔn)確的,再調(diào)用延時程序DELAY,延時100ms之后,再繼續(xù)查看。

            本例采用4MHz的品振,時鐘周期是250ms,由于的指令周期是4倍時鐘周期,即1μs,要延時100ms,可以設(shè)置兩層循環(huán),另外,跳轉(zhuǎn)指令GOTO需要兩個指令周期,自減1并且判斷指令DECFSZ需要一個指令月期,所以要進行100000/(2+1)約為33333個指令周期。

            現(xiàn)設(shè)內(nèi)部循環(huán)為256次,則外部循環(huán)約為130次,因為本例對延時的精度要求并不很高,所以本例中的設(shè)計只進行了近似的計算,程序流程如圖所示。

            圖 程序流程

           ?。?)主程序。

            首先設(shè)置端口C為輸入口,端口D為輸出口,然后循環(huán)檢測端口C的狀態(tài),若有鍵按下,則延時去抖動,再由端口D顯示。


          上一頁 1 2 下一頁

          評論


          相關(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); })();