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

📄 9851.c

📁 毕业设计的调频收音机的完整程序
💻 C
字号:
#include<regx51.h>
#include <intrins.h>
#include <AD9851.h>
sbit RST_AD9851= P3^0;  
//长延时
/******
void Delay80Ms(unsigned int k)
{
	unsigned int j;
	while(k--)
	{
		j=7269;
		while(j--);
	}
}
	*////////
	sbit FQ_UD_AD9851=P3^2;
    sbit W_CLK_AD9851=P3^1;


//======================
unsigned long int freq = 0;	
unsigned long int freq1=0;
unsigned long int freq2=0;
//unsigned char Control_AD9851 = 0x09; //  Phase0 ,power down mode and 6 REFCLK Multiplier enable
//unsigned char Control_AD9851 = 0x00; //  Phase0 ,power on   mode and 6 REFCLK Multiplier disable
unsigned char Control_AD9851 = 0x01; //  Phase0 ,power on   mode and 6 REFCLK Multiplier enable
unsigned char W4=0X0e;
unsigned char W3=0X38;
unsigned char W2=0Xe3;
unsigned char W1=0X8e;
unsigned char W5;
unsigned char W6;
unsigned char W7;
unsigned char W8;
void Parallel2Serial_AD9851(void)
{    FQ_UD_AD9851=0;
     W_CLK_AD9851=0;
     P1=Control_AD9851;		   //写入控制字
     W_CLK_AD9851=1;
     W_CLK_AD9851=0;

     P1=W1;       //	P0=W8;				  //先发高位
     W_CLK_AD9851=1;
     W_CLK_AD9851=0;

     P1=W2;	 //P0=W7;
     W_CLK_AD9851=1;
     W_CLK_AD9851=0;

     P1=W3;      //	P0=W6;
     W_CLK_AD9851=1;
     W_CLK_AD9851=0;

     P1=W4;//P0=W5;
     W_CLK_AD9851=1;
     W_CLK_AD9851=0;

	 FQ_UD_AD9851=1;
     FQ_UD_AD9851=0;
}

void Set_Freq(float Freqency)
{   

	 unsigned char i;

   //freq= (unsigned long int)(23.86092942*Freqency);	// SYSCLK = 180 MHz
  // freq= (unsigned long int)(23.86115*Freqency);	// SYSCLK = 180 MHz
  freq= (unsigned long int)(28.6331153*Freqency);	// SYSCLK = 150 MHz
  //	freq=200;
  // 	freq2=200;

/*	for(i=0;i<32;i++)
	{
		if(freq&0x0001)
		{
		    if(i==0)	freq1=freq1+1;
			freq1=(freq1+1)<<1;
			freq=freq>>1;
		}
	  else
	  {
	   if(i==0)	freq1=0;
	  	freq1=freq1<<1;
		freq=freq>>1;
	  }
	}  */
	freq1=freq|(freq&0x01);
		for(i=0;i<32;i++)
		{
		   freq1=freq1<<1;			  //左移一位
           freq=freq>>1;
           freq1=freq1|(freq&0x01);
		}
	

                   			//把freq中的高位放到freq1的低位
   W1=(unsigned char)freq1&0xff;
   freq1=freq1>>8;
  // W5=(unsigned char)freq2&0xff;
 //  freq2=freq2>>8;

   W2=(unsigned char)freq1&0xff;
   freq1=freq1>>8;
  // W6=(unsigned char)freq2&0xff;
  // freq2=freq2>>8;

   W3=(unsigned char)freq1&0xff;
   freq1=freq1>>8;
  // W7=(unsigned char)freq2&0xff;
  // freq2=freq2>>8;

   W4=(unsigned char)freq1&0xff;
  // W8=(unsigned char)freq2&0xff;
 	
   Parallel2Serial_AD9851();
}
void main(void)
{

 RST_AD9851=1;
 RST_AD9851=1;
 RST_AD9851=0;
  Set_Freq(8000000);//发送的频率
	while(1)
	{ 
;
	}
		
	
}

⌨️ 快捷键说明

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