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

📄 mod6_cnt.asm

📁 这个是直流无刷电机的基于DSP2407的速度控制源代码
💻 ASM
字号:
; 文件名:	mod6_cnt.asm
; 模块名: 	MOD6_CNT				      
; 初始化程序: MOD6_CNT_INIT
; 公司:	达盛科技
;
; 功能描述:	子程序实现一个模为 6 的计数器,状态从'0'到'5',输入变量 m6_trig_in 
;		为触发信号,每次收到触发信号,输出 m6_cntr 变换到下一个状态.计满后复位  
;		重新开始。 
;
;			            |~~~~~~~~~~~~~~~|
;			            | 		        |
;    m6_trig_in	o------>|   MOD6_CNT	|----->o  m6_cntr
;			            |		        |
;			            |_______________|
;
;==============================================================================
; 修改记录:
;------------------------------------------------------------------------------
; 2005.08.12	版本  Ver 1.0
;===========================================================================
;(如果调用此模块, 将下面声明复制到主程序文件中)
;		.ref	MOD6_CNT, MOD6_CNT_INIT		;子程序调用
;		.ref	m6_trig_in, m6_cntr			;输入输出
;===========================================================================
;模块外部变量声明
		.def	MOD6_CNT, MOD6_CNT_INIT		;function call
		.def	m6_trig_in, m6_cntr			;Inputs
;===========================================================================
		.include	x24x_app.h
;===========================================================================
;模块内部变量定义
;---------------------------------------------------------------------------
;m6_cntr		.usect	"mod6_cnt",1	;计数器输出
;m6_trig_in		.usect	"mod6_cnt",1	;计数器输入

m6_cntr_vars	.usect	"mod6_cnt",2,1	
m6_cntr			.set	m6_cntr_vars+0	;计数器输出
m6_trig_in		.set	m6_cntr_vars+1	;计数器输入
;======================================================================
MOD6_CNT_INIT:	;模块初始化
;======================================================================
		LDP	#m6_cntr
		SPLK	#0h, m6_cntr
		SPLK	#0h, m6_trig_in
		RET

;======================================================================
MOD6_CNT:		;模块控制程序
;======================================================================
		LDP	#m6_cntr
		LACC	m6_trig_in
		BCND	M6C_END, EQ		;无触发则返回

CHK_STATE:	LACC	m6_cntr
		SUB	#05h				;判断是否计满
		BCND	M6_RST_ST0,EQ	;计满则复位计数器
		LACC	m6_cntr			;不满则转换到下一个状态 (Sn->Sn+1)
		ADD	#01h
		SACL	m6_cntr			;
		B	M6C_END
M6_RST_ST0:
		SPLK	#0h, m6_cntr	;复位输出为 0
M6C_END:
		RET

⌨️ 快捷键说明

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