⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user.lst

📁 基于PIC16F72的超声波清洗机源程序(汇编).
💻 LST
📖 第 1 页 / 共 5 页
字号:
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 + -