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

📄 fangqu_v3.lst

📁 循环读取八个通道的电压值
💻 LST
📖 第 1 页 / 共 5 页
字号:
MPASM  5.02                     FANGQU_V3.ASM   4-6-2006  10:34:19         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;BANK0  Address:0x20-0x4F    variable register
                      00002 ;              :0x50-0x7F    for save messages to be sent to DSP                 
                      00003 ;BANK1  Address:0xA0-0xFF    for save messages sent by the decorder
                      00004 #include <p16f876A.inc>
                      00001         LIST
                      00002 ; P16F876A.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00384         LIST
  00000020            00005 WAIT1               EQU     20     ;延时内循环寄存器
  00000021            00006 WAIT2               EQU     21     ;延时外循环寄存器
  00000022            00007 WAIT3               EQU     22     ;延时内循环寄存器
  00000023            00008 WAIT4           EQU     23         ;延时外循环寄存器
  00000024            00009 WAIT5               EQU     24     ;延时内循环寄存器
  00000025            00010 WAIT6               EQU     25     ;延时外循环寄存器
                      00011 
                      00012 
  00000026            00013 REGEST1             EQU     26     ;防区1-防区8正常状态/普通报警状态
  00000027            00014 REGEST2             EQU     27     ;防区1-防区8的TAMPER状态
  00000028            00015 SAMPLE              EQU     28     ;暂时存放防区1--防区8的采样结果
                      00016 
  0000002A            00017 SENDBIT         EQU     2A
  0000002B            00018 SENDBUF         EQU     2B
                      00019 
  0000002D            00020 RECE_LENGTH1    EQU     2D      
  0000002E            00021 RECE_LENGTH2    EQU     2E  
  0000002F            00022 TEMP_LENGTH     EQU     2F 
                      00023 
  00000030            00024 RECE_LENGTH     EQU     30
  00000031            00025 TEL_NUMH        EQU     31
  00000032            00026 TEL_NUML        EQU     32
  00000033            00027 RECE_COMD       EQU     33
  00000034            00028 TEMPADDR1       EQU     34
  00000035            00029 TEMPADDR2       EQU     35
                      00030 
  00000036            00031 W_TEMP          EQU     36
  00000037            00032 STATUS_TEMP     EQU     37
  00000038            00033 TEMP            EQU     38
  00000039            00034 FLAG            EQU     39
  00000040            00035 RECE_BYTE       EQU     40
  00000041            00036 REC_CRC         EQU     41
  00000042            00037 ACK_DISPLAY     EQU     42
  00000043            00038 CHECKSUM        EQU     43
                      00039 
  00000050            00040 FRAME_SYNCHAR1  EQU     50
  00000051            00041 FRAME_SYNCHAR2  EQU     51
  00000052            00042 SEND_LENGTH     EQU     52
  00000053            00043 PACKET_COUNT    EQU     53
  00000054            00044 PACKET_NUM      EQU     54
  00000055            00045 SEND_COMD       EQU     55
  0000007E            00046 SEND_CHECKSUM   EQU     7E
  0000007F            00047 SEND_ENDCHAR    EQU     7F
                      00048 
                      00049 
                      00050 
