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

📄 main.lis

📁 CC1000通信
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -