📄 discharger.lis
字号:
0344 00D0 rcall push_gset1
0346 .dbline -1
0346 .dbline 136
0346 ; if(sc_bt_ctrl!=0) sc_bt_ctrl--;
0346 ; }
0346 ;
0346 ; /*----------------------------------
0346 ; 任务调度程序
0346 ; ----------------------------------*/
0346 ; void Run_Turn(void)
0346 ; {
0346 .dbline 138
0346 ;
0346 ; switch(RunTab)
0346 40911100 lds R20,_RunTab
034A 5527 clr R21
034C 4130 cpi R20,1
034E E0E0 ldi R30,0
0350 5E07 cpc R21,R30
0352 51F1 breq L66
0354 4230 cpi R20,2
0356 E0E0 ldi R30,0
0358 5E07 cpc R21,R30
035A 41F1 breq L67
035C 4130 cpi R20,1
035E E0E0 ldi R30,0
0360 5E07 cpc R21,R30
0362 0CF4 brge X15
0364 34C0 rjmp L63
0366 X15:
0366 L76:
0366 4B30 cpi R20,11
0368 E0E0 ldi R30,0
036A 5E07 cpc R21,R30
036C 09F1 breq L68
036E 4C30 cpi R20,12
0370 E0E0 ldi R30,0
0372 5E07 cpc R21,R30
0374 F9F0 breq L69
0376 4D30 cpi R20,13
0378 E0E0 ldi R30,0
037A 5E07 cpc R21,R30
037C E9F0 breq L70
037E 4E30 cpi R20,14
0380 E0E0 ldi R30,0
0382 5E07 cpc R21,R30
0384 D9F0 breq L71
0386 4F30 cpi R20,15
0388 E0E0 ldi R30,0
038A 5E07 cpc R21,R30
038C C9F0 breq L72
038E 4431 cpi R20,20
0390 E0E0 ldi R30,0
0392 5E07 cpc R21,R30
0394 B9F0 breq L73
0396 4531 cpi R20,21
0398 E0E0 ldi R30,0
039A 5E07 cpc R21,R30
039C A9F0 breq L74
039E 4631 cpi R20,22
03A0 E0E0 ldi R30,0
03A2 5E07 cpc R21,R30
03A4 99F0 breq L75
03A6 13C0 rjmp L63
03A8 X14:
03A8 .dbline 139
03A8 ; {
03A8 L66:
03A8 .dbline 140
03A8 ; case 1:desktop();break;
03A8 76D0 rcall _desktop
03AA .dbline 140
03AA 11C0 rjmp L64
03AC L67:
03AC .dbline 141
03AC ; case 2:system_menu();break;
03AC 2FD4 rcall _system_menu
03AE .dbline 141
03AE 0FC0 rjmp L64
03B0 L68:
03B0 .dbline 142
03B0 ; case 11:Discharging();break;
03B0 9DD0 rcall _Discharging
03B2 .dbline 142
03B2 0DC0 rjmp L64
03B4 L69:
03B4 .dbline 143
03B4 ; case 12:D882();break;
03B4 23D1 rcall _D882
03B6 .dbline 143
03B6 0BC0 rjmp L64
03B8 L70:
03B8 .dbline 144
03B8 ; case 13:Record();break;
03B8 8CD1 rcall _Record
03BA .dbline 144
03BA 09C0 rjmp L64
03BC L71:
03BC .dbline 145
03BC ; case 14:Clear();break;
03BC 53D2 rcall _Clear
03BE .dbline 145
03BE 07C0 rjmp L64
03C0 L72:
03C0 .dbline 146
03C0 ; case 15:usart();break;
03C0 E7D2 rcall _usart
03C2 .dbline 146
03C2 05C0 rjmp L64
03C4 L73:
03C4 .dbline 147
03C4 ; case 20:Capacitance_setting();break;
03C4 E0D4 rcall _Capacitance_setting
03C6 .dbline 147
03C6 03C0 rjmp L64
03C8 L74:
03C8 .dbline 148
03C8 ; case 21:discharge_speed();break;
03C8 88D5 rcall _discharge_speed
03CA .dbline 148
03CA 01C0 rjmp L64
03CC L75:
03CC .dbline 149
03CC ; case 22:record_setting();break;
03CC 26D6 rcall _record_setting
03CE .dbline 149
03CE L63:
03CE L64:
03CE .dbline -2
03CE L62:
03CE 00D0 rcall pop_gset1
03D0 .dbline 0 ; func end
03D0 0895 ret
03D2 .dbend
03D2 .dbfunc e bt1_v_record _bt1_v_record fV
.even
03D2 _bt1_v_record::
03D2 2297 sbiw R28,2
03D4 .dbline -1
03D4 .dbline 154
03D4 ; }
03D4 ; }
03D4 ;
03D4 ; void bt1_v_record(void)
03D4 ; {
03D4 .dbline 155
03D4 ; bt1_v_temp/=15;
03D4 2FE0 ldi R18,15
03D6 30E0 ldi R19,0
03D8 00911400 lds R16,_bt1_v_temp
03DC 10911500 lds R17,_bt1_v_temp+1
03E0 00D0 rcall div16u
03E2 10931500 sts _bt1_v_temp+1,R17
03E6 00931400 sts _bt1_v_temp,R16
03EA .dbline 156
03EA ; EEPROM_READ(0x01F8,BT1_V_num);
03EA 82E0 ldi R24,2
03EC 90E0 ldi R25,0
03EE 9983 std y+1,R25
03F0 8883 std y+0,R24
03F2 20E0 ldi R18,<_BT1_V_num
03F4 30E0 ldi R19,>_BT1_V_num
03F6 08EF ldi R16,504
03F8 11E0 ldi R17,1
03FA 00D0 rcall _EEPROMReadBytes
03FC .dbline 157
03FC ; EEPROM_WRITE(BT1_V_num*2,bt1_v_temp);
03FC 82E0 ldi R24,2
03FE 90E0 ldi R25,0
0400 9983 std y+1,R25
0402 8883 std y+0,R24
0404 20E0 ldi R18,<_bt1_v_temp
0406 30E0 ldi R19,>_bt1_v_temp
0408 20901800 lds R2,_BT1_V_num
040C 30901900 lds R3,_BT1_V_num+1
0410 02E0 ldi R16,2
0412 10E0 ldi R17,0
0414 2F93 push R18
0416 3F93 push R19
0418 9101 movw R18,R2
041A 00D0 rcall empy16s
041C 3F91 pop R19
041E 2F91 pop R18
0420 00D0 rcall _EEPROMWriteBytes
0422 .dbline 158
0422 ; put_number(BT1_V_num," ",' ');
0422 80E2 ldi R24,32
0424 8883 std y+0,R24
0426 20E0 ldi R18,<L78
0428 30E0 ldi R19,>L78
042A 00911800 lds R16,_BT1_V_num
042E 10911900 lds R17,_BT1_V_num+1
0432 6FD3 rcall _put_number
0434 .dbline 159
0434 ; put_number(bt1_v_temp," mV",'\n');
0434 8AE0 ldi R24,10
0436 8883 std y+0,R24
0438 20E0 ldi R18,<L79
043A 30E0 ldi R19,>L79
043C 00911400 lds R16,_bt1_v_temp
0440 10911500 lds R17,_bt1_v_temp+1
0444 66D3 rcall _put_number
0446 .dbline 160
0446 ; if(BT1_V_num<249)
0446 80911800 lds R24,_BT1_V_num
044A 90911900 lds R25,_BT1_V_num+1
044E 893F cpi R24,249
0450 E0E0 ldi R30,0
0452 9E07 cpc R25,R30
0454 70F4 brsh L80
0456 .dbline 161
0456 ; {BT1_V_num++;EEPROM_WRITE(0x01F8,BT1_V_num);}
0456 .dbline 161
0456 0196 adiw R24,1
0458 90931900 sts _BT1_V_num+1,R25
045C 80931800 sts _BT1_V_num,R24
0460 .dbline 161
0460 82E0 ldi R24,2
0462 90E0 ldi R25,0
0464 9983 std y+1,R25
0466 8883 std y+0,R24
0468 20E0 ldi R18,<_BT1_V_num
046A 30E0 ldi R19,>_BT1_V_num
046C 08EF ldi R16,504
046E 11E0 ldi R17,1
0470 00D0 rcall _EEPROMWriteBytes
0472 .dbline 161
0472 L80:
0472 .dbline 163
0472 ;
0472 ; bt1_v_temp=0;
0472 2224 clr R2
0474 3324 clr R3
0476 30921500 sts _bt1_v_temp+1,R3
047A 20921400 sts _bt1_v_temp,R2
047E .dbline -2
047E L77:
047E 2296 adiw R28,2
0480 .dbline 0 ; func end
0480 0895 ret
0482 .dbend
0482 .dbfunc e main _main fV
.even
0482 _main::
0482 .dbline -1
0482 .dbline 169
0482 ; }
0482 ; /*------------------------------------
0482 ; 主程序
0482 ; -------------------------------------*/
0482 ; void main(void)
0482 ; {
0482 .dbline 170
0482 ; init_devices();
0482 00D0 rcall _init_devices
0484 .dbline 171
0484 ; system_menu_init();
0484 A1D3 rcall _system_menu_init
0486 05C0 rjmp L84
0488 L83:
0488 .dbline 173
0488 .dbline 174
0488 68D4 rcall _discharge_init
048A .dbline 175
048A 15D6 rcall _discharge
048C .dbline 176
048C 04E6 ldi R16,100
048E 10E0 ldi R17,0
0490 00D0 rcall _delay_nms
0492 .dbline 177
0492 L84:
0492 .dbline 172
0492 FACF rjmp L83
0494 X16:
0494 .dbline -2
0494 L82:
0494 .dbline 0 ; func end
0494 0895 ret
0496 .dbend
0496 .dbfunc e desktop _desktop fV
0496 ; ID -> R20
.even
0496 _desktop::
0496 00D0 rcall push_gset1
0498 2797 sbiw R28,7
049A .dbline -1
049A .dbline 181
049A ; while(1)
049A ; {
049A ; discharge_init();
049A ; discharge();
049A ; delay_nms(100);
049A ; }
049A ; }
049A ;
049A ; void desktop(void)
049A ; {
049A .dbline 182
049A ; unsigned char ID=1;
049A 41E0 ldi R20,1
049C .dbline 183
049C ; if(RunTab==ID)
049C 20901100 lds R2,_RunTab
04A0 2416 cp R2,R20
04A2 09F5 brne L87
04A4 .dbline 184
04A4 ; {
04A4 .dbline 185
04A4 ; if(keyboard==up){keyboard=0;RunTab=2;}
04A4 80913200 lds R24,_keyboard
04A8 8130 cpi R24,1
04AA 31F4 brne L89
04AC .dbline 185
04AC .dbline 185
04AC 2224 clr R2
04AE 20923200 sts _keyboard,R2
04B2 .dbline 185
04B2 82E0 ldi R24,2
04B4 80931100 sts _RunTab,R24
04B8 .dbline 185
04B8 L89:
04B8 .dbline 186
04B8 8AE0 ldi R24,10
04BA 8A83 std y+2,R24
04BC 80E0 ldi R24,<L91
04BE 90E0 ldi R25,>L91
04C0 9983 std y+1,R25
04C2 8883 std y+0,R24
04C4 21E0 ldi R18,1
04C6 0027 clr R16
04C8 00D0 rcall _LCD_write_string
04CA .dbline 187
04CA 85E0 ldi R24,5
04CC 8E83 std y+6,R24
04CE 20900E00 lds R2,_sec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -