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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)鍵盤掃描匯編程序

          PIC單片機(jī)鍵盤掃描匯編程序

          作者: 時(shí)間:2012-12-11 來源:網(wǎng)絡(luò) 收藏

          ;**********鍵盤去抖子程序(約8ms的延時(shí))** ***************
          KEYDELAY
          MOVLW 0X0A
          MOVWF DEYH
          AGAIN2 MOVLW 0XFF
          MOVWF DEYL
          AGAIN1 DECFSZ DEYL,1
          GOTO AGAIN1
          DECFSZ DEYH,1
          GOTO AGAIN2
          RETURN
          ;***************鍵服務(wù)子程序****************
          ;確定鍵值的子程序
          KEYSERVE
          JIANZHI BCF PORTB,1
          BCF PORTA,3
          MOVLW 0X03
          MOVWF PORTE ;K1,K2置低電平,K3,K4置高電平
          NOP
          NOP ;使引腳電平穩(wěn)定
          BTFSS PORTB,4
          GOTO K1K2 ;RB4為0,表示按鍵為K1,K2中的一個(gè)
          GOTO K3K4 ;RB4為1,表示按鍵為K3,K4中的一個(gè)

          K1K2 BCF PORTB,1
          BSF PORTA,3 ;K1置低電平,K2置高電平
          NOP
          NOP ;使引腳電平穩(wěn)定
          BTFSS PORTB,4
          GOTO K1 ;RB4為0,表示按鍵為K1
          GOTO K2 ;RB4為1,表示按鍵為K2

          K3K4 BCF PORTE,0
          BSF PORTE,1 ;K3置低電平,K4置高電平
          NOP
          NOP ;使引腳電平穩(wěn)定
          BTFSS PORTB,4
          GOTO K3 ;RB4為0,表示按鍵為K3
          GOTO K4 ;RB4為1,表示按鍵為K4

          K1 MOVLW 0X03
          MOVWF JIANR
          GOTO JIANW
          K2 MOVLW 0X05
          MOVWF JIANR
          BCF PORTA,3
          GOTO JIANW
          K3 MOVLW 0X07
          MOVWF JIANR
          GOTO JIANW
          K4 MOVLW 0X09
          MOVWF JIANR ;以上根據(jù)按下的鍵把相應(yīng)的值送給JIANR
          BCF PORTE,1
          JIANW BTFSS PORTB,4
          GOTO JIANW ;為了防止一次按鍵多次識(shí)別,等鍵松開才返回
          RETURN
          ;****************************************
          MAIN NOP
          CALL INITIAL ;調(diào)用初始化子程序
          LOOP
          CALL KEYSCAN ;查鍵
          BTFSC FLAG,F(xiàn)0
          CALL KEYDELAY ;若檢測(cè)到有鍵按下,則調(diào)用軟件延時(shí)子程序去抖動(dòng)
          BTFSC FLAG,F(xiàn)0
          CALL KEYSCAN ;若第一次掃描到有鍵按下,則經(jīng)過前面的延時(shí)去抖后
          ;再次進(jìn)行鍵掃描
          BTFSC FLAG,F(xiàn)0
          CALL KEYSERVE ;若確認(rèn)有鍵按下,則需要調(diào)用鍵服務(wù)程序
          BTFSS FLAG,F(xiàn)0
          GOTO LOOP ;如果無鍵按下,則反復(fù)進(jìn)行鍵掃描
          MOVF JIANR,W
          CALL CONVERT ;把按鍵對(duì)應(yīng)的數(shù)字轉(zhuǎn)換成待顯示的段碼
          CALL DISPLAY ;調(diào)用顯示子程序
          GOTO LOOP
          END

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理



          上一頁 1 2 下一頁

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