PIC中止汇编例程
listp=16f876
#include
;————————–
;守时计数单元
HW_TIMEEQU0X40
;—————————–
;守时常数
HW_TIMECT0EQU0XDF;TMR0守时器时刻常数,载波信号频率37.88KHz(13.2us)
HW_TIMECT1EQU0X64;发送信号位距离,*(1.32ms)
HW_TIMECT3EQU0X31;
;————————————-
ORG0X00
GOTOHW_RECEIVE
;————————————
ORG0X04
GOTOINT
;—————————————
bcfINTCON,GIE
BCFINTCON,T0IF;(T0IF)守时器溢出标志位清零
BCFINTCON,T0IE;关TMR0中止(T0IE)位清零
BANKSELOPTION_REG
CLRFOPTION_REG
BANKSELHW_TIME
MOVLWHW_TIMECT3
MOVWFHW_TIME
MOVLWHW_TIMECT0
MOVWFTMR0
BANKSELINTCON
BSFINTCON,T0IE
BSFINTCON,GIE
INT;中止
movwfW_TEMP
movfSTATUS,0
bcfSTATUS,RP0;workinginbank0
movwfSTATUS_TEMP
MOVLWHW_TIMECT0
MOVWFTMR0;重装守时常数
BCFINTCON,T0IF;铲除中止溢出标志位(T0IF)
;———————————————————————-
DECFSZHW_TIME,1;为零,间跳,守时时刻到
GOTOHW_LEAVE1
MOVLWHW_TIMECT1;重装时刻常数
MOVWFHW_TIME
BSFHW_Sign,1
HW_LEAVE1
BANKSELSTATUS_TEMP
MOVFSTATUS_TEMP,0
MOVWFSTATUS
MOVFW_TEMP
RETFIE