人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

PORTB口電平變化中斷[PIC16F877A+匯編語言]

更新時(shí)間: 2019-01-05
閱讀量:1158

;實(shí)驗(yàn)?zāi)康模菏煜B口電平變化中斷功能的使用
;軟件規(guī)劃:
; 1,只取下降沿觸發(fā)的中斷;上升沿中斷直接返回
; 2,按RB4一次,輸出加1
; 3,按RB5一次,輸出減1
; 4,RC口LED做輸出結(jié)果顯示
;硬件規(guī)劃:
; 1,使能內(nèi)部弱上拉
; 2,RB4和RB5接按鍵
; 3;C口LED燈做結(jié)果顯示。
LIST P=16F877
INCLUDE “P16F877a.INC”
__config(0x1832)
;—————————————————————————————————————————————
PORTC_TEP EQU 31H
W_TEMP EQU 32H
STATUS_TEM EQU 33H

       ORG  00H
       NOP
       GOTO   ST

;—————————————————————————————————————————————
;中斷服務(wù)程序
;—————————————————————————————————————————————
ORG 04H
MOVWF W_TEMP
MOVFW STATUS
MOVWF STATUS_TEM

       BCF     INTCON,RBIF      ;清除RB中斷標(biāo)志位
       BTFSS   PORTB,4          ;RB4是否按下?
       GOTO    RB4
       BTFSS   PORTB,5          ;RB5是否按下?
       GOTO    RB5

RE MOVFW STATUS_TEM ;中斷返回
MOVWF STATUS
SWAPF W_TEMP,1
SWAPF W_TEMP,0
RETFIE
RB4
BTFSS PORTB,4 ;等待RB4釋放
GOTO RB4
INCF PORTC_TEP,1 ;輸出加1
GOTO RE
RB5
BTFSS PORTB,5 ;等待RB5釋放
GOTO RB5
DECF PORTC_TEP,1 ;輸出減1
GOTO RE
;—————————————————————————————————————————————
;主程序
;—————————————————————————————————————————————
ST BSF STATUS,RP0 ;選擇數(shù)據(jù)存儲(chǔ)器體1
CLRF OPTION_REG ;開啟內(nèi)部弱上拉
MOVLW 00H
MOVWF TRISC ;RC端口為輸出
MOVLW 30H
MOVWF TRISB ;R4,R5為輸入
BCF STATUS,RP0 ;選擇數(shù)據(jù)存儲(chǔ)器體0
MOVLW 88H
MOVWF INTCON ;總中斷和RB中斷使能
CLRF PORTB
CLRF PORTC ;PORTC輸出清零
CLRF PORTC_TEP ;臨時(shí)PORTC清零
MOVLW 00H
MOVWF PORTC ;PORTC輸出清零
CALL DELAY1 ;延時(shí)
LOOP MOVF PORTC_TEP,W ;取出臨時(shí)PORTC清零
MOVWF PORTC ;臨時(shí)PORTC加載
CALL DELAY1 ;延時(shí)
GOTO LOOP ;返回
;—————————————————————————————————————————————
;延時(shí)子程序
;—————————————————————————————————————————————
DELAY1
MOVLW 3FH ;外循環(huán)常數(shù)
MOVWF 20H ;外循環(huán)寄存器
L1 MOVLW 02H ;內(nèi)循環(huán)常數(shù)
MOVWF 21H ;內(nèi)循環(huán)寄存器
L2 DECFSZ 21H,1 ;內(nèi)循環(huán)寄存器遞減
GOTO L2 ;繼續(xù)內(nèi)循環(huán)
DECFSZ 20H,1 ;外循環(huán)寄存器遞減
GOTO L1 ;繼續(xù)外循環(huán)
RETURN ;子程序返回
;—————————————————————————————————————————————
END

东兴市| 浪卡子县| 达日县| 两当县| 石河子市| 西和县| 焦作市| 南靖县| 本溪市| 叙永县| 德兴市| 河津市| 彝良县| 蕲春县| 商丘市| 平谷区| 远安县| 临沧市| 洪泽县| 龙里县| 木兰县| 揭西县| 东丽区| 绩溪县| 年辖:市辖区| 合作市| 奇台县| 松阳县| 石渠县| 桦甸市| 随州市| 荆门市| 封丘县| 上饶市| 莱芜市| 山阳县| 辽阳市| 兖州市| 凭祥市| 广宁县| 上思县|