英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3021|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-5 17:27:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
; 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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 07:18 , Processed in 0.050999 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表