📄 rtc.lis
字号:
0152 .dbsym r back 14 c
0152 .dbsym r front 12 c
0152 .dbsym r y 22 c
0152 .dbsym r x 20 i
0152 .dbend
0152 .dbfunc e DisTimeAll _DisTimeAll fV
0152 ; temp -> y+7
0152 ; back -> y+24
0152 ; front -> y+22
0152 ; y -> R22
0152 ; x -> R20,R21
.even
0152 _DisTimeAll::
0152 0E940000 xcall push_gset2
0156 622F mov R22,R18
0158 A801 movw R20,R16
015A 6297 sbiw R28,18
015C .dbline -1
015C .dbline 59
015C ;
015C ; }
015C ; void DisTimeAll(unsigned int x,unsigned char y,unsigned char front,unsigned char back)
015C ; {
015C .dbline 61
015C ; unsigned char temp[11];
015C ; ReadTime();
015C 51DF xcall _ReadTime
015E .dbline 62
015E ; temp[0] = (time.year_H >> 4)+0x30;
015E 80910600 lds R24,_time+6
0162 8295 swap R24
0164 8F70 andi R24,#0x0F
0166 805D subi R24,208 ; addi 48
0168 8F83 std y+7,R24
016A .dbline 63
016A ; temp[1] = (time.year_H &0x0f)+0x30;
016A 80910600 lds R24,_time+6
016E 8F70 andi R24,15
0170 805D subi R24,208 ; addi 48
0172 8887 std y+8,R24
0174 .dbline 64
0174 ; temp[2] = (time.year_L >> 4)+0x30;
0174 80910500 lds R24,_time+5
0178 8295 swap R24
017A 8F70 andi R24,#0x0F
017C 805D subi R24,208 ; addi 48
017E 8987 std y+9,R24
0180 .dbline 65
0180 ; temp[3] = (time.year_L & 0x0f)+0x30;
0180 80910500 lds R24,_time+5
0184 8F70 andi R24,15
0186 805D subi R24,208 ; addi 48
0188 8A87 std y+10,R24
018A .dbline 66
018A ; temp[4] = '/';
018A 8FE2 ldi R24,47
018C 8B87 std y+11,R24
018E .dbline 67
018E ; temp[5] = (time.month >> 4)+0x30;
018E 80910400 lds R24,_time+4
0192 8295 swap R24
0194 8F70 andi R24,#0x0F
0196 805D subi R24,208 ; addi 48
0198 8C87 std y+12,R24
019A .dbline 68
019A ; temp[6] = (time.month & 0x0f)+0x30;
019A 80910400 lds R24,_time+4
019E 8F70 andi R24,15
01A0 805D subi R24,208 ; addi 48
01A2 8D87 std y+13,R24
01A4 .dbline 69
01A4 ; temp[7] = '/';
01A4 8FE2 ldi R24,47
01A6 8E87 std y+14,R24
01A8 .dbline 70
01A8 ; temp[8] = (time.day >> 4)+0x30;
01A8 80910300 lds R24,_time+3
01AC 8295 swap R24
01AE 8F70 andi R24,#0x0F
01B0 805D subi R24,208 ; addi 48
01B2 8F87 std y+15,R24
01B4 .dbline 71
01B4 ; temp[9] = (time.day & 0x0f)+0x30;
01B4 80910300 lds R24,_time+3
01B8 8F70 andi R24,15
01BA 805D subi R24,208 ; addi 48
01BC 888B std y+16,R24
01BE .dbline 72
01BE ; temp[10] = 0;
01BE 2224 clr R2
01C0 298A std y+17,R2
01C2 .dbline 73
01C2 ; Display(x,y,temp,BIG,front,back);
01C2 088C ldd R0,y+24
01C4 0E82 std y+6,R0
01C6 0E88 ldd R0,y+22
01C8 0C82 std y+4,R0
01CA 81E0 ldi R24,1
01CC 8A83 std y+2,R24
01CE CE01 movw R24,R28
01D0 0796 adiw R24,7
01D2 9983 std y+1,R25
01D4 8883 std y+0,R24
01D6 262F mov R18,R22
01D8 8A01 movw R16,R20
01DA 0E940000 xcall _Display
01DE .dbline 75
01DE ;
01DE ; temp[0] = (time.hour >> 4)+0x30;
01DE 80910200 lds R24,_time+2
01E2 8295 swap R24
01E4 8F70 andi R24,#0x0F
01E6 805D subi R24,208 ; addi 48
01E8 8F83 std y+7,R24
01EA .dbline 76
01EA ; temp[1] = (time.hour & 0x0f)+0x30;
01EA 80910200 lds R24,_time+2
01EE 8F70 andi R24,15
01F0 805D subi R24,208 ; addi 48
01F2 8887 std y+8,R24
01F4 .dbline 77
01F4 ; temp[2] = '/';
01F4 8FE2 ldi R24,47
01F6 8987 std y+9,R24
01F8 .dbline 78
01F8 ; temp[3] = (time.minute >> 4)+0x30;
01F8 80910100 lds R24,_time+1
01FC 8295 swap R24
01FE 8F70 andi R24,#0x0F
0200 805D subi R24,208 ; addi 48
0202 8A87 std y+10,R24
0204 .dbline 79
0204 ; temp[4] = (time.minute & 0x0f)+0x30;
0204 80910100 lds R24,_time+1
0208 8F70 andi R24,15
020A 805D subi R24,208 ; addi 48
020C 8B87 std y+11,R24
020E .dbline 80
020E ; temp[5] = '/';
020E 8FE2 ldi R24,47
0210 8C87 std y+12,R24
0212 .dbline 81
0212 ; temp[6] = (time.second >> 4)+0x30;
0212 80910000 lds R24,_time
0216 8295 swap R24
0218 8F70 andi R24,#0x0F
021A 805D subi R24,208 ; addi 48
021C 8D87 std y+13,R24
021E .dbline 82
021E ; temp[7] = (time.second & 0x0f)+0x30;
021E 80910000 lds R24,_time
0222 8F70 andi R24,15
0224 805D subi R24,208 ; addi 48
0226 8E87 std y+14,R24
0228 .dbline 83
0228 ; temp[8] = 0;
0228 2224 clr R2
022A 2F86 std y+15,R2
022C .dbline 84
022C ; Display(x+32,y+25,temp,BIG,front,back);
022C 088C ldd R0,y+24
022E 0E82 std y+6,R0
0230 0E88 ldd R0,y+22
0232 0C82 std y+4,R0
0234 81E0 ldi R24,1
0236 8A83 std y+2,R24
0238 CE01 movw R24,R28
023A 0796 adiw R24,7
023C 9983 std y+1,R25
023E 8883 std y+0,R24
0240 262F mov R18,R22
0242 275E subi R18,231 ; addi 25
0244 8A01 movw R16,R20
0246 005E subi R16,224 ; offset = 32
0248 1F4F sbci R17,255
024A 0E940000 xcall _Display
024E .dbline -2
024E L16:
024E 6296 adiw R28,18
0250 0E940000 xcall pop_gset2
0254 .dbline 0 ; func end
0254 0895 ret
0256 .dbsym l temp 7 A[11:11]c
0256 .dbsym l back 24 c
0256 .dbsym l front 22 c
0256 .dbsym r y 22 c
0256 .dbsym r x 20 i
0256 .dbend
0256 .dbfunc e SetTime _SetTime fV
.even
0256 _SetTime::
0256 .dbline -1
0256 .dbline 88
0256 ;
0256 ; }
0256 ; void SetTime(void)
0256 ; {
0256 .dbline 89
0256 ; REG_B=0xb2;
0256 82EB ldi R24,178
0258 80930BB0 sts 45067,R24
025C .dbline 90
025C ; SECOND = 0; //second
025C 2224 clr R2
025E 209200B0 sts 45056,R2
0262 .dbline 91
0262 ; MINUTE = 0; //minutes
0262 209202B0 sts 45058,R2
0266 .dbline 92
0266 ; HOUR = 0; //hour
0266 209204B0 sts 45060,R2
026A .dbline 93
026A ; DAY = 0; //day
026A 209207B0 sts 45063,R2
026E .dbline 94
026E ; MONTH = 0; //month
026E 209208B0 sts 45064,R2
0272 .dbline 95
0272 ; YEAR = 0; //year
0272 209209B0 sts 45065,R2
0276 .dbline 96
0276 ; REG_E = 0x20;//year high byte
0276 80E2 ldi R24,32
0278 80930EB0 sts 45070,R24
027C .dbline 97
027C ; REG_A = 0x20;
027C 80930AB0 sts 45066,R24
0280 .dbline 98
0280 ; REG_B = 0x12;
0280 82E1 ldi R24,18
0282 80930BB0 sts 45067,R24
0286 .dbline -2
0286 L47:
0286 .dbline 0 ; func end
0286 0895 ret
0288 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\Relations\sf6_system\measure\LCDtest\rtc.c
0000 _time::
0000 .blkb 7
0007 .dbstruct 0 7 Time
0007 .dbfield 0 second c
0007 .dbfield 1 minute c
0007 .dbfield 2 hour c
0007 .dbfield 3 day c
0007 .dbfield 4 month c
0007 .dbfield 5 year_L c
0007 .dbfield 6 year_H c
0007 .dbend
0007 .dbsym e time _time S[Time]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -