📄 main.lis
字号:
018E 242F mov R18,R20
0190 2D7F andi R18,253
0192 0027 clr R16
0194 0E940000 xcall _WriteToCC1000Register
0198 .dbline 325
0198 ;
0198 ; delay(12);
0198 0CE0 ldi R16,12
019A 10E0 ldi R17,0
019C 31DF xcall _delay
019E .dbline -2
019E L13:
019E 0E940000 xcall pop_gset2
01A2 .dbline 0 ; func end
01A2 0895 ret
01A4 .dbsym r MainValue 20 c
01A4 .dbsym r addr 22 c
01A4 .dbend
01A4 .dbfunc e SoftUART_Send _SoftUART_Send fc
01A4 ; i -> R20,R21
01A4 ; j -> R22,R23
01A4 ; data -> R16
.even
01A4 _SoftUART_Send::
01A4 0E940000 xcall push_gset2
01A8 .dbline -1
01A8 .dbline 333
01A8 ;
01A8 ; }
01A8 ;
01A8 ;
01A8 ; //******************************************************//
01A8 ;
01A8 ; unsigned char SoftUART_Send(unsigned char data)
01A8 ; {
01A8 .dbline 336
01A8 ; ///while (!CHECK_BIT(UCSR0A,1<<UDRE0));
01A8 ; int i,j;
01A8 ; UDR0 = data ;
01A8 0CB9 out 0xc,R16
01AA .dbline 337
01AA ; for(i=0;i<200;i++)
01AA 4427 clr R20
01AC 5527 clr R21
01AE L32:
01AE .dbline 338
01AE 6627 clr R22
01B0 7727 clr R23
01B2 L36:
01B2 .dbline 338
01B2 L37:
01B2 .dbline 338
01B2 6F5F subi R22,255 ; offset = 1
01B4 7F4F sbci R23,255
01B6 .dbline 338
01B6 683C cpi R22,200
01B8 E0E0 ldi R30,0
01BA 7E07 cpc R23,R30
01BC D4F3 brlt L36
01BE L33:
01BE .dbline 337
01BE 4F5F subi R20,255 ; offset = 1
01C0 5F4F sbci R21,255
01C2 .dbline 337
01C2 483C cpi R20,200
01C4 E0E0 ldi R30,0
01C6 5E07 cpc R21,R30
01C8 94F3 brlt L32
01CA .dbline 341
01CA ; for(j=0;j<200;j++);
01CA ; ///while (!CHECK_BIT(UCSR0A, 1<<TXC0));
01CA ;
01CA ; return 0;
01CA 0027 clr R16
01CC .dbline -2
01CC L31:
01CC 0E940000 xcall pop_gset2
01D0 .dbline 0 ; func end
01D0 0895 ret
01D2 .dbsym r i 20 I
01D2 .dbsym r j 22 I
01D2 .dbsym r data 16 c
01D2 .dbend
01D2 .dbfunc e SoftUART_Receive _SoftUART_Receive fc
.even
01D2 _SoftUART_Receive::
01D2 .dbline -1
01D2 .dbline 345
01D2 ; }
01D2 ; //****************************************************************
01D2 ; unsigned char SoftUART_Receive(void) //USART0接收数据
01D2 ; {
01D2 02C0 xjmp L42
01D4 L41:
01D4 .dbline 346
01D4 0CB1 in R16,0xc
01D6 05C0 xjmp L40
01D8 L42:
01D8 .dbline 346
01D8 ; while ((UCSR0A&(1<<RXC0))==(1<<RXC0)) return UDR0;
01D8 2BB0 in R2,0xb
01DA 3324 clr R3
01DC 27FC sbrc R2,7
01DE FACF rjmp L41
01E0 .dbline 347
01E0 ; return 0;
01E0 0027 clr R16
01E2 .dbline -2
01E2 L40:
01E2 .dbline 0 ; func end
01E2 0895 ret
01E4 .dbend
01E4 .dbfunc e main _main fI
01E4 ; rdata -> <dead>
01E4 ; endcode -> <dead>
01E4 ; precode -> R22
01E4 ; sycode -> R10
01E4 ; databuf -> y+0
01E4 ; i -> R20,R21
.even
01E4 _main::
01E4 2397 sbiw R28,3
01E6 .dbline -1
01E6 .dbline 352
01E6 ;
01E6 ; }
01E6 ; //********************************************************
01E6 ; int main(void)
01E6 ; {
01E6 .dbline 359
01E6 ; unsigned char sycode,precode,endcode,rdata;
01E6 ; unsigned char databuf[MAX];
01E6 ; int i;
01E6 ; //DDRB = 0x46 ;
01E6 ; //DDRA = 0x40 ;
01E6 ; //DDRE = 0x40 ;
01E6 ; DDRD = 0x3E;
01E6 8EE3 ldi R24,62
01E8 81BB out 0x11,R24
01EA .dbline 360
01EA ; init_usart();
01EA 61DF xcall _init_usart
01EC .dbline 361
01EC ; Init();
01EC 6DDF xcall _Init
01EE .dbline 364
01EE ; //CC1000_init();
01EE ;
01EE ; if(flag)
01EE 14C0 xjmp L45
01F0 X0:
01F0 .dbline 365
01F0 ; {
01F0 .dbline 366
01F0 ; C1000_TX_MODE();
01F0 1CDF xcall _C1000_TX_MODE
01F2 0EC0 xjmp L48
01F4 L47:
01F4 .dbline 372
01F4 ; //SetupCC1000TX(0x81,0x48); //切换到发射状态
01F4 ; //PORTE = 0x00;
01F4 ; //DDRE = 0x40;
01F4 ;
01F4 ; while(1)
01F4 ; {
01F4 .dbline 373
01F4 ; SoftUART_Send(0x55);
01F4 05E5 ldi R16,85
01F6 D6DF xcall _SoftUART_Send
01F8 .dbline 374
01F8 ; SoftUART_Send(0xFF);
01F8 0FEF ldi R16,255
01FA D4DF xcall _SoftUART_Send
01FC .dbline 375
01FC ; for(i=0;i<MAX;i++)
01FC 4427 clr R20
01FE 5527 clr R21
0200 L50:
0200 .dbline 376
0200 .dbline 377
0200 03E3 ldi R16,51
0202 D0DF xcall _SoftUART_Send
0204 .dbline 378
0204 L51:
0204 .dbline 375
0204 4F5F subi R20,255 ; offset = 1
0206 5F4F sbci R21,255
0208 .dbline 375
0208 4330 cpi R20,3
020A E0E0 ldi R30,0
020C 5E07 cpc R21,R30
020E C4F3 brlt L50
0210 .dbline 379
0210 L48:
0210 .dbline 371
0210 F1CF xjmp L47
0212 X1:
0212 .dbline 381
0212 ; {
0212 ; SoftUART_Send(0x33);
0212 ; }
0212 ; }
0212 ;
0212 ; return 0;
0212 0027 clr R16
0214 1127 clr R17
0216 28C0 xjmp L44
0218 L45:
0218 .dbline 384
0218 ; }
0218 ; else
0218 ; {
0218 .dbline 385
0218 ; C1000_RX_MODE();
0218 2DDF xcall _C1000_RX_MODE
021A 23C0 xjmp L55
021C L54:
021C .dbline 393
021C ; // WakeUpCC1000ToRX(0x44,0x60);
021C ; //SetupCC1000RX(0x38,0x60); //切换到接收状态
021C ; //SetupCC1000RX(0x44,0x60); //切换到接收状态
021C ; //PORTE = 0x00;
021C ; //DDRE = 0x00;
021C ;
021C ; while(1)
021C ; {
021C .dbline 394
021C ; AverageFreeRunCC1000();
021C 0E940000 xcall _AverageFreeRunCC1000
0220 .dbline 396
0220 ;
0220 ; sycode = SoftUART_Receive();
0220 D8DF xcall _SoftUART_Receive
0222 A02E mov R10,R16
0224 .dbline 397
0224 ; precode = SoftUART_Receive();
0224 D6DF xcall _SoftUART_Receive
0226 602F mov R22,R16
0228 .dbline 399
0228 ;
0228 ; if(sycode == 0x55)
0228 8A2D mov R24,R10
022A 8535 cpi R24,85
022C D1F4 brne L57
022E .dbline 400
022E ; {
022E .dbline 401
022E ; AverageManualLockCC1000();
022E 0E940000 xcall _AverageManualLockCC1000
0232 .dbline 404
0232 ; // if(precode == 0xFF)
0232 ; // {
0232 ; SoftUART_Send(sycode);
0232 0A2D mov R16,R10
0234 B7DF xcall _SoftUART_Send
0236 .dbline 405
0236 ; SoftUART_Send(precode);
0236 062F mov R16,R22
0238 B5DF xcall _SoftUART_Send
023A .dbline 406
023A ; for(i=0;i<MAX;i++)
023A 4427 clr R20
023C 5527 clr R21
023E L59:
023E .dbline 407
023E .dbline 408
023E C9DF xcall _SoftUART_Receive
0240 CE01 movw R24,R28
0242 FA01 movw R30,R20
0244 E80F add R30,R24
0246 F91F adc R31,R25
0248 0083 std z+0,R16
024A .dbline 410
024A CE01 movw R24,R28
024C FA01 movw R30,R20
024E E80F add R30,R24
0250 F91F adc R31,R25
0252 0081 ldd R16,z+0
0254 A7DF xcall _SoftUART_Send
0256 .dbline 411
0256 L60:
0256 .dbline 406
0256 4F5F subi R20,255 ; offset = 1
0258 5F4F sbci R21,255
025A .dbline 406
025A 4330 cpi R20,3
025C E0E0 ldi R30,0
025E 5E07 cpc R21,R30
0260 74F3 brlt L59
0262 .dbline 413
0262 ; {
0262 ; databuf[i] = SoftUART_Receive();
0262 ;
0262 ; SoftUART_Send(databuf[i]);
0262 ; }
0262 ; // }
0262 ; }
0262 L57:
0262 .dbline 416
0262 L55:
0262 .dbline 392
0262 DCCF xjmp L54
0264 X2:
0264 .dbline 417
0264 ; //endcode = SoftUART_Receive();
0264 ;
0264 ; }
0264 ; return 0;
0264 0027 clr R16
0266 1127 clr R17
0268 .dbline -2
0268 L44:
0268 2396 adiw R28,3
026A .dbline 0 ; func end
026A 0895 ret
026C .dbsym l rdata 1 c
026C .dbsym l endcode 1 c
026C .dbsym r precode 22 c
026C .dbsym r sycode 10 c
026C .dbsym l databuf 0 A[3:3]c
026C .dbsym r i 20 I
026C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -