📄 discharger.s
字号:
rjmp L84
L83:
.dbline 173
.dbline 174
rcall _discharge_init
.dbline 175
rcall _discharge
.dbline 176
ldi R16,100
ldi R17,0
rcall _delay_nms
.dbline 177
L84:
.dbline 172
rjmp L83
X16:
.dbline -2
L82:
.dbline 0 ; func end
ret
.dbend
.dbfunc e desktop _desktop fV
; ID -> R20
.even
_desktop::
rcall push_gset1
sbiw R28,7
.dbline -1
.dbline 181
; while(1)
; {
; discharge_init();
; discharge();
; delay_nms(100);
; }
; }
;
; void desktop(void)
; {
.dbline 182
; unsigned char ID=1;
ldi R20,1
.dbline 183
; if(RunTab==ID)
lds R2,_RunTab
cp R2,R20
brne L87
.dbline 184
; {
.dbline 185
; if(keyboard==up){keyboard=0;RunTab=2;}
lds R24,_keyboard
cpi R24,1
brne L89
.dbline 185
.dbline 185
clr R2
sts _keyboard,R2
.dbline 185
ldi R24,2
sts _RunTab,R24
.dbline 185
L89:
.dbline 186
ldi R24,10
std y+2,R24
ldi R24,<L91
ldi R25,>L91
std y+1,R25
std y+0,R24
ldi R18,1
clr R16
rcall _LCD_write_string
.dbline 187
ldi R24,5
std y+6,R24
lds R2,_sec
std y+4,R2
lds R2,_min
std y+2,R2
lds R2,_hour
std y+0,R2
ldi R18,1
ldi R16,11
rcall _LCD_write_time
.dbline 188
L87:
.dbline -2
L86:
adiw R28,7
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ID 20 c
.dbend
.dbfunc e Discharging _Discharging fV
; ID -> R10
.even
_Discharging::
rcall push_gset3
sbiw R28,9
.dbline -1
.dbline 192
; LCD_write_string(0,1,"Start",10);
; LCD_write_time(11,1,hour,min,sec,5);
; }
; }
;
; void Discharging(void)
; {
.dbline 193
; unsigned char ID=11;
ldi R24,11
mov R10,R24
.dbline 194
; if(RunTab==ID)
lds R2,_RunTab
cp R2,R24
breq X17
rjmp L93
X17:
.dbline 195
; {
.dbline 196
; if(keyboard!=0)
lds R2,_keyboard
tst R2
breq L95
.dbline 197
; {
.dbline 198
; if(keyboard==back){RunTab=2;}
mov R24,R2
cpi R24,8
brne L97
.dbline 198
.dbline 198
ldi R24,2
sts _RunTab,R24
.dbline 198
L97:
.dbline 200
;
; keyboard=0;
clr R2
sts _keyboard,R2
.dbline 201
; }
L95:
.dbline 203
; //LCD_write_string(0,0,Menu[path],15);
; LCD_write_number(0,0,3,BT1_V,"V",6);
ldi R24,6
std y+8,R24
ldi R24,<L99
ldi R25,>L99
std y+7,R25
std y+6,R24
lds R2,_BT1_V
lds R3,_BT1_V+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
ldi R24,3
std y+0,R24
clr R18
clr R16
rcall _LCD_write_number
.dbline 204
; LCD_write_number(0,1,3,BT1_I,"A",6);
ldi R24,6
std y+8,R24
ldi R24,<L100
ldi R25,>L100
std y+7,R25
std y+6,R24
lds R2,_BT1_I
lds R3,_BT1_I+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
ldi R24,3
std y+0,R24
ldi R18,1
clr R16
rcall _LCD_write_number
.dbline 205
; if(BT1_state&(1<<2))
lds R2,_BT1_state
sbrs R2,2
rjmp L101
.dbline 206
; LCD_write_string(7,0,"Finish",15);
ldi R24,15
std y+2,R24
ldi R24,<L103
ldi R25,>L103
std y+1,R25
std y+0,R24
clr R18
ldi R16,7
rcall _LCD_write_string
rjmp L102
L101:
.dbline 208
; else
; LCD_write_number(7,0,0,PWM,"PWM",0);
clr R2
std y+8,R2
ldi R24,<L104
ldi R25,>L104
std y+7,R25
std y+6,R24
lds R2,_PWM
lds R3,_PWM+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
clr R2
std y+0,R2
clr R18
ldi R16,7
rcall _LCD_write_number
L102:
.dbline 209
ldi R24,15
std y+8,R24
ldi R24,<L105
ldi R25,>L105
std y+7,R25
std y+6,R24
ldi R20,100
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_BT1_mAh+2
lds R5,_BT1_mAh+2+1
lds R2,_BT1_mAh
lds R3,_BT1_mAh+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
rcall div32u
std y+2,R16
std y+3,R17
std y+4,R18
std y+5,R19
ldi R24,1
std y+0,R24
ldi R18,1
ldi R16,7
rcall _LCD_write_number
.dbline 210
L93:
.dbline -2
L92:
adiw R28,9
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r ID 10 c
.dbend
.dbfunc e D882 _D882 fV
; ID -> R20
.even
_D882::
rcall push_gset1
sbiw R28,9
.dbline -1
.dbline 214
; LCD_write_number(7,1,1,BT1_mAh/100,"mAh",15);
; }
; }
;
; void D882(void)
; {
.dbline 215
; unsigned char ID=12;
ldi R20,12
.dbline 216
; if(RunTab==ID)
lds R2,_RunTab
cp R2,R20
breq X18
rjmp L107
X18:
.dbline 217
; {
.dbline 218
; if(keyboard!=0)
lds R2,_keyboard
tst R2
breq L109
.dbline 219
; {
.dbline 220
; if(keyboard==back){RunTab=2;}
mov R24,R2
cpi R24,8
brne L111
.dbline 220
.dbline 220
ldi R24,2
sts _RunTab,R24
.dbline 220
L111:
.dbline 222
;
; keyboard=0;
clr R2
sts _keyboard,R2
.dbline 223
; }
L109:
.dbline 224
ldi R24,6
std y+2,R24
lds R2,_path
ldi R24,2
mul R24,R2
movw R30,R0
ldi R24,<_Menu
ldi R25,>_Menu
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
std y+1,R3
std y+0,R2
clr R18
clr R16
rcall _LCD_write_string
.dbline 225
ldi R24,10
std y+8,R24
ldi R24,<L113
ldi R25,>L113
std y+7,R25
std y+6,R24
lds R4,_BT1_time+2
lds R5,_BT1_time+2+1
lds R2,_BT1_time
lds R3,_BT1_time+1
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
clr R2
std y+0,R2
clr R18
ldi R16,7
rcall _LCD_write_number
.dbline 226
clr R2
std y+8,R2
ldi R24,<L114
ldi R25,>L114
std y+7,R25
std y+6,R24
lds R2,_BT1_T
lds R3,_BT1_T+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
ldi R24,1
std y+0,R24
ldi R18,1
clr R16
rcall _LCD_write_number
.dbline 227
clr R2
std y+8,R2
ldi R24,<L115
ldi R25,>L115
std y+7,R25
std y+6,R24
lds R2,_D882_P
lds R3,_D882_P+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
clr R2
std y+0,R2
ldi R18,1
ldi R16,7
rcall _LCD_write_number
.dbline 228
L107:
.dbline -2
L106:
adiw R28,9
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ID 20 c
.dbend
.dbfunc e Record _Record fV
; ID -> R20
.even
_Record::
rcall push_gset1
sbiw R28,9
.dbline -1
.dbline 232
; LCD_write_string(0,0,Menu[path],6);
; LCD_write_number(7,0,0,BT1_time,"sec",10);
; LCD_write_number(0,1,1,BT1_T,"C",0);
; LCD_write_number(7,1,0,D882_P,"mW",0);
; }
; }
;
; void Record(void)
; {
.dbline 233
; unsigned char ID=13; //程序标识
ldi R20,13
.dbline 234
; if(RunTab==ID)
lds R2,_RunTab
cp R2,R20
breq X21
rjmp L117
X21:
.dbline 235
; {
.dbline 236
; if(keyboard!=0)
lds R2,_keyboard
tst R2
brne X22
rjmp L119
X22:
.dbline 237
; {
.dbline 238
; if(keyboard==back){RunTab=2;}
mov R24,R2
cpi R24,8
brne L121
.dbline 238
.dbline 238
ldi R24,2
sts _RunTab,R24
.dbline 238
L121:
.dbline 239
; if((BT1_V_num_temp<BT1_V_num-1)&&BT1_V_num!=0)
lds R24,_BT1_V_num
lds R25,_BT1_V_num+1
sbiw R24,1
lds R2,_BT1_V_num_temp
lds R3,_BT1_V_num_temp+1
cp R2,R24
cpc R3,R25
brsh L123
lds R2,_BT1_V_num
lds R3,_BT1_V_num+1
tst R2
brne X19
tst R3
breq L123
X19:
.dbline 240
; {
.dbline 241
; if(keyboard==up)
lds R24,_keyboard
cpi R24,1
brne L125
.dbline 242
; {
.dbline 243
; BT1_V_num_temp++;
lds R24,_BT1_V_num_temp
lds R25,_BT1_V_num_temp+1
adiw R24,1
sts _BT1_V_num_temp+1,R25
sts _BT1_V_num_temp,R24
.dbline 244
; EEPROM_READ(BT1_V_num_temp*2,bt1_v_temp_1);
ldi R24,2
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_bt1_v_temp_1
ldi R19,>_bt1_v_temp_1
lds R2,_BT1_V_num_temp
lds R3,_BT1_V_num_temp+1
ldi R16,2
ldi R17,0
push R18
push R19
movw R18,R2
rcall empy16s
pop R19
pop R18
rcall _EEPROMReadBytes
.dbline 245
; }
L125:
.dbline 246
; }
L123:
.dbline 248
;
; if(BT1_V_num_temp>0)
lds R2,_BT1_V_num_temp
lds R3,_BT1_V_num_temp+1
tst R2
brne X20
tst R3
breq L127
X20:
.dbline 249
; {
.dbline 250
; if(keyboard==down)
lds R24,_keyboard
cpi R24,2
brne L129
.dbline 251
; {
.dbline 252
; BT1_V_num_temp--;
lds R24,_BT1_V_num_temp
lds R25,_BT1_V_num_temp+1
sbiw R24,1
sts _BT1_V_num_temp+1,R25
sts _BT1_V_num_temp,R24
.dbline 253
; EEPROM_READ(BT1_V_num_temp*2,bt1_v_temp_1);
ldi R24,2
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_bt1_v_temp_1
ldi R19,>_bt1_v_temp_1
lds R2,_BT1_V_num_temp
lds R3,_BT1_V_num_temp+1
ldi R16,2
ldi R17,0
push R18
push R19
movw R18,R2
rcall empy16s
pop R19
pop R18
rcall _EEPROMReadBytes
.dbline 254
; }
L129:
.dbline 255
; }
L127:
.dbline 256
; keyboard=0;
clr R2
sts _keyboard,R2
.dbline 257
; }
L119:
.dbline 258
ldi R24,8
std y+8,R24
ldi R24,<L99
ldi R25,>L99
std y+7,R25
std y+6,R24
lds R2,_bt1_v_temp_1
lds R3,_bt1_v_temp_1+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
ldi R24,3
std y+0,R24
ldi R18,1
clr R16
rcall _LCD_write_number
.dbline 259
ldi R24,8
std y+8,R24
ldi R24,<L131
ldi R25,>L131
std y+7,R25
std y+6,R24
lds R2,_BT1_V_num_temp
lds R3,_BT1_V_num_temp+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
clr R2
std y+0,R2
clr R18
clr R16
rcall _LCD_write_number
.dbline 260
ldi R24,15
std y+8,R24
ldi R24,<L131
ldi R25,>L131
std y+7,R25
std y+6,R24
lds R2,_BT1_V_num
lds R3,_BT1_V_num+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
clr R2
std y+0,R2
clr R18
ldi R16,10
rcall _LCD_write_number
.dbline 261
ldi R24,15
std y+8,R24
ldi R24,<L99
ldi R25,>L99
std y+7,R25
std y+6,R24
lds R2,_BT1_V
lds R3,_BT1_V+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
ldi R24,3
std y+0,R24
ldi R18,1
ldi R16,10
rcall _LCD_write_number
.dbline 262
L117:
.dbline -2
L116:
adiw R28,9
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ID 20 c
.dbend
.dbfunc e Clear _Clear fV
; ID -> R10
.even
_Clear::
rcall push_gset3
sbiw R28,9
.dbline -1
.dbline 266
; LCD_write_number(0,1,3,bt1_v_temp_1,"V",8);
; LCD_write_number(0,0,0,BT1_V_num_temp,"min",8);
; LCD_write_number(10,0,0,BT1_V_num,"min",15);
; LCD_write_number(10,1,3,BT1_V,"V",15);
; }
; }
;
; void Clear (void)
; {
.dbline 267
; unsigned char ID=14;
ldi R24,14
mov R10,R24
.dbline 268
; if(RunTab==ID)
lds R2,_RunTab
cp R2,R24
breq X23
rjmp L133
X23:
.dbline 269
; {
.dbline 270
; if(keyboard!=0)
lds R2,_keyboard
tst R2
brne X24
rjmp L135
X24:
.dbline 271
; {
.dbline 272
; if(keyboard==back){RunTab=2;}
mov R24,R2
cpi R24,8
brne L137
.dbline 272
.dbline 272
ldi R24,2
sts _RunTab,R24
.dbline 272
L137:
.dbline 273
; if(keyboard==enter_long)
lds R24,_keyboard
cpi R24,20
breq X25
rjmp L139
X25:
.dbline 274
; {
.dbline 275
; BT1_mAh=0;
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _BT1_mAh+1,R21
sts _BT1_mAh,R20
sts _BT1_mAh+2+1,R23
sts _BT1_mAh+2,R22
.dbline 276
; BT1_time=0;
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _BT1_time+1,R21
sts _BT1_time,R20
sts _BT1_time+2+1,R23
sts _BT1_time+2,R22
.dbline 277
; EEPROM_WRITE(0x01F0,BT1_mAh);
ldi R24,4
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_BT1_mAh
ldi R19,>_BT1_mAh
ldi R16,496
ldi R17,1
rcall _EEPROMWriteBytes
.dbline 278
; EEPROM_WRITE(0x01F4,BT1_time);
ldi R24,4
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_BT1_time
ldi R19,>_BT1_time
ldi R16,500
ldi R17,1
rcall _EEPROMWriteBytes
.dbline 279
; BT1_V_num=0;BT1_V_num_temp=0;
clr R2
clr R3
sts _BT1_V_num+1,R3
sts _BT1_V_num,R2
.dbline 279
sts _BT1_V_num_temp+1,R3
sts _BT1_V_num_temp,R2
.dbline 280
; EEPROM_WRITE(0x01F8,BT1_V_num);
ldi R24,2
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_BT1_V_num
ldi R19,>_BT1_V_num
ldi R16,504
ldi R17,1
rcall _EEPROMWriteBytes
.dbline 281
; sc_bt1_record=7500;
ldi R24,7500
ldi R25,29
sts _sc_bt1_record+1,R25
sts _sc_bt1_record,R24
.dbline 282
; }
L139:
.dbline 283
; keyboard=0;
clr R2
sts _keyboard,R2
.dbline 284
; }
L135:
.dbline 285
ldi R24,15
std y+2,R24
lds R2,_path
ldi R24,2
mul R24,R2
movw R30,R0
ldi R24,<_Menu
ldi R25,>_Menu
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
std y+1,R3
std y+0,R2
clr R18
clr R16
rcall _LCD_write_string
.dbline 286
ldi R24,15
std y+8,R24
ldi R24,<L105
ldi R25,>L105
std y+7,R25
std y+6,R24
ldi R20,100
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_BT1_mAh+2
lds R5,_BT1_mAh+2+1
lds R2,_BT1_mAh
lds R3,_BT1_mAh+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
rcall div32u
std y+2,R16
std y+3,R17
std y+4,R18
std y+5,R19
ldi R24,1
std y+0,R24
ldi R18,1
ldi R16,7
rcall _LCD_write_number
.dbline 287
L133:
.dbline -2
L132:
adiw R28,9
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r ID 10 c
.dbend
.dbfunc e usart _usart fV
; ID -> R10
.even
_usart::
rcall push_gset3
sbiw R28,3
.dbline -1
.dbline 291
; LCD_write_string(0,0,Menu[path],15);
; LCD_write_number(7,1,1,BT1_mAh/100,"mAh",15);
; }
; }
;
; void usart(void)
; {
.dbline 292
; unsigned char ID=15;
ldi R24,15
mov R10,R24
.dbline 293
; if(RunTab==ID)
lds R2,_RunTab
cp R2,R24
breq X27
rjmp L142
X27:
.dbline 294
; {
.dbline 295
; if(keyboard!=0)
lds R2,_keyboard
tst R2
breq L144
.dbline 296
; {
.dbline 297
; if(keyboard==back){RunTab=2;}
mov R24,R2
cpi R24,8
brne L146
.dbline 297
.dbline 297
ldi R24,2
sts _RunTab,R24
.dbline 297
L146:
.dbline 298
; if((keyboard==enter)&&BT1_V_num!=0)
lds R24,_keyboard
cpi R24,4
brne L148
lds R2,_BT1_V_num
lds R3,_BT1_V_num+1
tst R2
brne X26
tst R3
breq L148
X26:
.dbline 299
; {
.dbline 300
; BT1_state|=(1<<7);
lds R24,_BT1_state
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -