📄 user.lst
字号:
010B 292A 00438 GOTO T0_CL_END
00439
010C 0BC5 00440 DECFSZ TIM_MS,1
010D 292A 00441 GOTO T0_CL_END
Warning[205]: Found directive in column 1. (IF)
00442 IF CRY_PL== D'4'
010E 3005 00443 MOVLW D'5'
010F 00C5 00444 MOVWF TIM_MS ;MS时间间隔
Warning[205]: Found directive in column 1. (ENDIF)
00445 ENDIF
00446
Warning[205]: Found directive in column 1. (IF)
00447 IF CRY_PL== D'16'
00448 MOVLW D'20'
00449 MOVWF TIM_MS ;MS时间间隔
MPASM 03.20.02 Released USER.ASM 1-26-2007 13:22:51 PAGE 18
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00450 ENDIF
0110 0BC6 00451 DECFSZ TIM_HS,1
0111 292A 00452 GOTO T0_CL_END
0112 3064 00453 MOVLW D'100'
0113 00C6 00454 MOVWF TIM_HS ;100MS时间间隔
00455
0114 084A 00456 MOVF TIM_SS,W
0115 1D03 00457 BTFSS STATUS,Z
0116 03CA 00458 DECF TIM_SS,1
00459
0117 0BC7 00460 DECFSZ TIM_S,1
0118 292A 00461 GOTO T0_CL_END
0119 300A 00462 MOVLW D'10'
011A 00C7 00463 MOVWF TIM_S ;1S时间间隔
00464
00465
011B 0848 00466 MOVF WORK_MIN,W
011C 1D03 00467 BTFSS STATUS,Z
011D 2921 00468 GOTO WORK_EDC
011E 0849 00469 MOVF WORK_SEC,W
011F 1903 00470 BTFSC STATUS,Z
0120 292A 00471 GOTO T0_CL_END ;工作时间递减
00472
0121 00473 WORK_EDC
0121 14B0 00474 BSF SYS_REG,NEW_DAT ;刷新显示
0122 03C9 00475 DECF WORK_SEC,1 ;工作秒递减
0123 0849 00476 MOVF WORK_SEC,W
0124 3AFF 00477 XORLW 0FFH
0125 1D03 00478 BTFSS STATUS,Z
0126 292A 00479 GOTO T0_CL_END
0127 303B 00480 MOVLW D'59'
0128 00C9 00481 MOVWF WORK_SEC
0129 03C8 00482 DECF WORK_MIN,1
012A 00483 T0_CL_END
012A 0008 00484 RETURN
00485 ;*********************************************************************
00486
00487
Warning[205]: Found directive in column 1. (INCLUDE)
00488 INCLUDE "INIT.ASM"
Warning[205]: Found directive in column 1. (INCLUDE)
00001 INCLUDE "PIC_RTOS.ASM"
00001 ;**********************************************************************
00002 ;中断处理部分
00003 ; Begining of Program space for interrupt
00004
012B 1078 00005 INTZ BCF S_STA,C
012C 1803 00006 BTFSC STATUS,C
012D 1478 00007 BSF S_STA,C
012E 1178 00008 BCF S_STA,Z
012F 1903 00009 BTFSC STATUS,Z
0130 1578 00010 BSF S_STA,Z
0131 00F9 00011 MOVWF W_STA
MPASM 03.20.02 Released USER.ASM 1-26-2007 13:22:51 PAGE 19
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0132 0804 00012 MOVF FSR,0
0133 00FA 00013 MOVWF F_STA ;现场保护
0134 080A 00014 MOVF PCLATH,0
0135 00FB 00015 MOVWF PCH_STA
0136 0064 00016 CLRWDT ;清开门狗
00017
0137 1E8B 00018 BTFSS INTCON,T0IE
0138 293B 00019 GOTO INT_EX
0139 190B 00020 BTFSC INTCON,T0IF ;如果T0完成定时,则转T1处理
013A 2182 00021 CALL INTZ_T0
00022
013B 1E0B 00023 INT_EX BTFSS INTCON,INTE
013C 293F 00024 GOTO INT_T1
013D 188B 00025 BTFSC INTCON,INTF ;如果T0完成定时,则转T1处理
013E 2189 00026 CALL EXI_CL
00027
013F 1683 00028 INT_T1 BSF STATUS,RP0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0140 1C0C 00029 BTFSS PIE1,TMR1IE
0141 2945 00030 GOTO INTZE
0142 1283 00031 BCF STATUS,RP0
0143 180C 00032 BTFSC PIR1,TMR1IF ;如果T1完成定时, 则转(时基)
0144 2152 00033 CALL SYS_T1
00034
0145 1283 00035 INTZE BCF STATUS,RP0
0146 087A 00036 MOVF F_STA,0
0147 0084 00037 MOVWF FSR
0148 087B 00038 MOVF PCH_STA,0
0149 008A 00039 MOVWF PCLATH
014A 0879 00040 MOVF W_STA,0
014B 1003 00041 BCF STATUS,C
014C 1878 00042 BTFSC S_STA,C
014D 1403 00043 BSF STATUS,C
014E 1103 00044 BCF STATUS,Z
014F 1978 00045 BTFSC S_STA,Z
0150 1503 00046 BSF STATUS,Z ;现场恢复
0151 0009 00047 RETFIE
00048
00049 ;***********************************************************************
00050 ;T1中断服务程序,用于时基(10MS)
0152 1683 00051 SYS_T1 BSF STATUS,RP0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0153 100C 00052 BCF PIE1,TMR1IE
0154 1283 00053 BCF STATUS,RP0
0155 100C 00054 BCF PIR1,TMR1IF ;清T1中断申请标志
0156 3017 00055 MOVLW SPERL ;10MS定时
0157 008E 00056 MOVWF TMR1L ;初始化定时器
0158 30FC 00057 MOVLW SPERH ;10MS定时
0159 008F 00058 MOVWF TMR1H ;初始化定时器
015A 1683 00059 BSF STATUS,RP0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
015B 140C 00060 BSF PIE1,TMR1IE
015C 1283 00061 BCF STATUS,RP0 ;置T1中断有效标志
MPASM 03.20.02 Released USER.ASM 1-26-2007 13:22:51 PAGE 20
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00062
015D 3020 00063 MOVLW TIM_ADD
015E 0084 00064 MOVWF FSR ;初始化
00065
015F 3003 00066 MOVLW TIM_SUM
0160 00AB 00067 MOVWF TIM_CU
00068
0161 3001 00069 MOVLW D'1'
0162 00AA 00070 MOVWF TIM_PC
00071
0163 0828 00072 SYS_T11 MOVF TIM_EN,0 ;取各定时器的使能状态位
0164 052A 00073 ANDWF TIM_PC,0 ;两者相与,结果为0,则说明该定时器禁止
0165 1903 00074 BTFSC STATUS,Z
0166 297C 00075 GOTO TO_CU ;Z=1,该定时器位未就绪,则转,指向下个定时器
00076
0167 0800 00077 MOVF INDF,0 ;如果当前定时器有效,则判别定时是否完成
0168 1903 00078 BTFSC STATUS,Z
0169 296C 00079 GOTO TO_S ;如果已完成,则转
016A 0380 00080 DECF INDF,1 ;如果定时未完成,则递减,并指向下个定时器
016B 297C 00081 GOTO TO_CU ;
00082
00083
016C 0829 00084 TO_S MOVF TIM_OV,0 ;如果当前定时器完成,则判别当前定时器是否空闲
016D 052A 00085 ANDWF TIM_PC,0
016E 1D03 00086 BTFSS STATUS,Z
016F 2972 00087 GOTO TO_TY_P ;如果该定时器忙,则判别任务类型
00088
0170 082A 00089 MOVF TIM_PC,0
0171 04A9 00090 IORWF TIM_OV,1 ;如果定时空闲,则置相应的定时器完成标志
0172 00091 TO_TY_P
0172 082C 00092 MOVF TIM_TY,0
0173 052A 00093 ANDWF TIM_PC,0
0174 1D03 00094 BTFSS STATUS,Z
0175 2978 00095 GOTO TO_R
00096 ;如果定时器类型是单次,则禁止该定时器
0176 092A 00097 TO_C COMF TIM_PC,0 ;取指针的反码
0177 05A8 00098 ANDWF TIM_EN,1 ;禁止该定时器
00099
00100 ;如果定时器类型是周期,则恢复该定时器周期
0178 1784 00101 TO_R BSF FSR,7 ;BANK1:A0--A7为各定时器周期备份
0179 0800 00102 MOVF INDF,0
017A 1384 00103 BCF FSR,7
017B 0080 00104 MOVWF INDF
00105
017C 0A84 00106 TO_CU INCF FSR,1 ;指向下一个定时器
017D 1003 00107 BCF STATUS,C
017E 0DAA 00108 RLF TIM_PC,1
00109
Message[305]: Using default destination of 1 (file).
017F 0BAB 00110 DECFSZ TIM_CU ;检索完成个数
0180 2963 00111 GOTO SYS_T11
0181 0008 00112 RETURN ;完成全部定时器的判别后退出。
00113 ;*********************************************************************
MPASM 03.20.02 Released USER.ASM 1-26-2007 13:22:51 PAGE 21
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00114 ;T0中断处理 (50us中断间隔)
0182 128B 00115 INTZ_T0 BCF INTCON,T0IE
0183 110B 00116 BCF INTCON,T0IF ;清T0中断申请标志
0184 305C 00117 MOVLW D'92'
0185 0081 00118 MOVWF TMR0
0186 168B 00119 BSF INTCON,T0IE
00120 IF USE_T0
0187 290A 00121 GOTO INT_SERVER_T0
00122 ENDIF
0188 0008 00123 RETURN
00124
0189 108B 00125 EXI_CL BCF INTCON,INTF ;清外部中断申请标志
00126 IF USE_EX
00127 GOTO INT_SERVER_EX
00128 ENDIF
018A 0008 00129 RETURN
00130 ;*********************************************************************
00131 ;启动定时器0
018B 00132 EN_T0
018B 168B 00133 BSF INTCON,T0IE ;允许T0中断
018C 110B 00134 BCF INTCON,T0IF
018D 0008 00135 RETURN
00136 ;禁止定时器0
018E 00137 DS_T0
018E 128B 00138 BCF INTCON,T0IE ;禁止T0中断
018F 110B 00139 BCF INTCON,T0IF
0190 0008 00140 RETURN
00141 ;************************************************************************
00142 ;任务建立
00143 ;参数:TASKID:任务号
00144 ; TASKTM:任务周期
00145 ; TASKTY:任务工作类型
00146 ; 0:单周期任务准备 1:循环任务准备 2:单周期任务启动 3:循环任务启动
00147 ; 4:挂起任务 6:启动任务
0191 00148 BUD_STAK
0191 0860 00149 MOVF TASKID,0
0192 3E20 00150 ADDLW TIM_ADD
0193 0084 00151 MOVWF FSR ;指向设定定时器
0194 0861 00152 MOVF TASKTM,0
0195 0080 00153 MOVWF INDF ;设置周期
0196 1784 00154 BSF FSR,7
0197 0080 00155 MOVWF INDF ;设置周期备份
0198 00156 TASK_SET
0198 3001 00157 MOVLW 01
0199 00E3 00158 MOVWF TASKPC
019A 0860 00159 BUD_RO MOVF TASKID,0
019B 1903 00160 BTFSC STATUS,Z
019C 29A1 00161 GOTO BUD_STAK_PC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -