新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機鍵盤掃描匯編程序

        PIC單片機鍵盤掃描匯編程序

        作者: 時間:2012-12-11 來源:網絡 收藏

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

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

        K3K4 BCF PORTE,0
        BSF PORTE,1 ;K3置低電平,K4置高電平
        NOP
        NOP ;使引腳電平穩定
        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 ;以上根據按下的鍵把相應的值送給JIANR
        BCF PORTE,1
        JIANW BTFSS PORTB,4
        GOTO JIANW ;為了防止一次按鍵多次識別,等鍵松開才返回
        RETURN
        ;****************************************
        MAIN NOP
        CALL INITIAL ;調用初始化子程序
        LOOP
        CALL KEYSCAN ;查鍵
        BTFSC FLAG,F0
        CALL KEYDELAY ;若檢測到有鍵按下,則調用軟件延時子程序去抖動
        BTFSC FLAG,F0
        CALL KEYSCAN ;若第一次掃描到有鍵按下,則經過前面的延時去抖后
        ;再次進行鍵掃描
        BTFSC FLAG,F0
        CALL KEYSERVE ;若確認有鍵按下,則需要調用鍵服務程序
        BTFSS FLAG,F0
        GOTO LOOP ;如果無鍵按下,則反復進行鍵掃描
        MOVF JIANR,W
        CALL CONVERT ;把按鍵對應的數字轉換成待顯示的段碼
        CALL DISPLAY ;調用顯示子程序
        GOTO LOOP
        END

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘南县| 武清区| 凤翔县| 澜沧| 东安县| 洛浦县| 区。| 深水埗区| 武宁县| 抚顺市| 宁强县| 渝北区| 平顺县| 台北县| 商河县| 屏边| 樟树市| 资兴市| 乌拉特中旗| 峨边| 固始县| 互助| 平湖市| 资中县| 神木县| 唐山市| 汾西县| 三明市| 长宁县| 钟山县| 弥渡县| 白朗县| 犍为县| 九江县| 松溪县| 馆陶县| 元谋县| 光山县| 青龙| 双牌县| 三门县|