新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16C71單片機按鍵換醒CPU源程序

        PIC16C71單片機按鍵換醒CPU源程序

        作者: 時間:2011-02-24 來源:網絡 收藏
        ;p=pic16c71,xt=40000hz
        LISTP=16c71
        ;
        ZEQU2
        RBPUEQU7
        TEMPEQU10H
        OPTIONREGEQU1H
        FEQU1
        PORT_BEQU06H
        ;
        INCLUDEP16c71.INC>
        LIST
        ;
        ORG0;復位地址
        GOTOSTART
        ;
        ORG4;中斷向量
        GOTOSERVICEINTERRUPT
        ;
        START
        CALLINITPORT_B;初始化B口
        LOOP
        SLEEP;省電睡眠,等待被喚醒
        NOP
        GOTOLOOP
        ;
        SERVICEINTERRUPT
        BTFSCINTCON,RBIF
        GOTOSERVICEWAKUP
        CLRFINTCON
        BSFINTCON,RBIE
        RETFIE
        ;
        ;檢查是哪個鍵被按下,并點亮相應的LED直到按鍵釋放,再返回睡眠狀態
        ;
        SERVICEWAKUP
        BCFINTCON,RBIE
        COMFPORT_B,W
        BCFINTCON,RBIF
        CALLDELAY16
        COMFPORT_B,W
        ANDLWB'11110000'
        MOVWFTEMP
        SWAPFTEMP,W
        MOVWFPORT_B
        CALLKEYRELEASE
        RETFIE
        ;
        ;等待所有的按鍵都被釋放程序
        ;
        KEYRELEASE
        CALLDELAY16
        COMFPORT_B,W
        BCFINTCON,RBIF
        BCFINTCON,RBIE
        ANDLWB'11110000'
        BTFSCSTATUS,Z
        RETURN
        GOTOKEYRELEASE
        ;
        ;初始化B口子程序
        ;
        INITPORT_B
        BSFSTATUS,RP0
        MOVLWB'11110000'
        MOVWFTRISB
        BCFOPTIONREG,RBPU
        BCFSTATUS,RP0
        CLRFPORT_B
        BCFINTCON,RBIE
        MOVFPORT_B,W
        BCFINTCON,RBIF
        BSFINTCON,RBIE
        BSFINTCON,GIE
        RETURN
        ;
        ;延時去抖動子程序
        DELAY16
        BSFSTATUS,RP0
        MOVLWB'00000111'
        MOVWFOPTIONREG
        BCFSTATUS,RP0
        CLRFTMR0
        BCFINTCON,T0IF
        CHECKAGAIN
        BTFSSINTCON,T0IF
        GOTOCHECKAGAIN
        BCFINTCON,T0IF
        RETURN
        END



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 慈利县| 宁都县| 屏东市| 凌源市| 博野县| 黔江区| 大冶市| 台湾省| 辽阳县| 黎川县| 云安县| 通江县| 民丰县| 牙克石市| 孝感市| 开封县| 济阳县| 宜都市| 高密市| 诸暨市| 天长市| 平山县| 林周县| 蓬莱市| 仙居县| 科尔| 河南省| 彰化县| 普格县| 尚义县| 大悟县| 涿州市| 商水县| 广河县| 霍邱县| 商城县| 平罗县| 广灵县| 庄河市| 梅河口市| 信丰县|