📄 bjdj_4.s
字号:
L60:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r x 20 i
.dbsym r y 22 i
.dbsym r t 16 i
.dbend
.dbfunc e SystemInit _SystemInit fV
.even
_SystemInit::
.dbline -1
.dbline 56
.dbline 57
xcall _TWI_init
.dbline 58
xcall _interrupt_init
.dbline 59
ldi R16,30
ldi R17,0
.dbline -2
.dbline 60
L69:
.dbline 0 ; func end
xjmp _delay1
.dbend
.dbfunc e ClearAll _ClearAll fV
; x -> R20
.even
_ClearAll::
xcall push_gset1
sbiw R28,3
.dbline -1
.dbline 67
.dbline 69
clr R20
xjmp L74
L71:
.dbline 70
.dbline 71
ldi R24,31
std y+2,R24
clr R2
std y+0,R2
clr R18
mov R16,R20
xcall _ZLG7290_Download
.dbline 72
L72:
.dbline 69
inc R20
L74:
.dbline 69
cpi R20,8
brlo L71
.dbline -2
.dbline 73
L70:
adiw R28,3
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r x 20 c
.dbend
.area lit(rom, con, rel)
L76:
.byte 238,62
.byte 156,'z
.byte 158,142
.byte 246,'n
.byte 32,'p
.byte 14,28
.byte 58,206
.byte 230,10
.area text(rom, con, rel)
.dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/zlg7290_avr.c
.dbfunc e Test_DispBuf _Test_DispBuf fV
; DispDat -> y+0
; n -> R20
; dat -> R10
; reg -> R12
; x -> R22
.even
_Test_DispBuf::
xcall push_gset4
sbiw R28,16
.dbline -1
.dbline 80
.dbline 82
ldi R24,<L76
ldi R25,>L76
movw R30,R28
ldi R16,16
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
xcall asgncblk
.dbline 90
clr R20
xjmp L80
L77:
.dbline 91
.dbline 92
clr R22
xjmp L84
L81:
.dbline 93
.dbline 94
mov R24,R22
subi R24,240 ; addi 16
mov R12,R24
.dbline 95
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R10,z+0
.dbline 96
mov R18,R10
mov R16,R12
xcall _ZLG7290_WriteReg
.dbline 97
L82:
.dbline 92
inc R22
L84:
.dbline 92
cpi R22,8
brlo L81
.dbline 98
ldi R16,50
ldi R17,0
xcall _delay1
.dbline 99
L78:
.dbline 90
inc R20
L80:
.dbline 90
cpi R20,16
brlo L77
.dbline -2
.dbline 100
L75:
adiw R28,16
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l DispDat 0 A[16:16]c
.dbsym r n 20 c
.dbsym r dat 10 c
.dbsym r reg 12 c
.dbsym r x 22 c
.dbend
.dbfunc e Test_Download _Test_Download fV
; f -> R20
; dp -> R22
; dat -> R10
; x -> R12
.even
_Test_Download::
xcall push_gset4
sbiw R28,3
.dbline -1
.dbline 107
.dbline 113
ldi R22,1
.dbline 114
clr R20
.dbline 115
ldi R24,8
mov R10,R24
.dbline 116
clr R12
xjmp L89
L86:
.dbline 117
.dbline 118
std y+2,R10
std y+0,R20
mov R18,R22
mov R16,R12
xcall _ZLG7290_Download
.dbline 119
L87:
.dbline 116
inc R12
L89:
.dbline 116
mov R24,R12
cpi R24,8
brlo L86
.dbline 120
ldi R16,100
ldi R17,0
xcall _delay1
.dbline 122
clr R22
.dbline 123
clr R20
.dbline 124
clr R10
xjmp L93
L90:
.dbline 125
.dbline 126
clr R12
xjmp L97
L94:
.dbline 127
.dbline 128
std y+2,R10
std y+0,R20
mov R18,R22
mov R16,R12
xcall _ZLG7290_Download
.dbline 129
L95:
.dbline 126
inc R12
L97:
.dbline 126
mov R24,R12
cpi R24,8
brlo L94
.dbline 130
ldi R16,50
ldi R17,0
xcall _delay1
.dbline 131
L91:
.dbline 124
inc R10
L93:
.dbline 124
mov R24,R10
cpi R24,32
brlo L90
.dbline -2
.dbline 132
L85:
adiw R28,3
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r f 20 c
.dbsym r dp 22 c
.dbsym r dat 10 c
.dbsym r x 12 c
.dbend
.dbfunc e Test_ScanNum _Test_ScanNum fV
; x -> R20
.even
_Test_ScanNum::
xcall push_gset1
sbiw R28,3
.dbline -1
.dbline 140
.dbline 142
clr R20
xjmp L102
L99:
.dbline 143
.dbline 144
ldi R24,8
std y+2,R24
clr R2
std y+0,R2
ldi R18,1
mov R16,R20
xcall _ZLG7290_Download
.dbline 145
L100:
.dbline 142
inc R20
L102:
.dbline 142
cpi R20,8
brlo L99
.dbline 146
ldi R16,100
ldi R17,0
xcall _delay1
.dbline 147
clr R20
xjmp L106
L103:
.dbline 148
.dbline 149
mov R18,R20
ldi R16,13
xcall _ZLG7290_WriteReg
.dbline 150
ldi R16,100
ldi R17,0
xcall _delay
.dbline 151
L104:
.dbline 147
inc R20
L106:
.dbline 147
cpi R20,8
brlo L103
.dbline -2
.dbline 152
L98:
adiw R28,3
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r x 20 c
.dbend
.dbfunc e Test_Flash _Test_Flash fV
; dat -> R20
; x -> R22
.even
_Test_Flash::
xcall push_gset2
sbiw R28,3
.dbline -1
.dbline 159
.dbline 160
ldi R20,1
.dbline 163
clr R22
xjmp L111
L108:
.dbline 164
.dbline 165
std y+2,R22
clr R2
std y+0,R2
clr R18
mov R16,R22
xcall _ZLG7290_Download
.dbline 166
L109:
.dbline 163
inc R22
L111:
.dbline 163
cpi R22,8
brlo L108
.dbline 168
ldi R18,17
ldi R16,12
xcall _ZLG7290_WriteReg
.dbline 170
clr R22
xjmp L115
L112:
.dbline 171
.dbline 172
mov R18,R20
ldi R16,112
xcall _ZLG7290_cmd
.dbline 173
lsl R20
.dbline 174
ldi R16,300
ldi R17,1
xcall _delay1
.dbline 175
L113:
.dbline 170
inc R22
L115:
.dbline 170
cpi R22,8
brlo L112
.dbline 177
ldi R18,255
ldi R16,112
xcall _ZLG7290_cmd
.dbline 178
ldi R16,350
ldi R17,1
xcall _delay1
.dbline 180
clr R18
ldi R16,112
xcall _ZLG7290_cmd
.dbline 181
ldi R16,50
ldi R17,0
xcall _delay1
.dbline -2
.dbline 182
L107:
adiw R28,3
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r dat 20 c
.dbsym r x 22 c
.dbend
.dbfunc e Test_SegOnOff _Test_SegOnOff fV
; seg -> R20
.even
_Test_SegOnOff::
xcall push_gset1
.dbline -1
.dbline 189
.dbline 191
; }
; }
xcall _ClearAll
.dbline 192
; }
ldi R16,100
ldi R17,0
xcall _delay1
.dbline 193
; }
clr R20
xjmp L120
L117:
.dbline 194
.dbline 195
ldi R18,1
mov R16,R20
xcall _ZLG7290_SegOnOff
.dbline 196
ldi R16,30
ldi R17,0
xcall _delay1
.dbline 197
L118:
.dbline 193
inc R20
L120:
.dbline 193
cpi R20,64
brlo L117
.dbline 198
; }
; }
; }
; }
; }
ldi R16,100
ldi R17,0
xcall _delay1
.dbline 199
; }
clr R20
xjmp L124
L121:
.dbline 200
.dbline 201
clr R18
mov R16,R20
xcall _ZLG7290_SegOnOff
.dbline 202
ldi R16,30
ldi R17,0
xcall _delay1
.dbline 203
L122:
.dbline 199
inc R20
L124:
.dbline 199
cpi R20,64
brlo L121
.dbline 204
; }
; }
; }
; }
; }
ldi R16,100
ldi R17,0
xcall _delay1
.dbline -2
.dbline 205
; }
L116:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r seg 20 c
.dbend
.dbfunc e DispValue _DispValue fV
; d -> R20,R21
; dat -> R22,R23
.even
_DispValue::
xcall push_gset2
movw R22,R16
sbiw R28,3
.dbline -1
.dbline 215
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 220
; }
; }
; }
; }
; }
ldi R18,1000
ldi R19,3
movw R16,R22
xcall mod16u
ldi R18,100
ldi R19,0
xcall div16u
movw R20,R16
.dbline 221
; }
std y+2,R20
clr R2
std y+0,R2
clr R18
clr R16
xcall _ZLG7290_Download
.dbline 222
; }
ldi R18,100
ldi R19,0
movw R16,R22
xcall mod16u
ldi R18,10
ldi R19,0
xcall div16u
movw R20,R16
.dbline 223
; }
std y+2,R20
clr R2
std y+0,R2
clr R18
ldi R16,1
xcall _ZLG7290_Download
.dbline 225
; }
; }
ldi R18,10
ldi R19,0
movw R16,R22
xcall mod16u
movw R20,R16
.dbline 226
; }
std y+2,R20
clr R2
std y+0,R2
clr R18
ldi R16,2
xcall _ZLG7290_Download
.dbline -2
.dbline 229
; }
; }
; }
L125:
adiw R28,3
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r d 20 i
.dbsym r dat 22 i
.dbend
.dbfunc e DispHexValue _DispHexValue fV
; d -> R22
; dat -> R10
; x -> R20
.even
_DispHexValue::
xcall push_gset3
mov R10,R18
mov R20,R16
sbiw R28,3
.dbline -1
.dbline 239
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 241
; }
; }
ldi R17,16
mov R16,R10
xcall div8u
mov R22,R16
.dbline 242
; }
std y+2,R22
clr R2
std y+0,R2
clr R18
mov R16,R20
xcall _ZLG7290_Download
.dbline 243
; }
ldi R24,16
mul R24,R22
mov R22,R10
sub R22,R0
.dbline 244
; }
std y+2,R22
clr R2
std y+0,R2
clr R18
mov R16,R20
subi R16,255 ; addi 1
xcall _ZLG7290_Download
.dbline -2
.dbline 245
; }
L126:
adiw R28,3
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r d 22 c
.dbsym r dat 10 c
.dbsym r x 20 c
.dbend
.dbfunc e Test_Key _Test_Key fV
; KeyValue -> y+2
; FnKeyValue -> y+1
; RepeatCnt -> y+0
.even
_Test_Key::
sbiw R28,3
.dbline -1
.dbline 252
; }
; }
; }
; }
; }
; }
; }
.dbline 256
; }
; }
; }
; }
xcall _ClearAll
.dbline 257
; }
L128:
.dbline 258
.dbline 259
lds R2,_FlagINT
lds R3,_FlagINT+1
tst R2
brne X4
tst R3
breq L128
X4:
.dbline 260
.dbline 262
clr R2
clr R3
sts _FlagINT+1,R3
sts _FlagINT,R2
.dbline 264
movw R18,R28
subi R18,254 ; offset = 2
sbci R19,255
ldi R16,1
xcall _ZLG7290_ReadReg
.dbline 265
movw R18,R28
ldi R16,2
xcall _ZLG7290_ReadReg
.dbline 266
movw R18,R28
subi R18,255 ; offset = 1
sbci R19,255
ldi R16,3
xcall _ZLG7290_ReadReg
.dbline 269
ldd R18,y+0
ldi R16,3
xcall _DispHexValue
.dbline 270
ldd R18,y+1
ldi R16,6
xcall _DispHexValue
.dbline 271
.dbline 272
.dbline 257
.dbline 257
xjmp L128
X5:
.dbline -2
L127:
adiw R28,3
.dbline 0 ; func end
ret
.dbsym l KeyValue 2 c
.dbsym l FnKeyValue 1 c
.dbsym l RepeatCnt 0 c
.dbend
.dbfile E:\重新整理的文件\控制类\步进电机\程序\avr\bjdj_4.c
.dbfunc e delayus _delayus fV
; i -> R20,R21
; us -> R22,R23
.even
_delayus::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 32
.dbline 34
ldi R16,5
ldi R17,0
movw R18,R22
xcall empy16s
movw R22,R16
lsr R23
ror R22
.dbline 35
clr R20
clr R21
xjmp L138
L135:
.dbline 35
L136:
.dbline 35
subi R20,255 ; offset = 1
sbci R21,255
L138:
.dbline 35
cp R20,R22
cpc R21,R23
brlo L135
.dbline -2
.dbline 36
L134:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r us 22 i
.dbend
.dbfunc e delayms _delayms fV
; x -> R20,R21
; y -> R22,R23
; z -> R16,R17
.even
_delayms::
xcall push_gset2
.dbline -1
.dbline 45
.dbline 47
movw R20,R16
xjmp L143
L140:
.dbline 48
ldi R22,2660
ldi R23,10
xjmp L147
L144:
.dbline 48
L145:
.dbline 48
subi R22,1
sbci R23,0
L147:
.dbline 48
cpi R22,0
cpc R22,R23
brne L144
X6:
L141:
.dbline 47
subi R20,1
sbci R21,0
L143:
.dbline 47
cpi R20,0
cpc R20,R21
brne L140
X7:
.dbline -2
.dbline 49
L139:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r x 20 i
.dbsym r y 22 i
.dbsym r z 16 i
.dbend
.dbfunc e bjdj_init1 _bjdj_init1 fV
.even
_bjdj_init1::
.dbline -1
.dbline 52
.dbline 53
in R24,0x1a
ori R24,170
out 0x1a,R24
.dbline 54
sbi 0x14,6
.dbline 55
in R24,0x1b
ori R24,2
out 0x1b,R24
.dbline 56
in R24,0x1b
andi R24,223
out 0x1b,R24
.dbline 57
in R24,0x1b
andi R24,127
out 0x1b,R24
.dbline 58
in R24,0x1b
andi R24,247
out 0x1b,R24
.dbline -2
.dbline 59
L148:
.dbline 0 ; func end
ret
.dbend
.dbfunc e bjdj_init2 _bjdj_init2 fV
.even
_bjdj_init2::
.dbline -1
.dbline 62
.dbline 63
in R24,0x1a
ori R24,85
out 0x1a,R24
.dbline 64
lds R24,100
ori R24,4
sts 100,R24
.dbline 65
in R24,0x1b
ori R24,1
out 0x1b,R24
.dbline 66
in R24,0x1b
andi R24,239
out 0x1b,R24
.dbline 67
in R24,0x1b
andi R24,191
out 0x1b,R24
.dbline 68
in R24,0x1b
andi R24,251
out 0x1b,R24
.dbline -2
.dbline 69
L149:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; dat -> <dead>
; i -> <dead>
.even
_main::
.dbline -1
.dbline 73
.dbline 75
xcall _bjdj_init1
.dbline 76
xcall _bjdj_init2
.dbline 77
in R24,0x15
ori R24,64
out 0x15,R24
.dbline 78
lds R24,101
ori R24,4
sts 101,R24
xjmp L152
L151:
.dbline 80
.dbline 82
in R24,0x15
ori R24,64
out 0x15,R24
.dbline 83
lds R24,101
ori R24,4
sts 101,R24
.dbline 84
ldi R16,2
ldi R17,0
xcall _delayms
.dbline 85
in R24,0x15
andi R24,191
out 0x15,R24
.dbline 86
lds R24,101
andi R24,251
sts 101,R24
.dbline 87
ldi R16,2
ldi R17,0
xcall _delayms
.dbline 88
L152:
.dbline 79
xjmp L151
X8:
.dbline -2
.dbline 89
L150:
.dbline 0 ; func end
ret
.dbsym l dat 1 i
.dbsym l i 1 i
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -