📄 avrstudy.s
字号:
.dbsym r i 20 i
.dbsym r US 22 i
.dbend
.dbfunc e Delayms _Delayms fV
; i -> R20,R21
; j -> R22,R23
; MS -> R16,R17
.even
_Delayms::
rcall push_gset2
.dbline -1
.dbline 59
.dbline 61
clr R20
clr R21
rjmp L79
L76:
.dbline 62
clr R22
clr R23
rjmp L83
L80:
.dbline 62
L81:
.dbline 62
subi R22,255 ; offset = 1
sbci R23,255
L83:
.dbline 62
cpi R22,117
ldi R30,4
cpc R23,R30
brlo L80
L77:
.dbline 61
subi R20,255 ; offset = 1
sbci R21,255
L79:
.dbline 61
cp R20,R16
cpc R21,R17
brlo L76
.dbline -2
L75:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r j 22 i
.dbsym r MS 16 i
.dbend
.dbfunc e DS1302_portinit _DS1302_portinit fV
.even
_DS1302_portinit::
.dbline -1
.dbline 71
.dbline 72
in R24,0x14
ori R24,14
out 0x14,R24
.dbline -2
L84:
.dbline 0 ; func end
ret
.dbend
.dbfunc e DS1302_writeB _DS1302_writeB fV
; i -> R20
; byte -> R22
.even
_DS1302_writeB::
rcall push_gset2
mov R22,R16
.dbline -1
.dbline 82
.dbline 84
clr R20
rjmp L89
L86:
.dbline 85
.dbline 86
cbi 0x15,1
.dbline 87
sbrs R22,0
rjmp L90
.dbline 88
.dbline 89
sbi 0x15,2
.dbline 90
rjmp L91
L90:
.dbline 92
.dbline 93
cbi 0x15,2
.dbline 94
L91:
.dbline 95
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 96
sbi 0x15,1
.dbline 97
lsr R22
.dbline 98
L87:
.dbline 84
inc R20
L89:
.dbline 84
cpi R20,8
brlo L86
.dbline -2
L85:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r byte 22 c
.dbend
.dbfunc e DS1302_readB _DS1302_readB fc
; i -> R20
; byte -> R22
.even
_DS1302_readB::
rcall push_gset2
.dbline -1
.dbline 107
.dbline 108
clr R22
.dbline 109
cbi 0x14,2
.dbline 110
cbi 0x15,2
.dbline 111
clr R20
rjmp L96
L93:
.dbline 112
.dbline 113
lsr R22
.dbline 114
sbi 0x15,1
.dbline 115
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 116
cbi 0x15,1
.dbline 117
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 118
sbis 0x13,2
rjmp L97
.dbline 119
.dbline 120
ori R22,128
.dbline 121
rjmp L98
L97:
.dbline 123
.dbline 124
andi R22,127
.dbline 125
L98:
.dbline 126
L94:
.dbline 111
inc R20
L96:
.dbline 111
cpi R20,8
brlo L93
.dbline 127
sbi 0x14,2
.dbline 128
mov R16,R22
.dbline -2
L92:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r byte 22 c
.dbend
.dbfunc e DS1302_writeD _DS1302_writeD fV
; data -> R20
; addr -> R22
.even
_DS1302_writeD::
rcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 138
.dbline 139
.dbline 140
cbi 0x15,3
.dbline 141
cbi 0x15,1
.dbline 142
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 143
sbi 0x15,3
.dbline 144
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 145
mov R16,R22
rcall _DS1302_writeB
.dbline 146
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 147
cbi 0x15,1
.dbline 148
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 149
mov R16,R20
rcall _DS1302_writeB
.dbline 150
cbi 0x15,1
.dbline 151
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 152
cbi 0x15,3
.dbline 153
.dbline -2
L99:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r data 20 c
.dbsym r addr 22 c
.dbend
.dbfunc e DS1302_readD _DS1302_readD fc
; data -> R20
; addr -> R20
.even
_DS1302_readD::
rcall push_gset1
mov R20,R16
.dbline -1
.dbline 162
.dbline 164
cbi 0x15,3
.dbline 165
cbi 0x15,1
.dbline 166
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 167
sbi 0x15,3
.dbline 168
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 169
mov R16,R20
rcall _DS1302_writeB
.dbline 170
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 171
rcall _DS1302_readB
mov R20,R16
.dbline 172
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 173
cbi 0x15,1
.dbline 174
cbi 0x15,3
.dbline 175
mov R16,R20
.dbline -2
L100:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r data 20 c
.dbsym r addr 20 c
.dbend
.dbfunc e DS1302_setT _DS1302_setT fV
; addr -> R20
; i -> R22
; ptTimeD -> R10,R11
.even
_DS1302_setT::
rcall push_gset3
movw R10,R16
.dbline -1
.dbline 184
.dbline 186
; }//while
ldi R20,128
.dbline 187
; exit1=0;
clr R18
ldi R16,142
rcall _DS1302_writeD
.dbline 188
; enter1=0;
ldi R16,5
ldi R17,0
rcall _Delayms
.dbline 189
; }
clr R22
rjmp L105
L102:
.dbline 190
.dbline 191
mov R30,R22
clr R31
add R30,R10
adc R31,R11
ldd R18,z+0
mov R16,R20
rcall _DS1302_writeD
.dbline 192
subi R20,254 ; addi 2
.dbline 193
ldi R16,1
ldi R17,0
rcall _Delayms
.dbline 194
L103:
.dbline 189
inc R22
L105:
.dbline 189
cpi R22,7
brlo L102
.dbline 195
; }
; exit1=0;
; LcmInit(); //液晶初始化
;
; }
; }
ldi R18,128
ldi R16,142
rcall _DS1302_writeD
.dbline -2
L101:
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r addr 20 c
.dbsym r i 22 c
.dbsym r ptTimeD 10 pc
.dbend
.dbfunc e DS1302_getT _DS1302_getT fV
; i -> R20
; time -> R22,R23
.even
_DS1302_getT::
rcall push_gset2
movw R22,R16
.dbline -1
.dbline 204
;
;
;
;
;
;
;
;
;
.dbline 215
;
;
;
;
;
;
;
;
;
;
;
cbi 0x15,3
.dbline 216
;
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 217
;
sbi 0x15,3
.dbline 218
;
ldi R16,10
ldi R17,0
rcall _Delayus
.dbline 219
;
ldi R16,191
rcall _DS1302_writeB
.dbline 220
;
clr R20
rjmp L110
L107:
.dbline 221
.dbline 222
rcall _DS1302_readB
mov R30,R20
clr R31
add R30,R22
adc R31,R23
std z+0,R16
.dbline 223
L108:
.dbline 220
inc R20
L110:
.dbline 220
cpi R20,8
brlo L107
.dbline 224
;
;
;
;
cbi 0x15,3
.dbline 226
;
;
cbi 0x15,1
.dbline -2
L106:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r time 22 pc
.dbend
.dbfunc e DS1302_check _DS1302_check fc
; exist -> R20
.even
_DS1302_check::
rcall push_gset1
.dbline -1
.dbline 235
;
;
;
;
;
;
;
;
;
.dbline 237
;
;
clr R18
ldi R16,142
rcall _DS1302_writeD
.dbline 238
;
ldi R18,165
ldi R16,192
rcall _DS1302_writeD
.dbline 239
;
ldi R16,193
rcall _DS1302_readD
mov R20,R16
.dbline 240
;
cpi R16,165
brne L112
.dbline 241
;
.dbline 242
;
ldi R20,1
.dbline 243
;
rjmp L113
L112:
.dbline 245
;
;
.dbline 246
;
clr R20
.dbline 247
;
L113:
.dbline 248
;
mov R16,R20
.dbline -2
L111:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r exist 20 c
.dbend
.dbfunc e DS1302_init _DS1302_init fV
.even
_DS1302_init::
.dbline -1
.dbline 257
;
;
;
;
;
;
;
;
;
.dbline 258
;
clr R18
ldi R16,142
rcall _DS1302_writeD
.dbline 259
;
clr R18
ldi R16,128
rcall _DS1302_writeD
.dbline 260
;
ldi R18,128
ldi R16,142
rcall _DS1302_writeD
.dbline -2
L114:
.dbline 0 ; func end
ret
.dbend
.dbfunc e BCD_ASCII _BCD_ASCII fV
; ptasc -> R18,R19
; BCD -> R16
.even
_BCD_ASCII::
.dbline -1
.dbline 270
;
;
;
;
;
;
;
;
;
;
.dbline 271
;
mov R24,R16
swap R24
andi R24,#0x0F
ori R24,48
movw R30,R18
std z+0,R24
.dbline 272
;
mov R24,R16
andi R24,15
ori R24,48
std z+1,R24
.dbline -2
L115:
.dbline 0 ; func end
ret
.dbsym r ptasc 18 pc
.dbsym r BCD 16 c
.dbend
.dbfunc e Disp_time _Disp_time fV
; vstr -> y+0
; vstrtemp -> R20,R21
; i -> R22,R23
; time -> R10,R11
.even
_Disp_time::
rcall push_gset3
movw R10,R16
sbiw R28,16
.dbline -1
.dbline 281
;
;
;
;
;
;
;
;
;
.dbline 284
;
;
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+3
clr R17
rcall div16s
movw R24,R16
adiw R24,48
std y+1,R25
std y+0,R24
.dbline 285
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+3
clr R17
rcall mod16s
movw R24,R16
adiw R24,48
std y+3,R25
std y+2,R24
.dbline 286
;
ldi R24,47
ldi R25,0
std y+5,R25
std y+4,R24
.dbline 287
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+4
clr R17
rcall div16s
movw R24,R16
adiw R24,48
std y+7,R25
std y+6,R24
.dbline 288
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+4
clr R17
rcall mod16s
movw R24,R16
adiw R24,48
std y+9,R25
std y+8,R24
.dbline 289
;
ldi R24,47
ldi R25,0
std y+11,R25
std y+10,R24
.dbline 290
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+6
clr R17
rcall div16s
movw R24,R16
adiw R24,48
std y+13,R25
std y+12,R24
.dbline 291
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+6
clr R17
rcall mod16s
movw R24,R16
adiw R24,48
std y+15,R25
std y+14,R24
.dbline 292
;
ldi R16,48
rcall _WriteCommand
.dbline 293
;
ldi R16,146
rcall _WriteCommand
.dbline 294
;
clr R22
clr R23
rjmp L127
L124:
.dbline 295
.dbline 296
ldi R16,2
ldi R17,0
movw R18,R22
rcall empy16s
movw R30,R16
movw R24,R28
add R30,R24
adc R31,R25
ldd R20,z+0
ldd R21,z+1
.dbline 297
mov R16,R20
rcall _WriteData
.dbline 298
L125:
.dbline 294
subi R22,255 ; offset = 1
sbci R23,255
L127:
.dbline 294
cpi R22,8
ldi R30,0
cpc R23,R30
brlo L124
.dbline 299
;
;
;
;
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+2
clr R17
rcall div16s
movw R24,R16
adiw R24,48
std y+1,R25
std y+0,R24
.dbline 300
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+2
clr R17
rcall mod16s
movw R24,R16
adiw R24,48
std y+3,R25
std y+2,R24
.dbline 301
;
ldi R24,58
ldi R25,0
std y+5,R25
std y+4,R24
.dbline 302
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+1
clr R17
rcall div16s
movw R24,R16
adiw R24,48
std y+7,R25
std y+6,R24
.dbline 303
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+1
clr R17
rcall mod16s
movw R24,R16
adiw R24,48
std y+9,R25
std y+8,R24
.dbline 304
;
ldi R24,58
ldi R25,0
std y+11,R25
std y+10,R24
.dbline 305
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+0
clr R17
rcall div16s
movw R24,R16
adiw R24,48
std y+13,R25
std y+12,R24
.dbline 306
;
ldi R18,16
ldi R19,0
movw R30,R10
ldd R16,z+0
clr R17
rcall mod16s
movw R24,R16
adiw R24,48
std y+15,R25
std y+14,R24
.dbline 307
;
ldi R16,48
rcall _WriteCommand
.dbline 308
;
ldi R16,138
rcall _WriteCommand
.dbline 309
;
clr R22
clr R23
rjmp L138
L135:
.dbline 310
.dbline 311
ldi R16,2
ldi R17,0
movw R18,R22
rcall empy16s
movw R30,R16
movw R24,R28
add R30,R24
adc R31,R25
ldd R20,z+0
ldd R21,z+1
.dbline 312
mov R16,R20
rcall _WriteData
.dbline 313
L136:
.dbline 309
subi R22,255 ; offset = 1
sbci R23,255
L138:
.dbline 309
cpi R22,8
ldi R30,0
cpc R23,R30
brlo L135
.dbline -2
L116:
adiw R28,16
rcall pop_gset3
.dbline 0 ; func end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -