標(biāo)題:
AD9850串行與并行編程實(shí)例
[打印本頁(yè)]
作者:
lichenjie
時(shí)間:
2017-11-12 16:49
標(biāo)題:
AD9850串行與并行編程實(shí)例
包括AD9850串行和并行代碼所有資料51hei提供下載::
AD9850-串行.rar
(46.25 KB, 下載次數(shù): 29)
2017-11-12 16:47 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
ad9850-并行.rar
(39.72 KB, 下載次數(shù): 23)
2017-11-12 16:47 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
單片機(jī)源程序(串行)如下:
# include <reg51.h>
# include <stdio.h>
# include <intrins.h>
sbit ad9850_w_clk =P0^2; //P2.2口接ad9850的w_clk腳/PIN7
sbit ad9850_fq_up =P0^1; //P2.1口接ad9850的fq_up腳/PIN8
sbit ad9850_rest =P0^0; //P2.0口接ad9850的rest腳/PIN12
sbit ad9850_bit_data =P0^3; //P1.3口接ad9850的D7腳/PIN25
sbit ad9850_w_clks =P0^6; //P2.6口接ad9850的w_clk腳/PIN7
sbit ad9850_fq_ups =P0^5; //P2.5口接ad9850的fq_up腳/PIN8
sbit ad9850_rests =P0^4; //P2.4口接ad9850的rest腳/PIN12
sbit ad9850_bit_datas =P0^7; //P1.7口接ad9850的D7腳/PIN25
//***************************************************//
// ad9850復(fù)位(串口模式) //
//---------------------------------------------------//
void ad9850_reset_serial()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信號(hào)
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
//w_clk信號(hào)
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
//fq_up信號(hào)
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}
void ad9850_reset_serials()
{
ad9850_w_clks=0;
ad9850_fq_ups=0;
//rest信號(hào)
ad9850_rests=0;
ad9850_rests=1;
ad9850_rests=0;
//w_clk信號(hào)
ad9850_w_clks=0;
ad9850_w_clks=1;
ad9850_w_clks=0;
//fq_up信號(hào)
ad9850_fq_ups=0;
ad9850_fq_ups=1;
ad9850_fq_ups=0;
}
//***************************************************//
// 向ad9850中寫命令與數(shù)據(jù)(串口) //
//---------------------------------------------------//
void ad9850_wr_serial(unsigned char w0,double frequence)
{
unsigned char i,w;
long int y;
double x;
//計(jì)算頻率的HEX值
x=4294967295/125;//適合125M晶振
//如果時(shí)鐘頻率不為180MHZ,修改該處的頻率值,單位MHz !。
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//寫w4數(shù)據(jù)
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//寫w3數(shù)據(jù)
w=(y>>8);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//寫w2數(shù)據(jù)
w=(y>>16);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//寫w1數(shù)據(jù)
w=(y>>24);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//寫w0數(shù)據(jù)
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;
}
void ad9850_wr_serials(unsigned char w0,double frequence)
{
unsigned char i,w;
long int y;
double x;
//計(jì)算頻率的HEX值
x=4294967295/125;//適合125M晶振
//如果時(shí)鐘頻率不為180MHZ,修改該處的頻率值,單位MHz 。!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//寫w4數(shù)據(jù)
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9850_bit_datas=(w>>i)&0x01;
ad9850_w_clks=1;
ad9850_w_clks=0;
}
//寫w3數(shù)據(jù)
w=(y>>8);
for(i=0;i<8;i++)
{
ad9850_bit_datas=(w>>i)&0x01;
ad9850_w_clks=1;
ad9850_w_clks=0;
}
//寫w2數(shù)據(jù)
w=(y>>16);
for(i=0;i<8;i++)
{
ad9850_bit_datas=(w>>i)&0x01;
ad9850_w_clks=1;
ad9850_w_clks=0;
}
//寫w1數(shù)據(jù)
w=(y>>24);
for(i=0;i<8;i++)
{
ad9850_bit_datas=(w>>i)&0x01;
ad9850_w_clks=1;
ad9850_w_clks=0;
}
//寫w0數(shù)據(jù)
w=w0;
for(i=0;i<8;i++)
{
ad9850_bit_datas=(w>>i)&0x01;
ad9850_w_clks=1;
ad9850_w_clks=0;
}
//移入始能
ad9850_fq_ups=1;
ad9850_fq_ups=0;
}
void delay(int max)
{
int i,j,k;
for(i=0;i<max;i++)
for(j=0;j<6144;j++)
k++;
}
//***************************************************//
// 測(cè)試程序1000Hz //
//---------------------------------------------------//
main()
{
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
作者:
zxy2266
時(shí)間:
2017-11-25 19:57
看來關(guān)心的不多啊,玩信號(hào)的少
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1