51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > PIC单片机 > 详细内容
PIC16C71单片机按键换醒CPU源程序
发布时间:2009/7/19  阅读次数:533  字体大小: 【】 【】【
; 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     B11110000
                         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     B11110000
                         BTFSC     STATUS,Z
                         RETURN
                         GOTO       KEYRELEASE
;
;初始化       B口子程序
;
INITPORT_B
                         BSF         STATUS,RP0
                         MOVLW     B11110000
                         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     B00000111
                         MOVWF     OPTIONREG
                         BCF         STATUS,RP0
                         CLRF       TMR0
                         BCF         INTCON,T0IF
CHECKAGAIN
                         BTFSS     INTCON,T0IF
                         GOTO       CHECKAGAIN
                         BCF         INTCON,T0IF
                         RETURN
                         END
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号