📄 main.lis
字号:
0742 80930600 sts _speed,R24
0746 .dbline 225
0746 1FC0 rjmp L96
0748 L95:
0748 .dbline 226
0748 ; else if((keyboard==down)&&speed>5)
0748 80913500 lds R24,_keyboard
074C 8230 cpi R24,2
074E 71F4 brne L97
0750 85E0 ldi R24,5
0752 20900600 lds R2,_speed
0756 8215 cp R24,R2
0758 48F4 brsh L97
075A .dbline 227
075A ; {keyboard=0;speed-=5;}
075A .dbline 227
075A 2224 clr R2
075C 20923500 sts _keyboard,R2
0760 .dbline 227
0760 80910600 lds R24,_speed
0764 8550 subi R24,5
0766 80930600 sts _speed,R24
076A .dbline 227
076A 0DC0 rjmp L98
076C L97:
076C .dbline 228
076C ; else if(keyboard==pagedown)
076C 80913500 lds R24,_keyboard
0770 8830 cpi R24,8
0772 49F4 brne L99
0774 .dbline 229
0774 ; {
0774 .dbline 230
0774 ; keyboard=0;
0774 2224 clr R2
0776 20923500 sts _keyboard,R2
077A .dbline 231
077A ; RunTab--;LCD_clear();
077A 80910000 lds R24,_RunTab
077E 8150 subi R24,1
0780 80930000 sts _RunTab,R24
0784 .dbline 231
0784 00D0 rcall _LCD_clear
0786 .dbline 232
0786 ; }
0786 L99:
0786 L98:
0786 L96:
0786 .dbline 233
0786 L89:
0786 .dbline -2
0786 L88:
0786 2996 adiw R28,9
0788 00D0 rcall pop_gset1
078A .dbline 0 ; func end
078A 0895 ret
078C .dbsym r ID 20 c
078C .dbend
078C .dbfunc e record_setting _record_setting fV
078C ; ID -> R20
.even
078C _record_setting::
078C 00D0 rcall push_gset1
078E 2297 sbiw R28,2
0790 .dbline -1
0790 .dbline 236
0790 .dbline 237
0790 4CE0 ldi R20,12
0792 .dbline 238
0792 20900000 lds R2,_RunTab
0796 2416 cp R2,R20
0798 09F0 breq X23
079A 44C0 rjmp L102
079C X23:
079C .dbline 239
079C .dbline 240
079C 82E0 ldi R24,2
079E 90E0 ldi R25,0
07A0 9983 std y+1,R25
07A2 8883 std y+0,R24
07A4 20E0 ldi R18,<_mAh_set
07A6 30E0 ldi R19,>_mAh_set
07A8 0CEF ldi R16,508
07AA 11E0 ldi R17,1
07AC 00D0 rcall _EEPROMWriteBytes
07AE .dbline 241
07AE 81E0 ldi R24,1
07B0 90E0 ldi R25,0
07B2 9983 std y+1,R25
07B4 8883 std y+0,R24
07B6 20E0 ldi R18,<_speed
07B8 30E0 ldi R19,>_speed
07BA 0EEF ldi R16,510
07BC 11E0 ldi R17,1
07BE 00D0 rcall _EEPROMWriteBytes
07C0 .dbline 242
07C0 84EF ldi R24,500
07C2 91E0 ldi R25,1
07C4 90930F00 sts _PWM+1,R25
07C8 80930E00 sts _PWM,R24
07CC .dbline 242
07CC 8CE4 ldi R24,7500
07CE 9DE1 ldi R25,29
07D0 90932600 sts _sc_bt1_record+1,R25
07D4 80932500 sts _sc_bt1_record,R24
07D8 .dbline 243
07D8 82EE ldi R24,1250
07DA 94E0 ldi R25,4
07DC 90932A00 sts _sc_eeprom+1,R25
07E0 80932900 sts _sc_eeprom,R24
07E4 .dbline 243
07E4 84EF ldi R24,500
07E6 91E0 ldi R25,1
07E8 90932200 sts _sc_bt1_v_temp+1,R25
07EC 80932100 sts _sc_bt1_v_temp,R24
07F0 .dbline 244
07F0 24E6 ldi R18,100
07F2 30E0 ldi R19,0
07F4 00910400 lds R16,_mAh_set
07F8 10910500 lds R17,_mAh_set+1
07FC 00D0 rcall div16u
07FE 20910600 lds R18,_speed
0802 3327 clr R19
0804 00D0 rcall empy16s
0806 10931100 sts _BT1_I_SET+1,R17
080A 00931000 sts _BT1_I_SET,R16
080E .dbline 245
080E B99A sbi 0x17,1
0810 .dbline 245
0810 AC9A sbi 0x15,4
0812 .dbline 246
0812 80912000 lds R24,_BT1_state
0816 8260 ori R24,2
0818 80932000 sts _BT1_state,R24
081C .dbline 247
081C 81E0 ldi R24,1
081E 80930000 sts _RunTab,R24
0822 .dbline 248
0822 00D0 rcall _LCD_clear
0824 .dbline 249
0824 L102:
0824 .dbline -2
0824 L101:
0824 2296 adiw R28,2
0826 00D0 rcall pop_gset1
0828 .dbline 0 ; func end
0828 0895 ret
082A .dbsym r ID 20 c
082A .dbend
082A .dbfunc e discharge _discharge fV
082A ; i_temp -> y+4
082A ; v_temp -> y+0
082A ; i -> R10
082A ; v -> R12
.even
082A _discharge::
082A 00D0 rcall push_gset4
082C 2897 sbiw R28,8
082E .dbline -1
082E .dbline 255
082E ; }
082E ; }
082E ; void record_setting(void)
082E ; {
082E ; unsigned char ID=12;
082E ; if(RunTab==ID)
082E ; {
082E ; EEPROM_WRITE(0x01FC,mAh_set);
082E ; EEPROM_WRITE(0x01FE,speed);
082E ; PWM=500;sc_bt1_record=7500;
082E ; sc_eeprom=1250;sc_bt1_v_temp=500;
082E ; BT1_I_SET=mAh_set/100*speed;
082E ; DDRB|=(1<<1);G_N;
082E ; BT1_state|=(1<<1);
082E ; RunTab=1;
082E ; LCD_clear();
082E ; }
082E ; }
082E ; /*---------------------------------------
082E ; 放电程序
082E ; ----------------------------------------*/
082E ; void discharge (void)
082E ; {
082E 9CC0 rjmp L106
0830 L105:
0830 .dbline 260
0830 ; unsigned long v_temp,i_temp;
0830 ; unsigned char v,i;
0830 ;
0830 ; while(BT1_state&(1<<1))
0830 ; {G_N;
0830 .dbline 260
0830 AC9A sbi 0x15,4
0832 .dbline 261
0832 ; if(i<4)
0832 8A2D mov R24,R10
0834 8430 cpi R24,4
0836 A0F4 brsh L108
0838 .dbline 262
0838 ; {i_temp+=T_BT1_I();i++;}
0838 .dbline 262
0838 00D0 rcall _T_BT1_I
083A 1801 movw R2,R16
083C 4424 clr R4
083E 5524 clr R5
0840 FE01 movw R30,R28
0842 6480 ldd R6,z+4
0844 7580 ldd R7,z+5
0846 8680 ldd R8,z+6
0848 9780 ldd R9,z+7
084A 620C add R6,R2
084C 731C adc R7,R3
084E 841C adc R8,R4
0850 951C adc R9,R5
0852 FE01 movw R30,R28
0854 6482 std z+4,R6
0856 7582 std z+5,R7
0858 8682 std z+6,R8
085A 9782 std z+7,R9
085C .dbline 262
085C A394 inc R10
085E .dbline 262
085E 19C0 rjmp L109
0860 L108:
0860 .dbline 264
0860 ; else
0860 ; {i=0;BT1_I=i_temp>>2;i_temp=0;}
0860 .dbline 264
0860 AA24 clr R10
0862 .dbline 264
0862 82E0 ldi R24,2
0864 90E0 ldi R25,0
0866 FE01 movw R30,R28
0868 2480 ldd R2,z+4
086A 3580 ldd R3,z+5
086C 4680 ldd R4,z+6
086E 5780 ldd R5,z+7
0870 8A93 st -y,R24
0872 8101 movw R16,R2
0874 9201 movw R18,R4
0876 00D0 rcall lsr32
0878 10931D00 sts _BT1_I+1,R17
087C 00931C00 sts _BT1_I,R16
0880 .dbline 264
0880 40E0 ldi R20,0
0882 50E0 ldi R21,0
0884 60E0 ldi R22,0
0886 70E0 ldi R23,0
0888 FE01 movw R30,R28
088A 4483 std z+4,R20
088C 5583 std z+5,R21
088E 6683 std z+6,R22
0890 7783 std z+7,R23
0892 .dbline 264
0892 L109:
0892 .dbline 265
0892 ; delay_nms(5);
0892 05E0 ldi R16,5
0894 10E0 ldi R17,0
0896 00D0 rcall _delay_nms
0898 .dbline 266
0898 ; if(v<64)
0898 8C2D mov R24,R12
089A 8034 cpi R24,64
089C E8F4 brsh L110
089E .dbline 267
089E ; {v_temp+=T_BT1_V()+(BT1_I>>1); v++;}
089E .dbline 267
089E 00D0 rcall _T_BT1_V
08A0 20901C00 lds R2,_BT1_I
08A4 30901D00 lds R3,_BT1_I+1
08A8 3694 lsr R3
08AA 2794 ror R2
08AC 2801 movw R4,R16
08AE 420C add R4,R2
08B0 531C adc R5,R3
08B2 1201 movw R2,R4
08B4 4424 clr R4
08B6 5524 clr R5
08B8 FE01 movw R30,R28
08BA 6080 ldd R6,z+0
08BC 7180 ldd R7,z+1
08BE 8280 ldd R8,z+2
08C0 9380 ldd R9,z+3
08C2 620C add R6,R2
08C4 731C adc R7,R3
08C6 841C adc R8,R4
08C8 951C adc R9,R5
08CA FE01 movw R30,R28
08CC 6082 std z+0,R6
08CE 7182 std z+1,R7
08D0 8282 std z+2,R8
08D2 9382 std z+3,R9
08D4 .dbline 267
08D4 C394 inc R12
08D6 .dbline 267
08D6 19C0 rjmp L111
08D8 L110:
08D8 .dbline 269
08D8 ; else
08D8 ; {v=0;BT1_V=v_temp>>6;v_temp=0;}
08D8 .dbline 269
08D8 CC24 clr R12
08DA .dbline 269
08DA 86E0 ldi R24,6
08DC 90E0 ldi R25,0
08DE FE01 movw R30,R28
08E0 2080 ldd R2,z+0
08E2 3180 ldd R3,z+1
08E4 4280 ldd R4,z+2
08E6 5380 ldd R5,z+3
08E8 8A93 st -y,R24
08EA 8101 movw R16,R2
08EC 9201 movw R18,R4
08EE 00D0 rcall lsr32
08F0 10931F00 sts _BT1_V+1,R17
08F4 00931E00 sts _BT1_V,R16
08F8 .dbline 269
08F8 40E0 ldi R20,0
08FA 50E0 ldi R21,0
08FC 60E0 ldi R22,0
08FE 70E0 ldi R23,0
0900 FE01 movw R30,R28
0902 4083 std z+0,R20
0904 5183 std z+1,R21
0906 6283 std z+2,R22
0908 7383 std z+3,R23
090A .dbline 269
090A L111:
090A .dbline 271
090A 05E0 ldi R16,5
090C 10E0 ldi R17,0
090E 00D0 rcall _delay_nms
09
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -