📄 main.lis
字号:
03E2 .dbline 288
03E2 ; e2rom[6] = EEPROM_read(6);
03E2 06E0 ldi R16,6
03E4 00D0 rcall _EEPROM_read
03E6 00931A00 sts _e2rom+6,R16
03EA .dbline 290
03EA ;
03EA ; if(key()>3)
03EA B1DF rcall _key
03EC 83E0 ldi R24,3
03EE 8017 cp R24,R16
03F0 70F4 brsh L82
03F2 .dbline 291
03F2 ; {
03F2 .dbline 292
03F2 ; if(e2rom[6]) e2rom[6]=0;
03F2 20901A00 lds R2,_e2rom+6
03F6 2220 tst R2
03F8 21F0 breq L84
03FA .dbline 292
03FA 2224 clr R2
03FC 20921A00 sts _e2rom+6,R2
0400 03C0 rjmp L85
0402 L84:
0402 .dbline 293
0402 ; else e2rom[6] =1;
0402 81E0 ldi R24,1
0404 80931A00 sts _e2rom+6,R24
0408 L85:
0408 .dbline 294
0408 ; Buz();
0408 D6DF rcall _Buz
040A L89:
040A .dbline 295
040A L90:
040A .dbline 295
040A ; while(!(PINB&0x80)); // 等待按键松开
040A 1F9B sbis 0x3,7
040C FECF rjmp L89
040E .dbline 296
040E ; }
040E L82:
040E .dbline 297
040E ; EEPROM_write(6,e2rom[6]);
040E 20911A00 lds R18,_e2rom+6
0412 06E0 ldi R16,6
0414 00D0 rcall _EEPROM_write
0416 .dbline -2
0416 L80:
0416 .dbline 0 ; func end
0416 0895 ret
0418 .dbend
0418 .dbfunc e Setup _Setup fV
0418 ; i -> R20
.even
0418 _Setup::
0418 00D0 rcall push_gset1
041A .dbline -1
041A .dbline 306
041A ; }
041A ;
041A ;
041A ;
041A ; /*---------------------------------------------------------------
041A ; 中点设置
041A ; ----------------------------------------------------------------*/
041A ; void Setup()
041A ; {
041A .dbline 310
041A ; uchar i;
041A ;
041A ;
041A ; if(key()>3) // 设置
041A 99DF rcall _key
041C 83E0 ldi R24,3
041E 8017 cp R24,R16
0420 08F0 brlo X4
0422 DFC0 rjmp L94
0424 X4:
0424 .dbline 311
0424 ; {
0424 L96:
0424 .dbline 312
0424 ; loop: Buz();
0424 C8DF rcall _Buz
0426 .dbline 313
0426 ; middle = compute(); // 中位设置
0426 A5DF rcall _compute
0428 10930800 sts _middle+1,R17
042C 00930700 sts _middle,R16
0430 .dbline 315
0430 ;
0430 ; delay(50);
0430 02E3 ldi R16,50
0432 10E0 ldi R17,0
0434 28DE rcall _delay
0436 04C0 rjmp L98
0438 L97:
0438 .dbline 317
0438 .dbline 318
0438 45DE rcall _LED_set
043A .dbline 319
043A 08E2 ldi R16,40
043C 10E0 ldi R17,0
043E 23DE rcall _delay
0440 .dbline 320
0440 L98:
0440 .dbline 316
0440 ; while(key()<3)
0440 86DF rcall _key
0442 0330 cpi R16,3
0444 C8F3 brlo L97
0446 .dbline 321
0446 ; {
0446 ; LED_set();
0446 ; delay(40);
0446 ; }
0446 ; Buz();
0446 B7DF rcall _Buz
0448 L100:
0448 .dbline 322
0448 L101:
0448 .dbline 322
0448 ; while(!(PINB&0x80));
0448 1F9B sbis 0x3,7
044A FECF rjmp L100
044C .dbline 323
044C ; high = compute(); // 高位设置
044C 92DF rcall _compute
044E 10930A00 sts _high+1,R17
0452 00930900 sts _high,R16
0456 .dbline 325
0456 ;
0456 ; delay(50);
0456 02E3 ldi R16,50
0458 10E0 ldi R17,0
045A 15DE rcall _delay
045C 05C0 rjmp L104
045E L103:
045E .dbline 328
045E .dbline 329
045E 32DE rcall _LED_set
0460 .dbline 330
0460 31DE rcall _LED_set
0462 .dbline 331
0462 08E2 ldi R16,40
0464 10E0 ldi R17,0
0466 0FDE rcall _delay
0468 .dbline 332
0468 L104:
0468 .dbline 327
0468 ;
0468 ; while(key()<3)
0468 72DF rcall _key
046A 0330 cpi R16,3
046C C0F3 brlo L103
046E .dbline 333
046E ; {
046E ; LED_set();
046E ; LED_set();
046E ; delay(40);
046E ; }
046E ; Buz();
046E A3DF rcall _Buz
0470 L106:
0470 .dbline 334
0470 L107:
0470 .dbline 334
0470 ; while(!(PINB&0x80));
0470 1F9B sbis 0x3,7
0472 FECF rjmp L106
0474 .dbline 335
0474 ; low = compute(); // W低位设置
0474 7EDF rcall _compute
0476 10930600 sts _low+1,R17
047A 00930500 sts _low,R16
047E .dbline 336
047E ; delay(50);
047E 02E3 ldi R16,50
0480 10E0 ldi R17,0
0482 01DE rcall _delay
0484 .dbline 339
0484 ;
0484 ; // 设置数据正确存盘
0484 ; if((low>800&&low<1300)&&(middle>1350&&middle<1650)&&(high>1700&&high<2200))
0484 80E2 ldi R24,800
0486 93E0 ldi R25,3
0488 20900500 lds R2,_low
048C 30900600 lds R3,_low+1
0490 8215 cp R24,R2
0492 9305 cpc R25,R3
0494 08F0 brlo X5
0496 9EC0 rjmp L124
0498 X5:
0498 C101 movw R24,R2
049A 8431 cpi R24,20
049C E5E0 ldi R30,5
049E 9E07 cpc R25,R30
04A0 08F0 brlo X6
04A2 98C0 rjmp L124
04A4 X6:
04A4 86E4 ldi R24,1350
04A6 95E0 ldi R25,5
04A8 20900700 lds R2,_middle
04AC 30900800 lds R3,_middle+1
04B0 8215 cp R24,R2
04B2 9305 cpc R25,R3
04B4 08F0 brlo X7
04B6 8EC0 rjmp L124
04B8 X7:
04B8 C101 movw R24,R2
04BA 8237 cpi R24,114
04BC E6E0 ldi R30,6
04BE 9E07 cpc R25,R30
04C0 08F0 brlo X8
04C2 88C0 rjmp L124
04C4 X8:
04C4 84EA ldi R24,1700
04C6 96E0 ldi R25,6
04C8 20900900 lds R2,_high
04CC 30900A00 lds R3,_high+1
04D0 8215 cp R24,R2
04D2 9305 cpc R25,R3
04D4 08F0 brlo X9
04D6 7EC0 rjmp L124
04D8 X9:
04D8 C101 movw R24,R2
04DA 8839 cpi R24,152
04DC E8E0 ldi R30,8
04DE 9E07 cpc R25,R30
04E0 08F0 brlo X10
04E2 78C0 rjmp L124
04E4 X10:
04E4 .dbline 340
04E4 ; {
04E4 .dbline 341
04E4 ; PE1 = ((high-middle)*10)/256+2;
04E4 20900700 lds R2,_middle
04E8 30900800 lds R3,_middle+1
04EC 9C01 movw R18,R24
04EE 2219 sub R18,R2
04F0 3309 sbc R19,R3
04F2 0AE0 ldi R16,10
04F4 10E0 ldi R17,0
04F6 00D0 rcall empy16s
04F8 C801 movw R24,R16
04FA 892F mov R24,R25
04FC 9927 clr R25
04FE 0296 adiw R24,2
0500 90931300 sts _PE1+1,R25
0504 80931200 sts _PE1,R24
0508 .dbline 342
0508 ; PE2 = ((middle-low )*10)/256+2;
0508 20900500 lds R2,_low
050C 30900600 lds R3,_low+1
0510 20910700 lds R18,_middle
0514 30910800 lds R19,_middle+1
0518 2219 sub R18,R2
051A 3309 sbc R19,R3
051C 0AE0 ldi R16,10
051E 10E0 ldi R17,0
0520 00D0 rcall empy16s
0522 C801 movw R24,R16
0524 892F mov R24,R25
0526 9927 clr R25
0528 0296 adiw R24,2
052A 90931100 sts _PE2+1,R25
052E 80931000 sts _PE2,R24
0532 .dbline 344
0532 ;
0532 ; e2rom[0] = low/256;
0532 20900500 lds R2,_low
0536 30900600 lds R3,_low+1
053A 232C mov R2,R3
053C 3324 clr R3
053E 20921400 sts _e2rom,R2
0542 .dbline 345
0542 ; e2rom[1] = low%256;
0542 80910500 lds R24,_low
0546 90910600 lds R25,_low+1
054A 9070 andi R25,0
054C 80931500 sts _e2rom+1,R24
0550 .dbline 347
0550 ;
0550 ; e2rom[2] = high/256;
0550 20900900 lds R2,_high
0554 30900A00 lds R3,_high+1
0558 232C mov R2,R3
055A 3324 clr R3
055C 20921600 sts _e2rom+2,R2
0560 .dbline 348
0560 ; e2rom[3] = high%256;
0560 80910900 lds R24,_high
0564 90910A00 lds R25,_high+1
0568 9070 andi R25,0
056A 80931700 sts _e2rom+3,R24
056E .dbline 350
056E ;
056E ; e2rom[4] = middle/256;
056E 20900700 lds R2,_middle
0572 30900800 lds R3,_middle+1
0576 232C mov R2,R3
0578 3324 clr R3
057A 20921800 sts _e2rom+4,R2
057E .dbline 351
057E ; e2rom[5] = middle%256;
057E 80910700 lds R24,_middle
0582 90910800 lds R25,_middle+1
0586 9070 andi R25,0
0588 80931900 sts _e2rom+5,R24
058C .dbline 353
058C ;
058C ; Buz();
058C 14DF rcall _Buz
058E .dbline 354
058E ; for(i=0;i<6;i++) // 写EEPOM
058E 4427 clr R20
0590 18C0 rjmp L119
0592 L116:
0592 .dbline 355
0592 ; {
0592 .dbline 356
0592 ; EEPROM_write(i,e2rom[i]);
0592 80E0 ldi R24,<_e2rom
0594 90E0 ldi R25,>_e2rom
0596 E42F mov R30,R20
0598 FF27 clr R31
059A E80F add R30,R24
059C F91F adc R31,R25
059E 2081 ldd R18,z+0
05A0 042F mov R16,R20
05A2 00D0 rcall _EEPROM_write
05A4 .dbline 357
05A4 ; delay(5);
05A4 05E0 ldi R16,5
05A6 10E0 ldi R17,0
05A8 6EDD rcall _delay
05AA L120:
05AA .dbline 358
05AA L121:
05AA .dbline 358
05AA E3DE rcall _compute
05AC 0634 cpi R16,70
05AE E5E0 ldi R30,5
05B0 1E07 cpc R17,R30
05B2 D8F3 brlo L120
05B4 DEDE rcall _compute
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -