久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1944|回復(fù): 1
收起左側(cè)

單片機(jī)定時掃描按鍵狀態(tài)機(jī)程序

[復(fù)制鏈接]
ID:72088 發(fā)表于 2019-3-6 17:47 | 顯示全部樓層 |閱讀模式
以前自己都是按鍵去抖用延時程序,中斷按鍵,發(fā)現(xiàn)很浪費單片機(jī)資源,
自己根據(jù)網(wǎng)上的狀態(tài)機(jī)按鍵程序,自己寫出簡單的定時掃描按鍵,還不錯,
發(fā)出來供大家參考學(xué)習(xí)討論,不足之處歡迎評論留言

STC15W408AS單片機(jī)P3.7輸出可調(diào)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                ;設(shè)置定時器模式
        MOV TL0,#000H                ;設(shè)置定時初值
        MOV TH0,#0DCH                ;設(shè)置定時初值
        CLR TF0                        ;清除TF0標(biāo)志
        SETB TR0                ;定時器0開始計時

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


;===============定時10ms掃描按鍵程序==============================
T0_0:
        MOV C,K1        
        JC K1_10        ;C為1轉(zhuǎn)移(無按鍵轉(zhuǎn)移,有按鍵向下執(zhí)行)
        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
;======================設(shè)置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


評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:72088 發(fā)表于 2019-3-8 17:11 | 顯示全部樓層
這是增加了長按連續(xù)減的功能,短按減1

;===============定時10ms掃描按鍵程序===================================
T0_0:
        CLR C
        MOV C,K1       
        JC K1_10        ;C為1轉(zhuǎn)移(無按鍵轉(zhuǎn)移,有按鍵向下執(zhí)行)
        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
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区在线不卡 | 不卡一区二区在线观看 | 久久精品成人 | 欧美久久精品一级黑人c片 91免费在线视频 | 亚洲欧美视频一区 | 成人免费精品视频 | 亚洲精品久久久9婷婷中文字幕 | 日韩中文字幕视频 | 女同久久另类99精品国产 | 久久精品一区二区 | 亚洲国产精品一区二区久久 | av午夜激情| 亚洲精品黄 | 国产成人午夜精品影院游乐网 | 久久com | 黄色片网站在线观看 | 亚洲欧美日韩中文字幕一区二区三区 | 精品一级 | 久久中文字幕av | 中文字幕成人av | 伦理一区二区 | 欧洲亚洲一区 | 国产成人午夜电影网 | 国产成人精品一区二区三区网站观看 | av官网在线| 精品国产18久久久久久二百 | 久久久久久久久久久久91 | 日韩国产专区 | 日韩在线精品视频 | 日韩在线一区视频 | 亚洲人在线 | 午夜专区 | 久久久精品一区二区三区四季av | 青青草一区 | 日本三级全黄三级a | 涩涩导航 | 综合色站导航 | 久久不卡 | 国产一区日韩在线 | 国产精品观看 | 久久丝袜|