專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
; 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
LIST
;
ORG 0 ;復(fù)位地址
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
;
;檢查是哪個(gè)鍵被按下,并點(diǎn)亮相應(yīng)的LED直到按鍵釋放,再返回睡眠狀態(tài)
;
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
;
;延時(shí)去抖動(dòng)子程序
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