📄 fangqu_v3.lst
字号:
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 + -