📄 main.lis
字号:
0452 .dbfunc e PowerOn _PowerOn fV
.even
0452 _PowerOn::
0452 .dbline -1
0452 .dbline 415
0452 ; }
0452 ; void PowerOn(void)
0452 ; {
0452 .dbline 416
0452 ; CMD = LCD_POWER_ON;
0452 2224 clr R2
0454 20920280 sts 32770,R2
0458 .dbline -2
0458 L82:
0458 .dbline 0 ; func end
0458 0895 ret
045A .dbend
045A .dbfunc e main _main fV
045A ; list_time -> <dead>
045A ; BackLight -> R20
045A ; Back_Val -> R22,R23
045A ; i -> R10,R11
.even
045A _main::
045A EF97 sbiw R28,63
045C EF97 sbiw R28,63
045E EF97 sbiw R28,63
0460 6697 sbiw R28,22 ; offset = 211
0462 .dbline -1
0462 .dbline 419
0462 ; }
0462 ; void main(void)
0462 ; {
0462 .dbline 422
0462 ; unsigned int i;
0462 ; unsigned int list_time;
0462 ; unsigned char BackLight=0;
0462 4427 clr R20
0464 .dbline 423
0464 ; unsigned int Back_Val=0;
0464 6627 clr R22
0466 7727 clr R23
0468 .dbline 424
0468 ; DDRF |= 0x08;
0468 80916100 lds R24,97
046C 8860 ori R24,8
046E 80936100 sts 97,R24
0472 .dbline 425
0472 ; PORTF |= 0x08;
0472 80916200 lds R24,98
0476 8860 ori R24,8
0478 80936200 sts 98,R24
047C .dbline 426
047C ; Init_interrupt();
047C C1DD xcall _Init_interrupt
047E .dbline 427
047E ; Main_Display();
047E B3DF xcall _Main_Display
0480 .dbline 428
0480 ; ReadTime();//time是结构体,给time赋值
0480 0E940000 xcall _ReadTime
0484 .dbline 429
0484 ; Init_Touch();
0484 0E940000 xcall _Init_Touch
0488 19C4 xjmp L85
048A L84:
048A .dbline 431
048A ; while(1)
048A ; {
048A .dbline 433
048A ; //触摸屏处理程序
048A ; if(cursor.flag == 1)
048A 80910600 lds R24,_cursor+6
048E 8130 cpi R24,1
0490 09F0 breq X4
0492 FEC3 xjmp L87
0494 X4:
0494 .dbline 434
0494 ; {
0494 .dbline 435
0494 ; Dis_Int(25,135,cursor.x,0,RED,WHITE);
0494 8FEF ldi R24,255
0496 8E83 std y+6,R24
0498 80EE ldi R24,224
049A 8C83 std y+4,R24
049C 2224 clr R2
049E 2A82 std y+2,R2
04A0 20900000 lds R2,_cursor
04A4 30900100 lds R3,_cursor+1
04A8 3982 std y+1,R3
04AA 2882 std y+0,R2
04AC 27E8 ldi R18,135
04AE 09E1 ldi R16,25
04B0 10E0 ldi R17,0
04B2 0E940000 xcall _Dis_Int
04B6 .dbline 436
04B6 ; Dis_Int(25,165,cursor.y,0,RED,WHITE);
04B6 8FEF ldi R24,255
04B8 8E83 std y+6,R24
04BA 80EE ldi R24,224
04BC 8C83 std y+4,R24
04BE 2224 clr R2
04C0 2A82 std y+2,R2
04C2 20900200 lds R2,_cursor+2
04C6 3324 clr R3
04C8 3982 std y+1,R3
04CA 2882 std y+0,R2
04CC 25EA ldi R18,165
04CE 09E1 ldi R16,25
04D0 10E0 ldi R17,0
04D2 0E940000 xcall _Dis_Int
04D6 .dbline 438
04D6 ;
04D6 ; if(GetCursor(Start[1]))//显示时间
04D6 80E0 ldi R24,<_Start+17
04D8 90E0 ldi R25,>_Start+17
04DA FE01 movw R30,R28
04DC 3796 adiw R30,7
04DE 01E1 ldi R16,17
04E0 10E0 ldi R17,0
04E2 FA93 st -y,R31
04E4 EA93 st -y,R30
04E6 9A93 st -y,R25
04E8 8A93 st -y,R24
04EA 0E940000 xcall asgncblk
04EE 8E01 movw R16,R28
04F0 095F subi R16,249 ; offset = 7
04F2 1F4F sbci R17,255
04F4 0E940000 xcall _GetCursor
04F8 0023 tst R16
04FA A1F1 breq L91
04FC .dbline 439
04FC ; {
04FC .dbline 440
04FC ; if(Time_flag == 0)
04FC 20900000 lds R2,_Time_flag
0500 2220 tst R2
0502 D1F4 brne L94
0504 .dbline 441
0504 ; {
0504 .dbline 442
0504 ; Dis_Rect(100,165,160,50,BLUE);
0504 83E0 ldi R24,3
0506 8C83 std y+4,R24
0508 82E3 ldi R24,50
050A 8A83 std y+2,R24
050C 80EA ldi R24,160
050E 90E0 ldi R25,0
0510 9983 std y+1,R25
0512 8883 std y+0,R24
0514 25EA ldi R18,165
0516 04E6 ldi R16,100
0518 10E0 ldi R17,0
051A 0E940000 xcall _Dis_Rect
051E .dbline 443
051E ; Time_flag = 1;
051E 81E0 ldi R24,1
0520 80930000 sts _Time_flag,R24
0524 .dbline 445
0524 ;
0524 ; DisTimeAll(100,165,BLACK,BLUE);
0524 83E0 ldi R24,3
0526 8A83 std y+2,R24
0528 2224 clr R2
052A 2882 std y+0,R2
052C 25EA ldi R18,165
052E 04E6 ldi R16,100
0530 10E0 ldi R17,0
0532 0E940000 xcall _DisTimeAll
0536 .dbline 446
0536 ; }
0536 A9C3 xjmp L92
0538 L94:
0538 .dbline 447
0538 ; else if(Time_flag == 1)
0538 80910000 lds R24,_Time_flag
053C 8130 cpi R24,1
053E 09F0 breq X5
0540 A4C3 xjmp L92
0542 X5:
0542 .dbline 448
0542 ; {
0542 .dbline 449
0542 ; Time_flag = 0;
0542 2224 clr R2
0544 20920000 sts _Time_flag,R2
0548 .dbline 450
0548 ; Dis_Rect(100,165,160,50,WHITE);
0548 8FEF ldi R24,255
054A 8C83 std y+4,R24
054C 82E3 ldi R24,50
054E 8A83 std y+2,R24
0550 80EA ldi R24,160
0552 90E0 ldi R25,0
0554 9983 std y+1,R25
0556 8883 std y+0,R24
0558 25EA ldi R18,165
055A 04E6 ldi R16,100
055C 10E0 ldi R17,0
055E 0E940000 xcall _Dis_Rect
0562 .dbline 452
0562 ;
0562 ; }
0562 .dbline 453
0562 ; }
0562 93C3 xjmp L92
0564 L91:
0564 .dbline 454
0564 ; else if(GetCursor(Start[2]))
0564 80E0 ldi R24,<_Start+34
0566 90E0 ldi R25,>_Start+34
0568 FE01 movw R30,R28
056A 7896 adiw R30,24
056C 01E1 ldi R16,17
056E 10E0 ldi R17,0
0570 FA93 st -y,R31
0572 EA93 st -y,R30
0574 9A93 st -y,R25
0576 8A93 st -y,R24
0578 0E940000 xcall asgncblk
057C 8E01 movw R16,R28
057E 085E subi R16,232 ; offset = 24
0580 1F4F sbci R17,255
0582 0E940000 xcall _GetCursor
0586 0023 tst R16
0588 19F0 breq L98
058A .dbline 455
058A ; {
058A .dbline 456
058A ; Screen_Color(0);
058A 0027 clr R16
058C 3EDD xcall _Screen_Color
058E .dbline 457
058E ; }
058E 7DC3 xjmp L99
0590 L98:
0590 .dbline 458
0590 ; else if(GetCursor(Start[0]))
0590 80E0 ldi R24,<_Start
0592 90E0 ldi R25,>_Start
0594 FE01 movw R30,R28
0596 B996 adiw R30,41
0598 01E1 ldi R16,17
059A 10E0 ldi R17,0
059C FA93 st -y,R31
059E EA93 st -y,R30
05A0 9A93 st -y,R25
05A2 8A93 st -y,R24
05A4 0E940000 xcall asgncblk
05A8 8E01 movw R16,R28
05AA 075D subi R16,215 ; offset = 41
05AC 1F4F sbci R17,255
05AE 0E940000 xcall _GetCursor
05B2 0023 tst R16
05B4 21F0 breq L101
05B6 .dbline 459
05B6 ; {
05B6 .dbline 461
05B6 ;
05B6 ; Screen_Color(Color_Count);
05B6 00910000 lds R16,_Color_Count
05BA 27DD xcall _Screen_Color
05BC .dbline 462
05BC ; }
05BC 66C3 xjmp L102
05BE L101:
05BE .dbline 463
05BE ; else if(GetCursor(Start[4]))
05BE 80E0 ldi R24,<_Start+68
05C0 90E0 ldi R25,>_Start+68
05C2 FE01 movw R30,R28
05C4 FA96 adiw R30,58
05C6 01E1 ldi R16,17
05C8 10E0 ldi R17,0
05CA FA93 st -y,R31
05CC EA93 st -y,R30
05CE 9A93 st -y,R25
05D0 8A93 st -y,R24
05D2 0E940000 xcall asgncblk
05D6 8E01 movw R16,R28
05D8 065C subi R16,198 ; offset = 58
05DA 1F4F sbci R17,255
05DC 0E940000 xcall _GetCursor
05E0 0023 tst R16
05E2 09F4 brne X6
05E4 1CC2 xjmp L103
05E6 X6:
05E6 .dbline 464
05E6 ; {
05E6 .dbline 466
05E6 ;
05E6 ; Start_Time();
05E6 55DD xcall _Start_Time
05E8 .dbline 467
05E8 ; cursor.x = 0;
05E8 2224 clr R2
05EA 3324 clr R3
05EC 30920100 sts _cursor+1,R3
05F0 20920000 sts _cursor,R2
05F4 .dbline 468
05F4 ; cursor.y = 0;
05F4 20920200 sts _cursor+2,R2
05F8 .dbline 469
05F8 ; for(i=0;i<14;i++)
05F8 AA24 clr R10
05FA BB24 clr R11
05FC 0AC0 xjmp L110
05FE L107:
05FE .dbline 470
05FE .dbline 471
05FE 80E0 ldi R24,<_time_temp
0600 90E0 ldi R25,>_time_temp
0602 F501 movw R30,R10
0604 E80F add R30,R24
0606 F91F adc R31,R25
0608 80E2 ldi R24,32
060A 8083 std z+0,R24
060C .dbline 472
060C L108:
060C .dbline 469
060C C501 movw R24,R10
060E 0196 adiw R24,1
0610 5C01 movw R10,R24
0612 L110:
0612 .dbline 469
0612 C501 movw R24,R10
0614 8E30 cpi R24,14
0616 E0E0 ldi R30,0
0618 9E07 cpc R25,R30
061A 88F3 brlo L107
061C FEC1 xjmp L112
061E L111:
061E .dbline 475
061E ; {
061E ; time_temp[i] = ' ';
061E ; }
061E ; //time_temp[14] = 0;
061E ; while(1)
061E ; {
061E .dbline 476
061E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -