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

📄 gi.asm

📁 这是关于有刷直流电动机PWM控制方案的源码
💻 ASM
字号:
;============================================================
; 文件名:	gi.asm
;
; 模块名:	GI_A
;
; 初始化程序名: GI_A_INIT
;
; 公司:	达盛科技
;
; 功能描述:给定积分器
;		    
;		          |~~~~~~~~~~~~~~~|
;  gi_ref o------>|	              |
;  				  |     gi_a      |----->o  gi_out
;  gi_fdb o------>|	              |
;  step   o------>|               |
;                 |_______________|
;   
;
; 目标板cpu: 'c2xx 
;=====================================================================================
; 更改记录:
;-------------------------------------------------------------------------------------
; 最后更新时间:2005.6.15	版本号:	Ver 1.0
;====================================================================
*************************************************************
* 速度 PI 调节器
*************************************************************
;		.ref	GI_A,GI_A_INIT  ; 子程序调用
;		.ref	gi_ref,gi_step	; 输入
;		.ref	gi_out			; 输出
;------------------------------------------------------------
; 变量声明
;------------------------------------------------------------
		.def	GI_A,GI_A_INIT  ; 子程序调用
		.def	gi_ref,gi_step	; 输入
		.def	gi_out			; 输出
;------------------------------------------------------------
; 输入输出变量定义
;------------------------------------------------------------

gi_ref		.usect "GI_A",1		;预期输入值
gi_fdb		.usect "GI_A",1		;反馈值
gi_out		.usect "GI_A",1     ;输出值 
gi_step		.usect "GI_A",1		;步长
gi_skp_cnt  .usect "GI_A",1	
;------------------------------------------------------------
; 初始化
;------------------------------------------------------------
GI_A_INIT
	zac
	ldp		#gi_ref	
	sacl	gi_fdb
	sacl	gi_out
	sacl	gi_step

*** 积分系数***
	splk	#0001H,gi_step		;默认步长
	SPLK	#0010H,gi_skp_cnt	;默认跳过次数
	SPLK	#0000H,gi_ref		;初始参考值	
	ret
;------------------------------------------------------------
;控制程序
;------------------------------------------------------------	
GI_A
	spm 0
	setc    SXM	;ZYG 
	setc	OVM
	LDP	#gi_skp_cnt
	lacc	gi_skp_cnt
	sub		#1
	sacl	gi_skp_cnt
	bcnd	endgi1,NEQ	
	ldp		#gi_out
	lacc	gi_out 		;Q15
	ldp		#gi_fdb
	sacl	gi_fdb		;Q15

	ldp		#gi_ref
	lacc	gi_ref
	sub		gi_fdb
	bcnd	lowaim,LEQ
	LACC    gi_out	
	add		gi_step
	B    endgi
lowaim
    bcnd	lowaim1,LT
;   ldp	#gi_ref			;test start
;   lacl	gi_ref
;   neg
;   sacl	gi_ref		;test end
	SPLK	#10H,gi_skp_cnt
    B 		endgi1
lowaim1
    LDP   #gi_out
    LACC  gi_out
    sub   gi_step
endgi
	sacl gi_out
	SPLK	#10H,gi_skp_cnt	
endgi1
	
	ret

⌨️ 快捷键说明

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