📄 eeprom.s
字号:
.dbfunc e twi_read _twi_read fc
; dd -> R20,R21
; addr -> R22
.even
_twi_read::
xcall push_gset2
movw R20,R18
mov R22,R16
.dbline -1
.dbline 78
.dbline 79
ldi R24,2
sts 112,R24
.dbline 81
ldi R24,164
sts 116,R24
L56:
.dbline 82
L57:
.dbline 82
lds R2,116
sbrs R2,7
rjmp L56
.dbline 83
lds R24,113
andi R24,248
cpi R24,8
breq L59
.dbline 83
.dbline 84
lds R16,113
xcall _error
.dbline 85
clr R16
xjmp L55
L59:
.dbline 88
ldi R24,160
sts 115,R24
.dbline 89
ldi R24,132
sts 116,R24
L61:
.dbline 90
L62:
.dbline 90
lds R2,116
sbrs R2,7
rjmp L61
.dbline 91
lds R24,113
andi R24,248
cpi R24,24
breq L64
.dbline 91
.dbline 92
lds R16,113
xcall _error
.dbline 93
clr R16
xjmp L55
L64:
.dbline 96
sts 115,R22
.dbline 97
ldi R24,132
sts 116,R24
L66:
.dbline 98
L67:
.dbline 98
lds R2,116
sbrs R2,7
rjmp L66
.dbline 99
lds R24,113
andi R24,248
cpi R24,40
breq L69
.dbline 99
.dbline 100
lds R16,113
xcall _error
.dbline 101
clr R16
xjmp L55
L69:
.dbline 105
ldi R24,164
sts 116,R24
L71:
.dbline 106
L72:
.dbline 106
lds R2,116
sbrs R2,7
rjmp L71
.dbline 107
lds R24,113
andi R24,248
cpi R24,16
breq L74
.dbline 107
.dbline 108
lds R16,113
xcall _error
.dbline 109
clr R16
xjmp L55
L74:
.dbline 113
ldi R24,161
sts 115,R24
.dbline 114
ldi R24,132
sts 116,R24
L76:
.dbline 115
L77:
.dbline 115
lds R2,116
sbrs R2,7
rjmp L76
.dbline 116
lds R24,113
andi R24,248
cpi R24,64
breq L79
.dbline 116
.dbline 117
lds R16,113
xcall _error
.dbline 118
clr R16
xjmp L55
L79:
.dbline 121
ldi R24,132
sts 116,R24
L81:
.dbline 122
L82:
.dbline 122
lds R2,116
sbrs R2,7
rjmp L81
.dbline 123
lds R24,113
andi R24,248
cpi R24,88
breq L84
.dbline 123
.dbline 124
lds R16,113
xcall _error
.dbline 125
clr R16
xjmp L55
L84:
.dbline 127
lds R2,115
movw R30,R20
std z+0,R2
.dbline 130
ldi R24,148
sts 116,R24
.dbline 131
ldi R16,1
.dbline -2
L55:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r dd 20 pc
.dbsym r addr 22 c
.dbend
.area data(ram, con, rel)
.dbfile E:\icc\eeprom/eeprom_init.h
_time_buf::
.blkb 2
.area idata
.byte 32,8
.area data(ram, con, rel)
.dbfile E:\icc\eeprom/eeprom_init.h
.blkb 2
.area idata
.byte 3,33
.area data(ram, con, rel)
.dbfile E:\icc\eeprom/eeprom_init.h
.blkb 2
.area idata
.byte 32,32
.area data(ram, con, rel)
.dbfile E:\icc\eeprom/eeprom_init.h
.blkb 2
.area idata
.byte 'P,2
.area data(ram, con, rel)
.dbfile E:\icc\eeprom/eeprom_init.h
.dbfile E:\icc\eeprom/DS1302.h
.dbsym e time_buf _time_buf A[8:8]c
.area text(rom, con, rel)
.dbfile E:\icc\eeprom/DS1302.h
.dbfunc e ds1302_write_byte _ds1302_write_byte fV
; i -> R20
; d -> R18
; addr -> R16
.even
_ds1302_write_byte::
xcall push_gset1
.dbline -1
.dbline 32
.dbline 35
sbi 0x3,4
.dbline 38
sbi 0x2,3
.dbline 39
andi R16,254
.dbline 40
clr R20
xjmp L90
L87:
.dbline 40
.dbline 41
sbrs R16,0
rjmp L91
.dbline 41
.dbline 42
sbi 0x3,3
.dbline 43
xjmp L92
L91:
.dbline 44
.dbline 45
cbi 0x3,3
.dbline 46
L92:
.dbline 47
sbi 0x3,2
.dbline 48
cbi 0x3,2
.dbline 49
lsr R16
.dbline 50
L88:
.dbline 40
inc R20
L90:
.dbline 40
cpi R20,8
brlo L87
.dbline 53
sbi 0x2,3
.dbline 54
clr R20
xjmp L96
L93:
.dbline 54
.dbline 55
sbrs R18,0
rjmp L97
.dbline 55
.dbline 56
sbi 0x3,3
.dbline 57
xjmp L98
L97:
.dbline 58
.dbline 59
cbi 0x3,3
.dbline 60
L98:
.dbline 61
sbi 0x3,2
.dbline 62
cbi 0x3,2
.dbline 63
lsr R18
.dbline 64
L94:
.dbline 54
inc R20
L96:
.dbline 54
cpi R20,8
brlo L93
.dbline 65
cbi 0x3,4
.dbline -2
L86:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r d 18 c
.dbsym r addr 16 c
.dbend
.dbfunc e ds1302_read_byte _ds1302_read_byte fc
; temp -> R20
; i -> R22
; addr -> R16
.even
_ds1302_read_byte::
xcall push_gset2
.dbline -1
.dbline 69
.dbline 73
sbi 0x3,4
.dbline 76
sbi 0x2,3
.dbline 77
ori R16,1
.dbline 78
clr R22
xjmp L103
L100:
.dbline 78
.dbline 79
sbrs R16,0
rjmp L104
.dbline 79
.dbline 80
sbi 0x3,3
.dbline 81
xjmp L105
L104:
.dbline 82
.dbline 83
cbi 0x3,3
.dbline 84
L105:
.dbline 85
sbi 0x3,2
.dbline 86
cbi 0x3,2
.dbline 87
lsr R16
.dbline 88
L101:
.dbline 78
inc R22
L103:
.dbline 78
cpi R22,8
brlo L100
.dbline 91
cbi 0x2,3
.dbline 92
clr R22
xjmp L109
L106:
.dbline 92
.dbline 93
lsr R20
.dbline 94
sbis 0x1,3
rjmp L110
.dbline 94
.dbline 95
ori R20,128
.dbline 96
xjmp L111
L110:
.dbline 97
.dbline 98
andi R20,127
.dbline 99
L111:
.dbline 100
sbi 0x3,2
.dbline 101
cbi 0x3,2
.dbline 102
L107:
.dbline 92
inc R22
L109:
.dbline 92
cpi R22,8
brlo L106
.dbline 104
cbi 0x3,4
.dbline 105
mov R16,R20
.dbline -2
L99:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r temp 20 c
.dbsym r i 22 c
.dbsym r addr 16 c
.dbend
.dbfunc e ds1302_write_time _ds1302_write_time fV
.even
_ds1302_write_time::
.dbline -1
.dbline 109
.dbline 111
clr R18
ldi R16,142
xcall _ds1302_write_byte
.dbline 112
ldi R18,128
ldi R16,128
xcall _ds1302_write_byte
.dbline 114
lds R18,_time_buf+1
ldi R16,140
xcall _ds1302_write_byte
.dbline 115
lds R18,_time_buf+2
ldi R16,136
xcall _ds1302_write_byte
.dbline 116
lds R18,_time_buf+3
ldi R16,134
xcall _ds1302_write_byte
.dbline 117
lds R18,_time_buf+7
ldi R16,138
xcall _ds1302_write_byte
.dbline 118
lds R18,_time_buf+4
ldi R16,132
xcall _ds1302_write_byte
.dbline 119
lds R18,_time_buf+5
ldi R16,130
xcall _ds1302_write_byte
.dbline 120
lds R18,_time_buf+6
ldi R16,128
xcall _ds1302_write_byte
.dbline 121
lds R18,_time_buf+7
ldi R16,138
xcall _ds1302_write_byte
.dbline 122
ldi R18,128
ldi R16,142
xcall _ds1302_write_byte
.dbline -2
L112:
.dbline 0 ; func end
ret
.dbend
.dbfunc e ds1302_read_time _ds1302_read_time fV
.even
_ds1302_read_time::
.dbline -1
.dbline 126
.dbline 128
ldi R16,140
xcall _ds1302_read_byte
sts _time_buf+1,R16
.dbline 129
ldi R16,136
xcall _ds1302_read_byte
sts _time_buf+2,R16
.dbline 130
ldi R16,134
xcall _ds1302_read_byte
sts _time_buf+3,R16
.dbline 131
ldi R16,132
xcall _ds1302_read_byte
sts _time_buf+4,R16
.dbline 132
ldi R16,130
xcall _ds1302_read_byte
sts _time_buf+5,R16
.dbline 133
ldi R16,128
xcall _ds1302_read_byte
mov R24,R16
andi R24,127
sts _time_buf+6,R24
.dbline 134
ldi R16,138
xcall _ds1302_read_byte
sts _time_buf+7,R16
.dbline -2
L121:
.dbline 0 ; func end
ret
.dbend
.dbfunc e ds1302_init _ds1302_init fV
.even
_ds1302_init::
.dbline -1
.dbline 138
.dbline 140
cbi 0x3,4
.dbline 141
cbi 0x3,2
.dbline 142
sbi 0x2,4
.dbline 143
sbi 0x2,2
.dbline -2
L129:
.dbline 0 ; func end
ret
.dbend
.dbfile E:\icc\eeprom\eeprom.c
.dbfunc e delay_ms _delay_ms fV
; a -> R20
; b -> R22
; i -> R16
.even
_delay_ms::
xcall push_gset2
.dbline -1
.dbline 14
.dbline 16
ldi R20,1
xjmp L134
L131:
.dbline 17
.dbline 18
ldi R22,1
xjmp L138
L135:
.dbline 19
.dbline 20
.dbline 21
L136:
.dbline 18
inc R22
L138:
.dbline 18
tst R22
brne L135
.dbline 22
L132:
.dbline 16
inc R20
L134:
.dbline 16
cp R20,R16
brlo L131
.dbline -2
L130:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r a 20 c
.dbsym r b 22 c
.dbsym r i 16 c
.dbend
.dbfunc e main _main fV
; temp -> y+0
; time_read -> R20
; send_flag -> R22
; i -> R10
.even
_main::
sbiw R28,1
.dbline -1
.dbline 25
.dbline 28
clr R22
.dbline 28
ldi R20,6
.dbline 29
ldi R24,255
out 0x1b,R24
.dbline 30
clr R2
out 0x1a,R2
.dbline 31
ldi R24,240
out 0x18,R24
.dbline 32
ldi R24,255
out 0x17,R24
.dbline 33
out 0x15,R24
.dbline 34
out 0x14,R2
.dbline 35
out 0x12,R24
.dbline 36
out 0x11,R2
.dbline 37
xcall _ds1302_init
.dbline 38
xcall _ds1302_write_time
.dbline 39
xcall _disp_init
.dbline 40
clr R10
xjmp L143
L140:
.dbline 41
.dbline 42
mov R18,R10
mov R16,R10
subi R16,0 ; addi 256
xcall _twi_write
.dbline 43
ldi R16,4095
ldi R17,15
xcall _delay
.dbline 44
L141:
.dbline 40
inc R10
L143:
.dbline 40
mov R24,R10
cpi R24,20
brlo L140
.dbline 53
ldi R16,65535
ldi R17,255
xcall _delay
.dbline 54
ldi R18,<L144
ldi R19,>L144
ldi R16,128
xcall _disp_word
.dbline 55
ldi R18,<L145
ldi R19,>L145
ldi R16,144
xcall _disp_word
.dbline 56
ldi R18,<L146
ldi R19,>L146
ldi R16,136
xcall _disp_word
.dbline 57
clr R10
xjmp L148
L147:
.dbline 60
.dbline 61
xcall _ds1302_read_time
.dbline 62
lds R18,_time_buf+6
ldi R16,141
xcall _disp_number16
.dbline 63
lds R2,_time_buf+6
tst R2
brne L151
.dbline 64
.dbline 65
ldi R22,1
.dbline 66
lds R2,_time_buf+5
cp R2,R20
brne L154
.dbline 67
clr R22
L154:
.dbline 68
L151:
.dbline 69
cpi R22,1
brne L157
.dbline 70
.dbline 71
movw R18,R28
mov R16,R10
subi R16,0 ; addi 256
xcall _twi_read
.dbline 72
inc R10
.dbline 73
clr R22
.dbline 74
lds R20,_time_buf+5
.dbline 75
ldd R18,y+0
ldi R16,152
xcall _disp_number10
.dbline 76
L157:
.dbline 78
L148:
.dbline 59
xjmp L147
X3:
.dbline -2
L139:
adiw R28,1
.dbline 0 ; func end
ret
.dbsym l temp 0 c
.dbsym r time_read 20 c
.dbsym r send_flag 22 c
.dbsym r i 10 c
.dbend
.area data(ram, con, rel)
.dbfile E:\icc\eeprom\eeprom.c
L146:
.blkb 8
.area idata
.byte 'A,'T,50,52,'C,49,54,0
.area data(ram, con, rel)
.dbfile E:\icc\eeprom\eeprom.c
L145:
.blkb 15
.area idata
.byte 50,48,48,56,196,234,49,48,212,194,48,57,200,213,0
.area data(ram, con, rel)
.dbfile E:\icc\eeprom\eeprom.c
L144:
.blkb 13
.area idata
.byte 200,206,206,241,163,186,'E,'E,'P,'R,'O,'M,0
.area data(ram, con, rel)
.dbfile E:\icc\eeprom\eeprom.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -