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

📄 main.s

📁 微程序控制器采用ATMEL AVR MEGA162
💻 S
字号:
	.module main.c
	.area eeprom(rom, con, rel)
_ip::
	.byte 48,48,48,46,48,48,48,46,48,48,48,46,48,48,48,0
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.dbsym e ip _ip A[16:16]c
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
_GPRSCommand::
	.blkw 1
	.area idata
	.word L1
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.blkw 1
	.area idata
	.word L2
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.blkw 1
	.area idata
	.word L3
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.blkw 1
	.area idata
	.word L4
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.blkw 1
	.area idata
	.word L5
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.dbsym e GPRSCommand _GPRSCommand A[10:5]pc
_IPADD::
	.blkb 16
	.area idata
	.byte 48,48,48,46,48,48,48,46,48,48,48,46,48,48,48,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.dbsym e IPADD _IPADD A[16:16]c
_p_IPADD::
	.blkw 1
	.area idata
	.word _IPADD
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.dbsym e p_IPADD _p_IPADD pc
_CC::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.dbsym e CC _CC c
	.area text(rom, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
	.dbfunc e main _main fV
;            Res -> <dead>
;    ResSendSucc -> R20
;            num -> R20
	.even
_main::
	sbiw R28,2
	.dbline -1
	.dbline 32
; //ICC-AVR application builder : 2007-6-9 11:45:19
; // Target : M162
; // Crystal: 3.6864Mhz
; #include "sci.h"
; 
; #include "modem.h"
; #include <stdlib.h>
; #include <eeprom.h>
; 
; #pragma data:eeprom
; BYTE ip[]="000.000.000.000";
; #pragma data:data
; 
; 
; char * GPRSCommand [] = {
; 	"AT\r",
;     "ATE0\r",//////////
;     "AT+CGDCONT=1,\"IP\",\"CMWAP\"\r",
;     "AT%CGPCO=1,\"PAP,,\",1\r", 
; 	//"AT$DESTINFO=\"218.6.64.240\",2,80\r",//UDP 2 TCP 1
; 	"AT$NOSLEEP=1\r"
; };
; 
; BYTE IPADD[]="000.000.000.000";
; BYTE *p_IPADD=IPADD;
; BYTE CC=0;
; void conGPRS(void);
; void init_devices(void);
; void iniGPS(void);
; 
; void main(void)
; {
	.dbline 35
;     BYTE num;
; 	BYTE Res;
; 	BYTE ResSendSucc=1;
	ldi R20,1
	.dbline 37
; 	
; 	init_devices();    
	xcall _init_devices
	.dbline 38
;     timer1_init();
	xcall _timer1_init
	.dbline 39
;     initTimer2();
	xcall _initTimer2
	.dbline 40
;     WriteCommStr0("start");
	ldi R16,<L7
	ldi R17,>L7
	xcall _WriteCommStr0
	.dbline 42
; 	
; 	ModemInit();
	xcall _ModemInit
	.dbline 43
; 	if(Waitfor ("ip", 250)){
	ldi R18,250
	ldi R16,<L10
	ldi R17,>L10
	xcall _Waitfor
	tst R16
	breq L8
	.dbline 43
	.dbline 44
; 		WriteCommStr0("input ip add end with ;");
	ldi R16,<L11
	ldi R17,>L11
	xcall _WriteCommStr0
	.dbline 45
; 		UCSR0B &= ~(1<<RXCIE0);//stop u0 int
	cbi 0xa,7
	xjmp L13
L12:
	.dbline 46
	.dbline 47
	lds R30,_p_IPADD
	lds R31,_p_IPADD+1
	st Z+,R20
	sts _p_IPADD+1,R31
	sts _p_IPADD,R30
	.dbline 48
L13:
	.dbline 46
; 		while((num=ReadComm0())!=';'){
	xcall _ReadComm0
	mov R20,R16
	cpi R20,59
	brne L12
	.dbline 49
; 			*p_IPADD++=num;
; 		}
; 		*p_IPADD=0;
	clr R2
	lds R30,_p_IPADD
	lds R31,_p_IPADD+1
	std z+0,R2
	.dbline 50
; 		EEPROM_WRITE((int)ip,IPADD);
	ldi R24,16
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_IPADD
	ldi R19,>_IPADD
	ldi R16,<_ip
	ldi R17,>_ip
	xcall _EEPROMWriteBytes
	.dbline 51
; 		WriteCommStr0("\nyou ip is:");
	ldi R16,<L15
	ldi R17,>L15
	xcall _WriteCommStr0
	.dbline 52
; 		WriteCommStr0(IPADD);
	ldi R16,<_IPADD
	ldi R17,>_IPADD
	xcall _WriteCommStr0
	.dbline 53
; 		WriteCommStr0("\nturn switch to gps mode\n");
	ldi R16,<L16
	ldi R17,>L16
	xcall _WriteCommStr0
	.dbline 54
; 		UCSR0B |= (1<<RXCIE0);//start u0 int
	sbi 0xa,7
	.dbline 55
; 		DelayMORE(100);
	ldi R16,100
	xcall _DelayMORE
	.dbline 56
	xjmp L9
L8:
	.dbline 56
; 	}else{
	.dbline 57
; 		EEPROM_READ((int)ip,IPADD);	
	ldi R24,16
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_IPADD
	ldi R19,>_IPADD
	ldi R16,<_ip
	ldi R17,>_ip
	xcall _EEPROMReadBytes
	.dbline 58
; 		WriteCommStr0("config time has pass");
	ldi R16,<L17
	ldi R17,>L17
	xcall _WriteCommStr0
	.dbline 59
; 		DelayMORE(10);
	ldi R16,10
	xcall _DelayMORE
	.dbline 60
; 	}
L9:
	.dbline 62
;     
; 	WriteCommStr0("\nif you have not turn switch ,you must restart device");
	ldi R16,<L18
	ldi R17,>L18
	xcall _WriteCommStr0
	.dbline 63
; 	WriteCommStr0("at\r");
	ldi R16,<L19
	ldi R17,>L19
	xcall _WriteCommStr0
	.dbline 64
; 	conGPRS();
	xcall _conGPRS
	.dbline 65
; 	DelayMORE(50);
	ldi R16,50
	xcall _DelayMORE
	.dbline 66
; 	WriteCommStr0 ("ATD*97#\r");
	ldi R16,<L20
	ldi R17,>L20
	xcall _WriteCommStr0
	.dbline 67
; 	ModemInit();
	xcall _ModemInit
	.dbline 68
; 	iniGPS();
	xcall _iniGPS
	xjmp L22
L21:
	.dbline 69
; 	while(!Waitfor ("en", 254)){ // Wait for OK	
	.dbline 71
; 		//WriteCommStr0 ("ATD*97#\r");
; 		if(Waitfor ("CAR",50)){
	ldi R18,50
	ldi R16,<L27
	ldi R17,>L27
	xcall _Waitfor
	tst R16
	breq L25
	.dbline 71
	.dbline 72
; 			conGPRS();
	xcall _conGPRS
	.dbline 73
; 		}
L25:
	.dbline 74
; 		if(CC++>3)
	lds R2,_CC
	clr R3
	mov R24,R2
	subi R24,255    ; addi 1
	sts _CC,R24
	ldi R24,3
	cp R24,R2
	brsh L28
	.dbline 75
; 			break;
	xjmp L23
L28:
	.dbline 76
L22:
	.dbline 69
	ldi R18,254
	ldi R16,<L24
	ldi R17,>L24
	xcall _Waitfor
	tst R16
	breq L21
L23:
	.dbline 77
; 	}
; 	DelayMORE(50);
	ldi R16,50
	xcall _DelayMORE
	xjmp L31
L30:
	.dbline 79
;     while(1)
;     {      
	.dbline 80
; 		UCSR1B |= (1<<RXCIE1);
	sbi 0x1,7
	.dbline 81
; 		DelayMORE(100);
	ldi R16,100
	xcall _DelayMORE
	.dbline 82
; 		UCSR1B &= ~(1<<RXCIE1);
	cbi 0x1,7
	.dbline 83
; 		if(Waitfor ("CAR",50)){
	ldi R18,50
	ldi R16,<L27
	ldi R17,>L27
	xcall _Waitfor
	tst R16
	breq L33
	.dbline 83
	.dbline 84
; 			conGPRS();
	xcall _conGPRS
	.dbline 85
; 		}
L33:
	.dbline 86
L31:
	.dbline 78
	xjmp L30
X0:
	.dbline -2
L6:
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym l Res 3 c
	.dbsym r ResSendSucc 20 c
	.dbsym r num 20 c
	.dbend
	.dbfunc e conGPRS _conGPRS fV
;            Res -> R20
;          index -> R22
	.even
_conGPRS::
	xcall push_gset2
	.dbline -1
	.dbline 89
;     }
; }
; 
; void conGPRS(){
	.dbline 91
; 	BYTE index ;
; 	BYTE Res = 0 ;
	clr R20
	.dbline 92
; 	for (index = 0; index <= 4; index++) 
	clr R22
	xjmp L39
L36:
	.dbline 93
;     { 
	.dbline 94
; 		WriteCommStr0 (GPRSCommand [index]);
	ldi R24,2
	mul R24,R22
	movw R30,R0
	ldi R24,<_GPRSCommand
	ldi R25,>_GPRSCommand
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	ldd R17,z+1
	xcall _WriteCommStr0
	.dbline 96
; 		
; 		Res = Waitfor ("OK", 50); // Wait for OK	
	ldi R18,50
	ldi R16,<L40
	ldi R17,>L40
	xcall _Waitfor
	mov R20,R16
	.dbline 97
; 		DelayMORE(30);//40
	ldi R16,30
	xcall _DelayMORE
	.dbline 98
; 		if (!Res)
	tst R20
	brne L41
	.dbline 99
;    		{ 
	.dbline 100
;        		ModemInit (); 
	xcall _ModemInit
	.dbline 101
;           	index = 0;
	clr R22
	.dbline 102
; 			WriteCommStr0("ATH\r");
	ldi R16,<L43
	ldi R17,>L43
	xcall _WriteCommStr0
	.dbline 103
; 			Waitfor ("OK", 30);
	ldi R18,30
	ldi R16,<L40
	ldi R17,>L40
	xcall _Waitfor
	.dbline 104
;        	}     
L41:
	.dbline 105
L37:
	.dbline 92
	inc R22
L39:
	.dbline 92
	ldi R24,4
	cp R24,R22
	brsh L36
	.dbline 106
;     }
; 	WriteCommStr0 ("AT$DESTINFO=\"");
	ldi R16,<L44
	ldi R17,>L44
	xcall _WriteCommStr0
	.dbline 107
; 	WriteCommStr0 (IPADD);
	ldi R16,<_IPADD
	ldi R17,>_IPADD
	xcall _WriteCommStr0
	.dbline 108
; 	WriteCommStr0 ("\",2,80\r");
	ldi R16,<L45
	ldi R17,>L45
	xcall _WriteCommStr0
	.dbline -2
L35:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r Res 20 c
	.dbsym r index 22 c
	.dbend
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L45:
	.blkb 8
	.area idata
	.byte 34,44,50,44,56,48,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L44:
	.blkb 14
	.area idata
	.byte 'A,'T,36,'D,'E,'S,'T,'I,'N,'F,'O,61,34,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L43:
	.blkb 5
	.area idata
	.byte 'A,'T,'H,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L40:
	.blkb 3
	.area idata
	.byte 'O,'K,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L27:
	.blkb 4
	.area idata
	.byte 'C,'A,'R,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L24:
	.blkb 3
	.area idata
	.byte 'e,'n,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L20:
	.blkb 9
	.area idata
	.byte 'A,'T,'D,42,57,55,35,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L19:
	.blkb 4
	.area idata
	.byte 'a,'t,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L18:
	.blkb 54
	.area idata
	.byte 10,'i,'f,32,'y,'o,'u,32,'h,'a,'v,'e,32,'n,'o,'t
	.byte 32,'t,'u,'r,'n,32,'s,'w,'i,'t,'c,'h,32,44,'y,'o
	.byte 'u,32,'m,'u,'s,'t,32,'r,'e,'s,'t,'a,'r,'t,32,'d
	.byte 'e,'v,'i,'c,'e,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L17:
	.blkb 21
	.area idata
	.byte 'c,'o,'n,'f,'i,'g,32,'t,'i,'m,'e,32,'h,'a,'s,32
	.byte 'p,'a,'s,'s,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L16:
	.blkb 26
	.area idata
	.byte 10,'t,'u,'r,'n,32,'s,'w,'i,'t,'c,'h,32,'t,'o,32
	.byte 'g,'p,'s,32,'m,'o,'d,'e,10,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L15:
	.blkb 12
	.area idata
	.byte 10,'y,'o,'u,32,'i,'p,32,'i,'s,58,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L11:
	.blkb 24
	.area idata
	.byte 'i,'n,'p,'u,'t,32,'i,'p,32,'a,'d,'d,32,'e,'n,'d
	.byte 32,'w,'i,'t,'h,32,59,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L10:
	.blkb 3
	.area idata
	.byte 'i,'p,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L7:
	.blkb 6
	.area idata
	.byte 's,'t,'a,'r,'t,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L5:
	.blkb 14
	.area idata
	.byte 'A,'T,36,'N,'O,'S,'L,'E,'E,'P,61,49,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L4:
	.blkb 22
	.area idata
	.byte 'A,'T,37,'C,'G,'P,'C,'O,61,49,44,34,'P,'A,'P,44
	.byte 44,34,44,49,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L3:
	.blkb 27
	.area idata
	.byte 'A,'T,43,'C,'G,'D,'C,'O,'N,'T,61,49,44,34,'I,'P
	.byte 34,44,34,'C,'M,'W,'A,'P,34,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L2:
	.blkb 6
	.area idata
	.byte 'A,'T,'E,48,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L1:
	.blkb 4
	.area idata
	.byte 'A,'T,13,0
	.area data(ram, con, rel)
	.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c

⌨️ 快捷键说明

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