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

📄 coding.lis

📁 自定简单无线协议.由AVR编码发送,51中断接收解码, 误码率低, 但通信速率较低
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0110 20920000          sts _ms,R2
 0114 01C0              rjmp L26
 0116           L25:
 0116                   .dbline 83
 0116           ;        while(ms<3) PORTB=PORTB|0x01;
 0116 C09A              sbi 0x18,0
 0118           L26:
 0118                   .dbline 83
 0118 80910000          lds R24,_ms
 011C 90910100          lds R25,_ms+1
 0120 8330              cpi R24,3
 0122 E0E0              ldi R30,0
 0124 9E07              cpc R25,R30
 0126 B8F3              brlo L25
 0128           X5:
 0128                   .dbline -2
 0128           L21:
 0128                   .dbline 0 ; func end
 0128 0895              ret
 012A                   .dbend
 012A                   .dbfunc e signal_init _signal_init fV
                        .even
 012A           _signal_init::
 012A                   .dbline -1
 012A                   .dbline 88
 012A           ;       
 012A           ; }
 012A           ; 
 012A           ; void signal_init(void)
 012A           ; {     
 012A                   .dbline 89
 012A           ;        ms=0;
 012A 2224              clr R2
 012C 3324              clr R3
 012E 30920100          sts _ms+1,R3
 0132 20920000          sts _ms,R2
 0136 03C0              rjmp L30
 0138           L29:
 0138                   .dbline 90
 0138           ;        while(ms<4) PORTB=PORTB&0xfe;
 0138 88B3              in R24,0x18
 013A 8E7F              andi R24,254
 013C 88BB              out 0x18,R24
 013E           L30:
 013E                   .dbline 90
 013E 80910000          lds R24,_ms
 0142 90910100          lds R25,_ms+1
 0146 8430              cpi R24,4
 0148 E0E0              ldi R30,0
 014A 9E07              cpc R25,R30
 014C A8F3              brlo L29
 014E           X6:
 014E                   .dbline 91
 014E           ;        ms=0;
 014E 2224              clr R2
 0150 3324              clr R3
 0152 30920100          sts _ms+1,R3
 0156 20920000          sts _ms,R2
 015A 01C0              rjmp L33
 015C           L32:
 015C                   .dbline 92
 015C           ;        while(ms<4) PORTB=PORTB|0x01;
 015C C09A              sbi 0x18,0
 015E           L33:
 015E                   .dbline 92
 015E 80910000          lds R24,_ms
 0162 90910100          lds R25,_ms+1
 0166 8430              cpi R24,4
 0168 E0E0              ldi R30,0
 016A 9E07              cpc R25,R30
 016C B8F3              brlo L32
 016E           X7:
 016E                   .dbline -2
 016E           L28:
 016E                   .dbline 0 ; func end
 016E 0895              ret
 0170                   .dbend
 0170                   .dbfunc e signal_end _signal_end fV
                        .even
 0170           _signal_end::
 0170                   .dbline -1
 0170                   .dbline 97
 0170           ;       
 0170           ; }
 0170           ; 
 0170           ; void signal_end(void)
 0170           ; {      ms=0;
 0170                   .dbline 97
 0170 2224              clr R2
 0172 3324              clr R3
 0174 30920100          sts _ms+1,R3
 0178 20920000          sts _ms,R2
 017C 03C0              rjmp L37
 017E           L36:
 017E                   .dbline 98
 017E           ;        while(ms==0) PORTB=PORTB&0xfe;
 017E 88B3              in R24,0x18
 0180 8E7F              andi R24,254
 0182 88BB              out 0x18,R24
 0184           L37:
 0184                   .dbline 98
 0184 20900000          lds R2,_ms
 0188 30900100          lds R3,_ms+1
 018C 2220              tst R2
 018E 11F4              brne X8
 0190 3320              tst R3
 0192 A9F3              breq L36
 0194           X8:
 0194                   .dbline 100
 0194           ;       
 0194           ;        PORTB=PORTB|0x01;
 0194 C09A              sbi 0x18,0
 0196                   .dbline -2
 0196           L35:
 0196                   .dbline 0 ; func end
 0196 0895              ret
 0198                   .dbend
 0198                   .dbfunc e coding _coding fV
 0198           ;              m -> R20
 0198           ;              j -> R20
 0198           ;              i -> R22
 0198           ;            num -> R10
                        .even
 0198           _coding::
 0198 00D0              rcall push_xgsetF00C
 019A A02E              mov R10,R16
 019C                   .dbline -1
 019C                   .dbline 104
 019C           ; } 
 019C           ; 
 019C           ; void coding(unsigned char num)
 019C           ; {      unsigned char i,j,m;
 019C                   .dbline 105
 019C           ;        for(j=0;j<6;j++)
 019C 4427              clr R20
 019E 02C0              rjmp L43
 01A0           L40:
 01A0                   .dbline 106
 01A0           ;        {
 01A0                   .dbline 107
 01A0           ;               signal_init();
 01A0 C4DF              rcall _signal_init
 01A2                   .dbline 108
 01A2           ;        }
 01A2           L41:
 01A2                   .dbline 105
 01A2 4395              inc R20
 01A4           L43:
 01A4                   .dbline 105
 01A4 4630              cpi R20,6
 01A6 E0F3              brlo L40
 01A8           X9:
 01A8                   .dbline 110
 01A8           ;        
 01A8           ;        for(m=0;m<1;m++)
 01A8 4427              clr R20
 01AA 15C0              rjmp L47
 01AC           L44:
 01AC                   .dbline 111
 01AC           ;        {
 01AC                   .dbline 113
 01AC           ;        
 01AC           ;               signal_0();
 01AC 78DF              rcall _signal_0
 01AE                   .dbline 114
 01AE           ;               signal_1();
 01AE 9ADF              rcall _signal_1
 01B0                   .dbline 115
 01B0           ;               signal_0();
 01B0 76DF              rcall _signal_0
 01B2                   .dbline 116
 01B2           ;               signal_1();
 01B2 98DF              rcall _signal_1
 01B4                   .dbline 118
 01B4           ;        
 01B4           ;               for(i=0;i<8;i++)
 01B4 6627              clr R22
 01B6 0AC0              rjmp L51
 01B8           L48:
 01B8                   .dbline 119
 01B8           ;               {       
 01B8                   .dbline 121
 01B8           ;          
 01B8           ;                       if( ( num&(0x01<<i) )!=0)
 01B8 01E0              ldi R16,1
 01BA 162F              mov R17,R22
 01BC 00D0              rcall lsl8
 01BE 2A2C              mov R2,R10
 01C0 2022              and R2,R16
 01C2 11F0              breq L52
 01C4           X10:
 01C4                   .dbline 122
 01C4           ;                               signal_1();
 01C4 8FDF              rcall _signal_1
 01C6 01C0              rjmp L53
 01C8           L52:
 01C8                   .dbline 124
 01C8           ;                       else
 01C8           ;                               signal_0();
 01C8 6ADF              rcall _signal_0
 01CA           L53:
 01CA                   .dbline 126
 01CA           ;                               
 01CA           ;               }       
 01CA           L49:
 01CA                   .dbline 118
 01CA 6395              inc R22
 01CC           L51:
 01CC                   .dbline 118
 01CC 6830              cpi R22,8
 01CE A0F3              brlo L48
 01D0           X11:
 01D0                   .dbline 127
 01D0           ;       signal_init();
 01D0 ACDF              rcall _signal_init
 01D2                   .dbline 128
 01D2           ;               signal_init();
 01D2 ABDF              rcall _signal_init
 01D4                   .dbline 129
 01D4           ;        }
 01D4           L45:
 01D4                   .dbline 110
 01D4 4395              inc R20
 01D6           L47:
 01D6                   .dbline 110
 01D6 4130              cpi R20,1
 01D8 48F3              brlo L44
 01DA           X12:
 01DA                   .dbline 131
 01DA           ;               
 01DA           ;        signal_end();
 01DA CADF              rcall _signal_end
 01DC                   .dbline -2
 01DC           L39:
 01DC                   .dbline 0 ; func end
 01DC 00C0              rjmp pop_xgsetF00C
 01DE                   .dbsym r m 20 c
 01DE                   .dbsym r j 20 c
 01DE                   .dbsym r i 22 c
 01DE                   .dbsym r num 10 c
 01DE                   .dbend
 01DE                   .dbfunc e main _main fV
 01DE           ;           code -> <dead>
 01DE           ;              t -> R20,R21
                        .even
 01DE           _main::
 01DE                   .dbline -1
 01DE                   .dbline 135
 01DE           ; }
 01DE           ; //
 01DE           ; void main(void)
 01DE           ; {unsigned code;
 01DE                   .dbline 136
 01DE           ;  unsigned t=0;
 01DE 4427              clr R20
 01E0 5527              clr R21
 01E2                   .dbline 137
 01E2           ;  init_devices();
 01E2 53DF              rcall _init_devices
 01E4                   .dbline 138
 01E4           ;  DDRD=0x00;
 01E4 2224              clr R2
 01E6 21BA              out 0x11,R2
 01E8                   .dbline 139
 01E8           ;  PORTD=0x01;
 01E8 81E0              ldi R24,1
 01EA 82BB              out 0x12,R24
 01EC 0DC0              rjmp L56
 01EE           L55:
 01EE                   .dbline 144
 01EE           ; 
 01EE           ;  //insert your functional code here...
 01EE           ;  
 01EE           ;  while(1)
 01EE           ;  {    
 01EE                   .dbline 153
 01EE           ;       
 01EE           ;       /*
 01EE           ;       
 01EE           ;       while(PIND!=0x01)  ;
 01EE           ;       while(PIND==0x01)  coding(0x11);
 01EE           ;       coding(0xff);
 01EE           ;       delay(2000);
 01EE           ;       */
 01EE           ;       t++;
 01EE 4F5F              subi R20,255  ; offset = 1
 01F0 5F4F              sbci R21,255
 01F2                   .dbline 154
 01F2           ;               if(t==0xff)  t=0;
 01F2 4F3F              cpi R20,255
 01F4 E0E0              ldi R30,0
 01F6 5E07              cpc R21,R30
 01F8 11F4              brne L58
 01FA           X13:
 01FA                   .dbline 154
 01FA 4427              clr R20
 01FC 5527              clr R21
 01FE           L58:
 01FE                   .dbline 155
 01FE           ;               coding(t);
 01FE 042F              mov R16,R20
 0200 CBDF              rcall _coding
 0202                   .dbline 156
 0202           ;               delay(50000);
 0202 00E5              ldi R16,50000
 0204 13EC              ldi R17,195
 0206 FCDE              rcall _delay
 0208                   .dbline 160
 0208           ;               
 0208           ;               
 0208           ;       
 0208           ;  }
 0208           L56:
 0208                   .dbline 143
 0208 F2CF              rjmp L55
 020A           X14:
 020A                   .dbline -2
 020A           L54:
 020A                   .dbline 0 ; func end
 020A 0895              ret
 020C                   .dbsym l code 1 i
 020C                   .dbsym r t 20 i
 020C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\MYDOCU~1\电子\08电信节\coding_and_decode改进\coding.c
 0000           _ms::
 0000                   .blkb 2
 0002                   .dbsym e ms _ms i
 0002           ;  
 0002           ;  
 0002           ;  
 0002           ; }
 0002           ; 

⌨️ 快捷键说明

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