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

📄 ad9850.c

📁 ad9850与单片机通信的程序
💻 C
字号:
#include<at89x52.h> 

#include<math.h>

float l,m,n,q,z;

double k; 

//-----------------------定义管脚-----------------------------

#define data_OUT P1

sbit FQ_UD=P3^7; //AD9850信号更新申请 

sbit W_CLK=P3^6;

sbit FESET=P3^2; //写控制字时钟

unsigned char CON_word[5]; 

void delay (unsigned int i ) 
{
	while(i--);
}

void Freq_Adjust(long value_Freq)

{ 
	unsigned int i; 
	long f;
	unsigned char L4,L3,L2,L1,L0; 
	FQ_UD=0; 
	f=value_Freq*86;
	L0=0x28;
	L4= f&0x000000ff;
	L3=(f>>8)&0x000000ff;
	L2=(f>>16)&0x000000ff;
	L1=(f>>24)&0x000000ff;
CON_word[0]=L0;

CON_word[4]=L4;

CON_word[3]=L3;

CON_word[2]=L2;

CON_word[1]=L1;

FQ_UD=0;

W_CLK=0;

delay(10);



CON_word[0]=CON_word[0]&0xFC; //置工作方式选择位为00

for(i=0;i<5;i++)

{ 

W_CLK=0;

data_OUT=CON_word[i]; //送控制字 

delay(10);

W_CLK=1; //上升延

delay(10);

}

FQ_UD=1;


} 


//-------------------------------------------------------------------------------

// 函数名称:main

// 用户主函数

// 函数功能:主函数

//------------------------------------------------------------------------------- 


main()

{

P2=0XF0;

m=0;
k=0;
l=0; 
FQ_UD=0; 
Freq_Adjust(50000);
 while(1)
	{ 
	 while(1)
		{
		m=keynum();
		if(m>=0&&m<=9||m==15||m==14)
			{ 
			z=m;
			Delay1ms(150);
			break;
			}
		}
		if(m>=0&&m<=9)
			{
			l++;
			}
		if(z==14)
			{
			goto BEGAIN;
			}
		if(z==15)
			{ 
			GotoXY(0,1);
			Print(&TempBuffer[0]);
			GotoXY(9,1);
			Print("OK!!");
			Delay1ms(1000);
			break; 
			}
		if(l==1)
			{k=z;}
		if(l==2)
			{k=k*10+z;}
		if(l==3)
			{k=k*10+z;}
		if(l==4)
			{ k=k*10+z;}
		if(l==5)
			{ k=k*10+z;}
		if(l==6)
			{ k=k*10+z;}
		if(l==7)
			{ k=k*10+z;}
if(l==8)
{ 
k=k*10+z;
}
if(l>8||k>25000000)
{
GotoXY(0,1);
Print(" ERROR!! ");
Delay1ms(500);
goto BEGAIN;
}


IntToStr(k,&TempBuffer[0],0);
GotoXY(0,1);
Print(&TempBuffer[0])
P2=0XF0;
Delay1ms(150); 
} 
FQ_UD=0; 
Freq_Adjust(k);
while(1)
{
GotoXY(0,0);
Print("THE PL DISPLAY");
IntToStr(k,&TempBuffer[0],0);
GotoXY(0,1);
Print(&TempBuffer[0]);
m=keynum();
if(m==10)
{ Delay1ms(300) ; 
if(k>=30000000){k=30000000;}
else{ k="k"+1000;}
} 
if(m==11)
{Delay1ms(300) ;
if(k<=0){k=0;}
else{k=k-1000;}
}
if(m==14)
{
goto BEGAIN;
} 
}
} 

⌨️ 快捷键说明

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