📄 main.s
字号:
.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 + -