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

📄 main.lis

📁 这一个用ATTINY26做的433M无线遥控解码程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 020E 2224              clr R2
 0210 2EBC              out 0x2e,R2
 0212                   .dbline 279
 0212           ;                               timeH  = 0x00;
 0212 20920700          sts _timeH,R2
 0216                   .dbline 280
 0216           ;                               timeL  = 0x00;
 0216 20920600          sts _timeL,R2
 021A                   .dbline 281
 021A           ;                               TCCR1B = 0x05;
 021A 85E0              ldi R24,5
 021C 8FBD              out 0x2f,R24
 021E                   .dbline 283
 021E           ;                               
 021E           ;                               bits   = 0;
 021E 20920800          sts _bits,R2
 0222                   .dbline 284
 0222           ;                               addrL  = 0;
 0222 20920300          sts _addrL,R2
 0226                   .dbline 285
 0226           ;                               addrH  = 0;
 0226 20920400          sts _addrH,R2
 022A                   .dbline 286
 022A           ;                               datas  = 0;
 022A 20920500          sts _datas,R2
 022E                   .dbline 287
 022E           ;                               flag   = 0;
 022E 20920B00          sts _flag,R2
 0232                   .dbline 288
 0232           ;                       }       
 0232                   .dbline 289
 0232           ;               }
 0232                   .dbline 290
 0232           ;       }
 0232 80C0              rjmp L49
 0234           L48:
 0234                   .dbline 292
 0234           ;       else 
 0234           ;       {
 0234                   .dbline 293
 0234           ;               if(MCUCR==0x02)         // 下降沿读时间
 0234 85B7              in R24,0x35
 0236 8230              cpi R24,2
 0238 09F0              breq X6
 023A 6FC0              rjmp L56
 023C           X6:
 023C                   .dbline 294
 023C           ;               {       
 023C                   .dbline 295
 023C           ;                       TCCR1B = 0x00;
 023C 2224              clr R2
 023E 2FBC              out 0x2f,R2
 0240                   .dbline 296
 0240           ;                       MCUCR  = 0x03;
 0240 83E0              ldi R24,3
 0242 85BF              out 0x35,R24
 0244                   .dbline 297
 0244           ;                       if(timeH>0) start = 0; // 超时
 0244 30900700          lds R3,_timeH
 0248 2314              cp R2,R3
 024A 18F4              brsh L58
 024C                   .dbline 297
 024C 20920900          sts _start,R2
 0250 71C0              rjmp L57
 0252           L58:
 0252                   .dbline 299
 0252           ;                       else 
 0252           ;                       {
 0252                   .dbline 300
 0252           ;                               timeL = TCNT1;
 0252 2EB4              in R2,0x2e
 0254 20920600          sts _timeL,R2
 0258                   .dbline 301
 0258           ;                               if(timeL>40 && timeL<60) temp = 0x00;
 0258 88E2              ldi R24,40
 025A 8215              cp R24,R2
 025C 28F4              brsh L60
 025E 822D              mov R24,R2
 0260 8C33              cpi R24,60
 0262 10F4              brsh L60
 0264                   .dbline 301
 0264 0027              clr R16
 0266 09C0              rjmp L61
 0268           L60:
 0268                   .dbline 302
 0268           ;                               else if(timeL>150 && timeL<170)  temp = 0x80;
 0268 86E9              ldi R24,150
 026A 20900600          lds R2,_timeL
 026E 8215              cp R24,R2
 0270 20F4              brsh L62
 0272 822D              mov R24,R2
 0274 8A3A              cpi R24,170
 0276 08F4              brsh L62
 0278                   .dbline 302
 0278 00E8              ldi R16,128
 027A           L62:
 027A           L61:
 027A                   .dbline 304
 027A           ; 
 027A           ;                               if(flag==0)                     // 地址低位
 027A 20900B00          lds R2,_flag
 027E 2220              tst R2
 0280 49F4              brne L64
 0282                   .dbline 305
 0282           ;                               {
 0282                   .dbline 306
 0282           ;                                       addrL >>= 1;
 0282 20900300          lds R2,_addrL
 0286 2694              lsr R2
 0288 20920300          sts _addrL,R2
 028C                   .dbline 307
 028C           ;                                       addrL |= temp;
 028C 202A              or R2,R16
 028E 20920300          sts _addrL,R2
 0292                   .dbline 308
 0292           ;                               }
 0292 19C0              rjmp L65
 0294           L64:
 0294                   .dbline 309
 0294           ;                               else if(flag==1)        // 地址高位
 0294 80910B00          lds R24,_flag
 0298 8130              cpi R24,1
 029A 49F4              brne L66
 029C                   .dbline 310
 029C           ;                               {
 029C                   .dbline 311
 029C           ;                                       addrH >>= 1;
 029C 20900400          lds R2,_addrH
 02A0 2694              lsr R2
 02A2 20920400          sts _addrH,R2
 02A6                   .dbline 312
 02A6           ;                                       addrH |= temp;
 02A6 202A              or R2,R16
 02A8 20920400          sts _addrH,R2
 02AC                   .dbline 313
 02AC           ;                               }
 02AC 0CC0              rjmp L67
 02AE           L66:
 02AE                   .dbline 314
 02AE           ;                               else if(flag==2)        // 数据
 02AE 80910B00          lds R24,_flag
 02B2 8230              cpi R24,2
 02B4 41F4              brne L68
 02B6                   .dbline 315
 02B6           ;                               {
 02B6                   .dbline 316
 02B6           ;                                       datas >>= 1;    
 02B6 20900500          lds R2,_datas
 02BA 2694              lsr R2
 02BC 20920500          sts _datas,R2
 02C0                   .dbline 317
 02C0           ;                                       datas |= temp;
 02C0 202A              or R2,R16
 02C2 20920500          sts _datas,R2
 02C6                   .dbline 318
 02C6           ;                               }
 02C6           L68:
 02C6           L67:
 02C6           L65:
 02C6                   .dbline 320
 02C6           ;       
 02C6           ;                               bits ++;
 02C6 80910800          lds R24,_bits
 02CA 8F5F              subi R24,255    ; addi 1
 02CC 80930800          sts _bits,R24
 02D0                   .dbline 321
 02D0           ;                               if(bits==8)       flag = 1;     
 02D0 8830              cpi R24,8
 02D2 21F4              brne L70
 02D4                   .dbline 321
 02D4 81E0              ldi R24,1
 02D6 80930B00          sts _flag,R24
 02DA 2CC0              rjmp L57
 02DC           L70:
 02DC                   .dbline 322
 02DC           ;                               else if(bits==16) flag = 2;     
 02DC 80910800          lds R24,_bits
 02E0 8031              cpi R24,16
 02E2 21F4              brne L72
 02E4                   .dbline 322
 02E4 82E0              ldi R24,2
 02E6 80930B00          sts _flag,R24
 02EA 24C0              rjmp L57
 02EC           L72:
 02EC                   .dbline 323
 02EC           ;                               else if(bits>=24) 
 02EC 80910800          lds R24,_bits
 02F0 8831              cpi R24,24
 02F2 00F1              brlo L57
 02F4                   .dbline 324
 02F4           ;                               {
 02F4                   .dbline 325
 02F4           ;                                       start = 0;
 02F4 2224              clr R2
 02F6 20920900          sts _start,R2
 02FA                   .dbline 326
 02FA           ;                                       rxd_flag = 1;
 02FA 81E0              ldi R24,1
 02FC 80930A00          sts _rxd_flag,R24
 0300                   .dbline 327
 0300           ;                                       rxd_data = datas;
 0300 20900500          lds R2,_datas
 0304 20920000          sts _rxd_data,R2
 0308                   .dbline 328
 0308           ;                                       addr = addrH*256 + addrL;
 0308 20900300          lds R2,_addrL
 030C 30900400          lds R3,_addrH
 0310 30920200          sts _addr+1,R3
 0314 20920100          sts _addr,R2
 0318                   .dbline 329
 0318           ;                               }
 0318                   .dbline 330
 0318           ;                       }
 0318                   .dbline 331
 0318           ;               }
 0318 0DC0              rjmp L57
 031A           L56:
 031A                   .dbline 332
 031A           ;               else if(MCUCR==0x03)    // 上升沿开始计时
 031A 85B7              in R24,0x35
 031C 8330              cpi R24,3
 031E 51F4              brne L76
 0320                   .dbline 333
 0320           ;               {
 0320                   .dbline 334
 0320           ;                       MCUCR  = 0x02;
 0320 82E0              ldi R24,2
 0322 85BF              out 0x35,R24
 0324                   .dbline 336
 0324           ;                       
 0324           ;                       TCNT1  = 0x00;
 0324 2224              clr R2
 0326 2EBC              out 0x2e,R2
 0328                   .dbline 337
 0328           ;                       timeH  = 0x00;
 0328 20920700          sts _timeH,R2
 032C                   .dbline 338
 032C           ;                       timeL  = 0x00;
 032C 20920600          sts _timeL,R2
 0330                   .dbline 339
 0330           ;                       TCCR1B = 0x05;
 0330 85E0              ldi R24,5
 0332 8FBD              out 0x2f,R24
 0334                   .dbline 340
 0334           ;               }
 0334           L76:
 0334           L57:
 0334                   .dbline 341
 0334           L49:
 0334                   .dbline -2
 0334           L47:
 0334 2990              ld R2,y+
 0336 2FBE              out 0x3f,R2
 0338 9991              ld R25,y+
 033A 8991              ld R24,y+
 033C 1991              ld R17,y+
 033E 0991              ld R16,y+
 0340 4990              ld R4,y+
 0342 3990              ld R3,y+
 0344 2990              ld R2,y+
 0346                   .dbline 0 ; func end
 0346 1895              reti
 0348                   .dbsym r temp 16 c
 0348                   .dbsym r i 16 i
 0348                   .dbend
                        .area vector(rom, abs)
                        .org 10
 000A A4C1              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0348                   .dbfile I:\REDFOX~1\Remote\main.c
 0348                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0348           _timer1_ovf_isr::
 0348 2A92              st -y,R2
 034A 8A93              st -y,R24
 034C 9A93              st -y,R25
 034E 2FB6              in R2,0x3f
 0350 2A92              st -y,R2
 0352                   .dbline -1
 0352                   .dbline 349
 0352           ;       }       
 0352           ; }
 0352           ; 
 0352           ; 
 0352           ; 
 0352           ; 
 0352           ; #pragma interrupt_handler timer1_ovf_isr:6
 0352           ; void timer1_ovf_isr(void)
 0352           ; {
 0352                   .dbline 350
 0352           ;       TCNT1 = 0x00; //reload counter  
 0352 2224              clr R2
 0354 2EBC              out 0x2e,R2
 0356                   .dbline 351
 0356           ;       timeH ++;
 0356 80910700          lds R24,_timeH
 035A 8F5F              subi R24,255    ; addi 1
 035C 80930700          sts _timeH,R24
 0360                   .dbline -2
 0360           L78:
 0360 2990              ld R2,y+
 0362 2FBE              out 0x3f,R2
 0364 9991              ld R25,y+
 0366 8991              ld R24,y+
 0368 2990              ld R2,y+
 036A                   .dbline 0 ; func end
 036A 1895              reti
 036C                   .dbend
                        .area vector(rom, abs)
                        .org 12
 000C B6C1              rjmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 036C                   .dbfile I:\REDFOX~1\Remote\main.c
 036C                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 036C           _timer0_ovf_isr::
 036C 8A93              st -y,R24
 036E 8FB7              in R24,0x3f
 0370 8A93              st -y,R24
 0372                   .dbline -1
 0372                   .dbline 358
 0372           ; }
 0372           ; 
 0372           ; 
 0372           ; 
 0372           ; #pragma interrupt_handler timer0_ovf_isr:7
 0372           ; void timer0_ovf_isr(void)
 0372           ; {
 0372                   .dbline 359
 0372           ;       TCNT0 = 0x83; //reload counter value
 0372 83E8              ldi R24,131
 0374 82BF              out 0x32,R24
 0376                   .dbline 361
 0376           ;       
 0376           ;       flag_4ms = 1;
 0376 81E0              ldi R24,1
 0378 80931300          sts _flag_4ms,R24
 037C                   .dbline -2
 037C           L79:
 037C 8991              ld R24,y+
 037E 8FBF              out 0x3f,R24
 0380 8991              ld R24,y+
 0382                   .dbline 0 ; func end
 0382 1895              reti
 0384                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile I:\REDFOX~1\Remote\main.c
 0000           _rxd_data::
 0000                   .blkb 1
 0001                   .dbsym e rxd_data _rxd_data c
 0001           _addr::
 0001                   .blkb 2
 0003                   .dbsym e addr _addr i
 0003           _addrL::
 0003                   .blkb 1
 0004                   .dbsym e addrL _addrL c
 0004           _addrH::
 0004                   .blkb 1
 0005                   .dbsym e addrH _addrH c
 0005           _datas::
 0005                   .blkb 1
 0006                   .dbsym e datas _datas c
 0006           _timeL::
 0006                   .blkb 1
 0007                   .dbsym e timeL _timeL c
 0007           _timeH::
 0007                   .blkb 1
 0008                   .dbsym e timeH _timeH c
 0008           _bits::
 0008                   .blkb 1
 0009                   .dbsym e bits _bits c
 0009           _start::
 0009                   .blkb 1
 000A                   .dbsym e start _start c
 000A           _rxd_flag::
 000A                   .blkb 1
 000B                   .dbsym e rxd_flag _rxd_flag c
 000B           _flag::
 000B                   .blkb 1
 000C                   .dbsym e flag _flag c
 000C           _key2::
 000C                   .blkb 2
 000E                   .dbsym e key2 _key2 i
 000E           _key1::
 000E                   .blkb 2
 0010                   .dbsym e key1 _key1 i
 0010           _key::
 0010                   .blkb 2
 0012                   .dbsym e key _key i
 0012           _led_time::
 0012                   .blkb 1
 0013                   .dbsym e led_time _led_time c
 0013           _flag_4ms::
 0013                   .blkb 1
 0014                   .dbsym e flag_4ms _flag_4ms c

⌨️ 快捷键说明

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