📄 rtc.lis
字号:
.module rtc.c
.area text(rom, con, rel)
0000 .dbfile F:\Relations\sf6_system\measure\LCDtest\rtc.c
0000 .dbfunc e ReadTime _ReadTime fV
.even
0000 _ReadTime::
0000 .dbline -1
0000 .dbline 21
0000 ; #include <iom128v.h>
0000 ; #include "rtc.h"
0000 ; #include "lcd.h"
0000 ; #include <eeprom.h>
0000 ;
0000 ; /***************************************************************
0000 ; address data
0000 ; 0 second
0000 ; 2 minutes
0000 ; 4 hour
0000 ; 8 month
0000 ; 9 year
0000 ; A register A
0000 ; B register B
0000 ; C register C
0000 ; D register D
0000 ; E 2000year high byte
0000 ; ***************************************************************/
0000 ; struct Time time;
0000 ; void ReadTime(void)//时间是BCD码
0000 ; {
0000 L2:
0000 .dbline 22
0000 L3:
0000 .dbline 22
0000 ; while(REG_A & 0x80);
0000 20900AB0 lds R2,45066
0004 27FC sbrc R2,7
0006 FCCF rjmp L2
0008 .dbline 23
0008 ; time.second = SECOND;
0008 209000B0 lds R2,45056
000C 20920000 sts _time,R2
0010 .dbline 24
0010 ; time.minute = MINUTE;
0010 209002B0 lds R2,45058
0014 20920100 sts _time+1,R2
0018 .dbline 25
0018 ; time.hour = HOUR;
0018 209004B0 lds R2,45060
001C 20920200 sts _time+2,R2
0020 .dbline 26
0020 ; time.day = DAY;
0020 209007B0 lds R2,45063
0024 20920300 sts _time+3,R2
0028 .dbline 27
0028 ; time.month = MONTH;
0028 209008B0 lds R2,45064
002C 20920400 sts _time+4,R2
0030 .dbline 28
0030 ; time.year_L = YEAR;
0030 209009B0 lds R2,45065
0034 20920500 sts _time+5,R2
0038 .dbline 29
0038 ; time.year_H = REG_E;
0038 20900EB0 lds R2,45070
003C 20920600 sts _time+6,R2
0040 .dbline -2
0040 L1:
0040 .dbline 0 ; func end
0040 0895 ret
0042 .dbend
0042 .dbfunc e DisTime _DisTime fV
0042 ; temp -> R10
0042 ; back -> R14
0042 ; front -> R12
0042 ; y -> R22
0042 ; x -> R20,R21
.even
0042 _DisTime::
0042 0E940000 xcall push_gset5
0046 622F mov R22,R18
0048 A801 movw R20,R16
004A 2697 sbiw R28,6
004C C888 ldd R12,y+16
004E EA88 ldd R14,y+18
0050 .dbline -1
0050 .dbline 32
0050 ; }
0050 ; void DisTime(unsigned int x,unsigned char y,unsigned char front,unsigned char back)
0050 ; {
0050 .dbline 34
0050 ; unsigned char temp;
0050 ; ReadTime();
0050 D7DF xcall _ReadTime
0052 .dbline 35
0052 ; temp = time.hour>>4;//hour的十位数
0052 80910200 lds R24,_time+2
0056 8295 swap R24
0058 8F70 andi R24,#0x0F
005A .dbline 36
005A ; Dis_Ascii(x,y,temp+0x30,front,back);
005A 2E2C mov R2,R14
005C 3324 clr R3
005E 3D82 std y+5,R3
0060 2C82 std y+4,R2
0062 CA82 std y+2,R12
0064 805D subi R24,208 ; addi 48
0066 8883 std y+0,R24
0068 262F mov R18,R22
006A 8A01 movw R16,R20
006C 0E940000 xcall _Dis_Ascii
0070 .dbline 37
0070 ; x+=8;
0070 485F subi R20,248 ; offset = 8
0072 5F4F sbci R21,255
0074 .dbline 38
0074 ; temp = time.hour & 0x0f;
0074 80910200 lds R24,_time+2
0078 8F70 andi R24,15
007A .dbline 39
007A ; Dis_Ascii(x,y,temp+0x30,front,back);
007A 2E2C mov R2,R14
007C 3324 clr R3
007E 3D82 std y+5,R3
0080 2C82 std y+4,R2
0082 CA82 std y+2,R12
0084 805D subi R24,208 ; addi 48
0086 8883 std y+0,R24
0088 262F mov R18,R22
008A 8A01 movw R16,R20
008C 0E940000 xcall _Dis_Ascii
0090 .dbline 40
0090 ; x+=8;
0090 485F subi R20,248 ; offset = 8
0092 5F4F sbci R21,255
0094 .dbline 41
0094 ; Dis_Ascii(x,y,':',front,back);
0094 2E2C mov R2,R14
0096 3324 clr R3
0098 3D82 std y+5,R3
009A 2C82 std y+4,R2
009C CA82 std y+2,R12
009E 8AE3 ldi R24,58
00A0 8883 std y+0,R24
00A2 262F mov R18,R22
00A4 8A01 movw R16,R20
00A6 0E940000 xcall _Dis_Ascii
00AA .dbline 42
00AA ; x+=8;
00AA 485F subi R20,248 ; offset = 8
00AC 5F4F sbci R21,255
00AE .dbline 43
00AE ; temp = time.minute>>4;
00AE 80910100 lds R24,_time+1
00B2 8295 swap R24
00B4 8F70 andi R24,#0x0F
00B6 .dbline 44
00B6 ; Dis_Ascii(x,y,temp+0x30,front,back);
00B6 2E2C mov R2,R14
00B8 3324 clr R3
00BA 3D82 std y+5,R3
00BC 2C82 std y+4,R2
00BE CA82 std y+2,R12
00C0 805D subi R24,208 ; addi 48
00C2 8883 std y+0,R24
00C4 262F mov R18,R22
00C6 8A01 movw R16,R20
00C8 0E940000 xcall _Dis_Ascii
00CC .dbline 45
00CC ; x+=8;
00CC 485F subi R20,248 ; offset = 8
00CE 5F4F sbci R21,255
00D0 .dbline 46
00D0 ; temp = time.minute & 0x0f;
00D0 80910100 lds R24,_time+1
00D4 8F70 andi R24,15
00D6 .dbline 47
00D6 ; Dis_Ascii(x,y,temp+0x30,front,back);
00D6 2E2C mov R2,R14
00D8 3324 clr R3
00DA 3D82 std y+5,R3
00DC 2C82 std y+4,R2
00DE CA82 std y+2,R12
00E0 805D subi R24,208 ; addi 48
00E2 8883 std y+0,R24
00E4 262F mov R18,R22
00E6 8A01 movw R16,R20
00E8 0E940000 xcall _Dis_Ascii
00EC .dbline 48
00EC ; x+=8;
00EC 485F subi R20,248 ; offset = 8
00EE 5F4F sbci R21,255
00F0 .dbline 49
00F0 ; Dis_Ascii(x,y,':',front,back);
00F0 2E2C mov R2,R14
00F2 3324 clr R3
00F4 3D82 std y+5,R3
00F6 2C82 std y+4,R2
00F8 CA82 std y+2,R12
00FA 8AE3 ldi R24,58
00FC 8883 std y+0,R24
00FE 262F mov R18,R22
0100 8A01 movw R16,R20
0102 0E940000 xcall _Dis_Ascii
0106 .dbline 50
0106 ; x+=8;
0106 485F subi R20,248 ; offset = 8
0108 5F4F sbci R21,255
010A .dbline 51
010A ; temp = time.second>>4;
010A 80910000 lds R24,_time
010E 8295 swap R24
0110 8F70 andi R24,#0x0F
0112 .dbline 52
0112 ; Dis_Ascii(x,y,temp+0x30,front,back);
0112 2E2C mov R2,R14
0114 3324 clr R3
0116 3D82 std y+5,R3
0118 2C82 std y+4,R2
011A CA82 std y+2,R12
011C 805D subi R24,208 ; addi 48
011E 8883 std y+0,R24
0120 262F mov R18,R22
0122 8A01 movw R16,R20
0124 0E940000 xcall _Dis_Ascii
0128 .dbline 53
0128 ; x+=8;
0128 485F subi R20,248 ; offset = 8
012A 5F4F sbci R21,255
012C .dbline 54
012C ; temp = time.second & 0x0f;
012C 80910000 lds R24,_time
0130 8F70 andi R24,15
0132 A82E mov R10,R24
0134 .dbline 55
0134 ; Dis_Ascii(x,y,temp+0x30,front,back);
0134 2E2C mov R2,R14
0136 3324 clr R3
0138 3D82 std y+5,R3
013A 2C82 std y+4,R2
013C CA82 std y+2,R12
013E 805D subi R24,208 ; addi 48
0140 8883 std y+0,R24
0142 262F mov R18,R22
0144 8A01 movw R16,R20
0146 0E940000 xcall _Dis_Ascii
014A .dbline -2
014A L11:
014A 2696 adiw R28,6
014C 0E940000 xcall pop_gset5
0150 .dbline 0 ; func end
0150 0895 ret
0152 .dbsym r temp 10 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -