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

📄 ad.lst

📁 PIC AD转换小程序 用于PIC芯片带AD转换的各种IC
💻 LST
📖 第 1 页 / 共 2 页
字号:
MPASM  5.14                            AD.ASM   8-1-2008  16:16:21         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 #include <P16F73.INC> 
                      00001         LIST
                      00002 ; P16F73.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00320         LIST
Warning[205]: Found directive in column 1. (lIST)
                      00002 lIST P=16F73
                      00003 
                      00004 
                      00005 ;-------------变量定义-----------------------------;        
  00000020            00006 TIME1                 EQU   20H             ;采样延时计时器
  00000021            00007 CABLE_AD              EQU   21H             ;电缆温度采样AD
  00000022            00008 CABLE_BC_AD           EQU   22H             ;补偿电缆温度采样AD
  00000023            00009 FLAG                  EQU   23H             ;AD采样标志
  00000024            00010 LED_FLAG              EQU   24H             ;
  00000025            00011 ISR_COUNT1            EQU   25H
                      00012         
                      00013 ;-----------------常数定义-----------------------;
  00000005            00014 RP0          EQU   5
  00000006            00015 ADIF         EQU   6
  00000006            00016 ADIE         EQU   6
  00000006            00017 PEIE         EQU   6
  00000007            00018 GIE          EQU   7
  00000000            00019 W            EQU   0
  00000002            00020 GO           EQU   2
                      00021                 
0000                  00022         org         0x00000                     ;复位地址
0000   2820           00023               goto        Start
                      00024 
0008                  00025               org           0x00008                     ;中断地址
0008   2853           00026               goto        ISR                       ;中断处理程序
                      00027               
                      00028               
0020                  00029               org           0x00020
0020                  00030 Start
0020   1683           00031               BSF     STATUS,RP0              ;设置数据寄存器体1
0021   3000           00032         MOVLW   B'00000000'
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0022   0085           00033         MOVWF   TRISA                   ;设置RA端口全部为输出
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0023   0087           00034         MOVWF   TRISC                   ;设置RC端口全部位输出
0024   1283           00035         BCF     STATUS,RP0              ;恢复数据寄存器体0
                      00036               
0025   0185           00037               clrf        PORTA                         ;清端口PORTA    
0026   0187           00038               clrf        PORTC                         ;清端口PORTC
0027   203B           00039               call        InitializeAD            ;AD初始化
0028   204E           00040               call        SetupDelay                ;采样延时
0029   151F           00041               bsf           ADCON0,GO                 ;开始AD转换
                      00042               
002A                  00043 Main      
                      00044         
002A   1BA3           00045         BTFSC   FLAG,7                  ;判断两组AD转换是否都完成
002B   282A           00046         GOTO    Main                    ;未完
                      00047         
MPASM  5.14                            AD.ASM   8-1-2008  16:16:21         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

002C   0821           00048         MOVF    CABLE_AD,W              ;取电缆温度值
002D   1903           00049         BTFSC   STATUS,2
002E   2838           00050         GOTO    ERROR_ACT               ;故障
Warning[202]: Argument out of range.  Least significant bits used.
002F   3C00           00051         SUBLW   200                     ;200-W  发生借位则为0  不发生借位则为1
0030   1C03           00052         BTFSS   STATUS,0
0031   2835           00053         GOTO    RUN_OK                  ;电缆温度大于E0,则系统正常运行
0032   01A4           00054         CLRF    LED_FLAG
0033   14A4           00055         BSF     LED_FLAG,1              ;火警
0034   282A           00056         GOTO    Main
0035                  00057 RUN_OK
0035   01A4           00058         CLRF    LED_FLAG
0036   1424           00059         BSF     LED_FLAG,0              ;正常运行标志
0037   282A           00060         goto      Main                          ;主程序空循环
0038                  00061 ERROR_ACT   
0038   01A4           00062         CLRF    LED_FLAG
0039   1524           00063         BSF     LED_FLAG,2              ;故障
003A   282A           00064         GOTO    Main
                      00065 ;--------------------子函数-------------------;
                      00066 
                      00067 ;--------------------AD初始化配置子函数---------;
003B                  00068 InitializeAD
003B   130C           00069               bcf           PIR1,ADIF                 ;清中断标志
003C   110B           00070               BCF     INTCON,2                ;清TMR0溢出标志
                      00071               
003D   1683           00072         BSF     STATUS,RP0              ;设置数据寄存器体1
003E   3004           00073               movlw       B'00000100'               ;定义模拟输入端口
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
003F   009F           00074               movwf       ADCON1                  
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0040   170C           00075               bsf           PIE1,ADIE                 ;中断使能
0041   3087           00076               MOVLW   B'10000111'             ;设定:RB口不用上拉,分频器配给TMR0,256分频
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0042   0081           00077         MOVWF   OPTION_REG
0043   1283           00078         BCF     STATUS,RP0              ;恢复数据寄存器体0
                      00079                                         
0044   30C1           00080               movlw       B'11000001'               ;选择RC内部时钟,选择AN0通道
0045   009F           00081               movwf       ADCON0                              ;A/D转换模块使能 
Warning[202]: Argument out of range.  Least significant bits used.
0046   3030           00082         MOVLW   130                     ;125*64=8ms中断一次
0047   0081           00083         MOVWF   TMR0                                
0048   3060           00084         MOVLW   60
0049   00A5           00085         MOVWF   ISR_COUNT1              ;480MS置标志
                      00086                       
004A   170B           00087               bsf           INTCON,PEIE             ;本地中断使能
004B   168B           00088               BSF     INTCON,5                ;TMR0中断使能
004C   178B           00089               bsf           INTCON,GIE              ;全局中断使能
                      00090         
004D   0008           00091               return         
                      00092 ;--------------------采样延时子函数---------------;
004E                  00093 SetupDelay                              ;延时子函数
004E   3003           00094               movlw       3                               
004F   00A0           00095               movwf       TIME1
MPASM  5.14                            AD.ASM   8-1-2008  16:16:21         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0050                  00096 SD
Message[305]: Using default destination of 1 (file).
0050   0BA0           00097               decfsz    TIME1                
0051   2850           00098               goto        SD
0052   0008           00099               return
                      00100 
                      00101 ;-----------------AD中断服务程序------------------;
0053                  00102 ISR     
0053   1F0C           00103         btfss     PIR1,ADIF                   ;判断AD转换结束了吗?
0054   285B           00104               goto        TMR0_JUDGE              ;判断时钟溢出
                      00105                                               
0055   130C           00106               bcf           PIR1,ADIF                 ;清中断产生标志
0056   081E           00107               movf        ADRES,W                     ;获得AD转换值
                      00108               
0057   00A1           00109               MOVWF   CABLE_AD               ;获得电缆温度
0058   204E           00110               call        SetupDelay                ;延时15个指令周期,采样时间
0059   151F           00111               bsf           ADCON0,GO                 ;开始AD转换        
005A   2877           00112               GOTO    EndISR
005B                  00113 TMR0_JUDGE
005B   1D0B           00114         BTFSS   INTCON,2                ;判断有无时钟溢出中断产生
005C   2877           00115         GOTO    EndISR                  ;没有则返回      
005D   110B           00116         BCF     INTCON,2                ;清溢出标志
                      00117         
Message[305]: Using default destination of 1 (file).
005E   0BA5           00118         DECFSZ  ISR_COUNT1
005F   2877           00119         GOTO    EndISR
0060   3060           00120         MOVLW   60
0061   00A5           00121         MOVWF   ISR_COUNT1
                      00122         
0062   1824           00123         BTFSC   LED_FLAG,0
0063   2869           00124         GOTO    LED_GREEN
0064   18A4           00125         BTFSC   LED_FLAG,1
0065   286E           00126         GOTO    LED_RED
0066   1924           00127         BTFSC   LED_FLAG,2
0067   2872           00128         GOTO    LED_YELLOW
0068   0008           00129         RETURN
0069                  00130 LED_GREEN
0069   1105           00131         BCF     PORTA,2
006A   1307           00132         BCF     PORTC,6                 ;清其他灯
006B   3020           00133         MOVLW   B'00100000'
Message[305]: Using default destination of 1 (file).
006C   0685           00134         XORWF   PORTA                   ;绿灯闪亮
006D   2877           00135         GOTO    EndISR
006E                  00136 LED_RED
006E   3000           00137         MOVLW   B'00000000'
006F   0085           00138         MOVWF   PORTA
0070   1707           00139         BSF      PORTC,6                 ;火警报警,红灯亮
0071   2877           00140         GOTO    EndISR
0072                  00141 LED_YELLOW
0072   1285           00142         BCF     PORTA,5     
0073   1307           00143         BCF     PORTC,6
0074   3004           00144         MOVLW   B'00000100'             ;故障,黄灯闪亮
Message[305]: Using default destination of 1 (file).
MPASM  5.14                            AD.ASM   8-1-2008  16:16:21         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0075   0685           00145         XORWF   PORTA
0076   2877           00146         GOTO    EndISR
                      00147         
0077                  00148 EndISR    
0077   0009           00149         retfie                                ;中断返回
                      00150               END
MPASM  5.14                            AD.ASM   8-1-2008  16:16:21         PAGE  5


SYMBOL TABLE
  LABEL                             VALUE 

ADCON0                            0000001F
ADCON1                            0000009F
ADCS0                             00000006
ADCS1                             00000007
ADIE                              00000006
ADIF                              00000006
ADON                              00000000
ADRES                             0000001E
BF                                00000000
BRGH                              00000002
C                                 00000000
CABLE_AD                          00000021
CABLE_BC_AD                       00000022
CCP1CON                           00000017
CCP1IE                            00000002
CCP1IF                            00000002
CCP1M0                            00000000
CCP1M1                            00000001
CCP1M2                            00000002
CCP1M3                            00000003
CCP1X                             00000005
CCP1Y                             00000004
CCP2CON                           0000001D
CCP2IE                            00000000
CCP2IF                            00000000
CCP2M0                            00000000
CCP2M1                            00000001
CCP2M2                            00000002
CCP2M3                            00000003
CCP2X                             00000005

⌨️ 快捷键说明

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