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

📄 user.lst

📁 基于PIC16F72的超声波清洗机源程序(汇编).
💻 LST
📖 第 1 页 / 共 5 页
字号:
  0000004C            00076 W_MIN_T  EQU  4CH     ;分十位
  0000004D            00077 W_MIN_S  EQU  4DH     ;分各位
Warning[205]: Found directive in column 1. (ENDIF)
                      00078 ENDIF
                      00079 
                      00080 
                      00081 ;**************************************************************************
                      00082 
                      00083 ;************************************************************************
                      00084 ;通用标志定义
  00000030            00085 SYS_REG EQU      30H     ;系统标志
                      00086 #DEFINE SYS_ON   0H      ;启动输出标志
                      00087 #DEFINE NEW_DAT  1H      ;新数据标志
                      00088 #DEFINE SYS_TYP  2H      ;档位标志
                      00089 #DEFINE DS_SS_SY 3H      ;显示闪烁标志
                      00013 
0000                  00014         ORG     00H             ; Retset Vector
0000   281E           00015         GOTO    MAIN            
                      00016 
0004                  00017         ORG     04H             ; Skip over interrupt vecter
0004   292B           00018         GOTO    INTZ
                      00019 ;**********************************************************************************        
                      00020 ;显示编码表       
0005   018A           00021 DS_BM  CLRF    PCLATH
0006   0782           00022        ADDWF   PCL,1
0007   343F           00023        RETLW   B'00111111'  ;0
0008   3406           00024        RETLW   B'00000110'  ;1
0009   345B           00025        RETLW   B'01011011'  ;2
000A   344F           00026        RETLW   B'01001111'  ;3 
000B   3466           00027        RETLW   B'01100110'  ;4 
000C   346D           00028        RETLW   B'01101101'  ;5 
000D   347D           00029        RETLW   B'01111101'  ;6
000E   3407           00030        RETLW   B'00000111'  ;7
000F   347F           00031        RETLW   B'01111111'  ;8
0010   346F           00032        RETLW   B'01101111'  ;9
0011   3477           00033        RETLW   B'01110111'  ;A
0012   34D6           00034        RETLW   B'11010110'  ;B
MPASM 03.20.02 Released          USER.ASM   1-26-2007  13:22:51         PAGE 10


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0013   34F0           00035        RETLW   B'11110000'  ;C
0014   34C7           00036        RETLW   B'11000111'  ;D
0015   34F2           00037        RETLW   B'11110010'  ;E
0016   3472           00038        RETLW   B'01110010'  ;F
0017   3400           00039        RETLW   B'00000000'  ;熄灭码
0018   3473           00040        RETLW   B'01110011'  ;P  
0019   3442           00041        RETLW   B'01000010'  ;R  
001A   3497           00042        RETLW   B'10010111'  ;Y
001B   3446           00043        RETLW   B'01000110'  ;N
001C   34C6           00044        RETLW   B'11000110'  ;O
001D   3457           00045        RETLW   B'01010111'  ;H
                      00046 ;***********************************************************************
                      00047               
                      00048 ;******************************************************************
                      00049 ;              控制程序
                      00050 ;******************************************************************  
                      00051 
                      00052 ;主循环
001E   21E5           00053 MAIN   CALL    INIT              ;初始化系统 
001F   2218           00054        CALL    INT_TASK          ;初始化任务
0020   1030           00055        BCF     SYS_REG,SYS_ON    ;开始默认输出无效       
0021   2230           00056        CALL    INIT_CS           ;初始化参数       
0022   29C6           00057        GOTO    OS_START          ;系统启动
0023   2823           00058        GOTO    $  
                      00059 ;*******************************************************************       
                      00060 ;任务0处理,显示处理,及扫键
0024   1029           00061 TASK0  BCF     TIM_OV,TASKID0
0025   018A           00062        CLRF    PCLATH
0026   0838           00063        MOVF    DS_COM,W
0027   3903           00064        ANDLW   B'00000011'
0028   0782           00065        ADDWF   PCL,1
0029   282C           00066        GOTO    DS_RUN    ;0:正常显示参数
002A   2841           00067        GOTO    DS_FS1    ;1:闪烁显示
002B   286A           00068        GOTO    CLS
                      00069        
                      00070 ;***************************************************************       
002C   1CB0           00071 DS_RUN BTFSS   SYS_REG,NEW_DAT ;如果数据已经转换,则不再转换;
002D   284C           00072        GOTO    DS_OUT
002E   10B0           00073 DS_CH  BCF     SYS_REG,NEW_DAT
                      00074 
002F   303C           00075        MOVLW   DS_RAM
0030   0084           00076        MOVWF   FSR
                      00077        
0031   0848           00078        MOVF    WORK_MIN,W
0032   21DC           00079        CALL    HEXTOBCD        ;分,进制转换
                      00080        
0033   0862           00081        MOVF    DS_S2,W
0034   0080           00082        MOVWF   INDF     ;LED1
                      00083        
0035   0A84           00084        INCF    FSR,1
0036   0861           00085        MOVF    DS_S1,W
0037   0080           00086        MOVWF   INDF
                      00087        
MPASM 03.20.02 Released          USER.ASM   1-26-2007  13:22:51         PAGE 11


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0038   0849           00088        MOVF    WORK_SEC,W     ;秒,进制转换
0039   21DC           00089        CALL    HEXTOBCD       
003A   0A84           00090        INCF    FSR,1
003B   0862           00091        MOVF    DS_S2,W
003C   0080           00092        MOVWF   INDF     ;LED3
                      00093        
003D   0A84           00094        INCF    FSR,1
003E   0861           00095        MOVF    DS_S1,W
003F   0080           00096        MOVWF   INDF
0040   284C           00097        GOTO    DS_OUT
                      00098 ;**************************************************************
                      00099 ;闪烁控制       
0041   18B0           00100 DS_FS1 BTFSC   SYS_REG,NEW_DAT
0042   282E           00101        GOTO    DS_CH
                      00102        
0043   0ABA           00103        INCF    DS_FP,1
0044   1FBA           00104        BTFSS   DS_FP,7
0045   284C           00105        GOTO    DS_OUT   ;0.5S闪烁1次
0046   083B           00106        MOVF    DS_SS,W
0047   0239           00107        SUBWF   DS_PC,W
0048   1803           00108        BTFSC   STATUS,C ;如果当前位需要闪烁,则替换成熄灭码
0049   284C           00109        GOTO    DS_OUT
004A   01E1           00110        CLRF    DS_S1
004B   285B           00111        GOTO    SET_PC
                      00112       
                      00113 ;*****************************************************************
                      00114 
                      00115 ;****************************************************************************
004C   303C           00116 DS_OUT MOVLW   DS_RAM
004D   0739           00117        ADDWF   DS_PC,W   ;指向指针所指向的单元
004E   0084           00118        MOVWF   FSR
004F   0800           00119        MOVF    INDF,W    ;取数据
0050   391F           00120        ANDLW   B'00011111'
0051   2005           00121        CALL    DS_BM     ;查显示编码
0052   00E1           00122        MOVWF   DS_S1     ;设置显示数据
0053   0839           00123        MOVF    DS_PC,W
0054   3C01           00124        SUBLW   D'1'
0055   1C03           00125        BTFSS   STATUS,C
0056   285B           00126        GOTO    SET_PC
                      00127        
0057   1DB0           00128        BTFSS   SYS_REG,DS_SS_SY
0058   13E1           00129        BCF     DS_S1,7
0059   19B0           00130        BTFSC   SYS_REG,DS_SS_SY
005A   17E1           00131        BSF     DS_S1,7       
                      00132        
005B   307F           00133 SET_PC MOVLW   7FH
005C   00E2           00134        MOVWF   DS_S2
005D   0839           00135        MOVF    DS_PC,W
005E   00E0           00136        MOVWF   DS_CNT    ;取显示指针
005F                  00137 PC_RATE       
005F   0860           00138        MOVF    DS_CNT,W
0060   1903           00139        BTFSC   STATUS,Z
0061   2866           00140        GOTO    INC_PC    ;设置显示指针
MPASM 03.20.02 Released          USER.ASM   1-26-2007  13:22:51         PAGE 12


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0062   1403           00141        BSF     STATUS,C
0063   0CE2           00142        RRF     DS_S2,1
0064   03E0           00143        DECF    DS_CNT,1
0065   285F           00144        GOTO    PC_RATE    
0066   0AB9           00145 INC_PC INCF    DS_PC,1   ;指向下一个显示单元
0067   1939           00146        BTFSC   DS_PC,2
0068   01B9           00147        CLRF    DS_PC     ;如果超位,则归零  
0069   286D           00148        GOTO    DS_END
                      00149 ;*************************************************************************              
006A   01E1           00150 CLS    CLRF    DS_S1     ;清屏
006B   01E2           00151        CLRF    DS_S2
006C   01B9           00152        CLRF    DS_PC     ;显示指针归零  
006D   21D6           00153 DS_END CALL    XS_DRV_SC ;驱动显示
                      00154 ;**************************************************************************
                      00155 ;开始扫键处理
006E                  00156 K_BEG
006E   0AC3           00157        INCF    K_LB,1      ;滤波器递增
006F   0806           00158        MOVF    KSTA,W
0070   390F           00159        ANDLW   B'00001111' ;取有效的按键信息
0071   00C1           00160        MOVWF   K_NEW
0072   3A0F           00161        XORLW   B'00001111'
0073   1903           00162        BTFSC   STATUS,Z
0074   288D           00163        GOTO    NO_KEY      ;无键,则转
                      00164        
0075   01CE           00165        CLRF    K_N_LB       
0076   0841           00166        MOVF    K_NEW,W
0077   0642           00167        XORWF   K_VAL,W
0078   1903           00168        BTFSC   STATUS,Z    ;判别是否和上次按键一样
0079   287D           00169        GOTO    K_LB_S      ;一样,则滤波开始 
007A   01C3           00170        CLRF    K_LB
007B   0841           00171        MOVF    K_NEW,W     ;否则替换按键信息
007C   00C2           00172        MOVWF   K_VAL
                      00173        
007D   1EC3           00174 K_LB_S BTFSS   K_LB,5      ;滤波等待
007E   2893           00175        GOTO    K_END
                      00176        
007F   0842           00177        MOVF    K_VAL,W
0080   064B           00178        XORWF   K_OLD,W
0081   1D03           00179        BTFSS   STATUS,Z
0082   2889           00180        GOTO    KEY_YX      ;如果不是重复键,则直接有效       
                      00181        
                      00182    
0083   0842           00183        MOVF    K_VAL,W
0084   3A07           00184        XORLW   K_ON
0085   1903           00185        BTFSC   STATUS,Z
0086   2893           00186        GOTO    K_END       
                      00187        
Warning[205]: Found directive in column 1. (IF)
                      00188 IF   DW_SYB       
                      00189        MOVF    K_VAL,W
                      00190        XORLW   K_TYP
                      00191        BTFSC   STATUS,Z
                      00192        GOTO    K_END       ;在单档时,档位按键做秒键使用,也连续有效 
MPASM 03.20.02 Released          USER.ASM   1-26-2007  13:22:51         PAGE 13


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00193 ENDIF             
                      00194        
0087   1F43           00195        BTFSS   K_LB,6      ;滤波等待(时间设置滤波时间长)
0088   2893           00196        GOTO    K_END       
                      00197     
0089   0842           00198 KEY_YX MOVF    K_VAL,W
008A   00CB           00199        MOVWF   K_OLD        ;替换上次按键信息  
008B   3001           00200        MOVLW   TASKID1      ;击活按键处理
008C   21B6           00201        CALL    EN_TASK
008D   0ACE           00202 NO_KEY INCF    K_N_LB,1
008E   1DCE           00203        BTFSS   K_N_LB,3
008F   2893           00204        GOTO    K_END
0090   01CE           00205        CLRF    K_N_LB
0091   01CB           00206        CLRF    K_OLD
0092   01C3           00207        CLRF    K_LB  
0093   0008           00208 K_END  RETURN 
                      00209 ;**********************************************************************
                      00210                    
                      00211 ;****************************************************************************
                      00212 ;任务1处理,按键处理
0094   10A9           00213 TASK1  BCF     TIM_OV,TASKID1
0095   0842           00214        MOVF    K_VAL,W
0096   3A0E           00215        XORLW   K_MIN
0097   1903           00216        BTFSC   STATUS,Z         ;分键值判别
0098   28A6           00217        GOTO    MIN_CL
                      00218  
0099   0842           00219        MOVF    K_VAL,W          ;秒键值判别

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -