📄 main.s
字号:
.dbend
.dbfunc e Start_Time _Start_Time fV
.even
_Start_Time::
sbiw R28,7
.dbline -1
.dbline 345
; }
; }
;
; }
; void Start_Time(void)
; {
.dbline 346
; Clear_Display(0x97);
ldi R16,151
xcall _Clear_Display
.dbline 347
; Display(100,55," 年 月 日",SMALL,BLACK,0x97);
ldi R24,151
std y+6,R24
clr R2
std y+4,R2
std y+2,R2
ldi R24,<L26
ldi R25,>L26
std y+1,R25
std y+0,R24
ldi R18,55
ldi R16,100
ldi R17,0
xcall _Display
.dbline 348
; Display(100,105," 时 分 秒",SMALL,BLACK,0x97);
ldi R24,151
std y+6,R24
clr R2
std y+4,R2
std y+2,R2
ldi R24,<L27
ldi R25,>L27
std y+1,R25
std y+0,R24
ldi R18,105
ldi R16,100
ldi R17,0
xcall _Display
.dbline 349
; Dis_Menu(TimeSet,TimeSet_size);
ldi R18,8
ldi R16,<_TimeSet
ldi R17,>_TimeSet
xcall _Dis_Menu
.dbline -2
L25:
adiw R28,7
.dbline 0 ; func end
ret
.dbend
.dbfunc e DisSetTime _DisSetTime fV
; back -> R10
; front -> R22
; temp -> R12
; ptr -> R20,R21
.even
_DisSetTime::
xcall push_gset4
mov R12,R18
movw R20,R16
sbiw R28,6
ldd R22,y+14
ldd R10,y+16
.dbline -1
.dbline 352
; }
; void DisSetTime(unsigned char *ptr,unsigned char temp,unsigned char front,unsigned char back)
; {
.dbline 353
; if(temp >0)
clr R2
cp R2,R12
brlo X0
xjmp L29
X0:
.dbline 354
; {
.dbline 355
; ReadTime();
xcall _ReadTime
.dbline 357
; //year
; ptr[0] = (time.year_H>>4) +0x30;
lds R24,_time+6
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+0,R24
.dbline 358
; ptr[1] = (time.year_H&0x0f)+0x30;
lds R24,_time+6
andi R24,15
subi R24,208 ; addi 48
std z+1,R24
.dbline 359
; ptr[2] = (time.year_L>>4) +0x30;
lds R24,_time+5
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+2,R24
.dbline 360
; ptr[3] = (time.year_L&0x0f)+0x30;
lds R24,_time+5
andi R24,15
subi R24,208 ; addi 48
movw R30,R20
std z+3,R24
.dbline 361
; ptr[4] = (time.month>>4) + 0x30;
lds R24,_time+4
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+4,R24
.dbline 362
; ptr[5] = (time.month & 0x0f) + 0x30;
lds R24,_time+4
andi R24,15
subi R24,208 ; addi 48
movw R30,R20
std z+5,R24
.dbline 363
; ptr[6] = (time.day>>4) + 0x30;
lds R24,_time+3
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+6,R24
.dbline 364
; ptr[7] = (time.day & 0x0f) + 0x30;
lds R24,_time+3
andi R24,15
subi R24,208 ; addi 48
movw R30,R20
std z+7,R24
.dbline 365
; ptr[8] = (time.hour>>4) + 0x30;
lds R24,_time+2
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+8,R24
.dbline 366
; ptr[9] = (time.hour & 0x0f) + 0x30;
lds R24,_time+2
andi R24,15
subi R24,208 ; addi 48
movw R30,R20
std z+9,R24
.dbline 367
; ptr[10] = (time.minute>>4) + 0x30;
lds R24,_time+1
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+10,R24
.dbline 368
; ptr[11] = (time.minute & 0x0f) + 0x30;
lds R24,_time+1
andi R24,15
subi R24,208 ; addi 48
movw R30,R20
std z+11,R24
.dbline 369
; ptr[12] = (time.second>>4) + 0x30;
lds R24,_time
swap R24
andi R24,#0x0F
subi R24,208 ; addi 48
movw R30,R20
std z+12,R24
.dbline 370
; ptr[13] = (time.second & 0x0f) + 0x30;
lds R24,_time
andi R24,15
subi R24,208 ; addi 48
movw R30,R20
std z+13,R24
.dbline 371
; }
L29:
.dbline 372
; Dis_Ascii(TimeSet[0].x+5,TimeSet[0].y+5,ptr[0],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+0
std y+0,R2
ldi R30,<_TimeSet+2
ldi R31,>_TimeSet+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet
ldi R31,>_TimeSet
elpm R16,Z+
elpm R17,Z
subi R16,251 ; offset = 5
sbci R17,255
xcall _Dis_Ascii
.dbline 373
; Dis_Ascii(TimeSet[0].x+13,TimeSet[0].y+5,ptr[1],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+1
std y+0,R2
ldi R30,<_TimeSet+2
ldi R31,>_TimeSet+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet
ldi R31,>_TimeSet
elpm R16,Z+
elpm R17,Z
subi R16,243 ; offset = 13
sbci R17,255
xcall _Dis_Ascii
.dbline 374
; Dis_Ascii(TimeSet[0].x+21,TimeSet[0].y+5,ptr[2],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+2
std y+0,R2
ldi R30,<_TimeSet+2
ldi R31,>_TimeSet+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet
ldi R31,>_TimeSet
elpm R16,Z+
elpm R17,Z
subi R16,235 ; offset = 21
sbci R17,255
xcall _Dis_Ascii
.dbline 375
; Dis_Ascii(TimeSet[0].x+29,TimeSet[0].y+5,ptr[3],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+3
std y+0,R2
ldi R30,<_TimeSet+2
ldi R31,>_TimeSet+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet
ldi R31,>_TimeSet
elpm R16,Z+
elpm R17,Z
subi R16,227 ; offset = 29
sbci R17,255
xcall _Dis_Ascii
.dbline 377
; //month
; Dis_Ascii(TimeSet[1].x+17,TimeSet[1].y+5,ptr[4],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+4
std y+0,R2
ldi R30,<_TimeSet+17+2
ldi R31,>_TimeSet+17+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+17
ldi R31,>_TimeSet+17
elpm R16,Z+
elpm R17,Z
subi R16,239 ; offset = 17
sbci R17,255
xcall _Dis_Ascii
.dbline 378
; Dis_Ascii(TimeSet[1].x+25,TimeSet[1].y+5,ptr[5],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+5
std y+0,R2
ldi R30,<_TimeSet+17+2
ldi R31,>_TimeSet+17+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+17
ldi R31,>_TimeSet+17
elpm R16,Z+
elpm R17,Z
subi R16,231 ; offset = 25
sbci R17,255
xcall _Dis_Ascii
.dbline 380
; //day
; Dis_Ascii(TimeSet[2].x+17,TimeSet[2].y+5,ptr[6],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+6
std y+0,R2
ldi R30,<_TimeSet+34+2
ldi R31,>_TimeSet+34+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+34
ldi R31,>_TimeSet+34
elpm R16,Z+
elpm R17,Z
subi R16,239 ; offset = 17
sbci R17,255
xcall _Dis_Ascii
.dbline 381
; Dis_Ascii(TimeSet[2].x+25,TimeSet[2].y+5,ptr[7],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+7
std y+0,R2
ldi R30,<_TimeSet+34+2
ldi R31,>_TimeSet+34+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+34
ldi R31,>_TimeSet+34
elpm R16,Z+
elpm R17,Z
subi R16,231 ; offset = 25
sbci R17,255
xcall _Dis_Ascii
.dbline 383
; //hour
; Dis_Ascii(TimeSet[3].x+17,TimeSet[3].y+5,ptr[8],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+8
std y+0,R2
ldi R30,<_TimeSet+51+2
ldi R31,>_TimeSet+51+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+51
ldi R31,>_TimeSet+51
elpm R16,Z+
elpm R17,Z
subi R16,239 ; offset = 17
sbci R17,255
xcall _Dis_Ascii
.dbline 384
; Dis_Ascii(TimeSet[3].x+25,TimeSet[3].y+5,ptr[9],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+9
std y+0,R2
ldi R30,<_TimeSet+51+2
ldi R31,>_TimeSet+51+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+51
ldi R31,>_TimeSet+51
elpm R16,Z+
elpm R17,Z
subi R16,231 ; offset = 25
sbci R17,255
xcall _Dis_Ascii
.dbline 386
; //minute
; Dis_Ascii(TimeSet[4].x+17,TimeSet[4].y+5,ptr[10],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+10
std y+0,R2
ldi R30,<_TimeSet+68+2
ldi R31,>_TimeSet+68+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+68
ldi R31,>_TimeSet+68
elpm R16,Z+
elpm R17,Z
subi R16,239 ; offset = 17
sbci R17,255
xcall _Dis_Ascii
.dbline 387
; Dis_Ascii(TimeSet[4].x+25,TimeSet[4].y+5,ptr[11],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+11
std y+0,R2
ldi R30,<_TimeSet+68+2
ldi R31,>_TimeSet+68+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+68
ldi R31,>_TimeSet+68
elpm R16,Z+
elpm R17,Z
subi R16,231 ; offset = 25
sbci R17,255
xcall _Dis_Ascii
.dbline 389
; //second
; Dis_Ascii(TimeSet[5].x+17,TimeSet[5].y+5,ptr[12],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+12
std y+0,R2
ldi R30,<_TimeSet+85+2
ldi R31,>_TimeSet+85+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+85
ldi R31,>_TimeSet+85
elpm R16,Z+
elpm R17,Z
subi R16,239 ; offset = 17
sbci R17,255
xcall _Dis_Ascii
.dbline 390
; Dis_Ascii(TimeSet[5].x+25,TimeSet[5].y+5,ptr[13],front,back);
mov R2,R10
clr R3
std y+5,R3
std y+4,R2
std y+2,R22
movw R30,R20
ldd R2,z+13
std y+0,R2
ldi R30,<_TimeSet+85+2
ldi R31,>_TimeSet+85+2
elpm R18,Z
subi R18,251 ; addi 5
ldi R30,<_TimeSet+85
ldi R31,>_TimeSet+85
elpm R16,Z+
elpm R17,Z
subi R16,231 ; offset = 25
sbci R17,255
xcall _Dis_Ascii
.dbline -2
L28:
adiw R28,6
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r back 10 c
.dbsym r front 22 c
.dbsym r temp 12 c
.dbsym r ptr 20 pc
.dbend
.dbfunc e Main_Display _Main_Display fV
.even
_Main_Display::
sbiw R28,7
.dbline -1
.dbline 394
; //return (ptr);
; }
; void Main_Display(void)
; {
.dbline 395
; Clear_Display(WHITE);
ldi R16,255
xcall _Clear_Display
.dbline 396
; Dis_Menu(Start,Start_size);
ldi R18,7
ldi R16,<_Start
ldi R17,>_Start
xcall _Dis_Menu
.dbline 397
; Display(1,130,"X=",BIG,BLACK,WHITE);
ldi R24,255
std y+6,R24
clr R2
std y+4,R2
ldi R24,1
std y+2,R24
ldi R24,<L78
ldi R25,>L78
std y+1,R25
std y+0,R24
ldi R18,130
ldi R16,1
ldi R17,0
xcall _Display
.dbline 398
; Display(1,160,"Y=",BIG,BLACK,WHITE);
ldi R24,255
std y+6,R24
clr R2
std y+4,R2
ldi R24,1
std y+2,R24
ldi R24,<L79
ldi R25,>L79
std y+1,R25
std y+0,R24
ldi R18,160
ldi R16,1
ldi R17,0
xcall _Display
.dbline -2
L77:
adiw R28,7
.dbline 0 ; func end
ret
.dbend
.dbfunc e ChangeLight _ChangeLight fV
; val -> R16,R17
.even
_ChangeLight::
.dbline -1
.dbline 405
; //Dis_Batter(300,210,0,1,BLUE,WHITE);
; //Dis_Image(Start[0].x,Start[0].y+8,gImage_menu,1,Start[0].color);
;
; }
;
; void ChangeLight(unsigned int val)
; {
.dbline 406
; CMD = LCD_MODE_3;
ldi R24,6
sts 32770,R24
.dbline 407
; DAT = val;
sts 32771,R16
.dbline 408
; CMD = LCD_MODE_0;
clr R2
sts 32770,R2
.dbline -2
L80:
.dbline 0 ; func end
ret
.dbsym r val 16 i
.dbend
.dbfunc e PowerOff _PowerOff fV
.even
_PowerOff::
.dbline -1
.dbline 411
; }
; void PowerOff(void)
; {
.dbline 412
; CMD = LCD_POWER_OFF;
ldi R24,32
sts 32770,R24
.dbline -2
L81:
.dbline 0 ; func end
ret
.dbend
.dbfunc e PowerOn _PowerOn fV
.even
_PowerOn::
.dbline -1
.dbline 415
; }
; void PowerOn(void)
; {
.dbline 416
; CMD = LCD_POWER_ON;
clr R2
sts 32770,R2
.dbline -2
L82:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; list_time -> <dead>
; BackLight -> R20
; Back_Val -> R22,R23
; i -> R10,R11
.even
_main::
sbiw R28,63
sbiw R28,63
sbiw R28,63
sbiw R28,22 ; offset = 211
.dbline -1
.dbline 419
; }
; void main(void)
; {
.dbline 422
; unsigned int i;
; unsigned int list_time;
; unsigned char BackLight=0;
clr R20
.dbline 423
; unsigned int Back_Val=0;
clr R22
clr R23
.dbline 424
; DDRF |= 0x08;
lds R24,97
ori R24,8
sts 97,R24
.dbline 425
; PORTF |= 0x08;
lds R24,98
ori R24,8
sts 98,R24
.dbline 426
; Init_interrupt();
xcall _Init_interrupt
.dbline 427
; Main_Display();
xcall _Main_Display
.dbline 428
; ReadTime();//time是结构体,给time赋值
xcall _ReadTime
.dbline 429
; Init_Touch();
xcall _Init_Touch
xjmp L85
L84:
.dbline 431
; while(1)
; {
.dbline 433
; //触摸屏处理程序
; if(cursor.flag == 1)
lds R24,_cursor+6
cpi R24,1
breq X4
xjmp L87
X4:
.dbline 434
; {
.dbline 435
; Dis_Int(25,135,cursor.x,0,RED,WHITE);
ldi R24,255
std y+6,R24
ldi R24,224
std y+4,R24
clr R2
std y+2,R2
lds R2,_cursor
lds R3,_cursor+1
std y+1,R3
std y+0,R2
ldi R18,135
ldi R16,25
ldi R17,0
xcall _Dis_Int
.dbline 436
; Dis_Int(25,165,cursor.y,0,RED,WHITE);
ldi R24,255
std y+6,R24
ldi R24,224
std y+4,R24
clr R2
std y+2,R2
lds R2,_cursor+2
clr R3
std y+1,R3
std y+0,R2
ldi R18,165
ldi R16,25
ldi R17,0
xcall _Dis_Int
.dbline 438
;
; if(GetCursor(Start[1]))//显示时间
ldi R24,<_Start+17
ldi R25,>_Start+17
movw R30,R28
adiw R30,7
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,249 ; offset = 7
sbci R17,255
xcall _GetCursor
tst R16
breq L91
.dbline 439
; {
.dbline 440
; if(Time_flag == 0)
lds R2,_Time_flag
tst R2
brne L94
.dbline 441
; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -