📄 main.s
字号:
.dbline 442
; Dis_Rect(100,165,160,50,BLUE);
ldi R24,3
std y+4,R24
ldi R24,50
std y+2,R24
ldi R24,160
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,165
ldi R16,100
ldi R17,0
xcall _Dis_Rect
.dbline 443
; Time_flag = 1;
ldi R24,1
sts _Time_flag,R24
.dbline 445
;
; DisTimeAll(100,165,BLACK,BLUE);
ldi R24,3
std y+2,R24
clr R2
std y+0,R2
ldi R18,165
ldi R16,100
ldi R17,0
xcall _DisTimeAll
.dbline 446
; }
xjmp L92
L94:
.dbline 447
; else if(Time_flag == 1)
lds R24,_Time_flag
cpi R24,1
breq X5
xjmp L92
X5:
.dbline 448
; {
.dbline 449
; Time_flag = 0;
clr R2
sts _Time_flag,R2
.dbline 450
; Dis_Rect(100,165,160,50,WHITE);
ldi R24,255
std y+4,R24
ldi R24,50
std y+2,R24
ldi R24,160
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,165
ldi R16,100
ldi R17,0
xcall _Dis_Rect
.dbline 452
;
; }
.dbline 453
; }
xjmp L92
L91:
.dbline 454
; else if(GetCursor(Start[2]))
ldi R24,<_Start+34
ldi R25,>_Start+34
movw R30,R28
adiw R30,24
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,232 ; offset = 24
sbci R17,255
xcall _GetCursor
tst R16
breq L98
.dbline 455
; {
.dbline 456
; Screen_Color(0);
clr R16
xcall _Screen_Color
.dbline 457
; }
xjmp L99
L98:
.dbline 458
; else if(GetCursor(Start[0]))
ldi R24,<_Start
ldi R25,>_Start
movw R30,R28
adiw R30,41
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,215 ; offset = 41
sbci R17,255
xcall _GetCursor
tst R16
breq L101
.dbline 459
; {
.dbline 461
;
; Screen_Color(Color_Count);
lds R16,_Color_Count
xcall _Screen_Color
.dbline 462
; }
xjmp L102
L101:
.dbline 463
; else if(GetCursor(Start[4]))
ldi R24,<_Start+68
ldi R25,>_Start+68
movw R30,R28
adiw R30,58
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,198 ; offset = 58
sbci R17,255
xcall _GetCursor
tst R16
brne X6
xjmp L103
X6:
.dbline 464
; {
.dbline 466
;
; Start_Time();
xcall _Start_Time
.dbline 467
; cursor.x = 0;
clr R2
clr R3
sts _cursor+1,R3
sts _cursor,R2
.dbline 468
; cursor.y = 0;
sts _cursor+2,R2
.dbline 469
; for(i=0;i<14;i++)
clr R10
clr R11
xjmp L110
L107:
.dbline 470
.dbline 471
ldi R24,<_time_temp
ldi R25,>_time_temp
movw R30,R10
add R30,R24
adc R31,R25
ldi R24,32
std z+0,R24
.dbline 472
L108:
.dbline 469
movw R24,R10
adiw R24,1
movw R10,R24
L110:
.dbline 469
movw R24,R10
cpi R24,14
ldi R30,0
cpc R25,R30
brlo L107
xjmp L112
L111:
.dbline 475
; {
; time_temp[i] = ' ';
; }
; //time_temp[14] = 0;
; while(1)
; {
.dbline 476
; if(cursor.flag)
lds R2,_cursor+6
tst R2
brne X7
xjmp L114
X7:
.dbline 477
; {
.dbline 478
; if(GetCursor(TimeSet[0]))//年设定
ldi R24,<_TimeSet
ldi R25,>_TimeSet
movw R30,R28
subi R30,181 ; offset = 75
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,181 ; offset = 75
sbci R17,255
xcall _GetCursor
tst R16
breq L117
.dbline 479
; {
.dbline 480
; Input_Data();
xcall _Input_Data
.dbline 481
; time_temp[0] = input_buffer[5];
lds R2,_input_buffer+5
sts _time_temp,R2
.dbline 482
; time_temp[1] = input_buffer[6];
lds R2,_input_buffer+6
sts _time_temp+1,R2
.dbline 483
; time_temp[2] = input_buffer[7];
lds R2,_input_buffer+7
sts _time_temp+2,R2
.dbline 484
; time_temp[3] = input_buffer[8];
lds R2,_input_buffer+8
sts _time_temp+3,R2
.dbline 485
; input_buffer[5] = ' ';
ldi R24,32
sts _input_buffer+5,R24
.dbline 486
; input_buffer[6] = ' ';
sts _input_buffer+6,R24
.dbline 487
; input_buffer[7] = ' ';
sts _input_buffer+7,R24
.dbline 488
; input_buffer[8] = ' ';
sts _input_buffer+8,R24
.dbline 489
; input_buffer[9] = 0;
clr R2
sts _input_buffer+9,R2
.dbline 492
;
;
; Start_Time();
xcall _Start_Time
.dbline 493
; DisSetTime(time_temp,0,RED,WHITE);
ldi R24,255
std y+2,R24
ldi R24,224
std y+0,R24
clr R18
ldi R16,<_time_temp
ldi R17,>_time_temp
xcall _DisSetTime
.dbline 494
; }
xjmp L118
L117:
.dbline 495
; else if(GetCursor(TimeSet[1]))//月设定
ldi R24,<_TimeSet+17
ldi R25,>_TimeSet+17
movw R30,R28
subi R30,164 ; offset = 92
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,164 ; offset = 92
sbci R17,255
xcall _GetCursor
tst R16
breq L131
.dbline 496
; {
.dbline 497
; Input_Data();
xcall _Input_Data
.dbline 498
; time_temp[4] = input_buffer[7];
lds R2,_input_buffer+7
sts _time_temp+4,R2
.dbline 499
; time_temp[5] = input_buffer[8];
lds R2,_input_buffer+8
sts _time_temp+5,R2
.dbline 500
; input_buffer[7] = ' ';
ldi R24,32
sts _input_buffer+7,R24
.dbline 501
; input_buffer[8] = ' ';
sts _input_buffer+8,R24
.dbline 502
; input_buffer[9] = 0;
clr R2
sts _input_buffer+9,R2
.dbline 505
;
;
; Start_Time();
xcall _Start_Time
.dbline 506
; DisSetTime(time_temp,0,RED,WHITE);
ldi R24,255
std y+2,R24
ldi R24,224
std y+0,R24
clr R18
ldi R16,<_time_temp
ldi R17,>_time_temp
xcall _DisSetTime
.dbline 507
; }
xjmp L132
L131:
.dbline 508
; else if(GetCursor(TimeSet[2]))//日设定
ldi R24,<_TimeSet+34
ldi R25,>_TimeSet+34
movw R30,R28
subi R30,147 ; offset = 109
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,147 ; offset = 109
sbci R17,255
xcall _GetCursor
tst R16
breq L141
.dbline 509
; {
.dbline 510
; Input_Data();
xcall _Input_Data
.dbline 511
; time_temp[6] = input_buffer[7];
lds R2,_input_buffer+7
sts _time_temp+6,R2
.dbline 512
; time_temp[7] = input_buffer[8];
lds R2,_input_buffer+8
sts _time_temp+7,R2
.dbline 513
; input_buffer[7] = ' ';
ldi R24,32
sts _input_buffer+7,R24
.dbline 514
; input_buffer[8] = ' ';
sts _input_buffer+8,R24
.dbline 515
; input_buffer[9] = 0;
clr R2
sts _input_buffer+9,R2
.dbline 518
;
;
; Start_Time();
xcall _Start_Time
.dbline 519
; DisSetTime(time_temp,0,RED,WHITE);
ldi R24,255
std y+2,R24
ldi R24,224
std y+0,R24
clr R18
ldi R16,<_time_temp
ldi R17,>_time_temp
xcall _DisSetTime
.dbline 520
; }
xjmp L142
L141:
.dbline 521
; else if(GetCursor(TimeSet[3]))//时设定
ldi R24,<_TimeSet+51
ldi R25,>_TimeSet+51
movw R30,R28
subi R30,130 ; offset = 126
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,130 ; offset = 126
sbci R17,255
xcall _GetCursor
tst R16
breq L151
.dbline 522
; {
.dbline 523
; Input_Data();
xcall _Input_Data
.dbline 524
; time_temp[8] = input_buffer[7];
lds R2,_input_buffer+7
sts _time_temp+8,R2
.dbline 525
; time_temp[9] = input_buffer[8];
lds R2,_input_buffer+8
sts _time_temp+9,R2
.dbline 526
; input_buffer[7] = ' ';
ldi R24,32
sts _input_buffer+7,R24
.dbline 527
; input_buffer[8] = ' ';
sts _input_buffer+8,R24
.dbline 528
; input_buffer[9] = 0;
clr R2
sts _input_buffer+9,R2
.dbline 531
;
;
; Start_Time();
xcall _Start_Time
.dbline 532
; DisSetTime(time_temp,0,RED,WHITE);
ldi R24,255
std y+2,R24
ldi R24,224
std y+0,R24
clr R18
ldi R16,<_time_temp
ldi R17,>_time_temp
xcall _DisSetTime
.dbline 533
; }
xjmp L152
L151:
.dbline 534
; else if(GetCursor(TimeSet[4]))//分设定
ldi R24,<_TimeSet+68
ldi R25,>_TimeSet+68
movw R30,R28
subi R30,113 ; offset = 143
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,113 ; offset = 143
sbci R17,255
xcall _GetCursor
tst R16
breq L161
.dbline 535
; {
.dbline 536
; Input_Data();
xcall _Input_Data
.dbline 537
; time_temp[10] = input_buffer[7];
lds R2,_input_buffer+7
sts _time_temp+10,R2
.dbline 538
; time_temp[11] = input_buffer[8];
lds R2,_input_buffer+8
sts _time_temp+11,R2
.dbline 539
; input_buffer[7] = ' ';
ldi R24,32
sts _input_buffer+7,R24
.dbline 540
; input_buffer[8] = ' ';
sts _input_buffer+8,R24
.dbline 541
; input_buffer[9] = 0;
clr R2
sts _input_buffer+9,R2
.dbline 544
;
;
; Start_Time();
xcall _Start_Time
.dbline 545
; DisSetTime(time_temp,0,RED,WHITE);
ldi R24,255
std y+2,R24
ldi R24,224
std y+0,R24
clr R18
ldi R16,<_time_temp
ldi R17,>_time_temp
xcall _DisSetTime
.dbline 546
; }
xjmp L162
L161:
.dbline 547
; else if(GetCursor(TimeSet[5]))//秒设定
ldi R24,<_TimeSet+85
ldi R25,>_TimeSet+85
movw R30,R28
subi R30,96 ; offset = 160
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,96 ; offset = 160
sbci R17,255
xcall _GetCursor
tst R16
breq L171
.dbline 548
; {
.dbline 549
; Input_Data();
xcall _Input_Data
.dbline 550
; time_temp[12] = input_buffer[7];
lds R2,_input_buffer+7
sts _time_temp+12,R2
.dbline 551
; time_temp[13] = input_buffer[8];
lds R2,_input_buffer+8
sts _time_temp+13,R2
.dbline 552
; input_buffer[7] = ' ';
ldi R24,32
sts _input_buffer+7,R24
.dbline 553
; input_buffer[8] = ' ';
sts _input_buffer+8,R24
.dbline 554
; input_buffer[9] = 0;
clr R2
sts _input_buffer+9,R2
.dbline 557
;
;
; Start_Time();
xcall _Start_Time
.dbline 558
; DisSetTime(time_temp,0,RED,WHITE);
ldi R24,255
std y+2,R24
ldi R24,224
std y+0,R24
clr R18
ldi R16,<_time_temp
ldi R17,>_time_temp
xcall _DisSetTime
.dbline 559
; }
xjmp L172
L171:
.dbline 560
; else if(GetCursor(TimeSet[6]))//确认保存
ldi R24,<_TimeSet+102
ldi R25,>_TimeSet+102
movw R30,R28
subi R30,79 ; offset = 177
sbci R31,255
ldi R16,17
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
movw R16,R28
subi R16,79 ; offset = 177
sbci R17,255
xcall _GetCursor
tst R16
brne X8
xjmp L181
X8:
.dbline 561
; {
.dbline 562
; for(i = 0;i<14;i++)
clr R10
clr R11
xjmp L187
L184:
.dbline 563
; {
.dbline 564
; if(time_temp[i] == ' ')
ldi R24,<_time_temp
ldi R25,>_time_temp
movw R30,R10
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,32
brne L188
.dbline 565
; {
.dbline 566
; time_temp[i] = '0';
ldi R24,<_time_temp
ldi R25,>_time_temp
movw R30,R10
add R30,R24
adc R31,R25
ldi R24,48
std z+0,R24
.dbline 567
; }
L188:
.dbline 568
L185:
.dbline 562
movw R24,R10
adiw R24,1
movw R10,R24
L187:
.dbline 562
movw R24,R10
cpi R24,14
ldi R30,0
cpc R25,R30
brlo L184
.dbline 569
; }
; REG_B=0xb2;
ldi R24,178
sts 45067,R24
.dbline 570
; SECOND = (time_temp[12]-0x30)*16 + (time_temp[13] -0x30); //second
lds R2,_time_temp+12
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+13
subi R25,48
add R24,R25
sts 45056,R24
.dbline 571
; MINUTE = (time_temp[10]-0x30)*16 + (time_temp[11] -0x30); //minutes
lds R2,_time_temp+10
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+11
subi R25,48
add R24,R25
sts 45058,R24
.dbline 572
; HOUR = (time_temp[8]-0x30)*16 + (time_temp[9] -0x30); //hour
lds R2,_time_temp+8
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+9
subi R25,48
add R24,R25
sts 45060,R24
.dbline 573
; DAY = (time_temp[6]-0x30)*16 + (time_temp[7] -0x30); //day
lds R2,_time_temp+6
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+7
subi R25,48
add R24,R25
sts 45063,R24
.dbline 574
; MONTH = (time_temp[4]-0x30)*16 + (time_temp[5] -0x30); //month
lds R2,_time_temp+4
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+5
subi R25,48
add R24,R25
sts 45064,R24
.dbline 575
; YEAR = (time_temp[2]-0x30)*16 + (time_temp[3] -0x30); //year
lds R2,_time_temp+2
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+3
subi R25,48
add R24,R25
sts 45065,R24
.dbline 576
; REG_E = (time_temp[0]-0x30)*16 + (time_temp[1] -0x30);//year high byte
lds R2,_time_temp
ldi R24,16
mul R24,R2
mov R24,R0
subi R24,0
lds R25,_time_temp+1
subi R25,48
add R24,R25
sts 45070,R24
.dbline 577
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -