您的位置:首页单片机PIC单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

PIC16C71单片机按键换醒CPU源程序

[日期:2008-01-05 ] [来源:东哥单片机学习网www.picavr.com 作者:] [字体: (投递新闻)
; p=pic16c71,xt=40000hz
LIST P=16c71
;
Z            EQU    2
RBPU         EQU    7
TEMP         EQU    10H
OPTIONREG    EQU    1H
F            EQU    1
PORT_B       EQU    06H
;
             INCLUDE <P16c71.INC>
             LIST
;
             ORG     0                  ;复位地址
             GOTO    START
;
             ORG     4                  ;中断向量
             GOTO    SERVICEINTERRUPT
;
START
             CALL    INITPORT_B         ;初始化B口
LOOP
             SLEEP                      ;省电睡眠,等待被唤醒
             NOP
             GOTO    LOOP
;
SERVICEINTERRUPT
             BTFSC   INTCON,RBIF
             GOTO    SERVICEWAKUP
             CLRF    INTCON
             BSF     INTCON,RBIE
             RETFIE
;
;检查是哪个键被按下,并点亮相应的LED直到按键释放,再返回睡眠状态
;
SERVICEWAKUP
             BCF     INTCON,RBIE
             COMF    PORT_B,W
             BCF     INTCON,RBIF
             CALL    DELAY16
             COMF    PORT_B,W
             ANDLW   B'11110000'
             MOVWF   TEMP
             SWAPF   TEMP,W
             MOVWF   PORT_B
             CALL    KEYRELEASE
             RETFIE
;
;等待所有的按键都被释放程序
;
KEYRELEASE
             CALL    DELAY16
             COMF    PORT_B,W
             BCF     INTCON,RBIF
               BCF     INTCON,RBIE
             ANDLW   B'11110000'
             BTFSC   STATUS,Z
             RETURN
             GOTO    KEYRELEASE
;
;初始化    B口子程序
;
INITPORT_B
             BSF     STATUS,RP0
             MOVLW   B'11110000'
             MOVWF   TRISB
             BCF     OPTIONREG,RBPU
             BCF     STATUS,RP0
             CLRF    PORT_B
             BCF     INTCON,RBIE
             MOVF    PORT_B,W
             BCF     INTCON,RBIF
             BSF     INTCON,RBIE
             BSF     INTCON,GIE
             RETURN
;
;延时去抖动子程序
DELAY16
             BSF     STATUS,RP0
             MOVLW   B'00000111'
             MOVWF   OPTIONREG
             BCF     STATUS,RP0
             CLRF    TMR0
             BCF     INTCON,T0IF
CHECKAGAIN
             BTFSS   INTCON,T0IF
             GOTO    CHECKAGAIN
             BCF     INTCON,T0IF
             RETURN
             END
阅读:
录入:admin

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