📄 main.lis
字号:
02A4 .dbline 201
02A4 ; {
02A4 .dbline 202
02A4 ; if(!mode && REV) // 后退
02A4 20900F00 lds R2,_mode
02A8 2220 tst R2
02AA B1F5 brne L54
02AC 20900400 lds R2,_REV
02B0 2220 tst R2
02B2 91F1 breq L54
02B4 .dbline 203
02B4 ; {
02B4 .dbline 204
02B4 ; if(power>3 || heat>3)
02B4 83E0 ldi R24,3
02B6 20900300 lds R2,_power
02BA 8215 cp R24,R2
02BC 20F0 brlo L58
02BE 20900200 lds R2,_heat
02C2 8215 cp R24,R2
02C4 30F4 brsh L56
02C6 L58:
02C6 .dbline 205
02C6 ; {
02C6 .dbline 206
02C6 ; PWM --;
02C6 80910D00 lds R24,_PWM
02CA 8150 subi R24,1
02CC 80930D00 sts _PWM,R24
02D0 .dbline 207
02D0 ; }
02D0 1AC0 rjmp L57
02D2 L56:
02D2 .dbline 209
02D2 ; else
02D2 ; {
02D2 .dbline 210
02D2 ; PWM = ((middle-Timer)*10)/PE2;
02D2 20900B00 lds R2,_Timer
02D6 30900C00 lds R3,_Timer+1
02DA 20910700 lds R18,_middle
02DE 30910800 lds R19,_middle+1
02E2 2219 sub R18,R2
02E4 3309 sbc R19,R3
02E6 0AE0 ldi R16,10
02E8 10E0 ldi R17,0
02EA 00D0 rcall empy16s
02EC 20911000 lds R18,_PE2
02F0 30911100 lds R19,_PE2+1
02F4 00D0 rcall div16u
02F6 00930D00 sts _PWM,R16
02FA .dbline 211
02FA ; if(PWM>210) PWM = 255;
02FA 82ED ldi R24,210
02FC 8017 cp R24,R16
02FE 18F4 brsh L59
0300 .dbline 211
0300 8FEF ldi R24,255
0302 80930D00 sts _PWM,R24
0306 L59:
0306 .dbline 212
0306 ; }
0306 L57:
0306 .dbline 213
0306 ; Pwm_set(PWM,2);
0306 22E0 ldi R18,2
0308 00910D00 lds R16,_PWM
030C 00D0 rcall _Pwm_set
030E .dbline 214
030E ; SET_LED;
030E 5C9A sbi 0xb,4
0310 .dbline 215
0310 ; delay(5);
0310 05E0 ldi R16,5
0312 10E0 ldi R17,0
0314 B8DE rcall _delay
0316 .dbline 216
0316 ; }
0316 19C0 rjmp L53
0318 L54:
0318 .dbline 218
0318 ; else
0318 ; {
0318 .dbline 219
0318 ; Pwm_set(255,3); // 刹车
0318 23E0 ldi R18,3
031A 0FEF ldi R16,255
031C 00D0 rcall _Pwm_set
031E 01C0 rjmp L62
0320 L61:
0320 .dbline 221
0320 .dbline 222
0320 D1DE rcall _LED_set
0322 .dbline 223
0322 L62:
0322 .dbline 220
0322 ; while((Timer+50)<=middle)
0322 20900700 lds R2,_middle
0326 30900800 lds R3,_middle+1
032A 80910B00 lds R24,_Timer
032E 90910C00 lds R25,_Timer+1
0332 C296 adiw R24,50
0334 2816 cp R2,R24
0336 3906 cpc R3,R25
0338 98F7 brsh L61
033A .dbline 224
033A ; {
033A ; LED_set();
033A ; }
033A ; mode = 0;
033A 2224 clr R2
033C 20920F00 sts _mode,R2
0340 .dbline 225
0340 ; }
0340 .dbline 226
0340 ; }
0340 04C0 rjmp L53
0342 L52:
0342 .dbline 228
0342 ; else
0342 ; {
0342 .dbline 229
0342 ; Pwm_set(0,0);
0342 2227 clr R18
0344 0027 clr R16
0346 00D0 rcall _Pwm_set
0348 .dbline 230
0348 ; CLR_LED;
0348 5C98 cbi 0xb,4
034A .dbline 231
034A ; }
034A L53:
034A L46:
034A .dbline 232
034A ; }
034A L39:
034A .dbline 233
034A ; egis();
034A C5DE rcall _egis
034C .dbline -2
034C L38:
034C .dbline 0 ; func end
034C 0895 ret
034E .dbend
034E .dbfunc e key _key fc
034E ; k -> R20
034E ; i -> R22
.even
034E _key::
034E 00D0 rcall push_gset2
0350 .dbline -1
0350 .dbline 240
0350 ; }
0350 ;
0350 ;
0350 ;
0350 ;
0350 ; uchar key(void)
0350 ; {
0350 .dbline 241
0350 ; uchar i,k=0;
0350 4427 clr R20
0352 .dbline 243
0352 ;
0352 ; for(i=0;i<5;i++)
0352 6627 clr R22
0354 09C0 rjmp L68
0356 L65:
0356 .dbline 244
0356 ; {
0356 .dbline 245
0356 ; if(PINB & 0x80) k = 0;
0356 1F9B sbis 0x3,7
0358 02C0 rjmp L69
035A .dbline 245
035A 4427 clr R20
035C 01C0 rjmp L70
035E L69:
035E .dbline 246
035E ; else k ++;
035E 4395 inc R20
0360 L70:
0360 .dbline 247
0360 03E0 ldi R16,3
0362 10E0 ldi R17,0
0364 90DE rcall _delay
0366 .dbline 248
0366 L66:
0366 .dbline 243
0366 6395 inc R22
0368 L68:
0368 .dbline 243
0368 6530 cpi R22,5
036A A8F3 brlo L65
036C .dbline 250
036C ; delay(3);
036C ; }
036C ;
036C ; return k;
036C 042F mov R16,R20
036E .dbline -2
036E L64:
036E 00D0 rcall pop_gset2
0370 .dbline 0 ; func end
0370 0895 ret
0372 .dbsym r k 20 c
0372 .dbsym r i 22 c
0372 .dbend
0372 .dbfunc e compute _compute fi
0372 ; temp -> R16,R17
0372 ; i -> R18
.even
0372 _compute::
0372 .dbline -1
0372 .dbline 258
0372 ; }
0372 ;
0372 ; /*---------------------------------------------------------------
0372 ;
0372 ; ----------------------------------------------------------------*/
0372 ;
0372 ; uint compute(void)
0372 ; {
0372 .dbline 260
0372 ; uchar i;
0372 ; uint temp = 0;
0372 0027 clr R16
0374 1127 clr R17
0376 .dbline 262
0376 ;
0376 ; for(i=0;i<8;i++)
0376 2227 clr R18
0378 13C0 rjmp L75
037A X2:
037A .dbline 263
037A ; {
037A L76:
037A .dbline 264
037A L77:
037A .dbline 264
037A 20900E00 lds R2,_rxd_flag
037E 2220 tst R2
0380 E1F3 breq L76
0382 .dbline 265
0382 20900B00 lds R2,_Timer
0386 30900C00 lds R3,_Timer+1
038A 020D add R16,R2
038C 131D adc R17,R3
038E .dbline 266
038E 2224 clr R2
0390 20920E00 sts _rxd_flag,R2
0394 .dbline 267
0394 3324 clr R3
0396 30920C00 sts _Timer+1,R3
039A 20920B00 sts _Timer,R2
039E .dbline 268
039E L73:
039E .dbline 262
039E 2395 inc R18
03A0 L75:
03A0 .dbline 262
03A0 2830 cpi R18,8
03A2 58F3 brlo L77
03A4 .dbline 269
03A4 ; while(!rxd_flag);
03A4 ; temp += Timer;
03A4 ; rxd_flag = 0;
03A4 ; Timer= 0;
03A4 ; }
03A4 ; temp = (temp>>3);
03A4 1801 movw R2,R16
03A6 3694 lsr R3
03A8 2794 ror R2
03AA 3694 lsr R3
03AC 2794 ror R2
03AE 3694 lsr R3
03B0 2794 ror R2
03B2 8101 movw R16,R2
03B4 .dbline 271
03B4 ;
03B4 ; return temp;
03B4 .dbline -2
03B4 L71:
03B4 .dbline 0 ; func end
03B4 0895 ret
03B6 .dbsym r temp 16 i
03B6 .dbsym r i 18 c
03B6 .dbend
03B6 .dbfunc e Buz _Buz fV
.even
03B6 _Buz::
03B6 .dbline -1
03B6 .dbline 276
03B6 ; }
03B6 ;
03B6 ;
03B6 ; void Buz()
03B6 ; {
03B6 .dbline 277
03B6 ; Pwm_set(20,1);
03B6 21E0 ldi R18,1
03B8 04E1 ldi R16,20
03BA 00D0 rcall _Pwm_set
03BC .dbline 278
03BC ; delay(15);
03BC 0FE0 ldi R16,15
03BE 10E0 ldi R17,0
03C0 62DE rcall _delay
03C2 .dbline 279
03C2 ; Pwm_set(0,0);
03C2 2227 clr R18
03C4 0027 clr R16
03C6 00D0 rcall _Pwm_set
03C8 .dbline 280
03C8 ; delay(20);
03C8 04E1 ldi R16,20
03CA 10E0 ldi R17,0
03CC 5CDE rcall _delay
03CE .dbline 281
03CE ; Pwm_set(20,1);
03CE 21E0 ldi R18,1
03D0 04E1 ldi R16,20
03D2 00D0 rcall _Pwm_set
03D4 .dbline 282
03D4 ; delay(15);
03D4 0FE0 ldi R16,15
03D6 10E0 ldi R17,0
03D8 56DE rcall _delay
03DA .dbline 283
03DA ; Pwm_set(0,0);
03DA 2227 clr R18
03DC 0027 clr R16
03DE 00D0 rcall _Pwm_set
03E0 .dbline -2
03E0 L79:
03E0 .dbline 0 ; func end
03E0 0895 ret
03E2 .dbend
03E2 .dbfunc e Rev_Setup _Rev_Setup fV
.even
03E2 _Rev_Setup::
03E2 .dbline -1
03E2 .dbline 287
03E2 ; }
03E2 ;
03E2 ; void Rev_Setup()
03E2 ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -