?? main.lis
字號(hào):
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) // 下降沿讀時(shí)間
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; // 超時(shí)
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) // 數(shù)據(jù)
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) // 上升沿開(kāi)始計(jì)時(shí)
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
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -