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

📄 chap2.asm

📁 用凌阳16位单片机SPMC75F2413A来控制无刷直流电动机的详细程序包
💻 ASM
📖 第 1 页 / 共 4 页
字号:
L9:
.debug
	.dw '.stabn 0x44,0,115,',0,0
	.dd LM34-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LM34:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _SPMC_DMC_Load_SpdCmd	// call with return value
	SP=SP+1
	R2=[_sptr]	// QImode move
	R4=R2	// QImode move
	[R4]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,116,',0,0
	.dd LM35-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LM35:
	R1=[BP]	// QImode move
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _SPMC_DMC_Save_SpdNow	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,117,',0,0
	.dd LM36-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LM36:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _SPMC_DMC_Save_Aux	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,118,',0,0
	.dd LM37-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LM37:
	R1=[_sptr]	// QImode move
	R4=R1	// QImode move
	R2=[R4]	// QImode move
	R1=R2	// QImode move
	R1-=[BP]	// subqi3_r0R R1=R1-[BP]
	[SP--]=R1	// QImode move
	call _abs	// call with return value
	SP=SP+1
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _SPMC_DMC_Save_Aux	// call without return value
	SP=SP+2
.debug
	.dw '.stabn 0x44,0,119,',0,0
	.dd LM38-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LM38:
LBE3:
.debug
	.dw '.stabn 0x44,0,119,',0,0
	.dd LM39-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LM39:
L6:

	sp+=3
	pop bp from [sp]
	retf
	.endp	// end of BLDC_Motor_Actiyator

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB3-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "count:V4",38,0,0,',0,0,offset Lcount_9,seg Lcount_9,0x0d,0x0a
.CODE
.debug
	.dw '.stabs "uiSpeed:4",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB4-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE4-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE3-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME3-_BLDC_Motor_Actiyator
	.dw 0x0d,0x0a
.code
LME3:
.code
.debug
	.dw '.stabs "BLDC_Motor_Startup:F19",36,0,0,',0,0,offset _BLDC_Motor_Startup,seg _BLDC_Motor_Startup,0x0d,0x0a
.CODE
.public _BLDC_Motor_Startup
_BLDC_Motor_Startup:	.proc
.debug
	.dw '.stabn 0x44,0,125,',0,0
	.dd LM40-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM40:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,126,',0,0
	.dd LM41-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM41:
LBB5:
	R1=[_sCSptr]	// QImode move
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R1=R2 lsr 1
	R2=R1&1
	CMP R2,0	// QImode test
	JNZ L27	// QImode EQ
	PC=L23
L27:
.debug
	.dw '.stabn 0x44,0,128,',0,0
	.dd LM42-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM42:
LBB6:
	R4=[_sCtrlSM]	// QImode move
	R4=R4&(-2)
	[_sCtrlSM]=R4	// QImode move
.debug
	.dw '.stabn 0x44,0,129,',0,0
	.dd LM43-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM43:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,1494	// QImode compare
	JNA L28	// QImode GTU
	PC=L24
L28:
.debug
	.dw '.stabn 0x44,0,131,',0,0
	.dd LM44-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM44:
	R1=[_sptr]	// QImode move
	R2=R1	// QImode move
	R1=R1+1
	R3=[_sptr]	// QImode move
	R2=R3	// QImode move
	R3=R3+1
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+5
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,132,',0,0
	.dd LM45-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM45:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[29768]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,133,',0,0
	.dd LM46-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM46:
	R1=169	// QImode move
	[29706]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,134,',0,0
	.dd LM47-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM47:
	pc=L25	// Indirect jump
L24:
.debug
	.dw '.stabn 0x44,0,137,',0,0
	.dd LM48-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM48:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+1
	R1=50	// QImode move
	R4=R2	// QImode move
	[R4]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,138,',0,0
	.dd LM49-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM49:
	R2=[_sptr]	// QImode move
	R1=R2	// QImode move
	R2=R2+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[29768]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,139,',0,0
	.dd LM50-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM50:
	R1=169	// QImode move
	[29706]=R1	// QImode move
L25:
.debug
	.dw '.stabn 0x44,0,155,',0,0
	.dd LM51-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM51:
	R1=[29796]	// QImode move
	[SP--]=R1	// QImode move
	call _IPM_Trigger_PB120HalfPWM	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,162,',0,0
	.dd LM52-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM52:
LBE6:
	pc=L26	// Indirect jump
L23:
.debug
	.dw '.stabn 0x44,0,163,',0,0
	.dd LM53-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM53:
	call _IPM_Trigger_Off	// call with return value
L26:
.debug
	.dw '.stabn 0x44,0,164,',0,0
	.dd LM54-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM54:
LBE5:
.debug
	.dw '.stabn 0x44,0,164,',0,0
	.dd LM55-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LM55:
L22:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of BLDC_Motor_Startup

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB5-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB6-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE6-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE5-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME4-_BLDC_Motor_Startup
	.dw 0x0d,0x0a
