标题:
ad9850芯片的单片机例程
[打印本页]
作者:
tigerc
时间:
2019-5-24 16:30
标题:
ad9850芯片的单片机例程
最近一段时间在做电设竞赛,竞赛中用到了ad9850芯片,虽然ad9850芯片的引脚多而且功能很强,但是这块芯片的使用并不困难。lz整理了一些芯片使用的函数,以便后来者学习使用。
0.png
(4.63 KB, 下载次数: 38)
下载附件
2019-5-24 18:58 上传
单片机源程序如下:
#include"ad9850.h"
sbit ad9850_w_clk =P2^2; //P2.2口接ad9850的w_clk脚/PIN7
sbit ad9850_fq_up =P2^1; //P2.1口接ad9850的fq_up脚/PIN8
sbit ad9850_rest =P2^0; //P2.0口接ad9850的rest脚/PIN12
sbit ad9850_bit_data =P1^7; //P1.7口接ad9850的D7脚/PIN25
//P1为8位数据口
//***************************************************//
// ad9850复位(并口模式) //
//---------------------------------------------------//
void ad9850_reset()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
}
//***************************************************//
// ad9850复位(并口模式) //
//---------------------------------------------------//
void ad9850_reset_serial()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
//w_clk信号
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
//fq_up信号
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}
//***************************************************//
// 向ad9850中写命令与数据(并口) //
//---------------------------------------------------//
void ad9850_wr_parrel(unsigned char w0,double frequence)
{
unsigned char w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/125;//适合125M晶振
//如果时钟频率不为125MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w0数据
w=w0;
P1=w; //w0
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w1数据
w=(y>>24);
P1=w; //w1
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w2数据
w=(y>>16);
P1=w; //w2
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w3数据
w=(y>>8);
P1=w; //w3
ad9850_w_clk=1;
ad9850_w_clk=0;
//写w4数据
w=(y>>=0);
P1=w; //w4
ad9850_w_clk=1;
ad9850_w_clk=0;
//移入始能
ad9850_fq_up=1;
ad9850_fq_up=0;
}
//***************************************************//
// 向ad9850中写命令与数据(串口) //
//---------------------------------------------------//
void ad9850_wr_serial(unsigned char w0,double frequence)
{
unsigned char i,w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/125;//适合125M晶振
//如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w4数据
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w3数据
w=(y>>8);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w2数据
w=(y>>16);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w1数据
w=(y>>24);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w0数据
w=w0;
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//移入始能
ad9850_fq_up=1;
ad9850_fq_up=0;
}
复制代码
所有资料51hei提供下载:
ad9850.zip
(1.03 KB, 下载次数: 28)
2019-5-24 16:30 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
zxcvbfg
时间:
2019-6-2 10:34
哈哈,我也是,写谢分享
作者:
aaaaaa。
时间:
2019-9-21 21:08
那个接线是怎么接的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1