上接:http://www.userform1.com/mcu/3983.html
1.
學習如何使用中斷
2. 任務要求
用定時器中斷方式完成閃燈實驗
設計驗證外部邊沿中斷/電平變化中斷
睡眠喚醒
3. 實驗器材
單片機PIC16F886一片、LED燈一只、電阻任選、下載器(及相關的線)一個
4. 實驗方案
圖
圖
圖
圖
5. 實驗現象分析
基礎實驗部分:
仿真模擬,在反轉PORTA的代碼部分加上斷點,用STOP
。
然后下載至芯片,LED燈閃動正常。
電平變化中斷實驗:
使用PORTB的RB5作為輸入端口,當給RB5電平變化時,RA端口上的燈閃爍4次,從頭到尾RC端上的燈只有亮一種狀態。
睡眠喚醒實驗:觸發一次喚醒,RA端燈亮滅四次,RC3改變一次狀態。
做電平變化中斷和睡眠喚醒實驗時遇到兩個問題:1.電平變化中斷標志位清零前沒有對PORTB執行讀寫操作,導致清除無效;1,DELAY函數寫在中斷內部,總是提前RETURN破壞了現場且多執行了DELAY操作。
附:
定時器中斷代碼:
#INCLUDE
__config
CONTEXT_SAVING
W_TMP
S_TMP
RESET
PAGESEL
GOTO
ISR
MOVWF
SWAPF
MOVWF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以上保存現場
BANKSEL
BCF
BANKSEL
COMF
BANKSEL
MOVLW
MOVWF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下恢復現場
SWAPF
MOVWF
SWAPF
SWAPF
RETFIE
CODE
MAIN
MOVLW
MOVWF
BANKSEL
MOVLW
MOVWF
BANKSEL
BSF
BSF
;;;;;;;;;
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
LP
NOP
GOTO
END
外部中斷代碼:
#INCLUDE
__config
CONTEXT_SAVING
W_TMP
S_TMP
LP0
LP1
TIMES
RESET
PAGESEL
GOTO
ISR
MOVWF
SWAPF
MOVWF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以上保護現場
BANKSEL
BSF
BANKSEL
BCF
MOVLW
MOVWF
MM
CALL
COMF
CALL
DECFSZ
GOTO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下恢復現場
SWAPF
MOVWF
SWAPF
SWAPF
RETFIE
CODE
DELAY
MOVLW
MOVWF
L0
MOVWF
L1
GOTO
DECFSZ
GOTO
RETURN
MAIN
BANKSEL
MOVLW
MOVWF
BANKSEL
MOVLW
XORWF
;;;;;;;;;;;;;;;;;;;;;;設置RC3標志程序執行,用于判斷程序是否被重復執行
BANKSEL
BCF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
LOOP
GOTO
END
睡眠喚醒代碼:
#INCLUDE
__config
CONTEXT_SAVING
W_TMP
S_TMP
LP0
LP1
TIMES
RESET
PAGESEL
GOTO
ISR
MOVWF
SWAPF
MOVWF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以上保護現場
BANKSEL
BSF
BANKSEL
BCF
MOVLW
MOVWF
MM
CALL
COMF
CALL
DECFSZ
GOTO
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下恢復現場
SWAPF
MOVWF
SWAPF
SWAPF
RETFIE
CODE
DELAY
MOVLW
MOVWF
L0
MOVWF
L1
GOTO
DECFSZ
GOTO
RETURN
MAIN
BANKSEL
BCF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
CLRF
BANKSEL
MOVLW
MOVWF
BANKSEL
MOVLW
BANKSEL
CLRF
loop
BANKSEL
MOVLW
XORWF
CALL
SLEEP
NOP
GOTO
END
下一篇: pic單片機走馬燈動態顯示實驗報告 http://www.userform1.com/mcu/4080.html