.code
LME4:
.code
.debug
	.dw '.stabs "BLDC_Motor_Normalrun:F19",36,0,0,',0,0,offset _BLDC_Motor_Normalrun,seg _BLDC_Motor_Normalrun,0x0d,0x0a
.CODE
.public _BLDC_Motor_Normalrun
_BLDC_Motor_Normalrun:	.proc
.debug
	.dw '.stabn 0x44,0,170,',0,0
	.dd LM56-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM56:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,171,',0,0
	.dd LM57-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM57:
LBB7:
	R1=[29733]	// QImode move
	R2=R1|256
	[29733]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,172,',0,0
	.dd LM58-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM58:
	R1=[_sCSptr]	// QImode move
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R1=R2 lsr 1
	R2=R1&1
	CMP R2,0	// QImode test
	JNZ L32	// QImode EQ
	PC=L30
L32:
.debug
	.dw '.stabn 0x44,0,174,',0,0
	.dd LM59-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM59:
LBB8:
	R1=[_sCSptr]	// QImode move
	R2=R1	// QImode move
	R3=[R2]	// QImode move
	R3=R3|1
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,176,',0,0
	.dd LM60-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM60:
	call _Speedcalc	// call without return value
.debug
	.dw '.stabn 0x44,0,190,',0,0
	.dd LM61-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM61:
	R1=[29796]	// QImode move
	[SP--]=R1	// QImode move
	call _IPM_Trigger_PB120HalfPWM	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,197,',0,0
	.dd LM62-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM62:
LBE8:
	pc=L31	// Indirect jump
L30:
.debug
	.dw '.stabn 0x44,0,198,',0,0
	.dd LM63-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM63:
	call _IPM_Trigger_Off	// call with return value
L31:
.debug
	.dw '.stabn 0x44,0,199,',0,0
	.dd LM64-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM64:
LBE7:
.debug
	.dw '.stabn 0x44,0,199,',0,0
	.dd LM65-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LM65:
L29:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of BLDC_Motor_Normalrun

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB7-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB8-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE8-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE7-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME5-_BLDC_Motor_Normalrun
	.dw 0x0d,0x0a
.code
LME5:
.code
.debug
	.dw '.stabs "Speedcalc:f19",36,0,0,',0,0,offset _Speedcalc,seg _Speedcalc,0x0d,0x0a
.CODE
_Speedcalc:	.proc
.debug
	.dw '.stabn 0x44,0,210,',0,0
	.dd LM66-_Speedcalc
	.dw 0x0d,0x0a
.code
LM66:
	// total=17, vars=17
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=17
	bp=sp+1

	R1=BP+20
	[bp+15]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,211,',0,0
	.dd LM67-_Speedcalc
	.dw 0x0d,0x0a
.code
LM67:
LBB9:
.debug
	.dw '.stabn 0x44,0,213,',0,0
	.dd LM68-_Speedcalc
	.dw 0x0d,0x0a
.code
LM68:
	R2=[29760]	// QImode move
	[BP]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,214,',0,0
	.dd LM69-_Speedcalc
	.dw 0x0d,0x0a
.code
LM69:
	R2=[BP]	// QImode move
	CMP R2,469	// QImode compare
	JA L38	// QImode LEU
	PC=L34
L38:
.debug
	.dw '.stabn 0x44,0,216,',0,0
	.dd LM70-_Speedcalc
	.dw 0x0d,0x0a
.code
LM70:
	R2=[_ptr]	// QImode move
	[bp+16]=R2	// QImode move
	R2=[bp+16]	// QImode move
	R1=[R2]
	R2=0
	[bp+1]=R1	// HImode [BP+#IM6]=RS
	[bp+2]=R2
	R1=[_summation]	// HImode RD=[Label]
	R2=[_summation+1]
	[bp+3]=R1	// HImode [BP+#IM6]=RS
	[bp+4]=R2
	R2=[bp+3]	// QImode move
	[bp+5]=R2	// QImode move
	R1=[bp+5]	// QImode move
	R2=[bp+1]	// QImode move
	R1-=R2
	[bp+5]=R1	// QImode move
	R3=[bp+5]	// QImode move
	R1=1	// QImode move
	[bp+16]=R1	// QImode move
	R2=[bp+5]	// QImode move
	R1=[bp+3]	// QImode move
	CMP R2,R1	// QImode compare
	JNA L39	// QImode GTU
	PC=L35
L39:
	R2=0	// QImode move
	[bp+16]=R2	// QImode move
L35:
	R1=[bp+4]	// QImode move
	[bp+6]=R1	// QImode move
	R2=[bp+6]	// QImode move
	R1=[bp+2]	// QImode move
	R2-=R1
	[bp+6]=R2	// QImode move
	R4=[bp+6]	// QImode move
	R2=[bp+6]	// QImode move
	[bp+7]=R2	// QImode move
	R1=[bp+7]	// QImode move
	R2=[bp+16]	// QImode move
	R1-=R2
	[bp+7]=R1	// QImode move
	R4=[bp+7]	// QImode move
	[_summation]=R3	// HImode [Label]=RS
	[_summation+1]=R4

⌨️ 快捷键说明

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