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

📄 delay.asm

📁 5402DSP程序设计语言
💻 ASM
字号:
;延时子程序  delay.asm
;===============================================
		.global  ms_delay ,us_delay,t_delay1,t_delay2
ms_delay: 
;	stm 	#1h,ar3
	stm 	#11c6h,ar4		;1ms=4(cycles)x5000x0.05us   1388h=5000d(f=20MHz=10MHzx2)
;	stm 	#30d4h,ar4		;1ms=4(cycles)x12500x0.02us  30d4h=12500d(f=50MHz=10MHzx5)
;	stm 	#61a8h,ar4		;1ms=4(cycles)x25000x0.01us  61a8h=25000d(f=100MHz=10MHzx10)	
ms_loop:
	banz 	ms_loop,*ar4-
	;nop
	banz 	ms_delay,*ar3-
	nop
	ret
;===============================================	
us_delay: 
;	stm 	#1h,ar3
	stm 	#4h,ar4			;1us=4(cycles)x5x0.05us   (5h=5d)    (f=20MHz=10MHzx2)
;	stm 	#0ch,ar4		;1us=4(cycles)x12.5x0.02us (0ch=12.5d)(f=50MHz=10MHzx5)
;	stm 	#19h,ar4		;1us=4(cycles)x25x0.01us     (19h=25d)(f=100MHz=10MHzx10)
us_loop:					
	banz 	us_loop,*ar4-   ;1 个指令周期 = 0.05uS=1*1/20us(when f=20MHz=10MHzx2)
							;CLKMD1 D2 D3 = 100 (X2) CLKMD=0x1007h
	;nop					;1 个指令周期 = 0.02uS=1*1/50us(when f=50MHz=10MHzx5)
							;CLKMD1 D2 D3 = 010 (X5) CLKMD=0x4007h
							;1 个指令周期 = 0.01uS=1*1/100us(when f=100MHz=10MHzx10)
							;CLKMD1 D2 D3 = 001 (X10) CLKMD=0x9007h
	banz 	us_delay,*ar3-  ;banz	when TRUE  4 cycles
	nop
	ret						;            FALSE 2 cycles
							;stm	2 cycles
							;0f9h=>249d
							;270fh=>9999d 
;===============================================
t_delay1:
		nop
		nop
		nop
		nop
		nop
		
		nop
		nop
		ret
t_delay2:
		nop
		nop
		ret
;===============================================

⌨️ 快捷键说明

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