📄 ds1302.s
字号:
.dbsym r time 20 pc
.dbsym r ddr 22 pc
.dbend
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序/DELAY.C
.dbfunc e delay_1us _delay_1us fV
.even
_delay_1us::
.dbline -1
.dbline 5
.dbline 6
nop
.dbline -2
L32:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_nus _delay_nus fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_nus::
rcall push_gset2
movw R22,R16
.dbline -1
.dbline 10
.dbline 11
clr R20
clr R21
.dbline 12
rjmp L37
L34:
.dbline 13
rcall _delay_1us
L35:
.dbline 12
subi R20,255 ; offset = 1
sbci R21,255
L37:
.dbline 12
cp R20,R22
cpc R21,R23
brlo L34
.dbline -2
L33:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 17
.dbline 19
clr R16
clr R17
rjmp L42
L39:
.dbline 19
L40:
.dbline 19
subi R16,255 ; offset = 1
sbci R17,255
L42:
.dbline 19
cpi R16,141
ldi R30,0
cpc R17,R30
brlo L39
.dbline -2
L38:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_nms::
rcall push_gset2
movw R22,R16
.dbline -1
.dbline 23
.dbline 24
clr R20
clr R21
.dbline 25
rjmp L47
L44:
.dbline 26
.dbline 27
rcall _delay_1ms
.dbline 28
L45:
.dbline 25
subi R20,255 ; offset = 1
sbci R21,255
L47:
.dbline 25
cp R20,R22
cpc R21,R23
brlo L44
.dbline -2
L43:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.area lit(rom, con, rel)
_SEG_table::
.byte 192,249
.byte 164,176
.byte 153,146
.byte 130,248
.byte 128,144
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.dbsym e SEG_table _SEG_table A[10:10]kc
.area data(ram, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
_Sec_buffer::
.blkb 2
.area idata
.byte 0,0
.area data(ram, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.blkb 2
.area idata
.byte 0,0
.area data(ram, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.dbsym e Sec_buffer _Sec_buffer A[4:4]c
_Min_buffer::
.blkb 2
.area idata
.byte 0,0
.area data(ram, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.blkb 2
.area idata
.byte 0,0
.area data(ram, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.dbsym e Min_buffer _Min_buffer A[4:4]c
.area text(rom, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 35
.dbline 36
clr R2
out 0x18,R2
.dbline 37
out 0x17,R2
.dbline 38
out 0x15,R2
.dbline 39
ldi R24,255
out 0x14,R24
.dbline 40
out 0x12,R2
.dbline 41
out 0x11,R24
.dbline -2
L48:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer1_init _timer1_init fV
.even
_timer1_init::
.dbline -1
.dbline 49
.dbline 50
clr R2
out 0x2e,R2
.dbline 51
ldi R24,252
out 0x2d,R24
.dbline 52
ldi R24,24
out 0x2c,R24
.dbline 53
ldi R24,3
out 0x2b,R24
.dbline 54
ldi R24,232
out 0x2a,R24
.dbline 55
ldi R24,3
out 0x29,R24
.dbline 56
ldi R24,232
out 0x28,R24
.dbline 57
ldi R24,3
out 0x27,R24
.dbline 58
ldi R24,232
out 0x26,R24
.dbline 59
out 0x2f,R2
.dbline 60
ldi R24,1
out 0x2e,R24
.dbline -2
L49:
.dbline 0 ; func end
ret
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 65
.dbline 66
cli
.dbline 67
rcall _port_init
.dbline 68
rcall _timer1_init
.dbline 69
clr R2
out 0x35,R2
.dbline 70
out 0x3b,R2
.dbline 71
ldi R24,4
out 0x39,R24
.dbline 72
sei
.dbline -2
L50:
.dbline 0 ; func end
ret
.dbend
.dbfunc e sendbeyt _sendbeyt fV
; i -> R20,R21
; x -> R22
.even
_sendbeyt::
rcall push_gset2
mov R22,R16
.dbline -1
.dbline 81
.dbline 83
clr R20
clr R21
L52:
.dbline 84
.dbline 85
sbi 0x12,1
.dbline 86
ldi R16,1
ldi R17,0
movw R18,R20
rcall lsl16
mov R2,R22
clr R3
and R2,R16
and R3,R17
tst R2
brne X1
tst R3
breq L56
X1:
.dbline 87
sbi 0x12,0
rjmp L57
L56:
.dbline 89
cbi 0x12,0
L57:
.dbline 90
cbi 0x12,1
.dbline 91
L53:
.dbline 83
subi R20,255 ; offset = 1
sbci R21,255
.dbline 83
cpi R20,8
ldi R30,0
cpc R21,R30
brlt L52
.dbline 92
sbi 0x12,1
.dbline -2
L51:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 I
.dbsym r x 22 c
.dbend
.dbfunc e sendFOURbeyt _sendFOURbeyt fV
.even
_sendFOURbeyt::
.dbline -1
.dbline 97
.dbline 97
ldi R24,19
out 0x12,R24
.dbline 98
ldi R24,<_SEG_table
ldi R25,>_SEG_table
lds R30,_Sec_buffer
clr R31
add R30,R24
adc R31,R25
lpm R16,Z
rcall _sendbeyt
.dbline 99
ldi R16,200
ldi R17,0
rcall _delay_nus
.dbline 100
ldi R24,35
out 0x12,R24
.dbline 101
ldi R24,<_SEG_table
ldi R25,>_SEG_table
lds R30,_Sec_buffer+1
clr R31
add R30,R24
adc R31,R25
lpm R16,Z
rcall _sendbeyt
.dbline 102
ldi R16,200
ldi R17,0
rcall _delay_nus
.dbline 103
ldi R24,7
out 0x12,R24
.dbline 104
ldi R24,<_SEG_table
ldi R25,>_SEG_table
lds R30,_Min_buffer
clr R31
add R30,R24
adc R31,R25
lpm R16,Z
rcall _sendbeyt
.dbline 105
ldi R16,200
ldi R17,0
rcall _delay_nus
.dbline 106
ldi R24,11
out 0x12,R24
.dbline 107
ldi R24,<_SEG_table
ldi R25,>_SEG_table
lds R30,_Min_buffer+1
clr R31
add R30,R24
adc R31,R25
lpm R16,Z
rcall _sendbeyt
.dbline 108
ldi R16,200
ldi R17,0
rcall _delay_nus
.dbline 109
ldi R24,3
out 0x12,R24
.dbline 110
ldi R16,200
ldi R17,0
rcall _delay_nus
.dbline -2
L58:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 16
rjmp _timer1_ovf_isr
.area text(rom, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
.dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
_timer1_ovf_isr::
rcall push_lset
.dbline -1
.dbline 118
.dbline 119
rcall _sendFOURbeyt
.dbline 121
ldi R24,252
out 0x2d,R24
.dbline 122
ldi R24,24
out 0x2c,R24
.dbline -2
L61:
rcall pop_lset
.dbline 0 ; func end
reti
.dbend
.dbfunc e BINtoArray _BINtoArray fV
; temp -> R20
; i -> R22
; count -> R10,R11
; p -> R12,R13
.even
_BINtoArray::
rcall push_gset4
movw R10,R18
movw R12,R16
.dbline -1
.dbline 128
.dbline 129
cli
.dbline 130
clr R22
rjmp L66
L63:
.dbline 131
.dbline 132
ldi R18,10
ldi R19,0
movw R16,R10
rcall mod16u
mov R20,R16
.dbline 133
movw R30,R12
std z+0,R20
.dbline 134
ldi R18,10
ldi R19,0
movw R16,R10
rcall div16u
movw R10,R16
.dbline 135
movw R24,R12
adiw R24,1
movw R12,R24
.dbline 136
L64:
.dbline 130
inc R22
L66:
.dbline 130
cpi R22,4
brlo L63
.dbline 137
sei
.dbline -2
L62:
rcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r temp 20 c
.dbsym r i 22 c
.dbsym r count 10 i
.dbsym r p 12 pc
.dbend
.dbfunc e main _main fV
; CO -> R20
.even
_main::
.dbline -1
.dbline 141
; void main()
; {char CO=0;
.dbline 141
clr R20
.dbline 142
; init_devices();
rcall _init_devices
.dbline 143
; DS1302_WriteTime(); //时间校准
rcall _DS1302_WriteTime
rjmp L69
L68:
.dbline 145
.dbline 146
rcall _DS1302_ReadTime
.dbline 147
lds R18,_second
lds R19,_second+1
ldi R16,<_Sec_buffer
ldi R17,>_Sec_buffer
rcall _BINtoArray
.dbline 148
lds R18,_date
lds R19,_date+1
ldi R16,<_Min_buffer
ldi R17,>_Min_buffer
rcall _BINtoArray
.dbline 149
ldi R16,1
ldi R17,0
rcall _delay_nus
.dbline 150
L69:
.dbline 144
rjmp L68
X2:
.dbline -2
L67:
.dbline 0 ; func end
ret
.dbsym r CO 20 c
.dbend
.area bss(ram, con, rel)
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序\DS1302.c
_year::
.blkb 2
.dbfile E:\biyesheji\TESTBE~1\DS1302\程序/ds1302.h
.dbsym e year _year I
_month::
.blkb 2
.dbsym e month _month I
_week::
.blkb 2
.dbsym e week _week I
_date::
.blkb 2
.dbsym e date _date I
_hour::
.blkb 2
.dbsym e hour _hour I
_minute::
.blkb 2
.dbsym e minute _minute I
_second::
.blkb 2
.dbsym e second _second I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -