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

📄 step.c

📁 凌阳单片机控制的DDS芯片AD9851(串行和并行控制方式)
💻 C
字号:
#include"spce061a.h"
#define  w_clk 0x0100  //控制字载入时钟,上升沿
#define FQ_UD 0x0200  //频率转换控制,上升沿
#define  RESET 0x0400  //复位
unsigned int KeyFlag=0;//按键标志
unsigned long int pir_fr;//前一次写入频率
unsigned int W0=0x0009,W1=0,W2=0,W3=0,W4=0;//系统控制字
 unsigned int key=0;
void update()
{  
	*P_IOA_Data=W0;  //W0
	*P_IOA_Data|=w_clk;
	   delay(2);	   
	*P_IOA_Data=W1;   //w1
    *P_IOA_Data|=w_clk;	
	   delay(2);
	*P_IOA_Data=W2;  //w2
	*P_IOA_Data|=w_clk;
	  delay(2);
	*P_IOA_Data=W3;//w3
	*P_IOA_Data|=w_clk;
	    delay(2);
	 *P_IOA_Data=W4;//w4
	 *P_IOA_Data|=w_clk;
	     delay(2);
	  *P_IOA_Data=FQ_UD;
	    delay(10);
	 *P_Watchdog_Clear=0x0001;   
}
void writef(unsigned long int Hz)//写频率
{	
	unsigned long int temp;
	pir_fr=Hz;
	temp=(unsigned long int)(Hz*35.7913941333);
	W1=(temp&0xff000000)>>24;
	W2=(temp&0x00ff0000)>>16;
	W3=(temp&0x0000ff00)>>8;
	W4=(temp&0x000000ff);	
}

void delay(unsigned int time)
{    
	while(time--)
		*P_Watchdog_Clear=0x0001;
}
void initial(void)
{   
	*P_SystemClock=0x0080;//系统时钟
	*P_IOA_Dir=0xffff;
	*P_IOA_Attrib=0xffff;
	*P_IOA_Data=0x0000;
	*P_IOB_Dir=0xf000;
	*P_IOB_Attrib=0xf000;
	*P_IOB_Data=0xf000;
    *P_IOA_Data=*P_IOA_Data|RESET; //AD8951复位
    delay(10);
	*P_IOA_Data=0x0000;
   writef(4.700e+6);  //系统默认频率
	update();
	SP_INT_128Hz();
}
main()
{  
	initial();
	while(1)
	{	
    	 while(KeyFlag!=0)
     {   
		   KeyFlag=0;
	       key=F_Get_Key();
		switch(key)
		  {
			case 0:
			 {
			  	writef(pir_fr+100);
			  	update();
			 }			 				 	
			break;
			case 1:	
			{   
				if(pir_fr>100)
				{
				  writef(pir_fr-100);
			  	  update();
				}
			}    
			break;
			case 2:
			{   
			writef(pir_fr+1000000);
			update();	
			}
			break;
			case 3: 
			{   
				
				if(pir_fr>1000000)
				{
					writef(pir_fr-1000000);
			  		update();
				}
			 }  
			break;
			case 4:
		    initial();
			break;
			default: break;						
		}
		 *P_Watchdog_Clear=0x0001; 
 	}
  *P_Watchdog_Clear=0x0001; 
	}
}
        	 

⌨️ 快捷键说明

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