亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 單片機定時掃描按鍵狀態機程序 [打印本頁]

作者: 新鄉家電維修    時間: 2019-3-6 17:47
標題: 單片機定時掃描按鍵狀態機程序
以前自己都是按鍵去抖用延時程序,中斷按鍵,發現很浪費單片機資源,
自己根據網上的狀態機按鍵程序,自己寫出簡單的定時掃描按鍵,還不錯,
發出來供大家參考學習討論,不足之處歡迎評論留言

STC15W408AS單片機P3.7輸出可調PWM,按鍵采用定時10ms掃描,按鍵無延時程序,
程序夠簡練,易懂

K1        BIT        P3.2
        ORG        00H
        LJMP        MAIN
        ORG        0BH
        LJMP        T0_0        ;定時器0中斷入口
        ORG        60H
;=======================主程序===============================
MAIN:
        MOV A,#00010000B        ;P3.5/CCP0_2     P3.6/CCP1_2      P3.7/CCP2_2
        MOV AUXR1,A        ;輸出PWM腳切換
        MOV IE,#10000010B        ;允許定時器0中斷
TIMER0INIT:                        ;10毫秒@11.0592MHz
        ANL AUXR,#7FH                ;定時器時鐘12T模式
        ANL TMOD,#0F0H                ;設置定時器模式
        MOV TL0,#000H                ;設置定時初值
        MOV TH0,#0DCH                ;設置定時初值
        CLR TF0                        ;清除TF0標志
        SETB TR0                ;定時器0開始計時

        MOV CCON,#0        ;PCA計數器停止,清除標志
        CLR A
        MOV 22H,A
        MOV CL,A        ;PCA初始值
        MOV CH,A        ;
        MOV CMOD,#00001100B        ;設置時鐘源。禁PCA計數溢出中斷
        LCALL PWM_8
START:
        JMP START


;===============定時10ms掃描按鍵程序==============================
T0_0:
        MOV C,K1        
        JC K1_10        ;C為1轉移(無按鍵轉移,有按鍵向下執行)
        INC R5

        JMP EXIT0
K1_10:
        CJNE R5,#2,K1_11        ;不等退出()
K1_11:        JC EXIT0;按鍵釋放
        MOV R5,#0
        DEC  22h     
        MOV A,22H
        MOV CCAP2H,A

EXIT0:
        RETI
;======================設置PWM寄存器===============
PWM_8:
        ;模塊2工作于8位PWM
        MOV PCA_PWM2,#00H
        MOV A,22H
        MOV CCAP2L,A
        MOV CCAP2H,A        ;占空比為50%(40h-20h)/40h
        MOV CCAPM2,#01000010B        ;8位PWM

        SETB CR                ;啟動PCA定時器
        RET
;=========================================================
        END



作者: 新鄉家電維修    時間: 2019-3-8 17:11
這是增加了長按連續減的功能,短按減1

;===============定時10ms掃描按鍵程序===================================
T0_0:
        CLR C
        MOV C,K1       
        JC K1_10        ;C為1轉移(無按鍵轉移,有按鍵向下執行)
        CJNE R5,#200,K1_0;超過200算長按,快速加減
        DEC  22h     
        MOV A,22H
        MOV CCAP2H,A
        JMP EXIT0
K1_0:        INC R5

        JMP EXIT0
K1_10:
        CJNE R5,#2,K1_11        ;不等退出()
K1_11:        JC EXIT0        ;短按只加減1
        MOV R5,#0
        DEC  22h     
        MOV A,22H
        MOV CCAP2H,A
EXIT0:
        RETI





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1