📄 mp3.s
字号:
L103:
.dbline 174
; timebuf.month = temp/10;
ldi R17,10
mov R16,R22
xcall div8u
sts _timebuf+4,R16
.dbline 175
; timebuf.month <<= 4;
mov R24,R16
andi R24,#0x0F
swap R24
sts _timebuf+4,R24
.dbline 176
; timebuf.month += temp%10;
ldi R17,10
mov R16,R22
xcall mod8u
lds R2,_timebuf+4
add R2,R16
sts _timebuf+4,R2
.dbline 177
; break;
xjmp L89
L107:
.dbline 178
; case 2: temp = timebuf.date;
lds R22,_timebuf+3
.dbline 179
; temp >>= 4;
mov R24,R22
swap R24
andi R24,#0x0F
mov R22,R24
.dbline 180
; temp &= 0x0f;
andi R22,15
.dbline 181
; temp *= 10;
ldi R24,10
mul R24,R22
mov R22,R0
.dbline 182
; temp += (timebuf.date&0x0f);
lds R24,_timebuf+3
andi R24,15
add R22,R24
.dbline 183
; (++temp == 32) ? (temp = 1) : 0;
mov R24,R22
subi R24,255 ; addi 1
mov R22,R24
cpi R22,32
brne L111
ldi R22,1
xjmp L111
L111:
.dbline 184
; timebuf.date = temp/10;
ldi R17,10
mov R16,R22
xcall div8u
sts _timebuf+3,R16
.dbline 185
; timebuf.date <<= 4;
mov R24,R16
andi R24,#0x0F
swap R24
sts _timebuf+3,R24
.dbline 186
; timebuf.date += temp%10;
ldi R17,10
mov R16,R22
xcall mod8u
lds R2,_timebuf+3
add R2,R16
sts _timebuf+3,R2
.dbline 187
; break;
L88:
L89:
.dbline 189
; }//switch
; }
L86:
.dbline 190
; if(keybuf == K_DOWN){
lds R24,_keybuf
cpi R24,1
breq X15
xjmp L115
X15:
.dbline 190
.dbline 191
mov R10,R20
clr R11
tst R10
brne X11
tst R11
breq L120
X11:
movw R24,R10
cpi R24,1
ldi R30,0
cpc R25,R30
breq L128
cpi R24,2
ldi R30,0
cpc R25,R30
brne X16
xjmp L136
X16:
xjmp L117
X12:
.dbline 191
; switch(ii){
L120:
.dbline 192
; case 0: temp = timebuf.year;
lds R22,_timebuf+6
.dbline 193
; temp >>= 4;
mov R24,R22
swap R24
andi R24,#0x0F
mov R22,R24
.dbline 194
; temp &= 0x0f;
andi R22,15
.dbline 195
; temp *= 10;
ldi R24,10
mul R24,R22
mov R22,R0
.dbline 196
; temp += (timebuf.year&0x0f);
lds R24,_timebuf+6
andi R24,15
add R22,R24
.dbline 197
; (--temp == 255) ? (temp = 99) : 0;
mov R24,R22
subi R24,1
mov R22,R24
cpi R22,255
brne L124
ldi R22,99
xjmp L124
L124:
.dbline 198
; timebuf.year = temp/10;
ldi R17,10
mov R16,R22
xcall div8u
sts _timebuf+6,R16
.dbline 199
; timebuf.year <<= 4;
mov R24,R16
andi R24,#0x0F
swap R24
sts _timebuf+6,R24
.dbline 200
; timebuf.year += temp%10;
ldi R17,10
mov R16,R22
xcall mod8u
lds R2,_timebuf+6
add R2,R16
sts _timebuf+6,R2
.dbline 201
; break;
xjmp L118
L128:
.dbline 202
; case 1: temp = timebuf.month;
lds R22,_timebuf+4
.dbline 203
; temp >>= 4;
mov R24,R22
swap R24
andi R24,#0x0F
mov R22,R24
.dbline 204
; temp &= 0x0f;
andi R22,15
.dbline 205
; temp *= 10;
ldi R24,10
mul R24,R22
mov R22,R0
.dbline 206
; temp += (timebuf.month&0x0f);
lds R24,_timebuf+4
andi R24,15
add R22,R24
.dbline 207
; (--temp == 0) ? (temp = 12) : 0;
mov R24,R22
subi R24,1
mov R22,R24
tst R24
brne L132
ldi R22,12
xjmp L132
L132:
.dbline 208
; timebuf.month = temp/10;
ldi R17,10
mov R16,R22
xcall div8u
sts _timebuf+4,R16
.dbline 209
; timebuf.month <<= 4;
mov R24,R16
andi R24,#0x0F
swap R24
sts _timebuf+4,R24
.dbline 210
; timebuf.month += temp%10;
ldi R17,10
mov R16,R22
xcall mod8u
lds R2,_timebuf+4
add R2,R16
sts _timebuf+4,R2
.dbline 211
; break;
xjmp L118
L136:
.dbline 212
; case 2: temp = timebuf.date;
lds R22,_timebuf+3
.dbline 213
; temp >>= 4;
mov R24,R22
swap R24
andi R24,#0x0F
mov R22,R24
.dbline 214
; temp &= 0x0f;
andi R22,15
.dbline 215
; temp *= 10;
ldi R24,10
mul R24,R22
mov R22,R0
.dbline 216
; temp += (timebuf.date&0x0f);
lds R24,_timebuf+3
andi R24,15
add R22,R24
.dbline 217
; (--temp == 0) ? (temp = 31) : 0;
mov R24,R22
subi R24,1
mov R22,R24
tst R24
brne L140
ldi R22,31
xjmp L140
L140:
.dbline 218
; timebuf.date = temp/10;
ldi R17,10
mov R16,R22
xcall div8u
sts _timebuf+3,R16
.dbline 219
; timebuf.date <<= 4;
mov R24,R16
andi R24,#0x0F
swap R24
sts _timebuf+3,R24
.dbline 220
; timebuf.date += temp%10;
ldi R17,10
mov R16,R22
xcall mod8u
lds R2,_timebuf+3
add R2,R16
sts _timebuf+3,R2
.dbline 221
; break;
L117:
L118:
.dbline 223
; }//switch
; }
L115:
.dbline 224
; if(keybuf == K_RIFT) (++ii == 3) ? (ii = 0) : 0;
lds R24,_keybuf
cpi R24,6
brne L144
.dbline 224
mov R24,R20
subi R24,255 ; addi 1
mov R20,R24
cpi R20,3
brne L147
clr R20
xjmp L147
L147:
L144:
.dbline 225
; if(keybuf == K_LIFT) (--ii == 255) ? (ii = 2) : 0;
lds R24,_keybuf
cpi R24,2
brne L148
.dbline 225
mov R24,R20
subi R24,1
mov R20,R24
cpi R20,255
brne L151
ldi R20,2
xjmp L151
L151:
L148:
.dbline 226
; if(keybuf == K_ESC) {Read_InfoDs1302buf();break;}
lds R24,_keybuf
cpi R24,5
brne L152
.dbline 226
.dbline 226
xcall _Read_InfoDs1302buf
.dbline 226
xjmp L82
L152:
.dbline 227
; if(keybuf == K_ENTER) {Write_InfoDs1302buf();break;}
lds R24,_keybuf
cpi R24,4
brne L154
.dbline 227
.dbline 227
xcall _Write_InfoDs1302buf
.dbline 227
xjmp L82
L154:
.dbline 228
L81:
.dbline 151
xjmp L80
L82:
.dbline -2
L79:
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r temp 22 c
.dbsym r ii 20 c
.dbend
.dbfunc e set_system_week _set_system_week fV
.even
_set_system_week::
.dbline -1
.dbline 234
; }
; }
; /*
; *设置星期
; */
; void set_system_week(void)
; {
xjmp L158
L157:
.dbline 235
; while(1){
.dbline 236
; show_set_week();
xcall _show_set_week
.dbline 237
; KEYBUF_NULL;
clr R2
sts _keybuf,R2
.dbline 237
L160:
.dbline 238
L161:
.dbline 238
; while(keybuf == NULL);
lds R2,_keybuf
tst R2
breq L160
.dbline 240
;
; if(keybuf == K_UP) (++timebuf.week == 8) ? (timebuf.week = 1) : 0;
mov R24,R2
cpi R24,3
brne L163
.dbline 240
lds R24,_timebuf+5
subi R24,255 ; addi 1
mov R2,R24
sts _timebuf+5,R2
cpi R24,8
brne L168
ldi R24,1
sts _timebuf+5,R24
xjmp L168
L168:
L163:
.dbline 241
; if(keybuf == K_DOWN)(--timebuf.week == 0) ? (timebuf.week = 7) : 0;
lds R24,_keybuf
cpi R24,1
brne L169
.dbline 241
lds R24,_timebuf+5
subi R24,1
mov R2,R24
sts _timebuf+5,R2
tst R24
brne L174
ldi R24,7
sts _timebuf+5,R24
xjmp L174
L174:
L169:
.dbline 243
;
; if(keybuf == K_ESC) {Read_InfoDs1302buf();break;}
lds R24,_keybuf
cpi R24,5
brne L175
.dbline 243
.dbline 243
xcall _Read_InfoDs1302buf
.dbline 243
xjmp L159
L175:
.dbline 244
; if(keybuf == K_ENTER) {Write_InfoDs1302buf();break;}
lds R24,_keybuf
cpi R24,4
brne L177
.dbline 244
.dbline 244
xcall _Write_InfoDs1302buf
.dbline 244
xjmp L159
L177:
.dbline 245
L158:
.dbline 235
xjmp L157
L159:
.dbline -2
L156:
.dbline 0 ; func end
ret
.dbend
.dbfunc e set_out_time _set_out_time fV
; temp -> R14
; ii -> R22
; page -> R10
; ps -> y+12
.even
_set_out_time::
xcall push_arg4
xcall push_gset5
mov R10,R18
sbiw R28,2
.dbline -1
.dbline 251
; }
; }
; /*
; *设置时间
; */
; void set_out_time(struct time *ps, uchar page)
; {
.dbline 254
; uchar ii;
; uchar temp;
; ii = 0; //最大是2
clr R22
xjmp L181
L180:
.dbline 255
; while(1){
.dbline 256
; show_tiem_out(ps, page,ii);
mov R2,R22
clr R3
std y+1,R3
std y+0,R2
mov R18,R10
clr R19
ldd R16,y+12
ldd R17,y+13
xcall _show_tiem_out
.dbline 257
; KEYBUF_NULL;
clr R2
sts _keybuf,R2
.dbline 257
L183:
.dbline 258
L184:
.dbline 258
; while(keybuf == NULL);
lds R2,_keybuf
tst R2
breq L183
.dbline 260
;
; if(keybuf == K_UP){
mov R24,R2
cpi R24,3
breq X21
xjmp L186
X21:
.dbline 260
.dbline 261
mov R20,R22
clr R21
cpi R20,0
cpc R20,R21
breq L191
X17:
cpi R20,1
ldi R30,0
cpc R21,R30
brne X22
xjmp L194
X22:
cpi R20,2
ldi R30,0
cpc R21,R30
brne X23
xjmp L197
X23:
xjmp L188
X18:
.dbline 261
; switch(ii){
L191:
.dbline 262
; case 0: temp = ps->hour;
ldd R30,y+12
ldd R31,y+13
ldd R14,z+2
.dbline 263
; temp >>= 4;
mov R24,R14
swap R24
andi R24,#0x0F
.dbline 264
; temp &= 0x0f;
andi R24,15
mov R14,R24
.dbline 265
; temp *= 10;
ldi R24,10
mul R24,R14
mov R14,R0
.dbline 266
; temp += (ps->hour&0x0f);
ldd R30,y+12
ldd R31,y+13
ldd R24,z+2
andi R24,15
add R14,R24
.dbline 267
; (++temp == 24) ? (temp = 0) : 0;
mov R24,R14
subi R24,255 ; addi 1
mov R14,R24
cpi R24,24
brne L193
clr R14
xjmp L193
L193:
.dbline 268
; ps->hour = temp/10;
ldi R17,10
mov R16,R14
xcall div8u
mov R2,R16
ldd R30,y+12
ldd R31,y+13
std z+2,R2
.dbline 269
; ps->hour <<= 4;
ldd R24,y+12
ldd R25,y+13
adiw R24,2
movw R30,R24
ldd R24,z+0
andi R24,#0x0F
swap R24
std z+0,R24
.dbline 270
; ps->hour += temp%10;
ldd R24,y+12
ldd R25,y+13
adiw R24,2
movw R2,R24
ldi R17,10
mov R16,R14
xcall mod8u
movw R30,R2
ldd R4,z+0
add R4,R16
std z+0,R4
.dbline 271
; break;
xjmp L189
L194:
.dbline 272
; case 1: temp = ps->min;
ldd R30,y+12
ldd R31,y+13
ldd R14,z+1
.dbline 273
; temp >>= 4;
mov R24,R14
swap R24
andi R24,#0x0F
.dbline 274
; temp &= 0x0f;
andi R24,15
mov R14,R24
.dbline 275
; temp *= 10;
ldi R24,10
mul R24,R14
mov R14,R0
.dbline 276
; temp += (ps->min&0x0f);
ldd R30,y+12
ldd R31,y+13
ldd R24,z+1
andi R24,15
add R14,R24
.dbline 277
; (++temp == 60) ? (temp = 0) : 0;
mov R24,R14
subi R24,255 ; addi 1
mov R14,R24
cpi R24,60
brne L196
clr R14
xjmp L196
L196:
.dbline 278
; ps->min = temp/10;
ldi R17,10
mov R16,R14
xcall div8u
mov R2,R16
ldd R30,y+12
ldd R31,y+13
std z+1,R2
.dbline 279
; ps->min <<= 4;
ldd R24,y+12
ldd R25,y+13
adiw R24,1
movw R30,R24
ldd R24,z+0
andi R24,#0x0F
swap R24
std z+0,R24
.dbline 280
; ps->min += temp%10;
ldd R24,y+12
ldd R25,y+13
adiw R24,1
movw R2,R24
ldi R17,10
mov R16,R14
xcall mod8u
movw R30,R2
ldd R4,z+0
add R4,R16
std z+0,R4
.dbline 281
; break;
xjmp L189
L197:
.dbline 282
; case 2: temp = ps->sec;
ldd R30,y+12
ldd R31,y+13
ldd R14,z+0
.dbline 283
; temp >>= 4;
mov R24,R14
swap R24
andi R24,#0x0F
.dbline 284
; temp &= 0x0f;
andi R24,15
mov R14,R24
.dbline 285
; temp *= 10;
ldi R24,10
mul R24,R14
mov R14,R0
.dbline 286
; temp += (ps->sec&0x0f);
ldd R24,z+0
andi R24,15
add R14,R24
.dbline 287
; (++temp == 60) ? (temp = 0) : 0;
mov R24,R14
subi R24,255 ; addi 1
mov R14,R24
cpi R24,60
brne L199
clr R14
xjmp L199
L199:
.dbline 288
; ps->sec = temp/10;
ldi R17,10
mov R16,R14
xcall div8u
mov R2,R16
ldd R30,y+12
ldd R31,y+13
std z+0,R2
.dbline 289
; ps->sec <<= 4;
ldd R24,z+0
andi R24,#0x0F
swap R24
std z+0,R24
.dbline 290
; ps->sec += temp%10;
ldi R17,10
mov R16,R14
xcall mod8u
ldd R30,y+12
ldd R31,y+13
ldd R3,z+0
add R3,R16
std z+0,R3
.dbline 291
; break;
L188:
L189:
.dbline 293
; }//switch
; }
L186:
.dbline 294
; if(keybuf == K_DOWN){
lds R24,_keybuf
cpi R24,1
breq X24
xjmp L200
X24:
.dbline 294
.dbline 295
mov R12,R22
clr R13
tst R12
brne X19
tst R13
breq L205
X19:
movw R24,R12
cpi R24,1
ldi R30,0
cpc R25,R30
brne X25
xjmp L208
X25:
cpi R24,2
ldi R30,0
cpc R25,R30
brne X26
xjmp L211
X26:
xjmp L202
X20:
.dbline 295
; switch(ii){
L205:
.dbline 296
; case 0: temp = ps->hour;
ldd R30,y+12
ldd R31,y+13
ldd R14,z+2
.dbline 297
; temp >>= 4;
mov R24,R14
swap R24
andi R24,#0x0F
.dbline 298
; temp &= 0x0f;
andi R24,15
mov R14,R24
.dbline 299
; temp *= 10;
ldi R24,10
mul R24,R14
mov R14,R0
.dbline 300
; temp += (ps->hour&0x0f);
ldd R30,y+12
ldd R31,y+13
ldd R24,z+2
andi R24,15
add R14,R24
.dbline 301
; (--temp == 255) ? (temp = 23) : 0;
mov R24,R14
subi R24,1
mov R14,R24
cpi R24,255
brne L207
ldi R24,23
mov R14,R24
xjmp L207
L207:
.dbline 302
; ps->hour = temp/10;
ldi R17,10
mov R16,R14
xcall div8u
mov R2,R16
ldd R30,y+12
ldd R31,y+13
std z+2,R2
.dbline 303
; ps->hour <<= 4;
ldd R24,y+12
ldd R25,y+13
adiw R24,2
movw R30,R24
ldd R24,z+0
andi R24,#0x0F
swap R24
std z+0,R24
.dbline 304
; ps->hour += temp%10;
ldd R24,y+12
ldd R25,y+13
adiw R24,2
movw R2,R24
ldi R17,10
mov R16,R14
xcall mod8u
movw R30,R2
ldd R4,z+0
add R4,R16
std z+0,R4
.dbline 305
; break;
xjmp L203
L208:
.dbline 306
; case 1: temp = ps->min;
ldd R30,y+12
ldd R31,y+13
ldd R14,z+1
.dbline 307
; temp >>= 4;
mov R24,R14
swap R24
andi R24,#0x0F
.dbline 308
; temp &= 0x0f;
andi R24,15
mov R14,R24
.dbline 309
; temp *= 10;
ldi R24,10
mul R24,R14
mov R14,R0
.dbline 310
; temp += (ps->min&0x0f);
ldd R30,y+12
ldd R31,y+13
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -