上接:http://www.51hei.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.51hei.com/mcu/4080.html