⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bjdj_4.s

📁 利用mega128控制由L298和L297构成的驱动板
💻 S
📖 第 1 页 / 共 2 页
字号:
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 + -