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

📄 复件 9851_asm.asm

📁 AD公司的DDS芯片AD9851的驱动
💻 ASM
字号:
.include hardware.inc
.define _9851_PORT P_IOA_Data

.ram
.var FQ_UD,W_CLK,_9851_RESET;

.code

.public _ini_AD9851
_ini_AD9851:.proc
	push r1,r5 to [sp];
	bp=sp+1;
	r1=[bp+7];
	r2=[bp+8];
	r3=[bp+9];
	r4=[bp+10];
	[_9851_RESET]=r1;
	[FQ_UD]=r2;
	[W_CLK]=r3;
	[INDATA]=r4;
//_9851_RESET_UP
	r2=[_9851_PORT];
	r2|=[_9851_RESET];
	[_9851_PORT]=r2;
//_9851_RESET_UP	
//_9851_RESET_DOWN
	r2=[_9851_PORT];
	r3=[_9851_RESET];
	r3^=0xffff;
	r2&=r3;
	[_9851_PORT]=r2;
	r4=0;
//_9851_RESET_DOWN
	pop r1,r5 from [sp];
	retf;
.endp

.public _AD9851_ParallelSend
_AD9851_ParallelSend:.proc
	push r1,r5 to [sp];
	bp=sp+1;
	r1=[bp+7];
	//FQ_UD_DOWN
	r2=[_9851_PORT];
	r3=[FQ_UD];
	r3^=0xffff;
	r2&=r3;
	[_9851_PORT]=r2;
	r4=0;
	//FQ_UD_DOWN	
send_data_loop:
	//W_CLK_DOWN
	r2=[_9851_PORT];
	r3=[W_CLK];
	r3^=0xffff;
	r2&=r3;
	[_9851_PORT]=r2;
	//W_CLK_DOWN
//senddata
	r2=[_9851_PORT];
	r2&=0xff00;
	r2|=[r1];
	[_9851_PORT]=r2;
//senddata
	//W_CLK_UP
	r2=[_9851_PORT];
	r2|=[W_CLK];
	[_9851_PORT]=r2;
	//W_CLK_UP		
	r4+=1;
	r1+=1;
	cmp r4,5;
	jne send_data_loop
	//FQ_UD_UP
	r2=[_9851_PORT];
	r2|=[FQ_UD];
	[_9851_PORT]=r2;
	//FQ_UD_UP	
	pop r1,r5 from [sp];
	retf;
.endp

.public _AD9851_SerialSenddata
_AD9851_SerialSenddata:.proc
	push r1,r5 to [sp];
	bp=sp+1;
	r1=[bp+7];
	call _SetToSerialMode;
	//FQ_UD_DOWN
	r2=[_9851_PORT];
	r3=[FQ_UD];
	r3^=0xffff;
	r2&=r3;
	[_9851_PORT]=r2;
	r4=0;
	//FQ_UD_DOWN
	
	retf;
.endp



.public _add_array
_add_array:.proc 
	push r1,r5 to [sp];
	bp=sp+1;
	r1=[bp+7];
	r2=[bp+8];
	bp=r1;
	r3=[bp+2];
	r3=r3 lsl 4;
	r3=r3 lsl 4;
	r3+=[bp+3];
	r4=[bp];
	r4=r4 lsl 4;
	r4=r4 lsl 4;
	r4+=[bp+1];
	r3+=r2;
	r4+=0,carry;
	r1=r3;
	r1&=0x00ff;
	[bp+3]=r1;
	r3=r3 lsr 4;
	r3=r3 lsr 4;
	[bp+2]=r3;
	r1=r4;
	r1&=0x00ff;
	[bp+1]=r1;
	r4=r4 lsr 4;
	r4=r4 lsr 4;
	[bp]=r4;
	pop r1,r5 from [sp];
	retf;
.endp

.public _ini_system
_ini_system:.proc
	push r1,r5 to [sp];
	r1=0xffff;
	[P_IOA_Dir]=r1;
	[P_IOA_Attrib]=r1;
	r1=0;
	[P_IOA_Data]=r1;
	r1=0xe0;
	[P_SystemClock]=r1;
	pop r1,r5 from [sp];
	retf;
.endp

⌨️ 快捷键说明

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