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

📄 main.lis

📁 微程序控制器采用ATMEL AVR MEGA162
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module main.c
                        .area eeprom(rom, con, rel)
 0000           _ip::
 0000 3030302E3030302E3030302E30303000  .byte 48,48,48,46,48,48,48,46,48,48,48,46,48,48,48,0
 0010                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0010                   .dbsym e ip _ip A[16:16]c
                        .area data(ram, con, rel)
 0000                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0000           _GPRSCommand::
 0000                   .blkw 1
                        .area idata
 0000 2601              .word L1
                        .area data(ram, con, rel)
 0002                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0002                   .blkw 1
                        .area idata
 0002 2001              .word L2
                        .area data(ram, con, rel)
 0004                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0004                   .blkw 1
                        .area idata
 0004 0501              .word L3
                        .area data(ram, con, rel)
 0006                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0006                   .blkw 1
                        .area idata
 0006 EF00              .word L4
                        .area data(ram, con, rel)
 0008                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0008                   .blkw 1
                        .area idata
 0008 E100              .word L5
                        .area data(ram, con, rel)
 000A                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 000A                   .dbsym e GPRSCommand _GPRSCommand A[10:5]pc
 000A           _IPADD::
 000A                   .blkb 16
                        .area idata
 000A 3030302E3030302E3030302E30303000  .byte 48,48,48,46,48,48,48,46,48,48,48,46,48,48,48,0
                        .area data(ram, con, rel)
 001A                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 001A                   .dbsym e IPADD _IPADD A[16:16]c
 001A           _p_IPADD::
 001A                   .blkw 1
                        .area idata
 001A 0A00              .word _IPADD
                        .area data(ram, con, rel)
 001C                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 001C                   .dbsym e p_IPADD _p_IPADD pc
 001C           _CC::
 001C                   .blkb 1
                        .area idata
 001C 00                .byte 0
                        .area data(ram, con, rel)
 001D                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 001D                   .dbsym e CC _CC c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
 0000                   .dbfunc e main _main fV
 0000           ;            Res -> <dead>
 0000           ;    ResSendSucc -> R20
 0000           ;            num -> R20
                        .even
 0000           _main::
 0000 2297              sbiw R28,2
 0002                   .dbline -1
 0002                   .dbline 32
 0002           ; //ICC-AVR application builder : 2007-6-9 11:45:19
 0002           ; // Target : M162
 0002           ; // Crystal: 3.6864Mhz
 0002           ; #include "sci.h"
 0002           ; 
 0002           ; #include "modem.h"
 0002           ; #include <stdlib.h>
 0002           ; #include <eeprom.h>
 0002           ; 
 0002           ; #pragma data:eeprom
 0002           ; BYTE ip[]="000.000.000.000";
 0002           ; #pragma data:data
 0002           ; 
 0002           ; 
 0002           ; char * GPRSCommand [] = {
 0002           ;       "AT\r",
 0002           ;     "ATE0\r",//////////
 0002           ;     "AT+CGDCONT=1,\"IP\",\"CMWAP\"\r",
 0002           ;     "AT%CGPCO=1,\"PAP,,\",1\r", 
 0002           ;       //"AT$DESTINFO=\"218.6.64.240\",2,80\r",//UDP 2 TCP 1
 0002           ;       "AT$NOSLEEP=1\r"
 0002           ; };
 0002           ; 
 0002           ; BYTE IPADD[]="000.000.000.000";
 0002           ; BYTE *p_IPADD=IPADD;
 0002           ; BYTE CC=0;
 0002           ; void conGPRS(void);
 0002           ; void init_devices(void);
 0002           ; void iniGPS(void);
 0002           ; 
 0002           ; void main(void)
 0002           ; {
 0002                   .dbline 35
 0002           ;     BYTE num;
 0002           ;       BYTE Res;
 0002           ;       BYTE ResSendSucc=1;
 0002 41E0              ldi R20,1
 0004                   .dbline 37
 0004           ;       
 0004           ;       init_devices();    
 0004 0E940000          xcall _init_devices
 0008                   .dbline 38
 0008           ;     timer1_init();
 0008 0E940000          xcall _timer1_init
 000C                   .dbline 39
 000C           ;     initTimer2();
 000C 0E940000          xcall _initTimer2
 0010                   .dbline 40
 0010           ;     WriteCommStr0("start");
 0010 00E0              ldi R16,<L7
 0012 10E0              ldi R17,>L7
 0014 0E940000          xcall _WriteCommStr0
 0018                   .dbline 42
 0018           ;       
 0018           ;       ModemInit();
 0018 0E940000          xcall _ModemInit
 001C                   .dbline 43
 001C           ;       if(Waitfor ("ip", 250)){
 001C 2AEF              ldi R18,250
 001E 00E0              ldi R16,<L10
 0020 10E0              ldi R17,>L10
 0022 0E940000          xcall _Waitfor
 0026 0023              tst R16
 0028 A9F1              breq L8
 002A                   .dbline 43
 002A                   .dbline 44
 002A           ;               WriteCommStr0("input ip add end with ;");
 002A 00E0              ldi R16,<L11
 002C 10E0              ldi R17,>L11
 002E 0E940000          xcall _WriteCommStr0
 0032                   .dbline 45
 0032           ;               UCSR0B &= ~(1<<RXCIE0);//stop u0 int
 0032 5798              cbi 0xa,7
 0034 09C0              xjmp L13
 0036           L12:
 0036                   .dbline 46
 0036                   .dbline 47
 0036 E0911A00          lds R30,_p_IPADD
 003A F0911B00          lds R31,_p_IPADD+1
 003E 4193              st Z+,R20
 0040 F0931B00          sts _p_IPADD+1,R31
 0044 E0931A00          sts _p_IPADD,R30
 0048                   .dbline 48
 0048           L13:
 0048                   .dbline 46
 0048           ;               while((num=ReadComm0())!=';'){
 0048 0E940000          xcall _ReadComm0
 004C 402F              mov R20,R16
 004E 4B33              cpi R20,59
 0050 91F7              brne L12
 0052                   .dbline 49
 0052           ;                       *p_IPADD++=num;
 0052           ;               }
 0052           ;               *p_IPADD=0;
 0052 2224              clr R2
 0054 E0911A00          lds R30,_p_IPADD
 0058 F0911B00          lds R31,_p_IPADD+1
 005C 2082              std z+0,R2
 005E                   .dbline 50
 005E           ;               EEPROM_WRITE((int)ip,IPADD);
 005E 80E1              ldi R24,16
 0060 90E0              ldi R25,0
 0062 9983              std y+1,R25
 0064 8883              std y+0,R24
 0066 20E0              ldi R18,<_IPADD
 0068 30E0              ldi R19,>_IPADD
 006A 00E0              ldi R16,<_ip
 006C 10E0              ldi R17,>_ip
 006E 0E940000          xcall _EEPROMWriteBytes
 0072                   .dbline 51
 0072           ;               WriteCommStr0("\nyou ip is:");
 0072 00E0              ldi R16,<L15
 0074 10E0              ldi R17,>L15
 0076 0E940000          xcall _WriteCommStr0
 007A                   .dbline 52
 007A           ;               WriteCommStr0(IPADD);
 007A 00E0              ldi R16,<_IPADD
 007C 10E0              ldi R17,>_IPADD
 007E 0E940000          xcall _WriteCommStr0
 0082                   .dbline 53
 0082           ;               WriteCommStr0("\nturn switch to gps mode\n");
 0082 00E0              ldi R16,<L16
 0084 10E0              ldi R17,>L16
 0086 0E940000          xcall _WriteCommStr0
 008A                   .dbline 54
 008A           ;               UCSR0B |= (1<<RXCIE0);//start u0 int
 008A 579A              sbi 0xa,7
 008C                   .dbline 55
 008C           ;               DelayMORE(100);
 008C 04E6              ldi R16,100
 008E 0E940000          xcall _DelayMORE
 0092                   .dbline 56
 0092 11C0              xjmp L9
 0094           L8:
 0094                   .dbline 56
 0094           ;       }else{
 0094                   .dbline 57
 0094           ;               EEPROM_READ((int)ip,IPADD);     
 0094 80E1              ldi R24,16
 0096 90E0              ldi R25,0
 0098 9983              std y+1,R25
 009A 8883              std y+0,R24
 009C 20E0              ldi R18,<_IPADD
 009E 30E0              ldi R19,>_IPADD
 00A0 00E0              ldi R16,<_ip
 00A2 10E0              ldi R17,>_ip
 00A4 0E940000          xcall _EEPROMReadBytes
 00A8                   .dbline 58
 00A8           ;               WriteCommStr0("config time has pass");
 00A8 00E0              ldi R16,<L17
 00AA 10E0              ldi R17,>L17
 00AC 0E940000          xcall _WriteCommStr0
 00B0                   .dbline 59
 00B0           ;               DelayMORE(10);
 00B0 0AE0              ldi R16,10
 00B2 0E940000          xcall _DelayMORE
 00B6                   .dbline 60
 00B6           ;       }
 00B6           L9:
 00B6                   .dbline 62
 00B6           ;     
 00B6           ;       WriteCommStr0("\nif you have not turn switch ,you must restart device");
 00B6 00E0              ldi R16,<L18
 00B8 10E0              ldi R17,>L18
 00BA 0E940000          xcall _WriteCommStr0
 00BE                   .dbline 63
 00BE           ;       WriteCommStr0("at\r");
 00BE 00E0              ldi R16,<L19
 00C0 10E0              ldi R17,>L19
 00C2 0E940000          xcall _WriteCommStr0
 00C6                   .dbline 64
 00C6           ;       conGPRS();
 00C6 3AD0              xcall _conGPRS
 00C8                   .dbline 65
 00C8           ;       DelayMORE(50);
 00C8 02E3              ldi R16,50
 00CA 0E940000          xcall _DelayMORE
 00CE                   .dbline 66
 00CE           ;       WriteCommStr0 ("ATD*97#\r");
 00CE 00E0              ldi R16,<L20
 00D0 10E0              ldi R17,>L20
 00D2 0E940000          xcall _WriteCommStr0
 00D6                   .dbline 67
 00D6           ;       ModemInit();
 00D6 0E940000          xcall _ModemInit
 00DA                   .dbline 68
 00DA           ;       iniGPS();
 00DA 0E940000          xcall _iniGPS
 00DE 13C0              xjmp L22
 00E0           L21:
 00E0                   .dbline 69
 00E0           ;       while(!Waitfor ("en", 254)){ // Wait for OK     
 00E0                   .dbline 71
 00E0           ;               //WriteCommStr0 ("ATD*97#\r");
 00E0           ;               if(Waitfor ("CAR",50)){
 00E0 22E3              ldi R18,50
 00E2 00E0              ldi R16,<L27
 00E4 10E0              ldi R17,>L27
 00E6 0E940000          xcall _Waitfor
 00EA 0023              tst R16
 00EC 09F0              breq L25
 00EE                   .dbline 71
 00EE                   .dbline 72
 00EE           ;                       conGPRS();
 00EE 26D0              xcall _conGPRS
 00F0                   .dbline 73
 00F0           ;               }
 00F0           L25:
 00F0                   .dbline 74
 00F0           ;               if(CC++>3)
 00F0 20901C00          lds R2,_CC
 00F4 3324              clr R3
 00F6 822D              mov R24,R2
 00F8 8F5F              subi R24,255    ; addi 1
 00FA 80931C00          sts _CC,R24
 00FE 83E0              ldi R24,3
 0100 8215              cp R24,R2
 0102 08F4              brsh L28
 0104                   .dbline 75
 0104           ;                       break;
 0104 07C0              xjmp L23
 0106           L28:
 0106                   .dbline 76
 0106           L22:
 0106                   .dbline 69
 0106 2EEF              ldi R18,254

⌨️ 快捷键说明

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