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

📄 fangbo1.asm

📁 它是在TI的TMS320VC5416中用到的一个小程序
💻 ASM
字号:
;==============================================
; fangbo1.asm
; 利用定时器Timer0在XF脚产生周期2ms的的方波
;==============================================
			.title "fangbo1.asm"
			.mmregs
;			.include	"vector.asm"
			.def CodeStart 			;程序入口
			.def TINT0_ISR 			;Timer0中断服务程序
STACK 		.usect ".stack",10H 	;分配堆栈空间 
;设定定时器0控制寄存器的内容
K_TCR_SOFT 	.set 0B<<11 			;TCR第11位soft=0
K_TCR_FREE 	.set 0B<<10 			;TCR第10位free=0 
K_TCR_PSC 	.set 0B<<6 				;TCR第9-6位,可设TDDR一样,也可不设自动加载
K_TCR_TRB 	.set 1B<<5 				;TCR第5位TRB=1此位置1,PSC会自动加载的
K_TCR_TSS 	.set 0B<<4 				;TCR第4位TSS=0
K_TCR_TDDR 	.set 1001B<<0 			;TCR第3-0位TDDR=1001B
K_TCR 		.set K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TCR_TDDR
K_TCR_STOP 	.set 1B<<4 				;TSS=1时计数器停止
K_IPTR 		.set 0080h 				;指向0080H,默认是FF80
PERIOD 		.set 9999 				;定义计数周期
		.data
DATA_DP: 							;数据区指针
XF_Flag: .word 1 					;当前XF的电平标志,如果XF_Flag=1,则XF=1
;================================================
;主程序:
;================================================
		.text
CodeStart:
		STM #STACK+10H,SP 		;设堆栈指针SP
		LD #DATA_DP,DP 			;设数据地址DP
		STM #XF_Flag,AR2 		;AR指向XF标志
;改变中断向量表位置

		LDM PMST,A
		AND #7FH,A 			;保留低7位,清掉高位
		OR #K_IPTR,A ;
		STLM A,PMST
*初始化定时器0
*f=50MHz,定时2ms时:
*根据定时器长度计算公式:Tt=T*(1+TDDR)*(1+PRD)
*给定TDDR=9,PRD=9999,CLKOUT主频f=40MHz,T=25ns
*Tt=20ns*(1+9)*(1+9999)=2000us=2ms
*f=100Mhz,定时最大是:10ns*2^4*2^16=10ms,
		
;		STM K_TCR_STOP,TCR 		;停止计数器0
 		;STM #PERIOD,TIM 		;可设成跟PRD一样,也可不设自动加载
;		STM #PERIOD,PRD 		;设定计数周期
;		STM #K_TCR,TCR 			;开始Timer0
		stm #0002h,IMR 			;允许Timer0中断
		STM #0002h,IFR 			;清除挂起的中断
		
		rsbx intm 			;开中断
end: 	nop
		B end 
;================================================
;Timer0中断服务程序:TIN0_ISR
;================================================
TINT0_ISR: 
		PSHM ST0 			;本中断程序影响TC,位于ST0中
;判断当前XF状态并作电平变化
		BITF *AR2,#1 			;IF XF_Flag=1 then TC=1 else TC=0
		BC ResetXF,TC 			;IF TC=1 then XF=0 else XF=1
setXF: 
		SSBX XF 			;置XF为高电平
		ST #1,*AR2 			;相应修改标志
		B Next
ResetXF:
		RSBX XF 			;置XF为高电平
		ST #0,*AR2 			;相应修改标志
Next:
		POPM ST0
		RETE 
		.end 

⌨️ 快捷键说明

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