vt.2.lst
来自「This is the source code for GSM - GPS ba」· LST 代码 · 共 1,570 行 · 第 1/5 页
LST
1,570 行
.................... #BIT SPPDATA4 = SPPDATA.4
.................... #BIT SPPDATA5 = SPPDATA.5
.................... #BIT SPPDATA6 = SPPDATA.6
.................... #BIT SPPDATA7 = SPPDATA.7
....................
.................... #BIT GIE = INTCON.7
.................... #BIT PEIE = INTCON.6
.................... #BIT TMR0IE = INTCON.5
.................... #BIT INT0IE = INTCON.4
.................... #BIT RBIE = INTCON.3
....................
.................... #BIT INT0IF = INTCON.1
.................... #BIT RBIF = INTCON.0
....................
.................... #BIT RBPU = INTCON2.7
.................... #BIT INTEDG0 = INTCON2.6
.................... #BIT INTEDG1 = INTCON2.5
.................... #BIT INTEDG2 = INTCON2.4
.................... #BIT TMR0IF = INTCON2.2
....................
....................
....................
.................... #BIT INT2IP = INTCON3.7
.................... #BIT INT1IP = INTCON3.6
.................... #BIT INT2IE = INTCON3.4
.................... #BIT INT1IE = INTCON3.3
.................... #BIT INT2IF = INTCON3.1
.................... #BIT INT1IF = INTCON3.0
....................
....................
.................... #FUSES HS,NOPROTECT,NOLVP,PUT,NOWDT,CPUDIV1,NOPBADEN,NOSTVREN
.................... #use delay(clock = 20000000)
*
0140: MOVLW 02
0142: MOVWF FEA
0144: MOVLW 30
0146: MOVWF FE9
0148: MOVF FEF,W
014A: BZ 0166
014C: MOVLW 06
014E: MOVWF 01
0150: CLRF 00
0152: DECFSZ 00,F
0154: BRA 0152
0156: DECFSZ 01,F
0158: BRA 0150
015A: MOVLW 7B
015C: MOVWF 00
015E: DECFSZ 00,F
0160: BRA 015E
0162: DECFSZ FEF,F
0164: BRA 014C
0166: RETLW 00
....................
.................... #BYTE RCBUF = 0X3A1
.................... #BYTE TEMP = 0X3A2
.................... #BYTE RCBUF1 = 0X3A3
.................... #BYTE TEMP1 = 0X3A4
....................
....................
.................... char gps_rcv_data_array[100];
.................... char rfbuffer[15];
.................... char sms[25];
.................... char at_cmd[10][35] = { "AT+CPIN?",
.................... "AT+CCLK=\"08/02/29,14:55:00\"",
.................... "AT+CPMS=\"SM\"",
.................... "AT+CMGF=1",
.................... "AT+CNMI=2,1,0,0,0",
.................... "AT+CSAS",
.................... };
....................
.................... char rfid_data[20]="RF:";
.................... signed int gps_j = 0;
.................... signed int rf = 0;
.................... char end=0x0A;
.................... void io_ports_initialize(void);
.................... void usart_initialize(void);
.................... void enable_interrupt(void);
....................
.................... void asm_code_reception(void);
.................... void rf_reception();
....................
.................... void transmit_message(int i);
.................... void send_sms(char *a1, char *b1);
.................... void baudrate();
.................... void baudrate1();
.................... void clear_buf(void);
....................
.................... #INT_EXT
.................... void exr_isr()
.................... {
.................... INT0IF = 0;
*
01FE: BCF FF2.1
.................... asm_code_reception();
0200: BRA 00DC
.................... while(gps_rcv_data_array[gps_j] == 0X0A)
.................... {
0202: CLRF 03
0204: MOVLB 2
0206: MOVF x19,W
0208: ADDLW 1B
020A: MOVWF FE9
020C: MOVLW 00
020E: ADDWFC 03,W
0210: MOVWF FEA
0212: MOVF FEF,W
0214: SUBLW 0A
0216: BNZ 0256
.................... /*if(rfbuffer[0]!=0xFF)
.................... {
.................... gps_rcv_data_array[gps_j]=0;
.................... strcat(gps_rcv_data_array,rfid_data);
.................... strcat(gps_rcv_data_array,rfbuffer);
.................... //strcat(gps_rcv_data_array,end);
.................... }*/
.................... sprintf(sms,"AT+CMGS=\"9952910522\"*");
0218: CLRF x1D
021A: MOVLW 8E
021C: MOVWF x1C
021E: CLRF x26
0220: MOVF x26,W
0222: MOVLB 0
0224: RCALL 00AC
0226: MOVLB 2
0228: INCF x26,F
022A: MOVWF 00
022C: MOVWF x2D
022E: MOVLB 0
0230: RCALL 0120
0232: MOVLW 15
0234: MOVLB 2
0236: SUBWF x26,W
0238: BNZ 0220
.................... send_sms(sms, gps_rcv_data_array);
023A: CLRF x2D
023C: MOVLW 8E
023E: MOVWF x2C
0240: CLRF x2F
0242: MOVLW 1B
0244: MOVWF x2E
0246: MOVLB 0
0248: RCALL 0168
.................... gps_j = -1;
024A: MOVLW FF
024C: MOVLB 2
024E: MOVWF x19
.................... // clear_buf();
.................... //rfbuffer[0]=0xFF;
.................... // PEIE=1;
.................... // INT1IF=0;
.................... // INT1IE=0;
....................
.................... }
0250: MOVLB 0
0252: BRA 0202
0254: MOVLB 2
.................... ++gps_j;
0256: INCF x19,F
....................
.................... }
....................
0258: BCF FF2.1
025A: MOVLB 0
025C: GOTO 0066
.................... void asm_code_reception()
.................... {
.................... #asm
.................... inch_n:
.................... btfsc PORTB,0; SKIP ON START BIT = 1 (A "MARK")
*
00DC: BTFSC F81.0
.................... goto inch_n; ELSE KEEP LOOKING FOR A START BIT
00DE: BRA 00DC
.................... movlw 0x08; START SERIAL INPUT SEQUENCE
00E0: MOVLW 08
.................... movwf TEMP; COLLECT 8 DATA BITS
00E2: MOVLB 3
00E4: MOVWF xA2
.................... clrf RCBUF; CLEAR SERIAL CHARACTER BUFFER
00E6: CLRF xA1
.................... btfsc PORTB,0; FALL THRU IF START BIT STILL = 1 (A "MARK")
00E8: BTFSS F81.0
.................... goto inch_n; ELSE IT WAS JUST A NOISE SPIKE, KEEP LOOKING
00EA: BRA 00F0
00EC: MOVLB 0
00EE: BRA 00DC
.................... inch_n1:
.................... #endasm
.................... baudrate();
00F0: MOVLB 0
00F2: RCALL 00D2
.................... #asm
.................... bcf STATUS,0; CLEAR THE CARRY BIT
00F4: BCF FD8.0
.................... rrcf RCBUF,F; ROTATE CRY -> MSB, ROTATE MSB RIGHT
00F6: MOVLB 3
00F8: RRCF xA1,F
.................... btfsc PORTB,0; IS IT A "MARK" ?
00FA: BTFSC F81.0
.................... bsf RCBUF,7; ...SKIP IF YES, ELSE SET BIT TO LOGIC '1'
00FC: BSF xA1.7
.................... decfsz TEMP,F; EIGHT COUNTS YET?
00FE: DECFSZ xA2,F
.................... goto inch_n1; ...NO, GET ANOTHER BIT
0100: BRA 00F0
.................... #endasm
.................... baudrate();
0102: MOVLB 0
0104: RCALL 00D2
.................... gps_rcv_data_array[gps_j] = RCBUF;
0106: CLRF 03
0108: MOVLB 2
010A: MOVF x19,W
010C: ADDLW 1B
010E: MOVWF FE9
0110: MOVLW 00
0112: ADDWFC 03,W
0114: MOVWF FEA
0116: MOVFF 3A1,FEF
.................... }
011A: MOVLB 0
011C: GOTO 0202 (RETURN)
....................
.................... void baudrate()
.................... {
.................... delay_us(104);
*
00D2: MOVLW AD
00D4: MOVWF 00
00D6: DECFSZ 00,F
00D8: BRA 00D6
.................... }
00DA: RETLW 00
....................
.................... #INT_EXT1
.................... void ext1_isr()
.................... {
.................... INT1IF = 0;
*
0364: BCF FF0.0
.................... rf_reception();
0366: BRA 026A
.................... while(rfbuffer[rf] == 0x0D)
.................... {
0368: CLRF 03
036A: MOVLB 2
036C: MOVF x1A,W
036E: ADDLW 7F
0370: MOVWF FE9
0372: MOVLW 00
0374: ADDWFC 03,W
0376: MOVWF FEA
0378: MOVF FEF,W
037A: SUBLW 0D
037C: BNZ 03D0
.................... // GIE=0;
.................... rf = -1;
037E: MOVLW FF
0380: MOVWF x1A
.................... strcat(rfid_data,rfbuffer);
0382: MOVLW 02
0384: MOVWF x2D
0386: MOVLW 05
0388: MOVWF x2C
038A: CLRF x2F
038C: MOVLW 7F
038E: MOVWF x2E
0390: MOVLB 0
0392: BRA 02AE
.................... sprintf(sms,"AT+CMGS=\"9952910522\"*");
0394: MOVLB 2
0396: CLRF x1D
0398: MOVLW 8E
039A: MOVWF x1C
039C: CLRF x2C
039E: MOVF x2C,W
03A0: MOVLB 0
03A2: RCALL 00AC
03A4: MOVLB 2
03A6: INCF x2C,F
03A8: MOVWF 00
03AA: MOVWF x2D
03AC: MOVLB 0
03AE: RCALL 0120
03B0: MOVLW 15
03B2: MOVLB 2
03B4: SUBWF x2C,W
03B6: BNZ 039E
.................... send_sms(sms,rfid_data);
03B8: CLRF x2D
03BA: MOVLW 8E
03BC: MOVWF x2C
03BE: MOVLW 02
03C0: MOVWF x2F
03C2: MOVLW 05
03C4: MOVWF x2E
03C6: MOVLB 0
03C8: RCALL 0168
.................... clear_buf();
03CA: BRA 0322
.................... // GIE = 1;
.................... }
03CC: BRA 0368
03CE: MOVLB 2
.................... ++rf;
03D0: INCF x1A,F
.................... }
....................
03D2: BCF FF0.0
03D4: MOVLB 0
03D6: GOTO 0066
.................... void rf_reception()
.....
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?