📄 main.lis
字号:
0374 30902200 lds R3,_sc_bt1_v_temp+1
0378 2220 tst R2
037A 11F4 brne X17
037C 3320 tst R3
037E 49F0 breq L54
0380 X17:
0380 .dbline 130
0380 80912100 lds R24,_sc_bt1_v_temp
0384 90912200 lds R25,_sc_bt1_v_temp+1
0388 0197 sbiw R24,1
038A 90932200 sts _sc_bt1_v_temp+1,R25
038E 80932100 sts _sc_bt1_v_temp,R24
0392 L54:
0392 .dbline 131
0392 ; if(sc_key_delay!=0) sc_key_delay--;
0392 20902300 lds R2,_sc_key_delay
0396 30902400 lds R3,_sc_key_delay+1
039A 2220 tst R2
039C 11F4 brne X18
039E 3320 tst R3
03A0 49F0 breq L56
03A2 X18:
03A2 .dbline 131
03A2 80912300 lds R24,_sc_key_delay
03A6 90912400 lds R25,_sc_key_delay+1
03AA 0197 sbiw R24,1
03AC 90932400 sts _sc_key_delay+1,R25
03B0 80932300 sts _sc_key_delay,R24
03B4 L56:
03B4 .dbline 132
03B4 20902D00 lds R2,_sc_bt_ctrl
03B8 30902E00 lds R3,_sc_bt_ctrl+1
03BC 2220 tst R2
03BE 11F4 brne X19
03C0 3320 tst R3
03C2 49F0 breq L58
03C4 X19:
03C4 .dbline 132
03C4 80912D00 lds R24,_sc_bt_ctrl
03C8 90912E00 lds R25,_sc_bt_ctrl+1
03CC 0197 sbiw R24,1
03CE 90932E00 sts _sc_bt_ctrl+1,R25
03D2 80932D00 sts _sc_bt_ctrl,R24
03D6 L58:
03D6 .dbline -2
03D6 L41:
03D6 .dbline 0 ; func end
03D6 0895 ret
03D8 .dbend
03D8 .dbfunc e bt1_v_record _bt1_v_record fV
.even
03D8 _bt1_v_record::
03D8 2297 sbiw R28,2
03DA .dbline -1
03DA .dbline 135
03DA ; if(sc_bt_ctrl!=0) sc_bt_ctrl--;
03DA ; }
03DA ; void bt1_v_record(void)
03DA ; {
03DA .dbline 136
03DA ; bt1_v_temp/=15;
03DA 2FE0 ldi R18,15
03DC 30E0 ldi R19,0
03DE 00911400 lds R16,_bt1_v_temp
03E2 10911500 lds R17,_bt1_v_temp+1
03E6 00D0 rcall div16u
03E8 10931500 sts _bt1_v_temp+1,R17
03EC 00931400 sts _bt1_v_temp,R16
03F0 .dbline 137
03F0 ; EEPROM_READ(0x01F8,BT1_V_num);
03F0 82E0 ldi R24,2
03F2 90E0 ldi R25,0
03F4 9983 std y+1,R25
03F6 8883 std y+0,R24
03F8 20E0 ldi R18,<_BT1_V_num
03FA 30E0 ldi R19,>_BT1_V_num
03FC 08EF ldi R16,504
03FE 11E0 ldi R17,1
0400 00D0 rcall _EEPROMReadBytes
0402 .dbline 138
0402 ; EEPROM_WRITE(BT1_V_num*2,bt1_v_temp);
0402 82E0 ldi R24,2
0404 90E0 ldi R25,0
0406 9983 std y+1,R25
0408 8883 std y+0,R24
040A 20E0 ldi R18,<_bt1_v_temp
040C 30E0 ldi R19,>_bt1_v_temp
040E 20901800 lds R2,_BT1_V_num
0412 30901900 lds R3,_BT1_V_num+1
0416 02E0 ldi R16,2
0418 10E0 ldi R17,0
041A 2F93 push R18
041C 3F93 push R19
041E 9101 movw R18,R2
0420 00D0 rcall empy16s
0422 3F91 pop R19
0424 2F91 pop R18
0426 00D0 rcall _EEPROMWriteBytes
0428 .dbline 140
0428 ;
0428 ; if(BT1_V_num<249)
0428 80911800 lds R24,_BT1_V_num
042C 90911900 lds R25,_BT1_V_num+1
0430 893F cpi R24,249
0432 E0E0 ldi R30,0
0434 9E07 cpc R25,R30
0436 70F4 brsh L61
0438 .dbline 141
0438 ; {BT1_V_num++;EEPROM_WRITE(0x01F8,BT1_V_num);}
0438 .dbline 141
0438 0196 adiw R24,1
043A 90931900 sts _BT1_V_num+1,R25
043E 80931800 sts _BT1_V_num,R24
0442 .dbline 141
0442 82E0 ldi R24,2
0444 90E0 ldi R25,0
0446 9983 std y+1,R25
0448 8883 std y+0,R24
044A 20E0 ldi R18,<_BT1_V_num
044C 30E0 ldi R19,>_BT1_V_num
044E 08EF ldi R16,504
0450 11E0 ldi R17,1
0452 00D0 rcall _EEPROMWriteBytes
0454 .dbline 141
0454 L61:
0454 .dbline 143
0454 ;
0454 ; bt1_v_temp=0;
0454 2224 clr R2
0456 3324 clr R3
0458 30921500 sts _bt1_v_temp+1,R3
045C 20921400 sts _bt1_v_temp,R2
0460 .dbline -2
0460 L60:
0460 2296 adiw R28,2
0462 .dbline 0 ; func end
0462 0895 ret
0464 .dbend
0464 .dbfunc e main _main fV
.even
0464 _main::
0464 .dbline -1
0464 .dbline 149
0464 ; }
0464 ; /*------------------------------------
0464 ; 主程序
0464 ; -------------------------------------*/
0464 ; void main(void)
0464 ; {
0464 .dbline 150
0464 ; sc_eeprom=500;
0464 84EF ldi R24,500
0466 91E0 ldi R25,1
0468 90932A00 sts _sc_eeprom+1,R25
046C 80932900 sts _sc_eeprom,R24
0470 .dbline 151
0470 ; delay_nms(20);
0470 04E1 ldi R16,20
0472 10E0 ldi R17,0
0474 00D0 rcall _delay_nms
0476 .dbline 152
0476 ; init_devices();
0476 00D0 rcall _init_devices
0478 .dbline 153
0478 ; LCD_clear();
0478 00D0 rcall _LCD_clear
047A .dbline 154
047A ; LED2_OFF;
047A AD98 cbi 0x15,5
047C .dbline 155
047C ; LED1_OFF;
047C AC98 cbi 0x15,4
047E .dbline 156
047E ; RunTab=5;
047E 85E0 ldi R24,5
0480 80930000 sts _RunTab,R24
0484 .dbline 157
0484 ; delay_nms(2000);
0484 00ED ldi R16,2000
0486 17E0 ldi R17,7
0488 00D0 rcall _delay_nms
048A 05C0 rjmp L65
048C L64:
048C .dbline 159
048C .dbline 160
048C 3DD0 rcall _discharge_init
048E .dbline 161
048E CDD1 rcall _discharge
0490 .dbline 162
0490 04E6 ldi R16,100
0492 10E0 ldi R17,0
0494 00D0 rcall _delay_nms
0496 .dbline 163
0496 L65:
0496 .dbline 158
0496 FACF rjmp L64
0498 X20:
0498 .dbline -2
0498 L63:
0498 .dbline 0 ; func end
0498 0895 ret
049A .dbend
049A .dbfunc e welcome _welcome fV
049A ; ID -> R20
.even
049A _welcome::
049A 00D0 rcall push_gset1
049C 2397 sbiw R28,3
049E .dbline -1
049E .dbline 166
049E .dbline 167
049E 45E0 ldi R20,5
04A0 .dbline 168
04A0 20900000 lds R2,_RunTab
04A4 2416 cp R2,R20
04A6 91F4 brne L68
04A8 .dbline 169
04A8 .dbline 170
04A8 8FE0 ldi R24,15
04AA 8A83 std y+2,R24
04AC 80E0 ldi R24,<L70
04AE 90E0 ldi R25,>L70
04B0 9983 std y+1,R25
04B2 8883 std y+0,R24
04B4 2227 clr R18
04B6 04E0 ldi R16,4
04B8 00D0 rcall _LCD_write_string
04BA .dbline 171
04BA 8FE0 ldi R24,15
04BC 8A83 std y+2,R24
04BE 80E0 ldi R24,<L71
04C0 90E0 ldi R25,>L71
04C2 9983 std y+1,R25
04C4 8883 std y+0,R24
04C6 21E0 ldi R18,1
04C8 01E0 ldi R16,1
04CA 00D0 rcall _LCD_write_string
04CC .dbline 172
04CC L68:
04CC .dbline -2
04CC L67:
04CC 2396 adiw R28,3
04CE 00D0 rcall pop_gset1
04D0 .dbline 0 ; func end
04D0 0895 ret
04D2 .dbsym r ID 20 c
04D2 .dbend
04D2 .dbfunc e discharge_stop _discharge_stop fV
.even
04D2 _discharge_stop::
04D2 .dbline -1
04D2 .dbline 175
04D2 ; while(1)
04D2 ; {
04D2 ; discharge_init();
04D2 ; discharge();
04D2 ; delay_nms(100);
04D2 ; }
04D2 ; }
04D2 ; void welcome(void)
04D2 ; {
04D2 ; unsigned char ID=5;
04D2 ; if(RunTab==ID)
04D2 ; {
04D2 ; LCD_write_string(4,0,"Welcome",15);
04D2 ; LCD_write_string(1,1,"Discharger xp",15);
04D2 ; }
04D2 ; }
04D2 ; void discharge_stop(void)
04D2 ; {
04D2 .dbline 176
04D2 ; BT1_I_SET=0;BT1_I=0;
04D2 2224 clr R2
04D4 3324 clr R3
04D6 30921100 sts _BT1_I_SET+1,R3
04DA 20921000 sts _BT1_I_SET,R2
04DE .dbline 176
04DE 30921D00 sts _BT1_I+1,R3
04E2 20921C00 sts _BT1_I,R2
04E6 .dbline 177
04E6 ; BT1_state&=~(1<<1);//已停止放电
04E6 80912000 lds R24,_BT1_state
04EA 8D7F andi R24,253
04EC 80932000 sts _BT1_state,R24
04F0 .dbline 178
04F0 ; BT1_state|=(1<<2);//已放完电
04F0 8460 ori R24,4
04F2 80932000 sts _BT1_state,R24
04F6 .dbline 179
04F6 ; DDRB&=~(1<<1);G_F;
04F6 B998 cbi 0x17,1
04F8 .dbline 179
04F8 AC98 cbi 0x15,4
04FA .dbline 180
04FA ; PWM=100;
04FA 84E6 ldi R24,100
04FC 90E0 ldi R25,0
04FE 90930F00 sts _PWM+1,R25
0502 80930E00 sts _PWM,R24
0506 .dbline -2
0506 L72:
0506 .dbline 0 ; func end
0506 0895 ret
0508 .dbend
0508 .dbfunc e discharge_init _discharge_init fV
.even
0508 _discharge_init::
0508 .dbline -1
0508 .dbline 183
0508 .dbline 184
0508 00D0 rcall _T_BT1_V
050A 10931F00 sts _BT1_V+1,R17
050E 00931E00 sts _BT1_V,R16
0512 .dbline 185
0512 80ED ldi R24,2000
0514 97E0 ldi R25,7
0516 8017 cp R24,R16
0518 9107 cpc R25,R17
051A 58F4 brsh L74
051C 20902000 lds R2,_BT1_state
0520 2220 tst R2
0522 39F4 brne L74
0524 .dbline 186
0524 .dbline 187
0524 822D mov R24,R2
0526 8160 ori R24,1
0528 80932000 sts _BT1_state,R24
052C .dbline 188
052C 8AE0 ldi R24,10
052E 80930000 sts _RunTab,R24
0532 .dbline 189
0532 L74:
0532 .dbline -2
0532 L73:
0532 .dbline 0 ; func end
0532 0895 ret
0534 .dbend
0534 .dbfunc e Capacitance_setting _Capacitance_setting fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -