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

📄 main.s

📁 关于proteus的仿真实例
💻 S
📖 第 1 页 / 共 4 页
字号:
	.dbline 406
	ldi R24,1
	sts _DettqFlag,R24
	.dbline 406
	.dbline 407
;     }
	rjmp L151
L150:
	.dbline 409
; 	else 
; 	{
	.dbline 410
; 	    release = 1;
	ldi R24,1
	sts _release,R24
	.dbline 411
; 	}
L151:
	.dbline 413
; 			
; 	if(release && DettqFlag)
	lds R2,_release
	tst R2
	breq L154
	lds R2,_DettqFlag
	tst R2
	breq L154
	.dbline 414
; 	{
	.dbline 415
; 	    DettqFlag = 0;
	clr R2
	sts _DettqFlag,R2
	.dbline 416
; 		CplLED();
	ldi R24,1
	in R2,0x18
	eor R2,R24
	out 0x18,R2
	.dbline 418
; 
; 		return (TRUE);
	ldi R16,1
	rjmp L149
L154:
	.dbline 421
; 		
; 	}
; 	return (FALSE);
	clr R16
	.dbline -2
L149:
	adiw R28,1
	.dbline 0 ; func end
	ret
	.dbsym l tmp 0 c
	.dbend
	.dbfunc e IGT _IGT fV
;              n -> R16
	.even
_IGT::
	.dbline -1
	.dbline 425
; }
; 
; void IGT(unsigned char n)
; {
	.dbline 426
;     if(n)
	tst R16
	breq L157
	.dbline 427
; 	{
	.dbline 428
; 	    PORTD &= ~(1<<PD6);
	cbi 0x12,6
	.dbline 429
; 		DDRD |= (1<<PD6);
	sbi 0x11,6
	.dbline 430
; 	}
	rjmp L158
L157:
	.dbline 432
	.dbline 433
	cbi 0x11,6
	.dbline 434
L158:
	.dbline -2
L156:
	.dbline 0 ; func end
	ret
	.dbsym r n 16 c
	.dbend
	.dbfunc e work _work fV
	.even
_work::
	.dbline -1
	.dbline 438
; 	else
; 	{
; 	    DDRD &= ~(1<<PD6);
; 	}
; }
; 			
; void work(void)
; {
	rjmp L161
L160:
	.dbline 440
;     while(1)
; 	{
	.dbline 441
; 	    if(CheckSMS_in())
	rcall _CheckSMS_in
	tst R16
	breq L163
	.dbline 442
; 		{
	.dbline 443
; 		    RecSMS();
	rcall _RecSMS
	.dbline 444
; 	    }
L163:
	.dbline 445
; 		if(CallInFlag) 
	lds R2,_CallInFlag
	tst R2
	breq L165
	.dbline 446
; 		{
	.dbline 447
; 		    Put_AT_command(Ata,AtaLen);
	ldi R18,3
	ldi R16,<_Ata
	ldi R17,>_Ata
	rcall _Put_AT_command
	.dbline 448
; 		    CallInFlag = 0;
	clr R2
	sts _CallInFlag,R2
	.dbline 449
; 		}
L165:
	.dbline 450
; 		if((BusyFlag) || (NoCarrierFlag))  
	lds R2,_BusyFlag
	tst R2
	brne L169
	lds R2,_NoCarrierFlag
	tst R2
	breq L167
L169:
	.dbline 451
; 		{
	.dbline 452
; 		    Put_AT_command(Ath,AthLen);
	ldi R18,3
	ldi R16,<_Ath
	ldi R17,>_Ath
	rcall _Put_AT_command
	.dbline 453
; 			CallOut = 0;
	clr R2
	sts _CallOut,R2
	.dbline 454
; 			BusyFlag = 0;
	sts _BusyFlag,R2
	.dbline 455
; 			NoCarrierFlag = 0;
	sts _NoCarrierFlag,R2
	.dbline 456
; 		}
L167:
	.dbline 457
; 		if(DetQEITING() && (!CallOut))
	rcall _DetQEITING
	tst R16
	breq L170
	lds R2,_CallOut
	tst R2
	brne L170
	.dbline 458
; 		{
	.dbline 459
; 		    CallOut = 1;
	ldi R24,1
	sts _CallOut,R24
	.dbline 460
; 		    DialNum();
	rcall _DialNum
	.dbline 461
; 		}
L170:
	.dbline 462
L161:
	.dbline 439
	rjmp L160
X3:
	.dbline -2
L159:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e InitMC55 _InitMC55 fV
;            tmp -> <dead>
	.even
_InitMC55::
	sbiw R28,1
	.dbline -1
	.dbline 468
; 	}
; }
; /*-----------------------------------------------------------------------*/
; /////////////////////////////  初始化MC55    //////////////////////////////
; /*-----------------------------------------------------------------------*/
; void InitMC55(void)
; {
	.dbline 470
;  	unsigned char tmp;
;     IGT(OFF);                                   
	clr R16
	rcall _IGT
	.dbline 471
;     DelayMs(500);  	   			   			  // 置低MC55 IGT口 200mS ,启动MC55模块
	ldi R16,500
	ldi R17,1
	rcall _DelayMs
	.dbline 472
; 	IGT(ON);
	ldi R16,1
	rcall _IGT
	.dbline 473
;     DelayMs(500);
	ldi R16,500
	ldi R17,1
	rcall _DelayMs
	.dbline 474
;     IGT(OFF);                                   
	clr R16
	rcall _IGT
	.dbline 480
; 
; 
; //	DelayMs(1000);                             // 等待模块启动
; 	
; 
; 	ClrRTS();
	cbi 0x12,4
	.dbline 481
;     DelayMs(50);                              // 激活MC55串口
	ldi R16,50
	ldi R17,0
	rcall _DelayMs
	.dbline 482
; 	SetRTS();
	sbi 0x12,4
	.dbline 483
; 	DelayMs(50);
	ldi R16,50
	ldi R17,0
	rcall _DelayMs
	.dbline 484
; 	ClrRTS();
	cbi 0x12,4
	.dbline 485
;     DelayMs(50);                              // 激活MC55串口
	ldi R16,50
	ldi R17,0
	rcall _DelayMs
	.dbline 486
; 	SetRTS();
	sbi 0x12,4
	.dbline 490
; 
; //	DelayMs(1000);                              // 激活MC55串口
; 		
;     TxIndex = 0;
	clr R2
	sts _TxIndex,R2
	.dbline 491
;     RxIndex = 0;
	sts _RxIndex,R2
L173:
	.dbline 493
L174:
	.dbline 493
; 	
; 	while(!DetQEITING());
	rcall _DetQEITING
	tst R16
	breq L173
	.dbline 495
; 	
; 	PutString("AT",2,0);
	clr R2
	std y+0,R2
	ldi R18,2
	ldi R16,<L176
	ldi R17,>L176
	rcall _PutString
	.dbline 497
; 
; 	DelayMs(500);      
	ldi R16,500
	ldi R17,1
	rcall _DelayMs
	.dbline 499
;   
; 	PutString("AT",2,1);
	ldi R24,1
	std y+0,R24
	ldi R18,2
	ldi R16,<L176
	ldi R17,>L176
	rcall _PutString
	.dbline 501
; 	
; 	PutString("ATV0",4,1);
	ldi R24,1
	std y+0,R24
	ldi R18,4
	ldi R16,<L177
	ldi R17,>L177
	rcall _PutString
	.dbline 503
; 
; 	PutString("ATE0",4,1);
	ldi R24,1
	std y+0,R24
	ldi R18,4
	ldi R16,<L178
	ldi R17,>L178
	rcall _PutString
	.dbline 505
; 
; 	PutString("AT+CNMI=2,1",11,1);
	ldi R24,1
	std y+0,R24
	ldi R18,11
	ldi R16,<L179
	ldi R17,>L179
	rcall _PutString
	.dbline 507
; 
; 	PutString("AT+CMGF=1",9,1);
	ldi R24,1
	std y+0,R24
	ldi R18,9
	ldi R16,<L180
	ldi R17,>L180
	rcall _PutString
	.dbline 509
; 
; 	Delete_SMS(ALL);
	ldi R16,255
	rcall _Delete_SMS
	.dbline 511
; 	
; 	PhoneNum_to_EEPROM();
	rcall _PhoneNum_to_EEPROM
	.dbline 513
; 	
; 	EEPROM_to_PhoneNum();
	rcall _EEPROM_to_PhoneNum
	.dbline -2
L172:
	adiw R28,1
	.dbline 0 ; func end
	ret
	.dbsym l tmp 2 c
	.dbend
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 540
; 
; }
; 
; /////////////////////////////////////////////////////////////////////////////////
; /////////////////////////////////////////////////////////////////////////////////
; /////////////////////////////////////////////////////////////////////////////////
; /////////////////////////////////////////////////////////////////////////////////
; 
; /*
; #pragma interrupt_handler int0_isr:2
; void int0_isr(void)
; {
;  //external interupt on INT0
;  DialNum();
;  
; }
; 
; #pragma interrupt_handler int1_isr:3
; void int1_isr(void)
; {
;  //external interupt on INT1
; }
; */
; ////////////////////////////////////////////////////////////////////////////////
; 
; void port_init(void)
; {
	.dbline 541
;  PORTB = 0x01;
	ldi R24,1
	out 0x18,R24
	.dbline 542
;  DDRB  = 0x01;
	out 0x17,R24
	.dbline 543
;  PORTC = 0x00; //m103 output only
	clr R2
	out 0x15,R2
	.dbline 544
;  DDRC  = 0x02;
	ldi R24,2
	out 0x14,R24
	.dbline 545
;  PORTD = 0x0C;
	ldi R24,12
	out 0x12,R24
	.dbline 546
;  DDRD  = 0x50;
	ldi R24,80
	out 0x11,R24
	.dbline -2
L181:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e uart0_init _uart0_init fV
	.even
_uart0_init::
	.dbline -1
	.dbline 557
; }
; 
; //UART0 initialize
; // desired baud rate: 19200
; // actual: baud rate:19200 (0.0%)
; // char size: 8 bit
; // parity: Disabled
; //#ifdef XTAL == 3.6864
;  
; void uart0_init(void)
; {
	.dbline 558
;  UCSRB = 0x00; //disable while setting baud rate
	clr R2
	out 0xa,R2
	.dbline 559
;  UCSRA = 0x00;
	out 0xb,R2
	.dbline 560
;  UCSRC = BIT(URSEL) | 0x06;
	ldi R24,134
	out 0x20,R24
	.dbline 561
;  UBRRL = 0x0B; //set baud rate lo
	ldi R24,11
	out 0x9,R24
	.dbline 562
;  UBRRH = 0x00; //set baud rate hi
	out 0x20,R2
	.dbline 563
;  UCSRB = 0xD8;
	ldi R24,216
	out 0xa,R24
	.dbline -2
L182:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 581
; }
; //#endif
; 
; //#ifdef XTAL == 7.3728
; /*void uart0_init(void)
; {
;  UCSRB = 0x00; //disable while setting baud rate
;  UCSRA = 0x00;
;  UCSRC = BIT(URSEL) | 0x06;
;  UBRRL = 0x17; //set baud rate lo
;  UBRRH = 0x00; //set baud rate hi
;  UCSRB = 0xD8;
; }*/
; //#endif
; 
; //call this routine to initialize all peripherals
; void init_devices(void)
; {
	.dbline 583
;  //stop errant interrupts until set up
;  CLI(); //disable all interrupts
	cli
	.dbline 584
;  port_init();
	rcall _port_init
	.dbline 585
;  uart0_init();
	rcall _uart0_init
	.dbline 587
; 
;  MCUCR = 0x00;
	clr R2
	out 0x35,R2
	.dbline 588
;  GICR  = 0x00; //0xC0;
	out 0x3b,R2
	.dbline 589
;  TIMSK = 0x00; //timer interrupt sources
	out 0x39,R2
	.dbline 590
;  SEI(); //re-enable interrupts
	sei
	.dbline 592
;  
;  InitMC55();
	rcall _InitMC55
	.dbline -2
L183:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 599
; }
; 
; 
; 
; //
; void main(void)
; {
	.dbline 600
; DelayMs(1000); 
	ldi R16,1000
	ldi R17,3
	rcall _DelayMs
	.dbline 601
;  init_devices();
	rcall _init_devices
	.dbline 602
;  work();
	rcall _work
	.dbline -2
L184:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay\main.c
_TxIndex::
	.blkb 1
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
	.dbsym e TxIndex _TxIndex c
_TxBuf::
	.blkb 32
	.dbsym e TxBuf _TxBuf A[32:32]c
_RxIndex::
	.blkb 1
	.dbsym e RxIndex _RxIndex c
_RxBuf::
	.blkb 128
	.dbsym e RxBuf _RxBuf A[128:128]c
_Pdu::
	.blkb 128
	.dbsym e Pdu _Pdu A[128:128]c
_TmpBuf::
	.blkb 16
	.dbsym e TmpBuf _TmpBuf A[16:16]c
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
L180:
	.blkb 10
	.area idata
	.byte 'A,'T,43,'C,'M,'G,'F,61,49,0
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
L179:
	.blkb 12
	.area idata
	.byte 'A,'T,43,'C,'N,'M,'I,61,50,44,49,0
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
L178:
	.blkb 5
	.area idata
	.byte 'A,'T,'E,48,0
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
L177:
	.blkb 5
	.area idata
	.byte 'A,'T,'V,48,0
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
L176:
	.blkb 3
	.area idata
	.byte 'A,'T,0
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h
L135:
	.blkb 10
	.area idata
	.byte 'A,'T,43,'C,'M,'G,'R,61,49,0
	.area data(ram, con, rel)
	.dbfile D:\MyProject\SMS-MC55\Code\窃听器delay/var.h

⌨️ 快捷键说明

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