MPASM  5.02                     FANGQU_V3.ASM   4-6-2006  10:34:19         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00051 ;----- FLAG Bits --------------------------------------------------------
  00000007            00052 MSG_SEND        EQU     7
  00000006            00053 RXD_START           EQU     6
  00000005            00054 LEN_OK          EQU     5
  00000004            00055 MSG_LONG        EQU     4        ;MSG_LONG=1,long messages,MSG_LONG=0,short messages
  00000003            00056 FRAME_HEAD      EQU     3
  00000001            00057 SENSOR_STATUS   EQU     1        ;SENSOR_STATUS=1,the sensor is connected;SENSOR_STATUS=0,the sensor is 
                            not connected
  00000000            00058 TEMPER_STATUS   EQU     0        ;TEMPER_STATUS=1,alarm;TEMPER_STATUS=0,not alarm
                      00059 
                      00060 
                      00061 ;----- MACRO  DEFINITION --------------------------------------
                      00062 PUSH_MACRO  MACRO         ; This Macro Saves register contents
                      00063        MOVWF W_TEMP          ; Copy W to a Temporary Register
                      00064                              ; regardless of current bank
                      00065        SWAPF STATUS,W        ; Swap STATUS nibbles and place
                      00066                              ; into W register
                      00067        MOVWF STATUS_TEMP     ; Save STATUS to a Temporary register
                      00068                              ; in Bank0
                      00069     ENDM                     ; End this Macro
                      00070 
                      00071 POP_MACRO  MACRO          ; This Macro Restores register contents
                      00072        SWAPF STATUS_TEMP,W   ; Swap original STATUS register value
                      00073                              ; into W (restores original bank)
                      00074        MOVWF STATUS          ; Restore STATUS register from
                      00075                              ; W register
                      00076        SWAPF W_TEMP,F        ; Swap W_Temp nibbles and return
                      00077                              ; value to W_Temp
                      00078        SWAPF W_TEMP,W        ; Swap W_Temp to W to restore original
                      00079                              ; W value without affecting STATUS
                      00080     ENDM                     ; End this Macro
                      00081 ;-----------------------------------------------------------------
                      00082 
0000                  00083             org     00h
0000   2820           00084         goto    START
0004                  00085         org     04h
0004   2A8C           00086         goto    INT_SER
0020                  00087             org     20h
0020                  00088 START:
0020   1683           00089         BSF         STATUS,RP0    ;BANK1
0021   30FF           00090         MOVLW   0xFF
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0022   0085           00091         MOVWF   TRISA
0023   30C0           00092         MOVLW   0xC0 
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0024   0086           00093         MOVWF   TRISB
0025   3080           00094         MOVLW   0x80          ;10000000
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0026   0087           00095         MOVWF   TRISC
                      00096 
0027   1283           00097     BCF     STATUS,RP0    ;BANK0
0028   0185           00098         CLRF    PORTA
0029   0186           00099     CLRF        PORTB
MPASM  5.02                     FANGQU_V3.ASM   4-6-2006  10:34:19         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

002A   30C1           00100     MOVLW   0xC1          ;1100 0001  
002B   0087           00101     MOVWF       PORTC
                      00102        
                      00103 ;*************Variable initializtion***************  
002C   01A6           00104     CLRF    REGEST1               ;防区1-防区8正常状态/普通报警状态
002D   01A7           00105     CLRF    REGEST2               ;防区1-防区8的TAMPER状态
002E   01A8           00106     CLRF    SAMPLE            ;暂时存放防区1--防区8的采样结果
002F   01AA           00107     CLRF    SENDBIT       
0030   01AB           00108     CLRF    SENDBUF       
                      00109 
0031   01AD           00110     CLRF    RECE_LENGTH1          
0032   01AE           00111     CLRF    RECE_LENGTH2    
0033   01AF           00112     CLRF    TEMP_LENGTH      
0034   01B6           00113     CLRF    W_TEMP
0035   01B7           00114     CLRF    STATUS_TEMP
                      00115     
0036   01C1           00116     CLRF    REC_CRC
0037   01B8           00117     CLRF    TEMP
0038   01B9           00118     CLRF    FLAG
0039   01C3           00119     CLRF    CHECKSUM
003A   01C2           00120     CLRF    ACK_DISPLAY
003B   01B3           00121     CLRF    RECE_COMD
003C   01C0           00122     CLRF    RECE_BYTE
003D   01B0           00123     CLRF    RECE_LENGTH
003E   01B1           00124     CLRF    TEL_NUMH
003F   01B2           00125     CLRF    TEL_NUML   
                      00126                
                      00127         ;UART initializtion
0040   1683           00128         BSF     STATUS,RP0     ;Bank1
0041   3040           00129         MOVLW   0x40           ;Baud rate = 9615
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0042   0099           00130         MOVWF   SPBRG
                      00131         
0043   1283           00132         BCF     STATUS,RP0     ;Bank 0
0044   0198           00133         CLRF    RCSTA
0045   1798           00134         BSF     RCSTA,SPEN
0046   018C           00135         CLRF    PIR1
                      00136         
0047   1683           00137         BSF     STATUS,RP0     ;Bank1
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0048   0198           00138         CLRF    TXSTA
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0049   1698           00139         BSF     TXSTA,TXEN
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
004A   1518           00140         BSF     TXSTA,BRGH
                      00141         
004B   1283           00142         BCF     STATUS,RP0     ;Bank 0
004C   1618           00143         BSF     RCSTA,CREN
                      00144         
004D   1683           00145         BSF     STATUS,RP0     ;Bank1
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
004E   120C           00146         BCF     PIE1,TXIE      ;Disable transmit interrupts
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
MPASM  5.02                     FANGQU_V3.ASM   4-6-2006  10:34:19         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

004F   168C           00147         BSF     PIE1,RCIE      ;Enable receive interrupts
0050   170B           00148         BSF     INTCON,PEIE
0051   178B           00149         BSF     INTCON,GIE
                      00150         
0052   1283           00151         BCF     STATUS,RP0     ;Bank0
0053   0000           00152         NOP
0054   0000           00153         NOP
0055   0000           00154         NOP
0056   0000           00155         NOP 
                      00156         
                      00157 ;************************************
0057                  00158 MAIN:
0057   2069           00159         CALL    MANAGE1 ;查看防区1,通道AN4
0058   0000           00160         NOP
0059   207E           00161         CALL    MANAGE2 ;查看防区2,通道AN4
005A   0000           00162         NOP
005B   2093           00163         CALL    MANAGE3 ;查看防区3,通道AN4
005C   0000           00164         NOP
005D   20A8           00165         CALL    MANAGE4 ;查看防区4,通道AN4
005E   0000           00166         NOP
005F   20BD           00167         CALL    MANAGE5 ;查看防区5,通道AN4
0060   0000           00168         NOP
0061   20D2           00169         CALL    MANAGE6 ;查看防区6,通道AN4
0062   0000           00170         NOP
0063   20E7           00171         CALL    MANAGE7 ;查看防区7,通道AN4
0064   0000           00172         NOP
0065   20FC           00173         CALL    MANAGE8 ;查看防区8,通道AN4
0066   0000           00174         NOP
0067   2129           00175         CALL    SENDSYN ;通过同步串口,发送数据到DSP
0068   2857           00176         GOTO    MAIN
                      00177                 
                      00178 
                      00179 ;**********************************************         
0069                  00180 MANAGE1:                        ;查看防区1,通道AN4
0069   1283           00181         BCF     STATUS,RP0      ;BANK0
006A   1407           00182         BSF     PORTC,0         ;4051禁止
006B   1087           00183         BCF     PORTC,1         ;4051选择通道0
006C   1107           00184         BCF     PORTC,2         ;4051选择通道0
006D   1187           00185         BCF     PORTC,3         ;4051选择通道0
006E   1007           00186     BCF PORTC,0         ;4051选通
006F   2261           00187         CALL    ADC
0070   081E           00188         MOVF    ADRESH,0
0071   00A8           00189         MOVWF   SAMPLE          ;防区1采样结果
0072   2111           00190         CALL    MANAGE
0073   18B9           00191         BTFSC   FLAG,SENSOR_STATUS     
0074   2877           00192         GOTO    QQ1_1
0075   1026           00193         BCF             REGEST1,0
0076   2878           00194         GOTO    QQ1_2
0077                  00195 QQ1_1:          
0077   1426           00196         BSF             REGEST1,0
0078                  00197 QQ1_2:          
0078   1839           00198         BTFSC   FLAG,TEMPER_STATUS 
0079   287C           00199         GOTO    QQ1_3
MPASM  5.02                     FANGQU_V3.ASM   4-6-2006  10:34:19         PAGE  5


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

007A   1027           00200         BCF             REGEST2,0
007B   287D           00201         GOTO    QQ1_4                   
007C                  00202 QQ1_3:  
007C   1427           00203         BSF     REGEST2,0       

⌨️ 快捷键说明

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