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

📄 210.lis

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 01A4           ;              i -> R20
 01A4           ;              j -> R10
 01A4           ;          dataf -> R22,R23
                        .even
 01A4           _rf::
 01A4 00D0              rcall push_gset3
 01A6 602F              mov R22,R16
 01A8 712F              mov R23,R17
 01AA                   .dbline -1
 01AA                   .dbline 196
 01AA           ; } 
 01AA           ; //发送数据 
 01AA           ; void rf (unsigned char *dataf)
 01AA           ; {
 01AA                   .dbline 199
 01AA           ;     unsigned char i; 
 01AA           ;     unsigned char j;
 01AA           ;  RF_ON;                       //起始位
 01AA C29A              sbi 0x18,2
 01AC                   .dbline 200
 01AC           ;  del(350);
 01AC 0EE5              ldi R16,350
 01AE 11E0              ldi R17,1
 01B0 45DF              rcall _del
 01B2                   .dbline 201
 01B2           ;  for(i=0;i<3;i++)
 01B2 4427              clr R20
 01B4 1BC0              rjmp L58
 01B6           L55:
 01B6                   .dbline 202
 01B6           ;  {             for(j=0;j<8;j++)
 01B6                   .dbline 202
 01B6 AA24              clr R10
 01B8 13C0              rjmp L62
 01BA           L59:
 01BA                   .dbline 203
 01BA           ;                {
 01BA                   .dbline 204
 01BA           ;          if(*dataf & (0x80>>j))  //如果该位为1 
 01BA 2A2D              mov R18,R10
 01BC 3327              clr R19
 01BE 00E8              ldi R16,128
 01C0 10E0              ldi R17,0
 01C2 00D0              rcall asr16
 01C4 E62F              mov R30,R22
 01C6 F72F              mov R31,R23
 01C8 2080              ldd R2,z+0
 01CA 3324              clr R3
 01CC 2022              and R2,R16
 01CE 3122              and R3,R17
 01D0 2220              tst R2
 01D2 11F4              brne X1
 01D4 3320              tst R3
 01D6 11F0              breq L63
 01D8           X1:
 01D8                   .dbline 205
 01D8           ;             data_1();
 01D8 D3DF              rcall _data_1
 01DA 01C0              rjmp L64
 01DC           L63:
 01DC                   .dbline 206
 01DC           ;             else data_0();
 01DC DADF              rcall _data_0
 01DE           L64:
 01DE                   .dbline 207
 01DE           L60:
 01DE                   .dbline 202
 01DE A394              inc R10
 01E0           L62:
 01E0                   .dbline 202
 01E0 8A2D              mov R24,R10
 01E2 8830              cpi R24,8
 01E4 50F3              brlo L59
 01E6                   .dbline 208
 01E6 6F5F              subi R22,255  ; offset = 1
 01E8 7F4F              sbci R23,255
 01EA                   .dbline 209
 01EA           L56:
 01EA                   .dbline 201
 01EA 4395              inc R20
 01EC           L58:
 01EC                   .dbline 201
 01EC 4330              cpi R20,3
 01EE 18F3              brlo L55
 01F0                   .dbline 210
 01F0           ;               } 
 01F0           ;               dataf++; 
 01F0           ;  }
 01F0           ;  RF_OFF;
 01F0 C298              cbi 0x18,2
 01F2                   .dbline -2
 01F2           L54:
 01F2 00D0              rcall pop_gset3
 01F4                   .dbline 0 ; func end
 01F4 0895              ret
 01F6                   .dbsym r i 20 c
 01F6                   .dbsym r j 10 c
 01F6                   .dbsym r dataf 22 pc
 01F6                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 FBC0              rjmp _PCINT0_ovf_isr
                        .area text(rom, con, rel)
 01F6                   .dbfile E:\abol\file\EMD\programme\EM-PB-210\210.c
 01F6                   .dbfunc e PCINT0_ovf_isr _PCINT0_ovf_isr fV
                        .even
 01F6           _PCINT0_ovf_isr::
 01F6 0A92              st -y,R0
 01F8 0FB6              in R0,0x3f
 01FA 0A92              st -y,R0
 01FC                   .dbline -1
 01FC                   .dbline 215
 01FC           ; }
 01FC           ; 
 01FC           ; #pragma interrupt_handler PCINT0_ovf_isr:03
 01FC           ; void PCINT0_ovf_isr(void)     //中断程序 
 01FC           ; {
 01FC                   .dbline 216
 01FC           ;  NOP();
 01FC 0000              nop
 01FE                   .dbline -2
 01FE           L65:
 01FE 0990              ld R0,y+
 0200 0FBE              out 0x3f,R0
 0202 0990              ld R0,y+
 0204                   .dbline 0 ; func end
 0204 1895              reti
 0206                   .dbend
 0206                   .dbfunc e main _main fV
 0206           ;              i -> R20
                        .even
 0206           _main::
 0206                   .dbline -1
 0206                   .dbline 220
 0206           ; }
 0206           ; //主函数!不用解释了
 0206           ; void main()
 0206           ; {
 0206                   .dbline 224
 0206           ; 
 0206           ;    unsigned char i;
 0206           ;       //以下初始化硬件
 0206           ;       port_init();    //端口初始化
 0206 FCDE              rcall _port_init
 0208                   .dbline 225
 0208           ;       adc_init();
 0208 00DF              rcall _adc_init
 020A                   .dbline 227
 020A           ; //    watchdog_init();//初始化看门狗  
 020A           ;       SEI(); //re-enable interrupts 
 020A 7894              sei
 020C                   .dbline 228
 020C           ;       GetADC();
 020C 38DF              rcall _GetADC
 020E                   .dbline 229
 020E           ;       delay(10);
 020E 0AE0              ldi R16,10
 0210 10E0              ldi R17,0
 0212 26DF              rcall _delay
 0214 3EC0              rjmp L68
 0216           L67:
 0216                   .dbline 231
 0216           ;       while(1)
 0216           ;       {
 0216                   .dbline 232
 0216           ;       if((!(PINB&0x08))||(!(PINB&0x01)))
 0216 B39B              sbis 0x16,3
 0218 02C0              rjmp L72
 021A B099              sbic 0x16,0
 021C 1BC0              rjmp L70
 021E           L72:
 021E                   .dbline 233
 021E           ;       {
 021E                   .dbline 234
 021E           ;       WDR();
 021E A895              wdr
 0220                   .dbline 235
 0220           ;       EN_ON;
 0220 C19A              sbi 0x18,1
 0222                   .dbline 236
 0222           ;       addr_f();
 0222 86DF              rcall _addr_f
 0224                   .dbline 237
 0224           ;       for(i=0;i<50;i++)
 0224 4427              clr R20
 0226 13C0              rjmp L76
 0228           L73:
 0228                   .dbline 238
 0228                   .dbline 239
 0228 20900300          lds R2,_data
 022C 20920000          sts _dataf,R2
 0230                   .dbline 240
 0230 20900400          lds R2,_data+1
 0234 20920100          sts _dataf+1,R2
 0238                   .dbline 241
 0238 20900500          lds R2,_data+2
 023C 20920200          sts _dataf+2,R2
 0240                   .dbline 242
 0240 00E0              ldi R16,<_dataf
 0242 10E0              ldi R17,>_dataf
 0244 AFDF              rcall _rf
 0246                   .dbline 243
 0246 03E0              ldi R16,3
 0248 10E0              ldi R17,0
 024A 0ADF              rcall _delay
 024C                   .dbline 244
 024C           L74:
 024C                   .dbline 237
 024C 4395              inc R20
 024E           L76:
 024E                   .dbline 237
 024E 4233              cpi R20,50
 0250 58F3              brlo L73
 0252                   .dbline 245
 0252           ;       {
 0252           ;       dataf[0]=data[0]; 
 0252           ;       dataf[1]=data[1];
 0252           ;       dataf[2]=data[2]; 
 0252           ;       rf(dataf);  
 0252           ;       delay(3);
 0252           ;       } 
 0252           ;       EN_OFF;
 0252 C198              cbi 0x18,1
 0254                   .dbline 246
 0254           ;       }
 0254           L70:
 0254                   .dbline 247
 0254           ;       GIMSK|=(1<<PCIE);
 0254 8BB7              in R24,0x3b
 0256 8062              ori R24,32
 0258 8BBF              out 0x3b,R24
 025A                   .dbline 248
 025A           ;       PCMSK|=(1<<PCINT0);     
 025A A89A              sbi 0x15,0
 025C                   .dbline 249
 025C           ;       PCMSK|=(1<<PCINT3);
 025C AB9A              sbi 0x15,3
 025E                   .dbline 250
 025E           ;       ADCSRA=0;       
 025E 2224              clr R2
 0260 26B8              out 0x6,R2
 0262                   .dbline 251
 0262           ;               MCUCR |= BIT(SM1); 
 0262 85B7              in R24,0x35
 0264 8061              ori R24,16
 0266 85BF              out 0x35,R24
 0268                   .dbline 253
 0268           ; 
 0268           ;         MCUCR |= BIT(SE); 
 0268 85B7              in R24,0x35
 026A 8062              ori R24,32
 026C 85BF              out 0x35,R24
 026E                   .dbline 255
 026E           ; 
 026E           ;               asm("sleep\n");                                                         //进入睡眠状态
 026E 8895              sleep
 0270                   
 0270                   .dbline 256
 0270           ;               NOP();
 0270 0000              nop
 0272                   .dbline 257
 0272           ;               MCUCR=0;
 0272 25BE              out 0x35,R2
 0274                   .dbline 258
 0274           ;               delay(2);
 0274 02E0              ldi R16,2
 0276 10E0              ldi R17,0
 0278 F3DE              rcall _delay
 027A                   .dbline 259
 027A           ;               if(!(PINB&0x08)) PINBS=1;
 027A B399              sbic 0x16,3
 027C 04C0              rjmp L81
 027E                   .dbline 259
 027E 81E0              ldi R24,1
 0280 80930800          sts _PINBS,R24
 0284 03C0              rjmp L82
 0286           L81:
 0286                   .dbline 260
 0286           ;               else PINBS=0;
 0286 2224              clr R2
 0288 20920800          sts _PINBS,R2
 028C           L82:
 028C                   .dbline 261
 028C 2224              clr R2
 028E 2BBE              out 0x3b,R2
 0290                   .dbline 262
 0290 BCDE              rcall _adc_init
 0292                   .dbline 263
 0292           L68:
 0292                   .dbline 230
 0292 C1CF              rjmp L67
 0294           X2:
 0294                   .dbline -2
 0294           L66:
 0294                   .dbline 0 ; func end
 0294 0895              ret
 0296                   .dbsym r i 20 c
 0296                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\abol\file\EMD\programme\EM-PB-210\210.c
 0000           _dataf::
 0000                   .blkb 3
 0003                   .dbsym e dataf _dataf A[3:3]c
 0003           _data::
 0003                   .blkb 3
 0006                   .dbsym e data _data A[3:3]c
 0006           _DECODER_CODE0::
 0006                   .blkb 1
 0007                   .dbsym e DECODER_CODE0 _DECODER_CODE0 c
 0007           _DECODER_CODE1::
 0007                   .blkb 1
 0008                   .dbsym e DECODER_CODE1 _DECODER_CODE1 c
 0008           _PINBS::
 0008                   .blkb 1
 0009                   .dbsym e PINBS _PINBS c
 0009           _flagl::
 0009                   .blkb 1
 000A                   .dbsym e flagl _flagl c
 000A           _j::
 000A                   .blkb 1
 000B                   .dbsym e j _j c
 000B           _i::
 000B                   .blkb 1
 000C                   .dbsym e i _i c
 000C           _crc::
 000C                   .blkb 1
 000D                   .dbsym e crc _crc c
 000D           _aa::
 000D                   .blkb 2
 000F                   .dbsym e aa _aa i
 000F           _ai::
 000F                   .blkb 2
 0011                   .dbsym e ai _ai i

⌨️ 快捷键说明

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