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

📄 调试程序1.s

📁 这段程序是步进电机的细分驱动程序
💻 S
📖 第 1 页 / 共 5 页
字号:
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 173
; 	 
; 	    PORTB=DATA_LOW; //D9
	ldd R0,y+0
	out 0x18,R0
	.dbline 174
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 175
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 176
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 177
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 178
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 180
; 	 
; 	    PORTB=DATA_LOW; //D8
	ldd R0,y+0
	out 0x18,R0
	.dbline 181
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 182
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 183
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 184
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 185
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 187
; 	 
; 	    PORTB=DATA_LOW; //D7      D7、D6、D5、D4
	ldd R0,y+0
	out 0x18,R0
	.dbline 188
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 189
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 190
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 191
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 192
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 194
; 	   
; 	    PORTB=DATA_LOW; //D6
	ldd R0,y+0
	out 0x18,R0
	.dbline 195
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 196
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 197
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 198
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 199
; 		PORTB=DATA_LOW|CLOK_HIG;	
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 201
; 	    
; 	    PORTB=DATA_HIG; //D5 
	out 0x18,R10
	.dbline 202
; 		PORTB=DATA_HIG;
	out 0x18,R10
	.dbline 203
; 		PORTB=DATA_HIG|CLOK_LOW;
	mov R2,R10
	or R2,R0
	out 0x18,R2
	.dbline 204
; 		PORTB=DATA_HIG|CLOK_LOW;
	mov R2,R10
	or R2,R0
	out 0x18,R2
	.dbline 205
; 		PORTB=DATA_HIG|CLOK_HIG;
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 206
; 		PORTB=DATA_HIG|CLOK_HIG;
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 208
; 	 
; 	    PORTB=DATA_LOW; //D4
	ldd R0,y+0
	out 0x18,R0
	.dbline 209
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 210
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 211
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 212
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 213
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 215
; 	
; 	    PORTB=DATA_LOW; //D3
	ldd R0,y+0
	out 0x18,R0
	.dbline 216
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 217
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 218
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 219
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 220
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 222
; 	
; 	    PORTB=DATA_HIG; //D2 		00:死区时间为4/fosc,01:死区时间为6/fosc ,10:死区时间为8/fosc,11:死区时间为12/fosc
	out 0x18,R10
	.dbline 223
; 	    PORTB=DATA_HIG;
	out 0x18,R10
	.dbline 224
; 		PORTB=DATA_HIG|CLOK_LOW;
	mov R2,R10
	or R2,R0
	out 0x18,R2
	.dbline 225
; 		PORTB=DATA_HIG|CLOK_LOW;
	mov R2,R10
	or R2,R0
	out 0x18,R2
	.dbline 226
; 		PORTB=DATA_HIG|CLOK_HIG;
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 227
; 		PORTB=DATA_HIG|CLOK_HIG;
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 229
; 	
; 	    PORTB=DATA_LOW; //D1
	ldd R0,y+0
	out 0x18,R0
	.dbline 230
; 		PORTB=DATA_LOW;
	out 0x18,R0
	.dbline 231
; 		PORTB=DATA_LOW|CLOK_LOW;
	mov R2,R0
	ldd R0,y+1
	or R2,R0
	out 0x18,R2
	.dbline 232
; 		PORTB=DATA_LOW|CLOK_LOW;
	ldd R2,y+0
	or R2,R0
	out 0x18,R2
	.dbline 233
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 234
; 		PORTB=DATA_LOW|CLOK_HIG;
	ldd R2,y+0
	or R2,R22
	out 0x18,R2
	.dbline 236
; 	
; 	    PORTB=DATA_HIG; //D0		数据模式
	out 0x18,R10
	.dbline 237
; 		PORTB=DATA_HIG;
	out 0x18,R10
	.dbline 238
; 		PORTB=DATA_HIG|CLOK_LOW;
	mov R2,R10
	or R2,R0
	out 0x18,R2
	.dbline 239
; 		PORTB=DATA_HIG|CLOK_LOW;
	mov R2,R10
	or R2,R0
	out 0x18,R2
	.dbline 240
; 		PORTB=DATA_HIG|CLOK_HIG;
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 241
; 		PORTB=DATA_HIG|CLOK_HIG; 
	mov R2,R10
	or R2,R22
	out 0x18,R2
	.dbline 243
; 		    
; 	    PORTE=STRB_HIG;	 
	out 0x3,R20
	.dbline 244
; 	    PORTE=STRB_HIG;
	out 0x3,R20
	.dbline 246
; 		
; 		return 0x01;
	ldi R16,1
	xjmp L3
L4:
	.dbline 248
; 	}
; 	else{
	.dbline 249
; 		return 0x00;
	clr R16
	.dbline -2
L3:
	.dbline 0 ; func end
	adiw R28,2
	xjmp pop_xgsetF0FC
	.dbsym r STRB_HIG 20 c
	.dbsym r STRB_LOW 14 c
	.dbsym r DATA_HIG 10 c
	.dbsym r CLOK_HIG 22 c
	.dbsym l CLOK_LOW 1 c
	.dbsym l DATA_LOW 0 c
	.dbsym r Port 16 c
	.dbend
	.dbfunc e OutputMotor _OutputMotor fc
;       CLOK_LOW -> y+1
;       STRB_LOW -> y+0
;       STRB_HIG -> R20
;       DATA_HIG -> R12
;       CLOK_HIG -> R22
;       DATA_LOW -> R10
;     Bridge2DAC -> y+16
;     Bridge1DAC -> y+14
;           Port -> y+12
	.even
_OutputMotor::
	xcall push_arg4
	xcall push_xgsetF0FC
	sbiw R28,2
	.dbline -1
	.dbline 254
; 	}
; }
; //步进电机转动函数
; unsigned char OutputMotor(unsigned char Port,unsigned char Bridge1DAC,unsigned char Bridge2DAC)
; {
	.dbline 258
; 	unsigned char STRB_LOW,CLOK_LOW,DATA_LOW;
; 	unsigned char STRB_HIG,CLOK_HIG,DATA_HIG;
; 	
; 	if((Port>=0x01)&&(Port<=0x04))     //四个电机端口设置
	ldd R24,y+12
	cpi R24,1
	brsh X30
	xjmp L14
X30:
X8:
	ldi R24,4
	ldd R0,y+12
	cp R24,R0
	brsh X31
	xjmp L14
X31:
X9:
	.dbline 259
; 	{		
	.dbline 260
; 		switch(Port)
	mov R14,R0
	clr R15
	movw R24,R14
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L19
X10:
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	breq L20
X11:
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	breq L21
X12:
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	breq L22
X13:
	xjmp L16
L19:
	.dbline 263
; 		{
; 		    case 0x01:
; 			    STRB_LOW = 0x00;
	clr R0
	std y+0,R0
	.dbline 264
; 				STRB_HIG = 0x10;
	ldi R20,16
	.dbline 265
; 				CLOK_LOW = 0x00;
	std y+1,R0
	.dbline 266
; 				CLOK_HIG = 0x01;
	ldi R22,1
	.dbline 267
; 				DATA_LOW = 0x00;
	clr R10
	.dbline 268
; 				DATA_HIG = 0x10;
	ldi R24,16
	mov R12,R24
	.dbline 269
; 			    break;
	xjmp L17
L20:
	.dbline 271
; 			case 0x02:
; 			    STRB_LOW = 0x00;
	clr R0
	std y+0,R0
	.dbline 272
; 				STRB_HIG = 0x20;
	ldi R20,32
	.dbline 273
; 				CLOK_LOW = 0x00;
	std y+1,R0
	.dbline 274
; 				CLOK_HIG = 0x02;
	ldi R22,2
	.dbline 275
; 				DATA_LOW = 0x00;
	clr R10
	.dbline 276
; 				DATA_HIG = 0x20;
	ldi R24,32
	mov R12,R24
	.dbline 277
; 			    break;
	xjmp L17
L21:
	.dbline 279
; 			case 0x03:
; 			    STRB_LOW = 0x00;
	clr R0
	std y+0,R0
	.dbline 280
; 				STRB_HIG = 0x40;
	ldi R20,64
	.dbline 281
; 				CLOK_LOW = 0x00;
	std y+1,R0
	.dbline 282
; 				CLOK_HIG = 0x04;
	ldi R22,4
	.dbline 283
; 				DATA_LOW = 0x00;
	clr R10
	.dbline 284
; 				DATA_HIG = 0x40;
	ldi R24,64
	mov R12,R24
	.dbline 285
; 			    break;
	xjmp L17
L22:
	.dbline 287
; 			case 0x04:
; 			    STRB_LOW = 0x00;
	clr R0
	std y+0,R0
	.dbline 288
; 				STRB_HIG = 0x80;
	ldi R20,128
	.dbline 289
; 				CLOK_LOW = 0x00;
	std y+1,R0
	.dbline 290
; 				CLOK_HIG = 0x08;
	ldi R22,8
	.dbline 291
; 				DATA_LOW = 0x00;
	clr R10
	.dbline 292
; 				DATA_HIG = 0x80;
	ldi R24,128
	mov R12,R24
	.dbline 293
; 			    break;
L16:
L17:
	.dbline 296
; 		}
; 	 
; 		PORTB=CLOK_LOW;
	ldd R0,y+1
	out 0x18,R0
	.dbline 297
; 		PORTE=STRB_LOW;
	ldd R0,y+0
	out 0x3,R0
	.dbline 299
; 
; 	    if((Port==1)||(Port==4))         //升降臂,进样泵电机电流0。5A
	ldd R24,y+12
	cpi R24,1
	breq L25
X14:
	cpi R24,4
	brne L23
X15:
L25:
	.dbline 300
; 	   {
	.dbline 301
; 		PORTB=DATA_HIG;      //D18  	电流范围选择方式 0:VDAC/8Rs  1:VDAC/4Rs
	out 0x18,R12
	.dbline 302
; 		PORTB=DATA_HIG|CLOK_HIG; 
	mov R2,R12
	or R2,R22
	out 0x18,R2
	.dbline 303
; 	   }
	xjmp L24
L23:
	.dbline 305
; 	   else                              //进样盘,旋转臂电机电流0。25A
; 	   {
	.dbline 306
; 		PORTB=DATA_LOW;      //D18  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -