日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ad9850c语言编程,AD9850与单片机波形生成程序及设计资料下载

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ad9850c语言编程,AD9850与单片机波形生成程序及设计资料下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//***************************************************//

//函數1:? ?? ?? ???ad9851_reset()? ?? ?? ?? ?? ?? ???//

//函數2:? ?? ?? ???ad9851_reset_serial()? ?? ?? ?? ? //

//函數3:? ?? ?? ???ad9851_wr_parrel(unsigned char w0,double frequence)//

//函數4:? ?? ?? ???ad9851_wr_serial(unsigned char w0,double frequence)//

//版本:? ?? ?? ?? ???V1.1? ?? ?? ?? ?? ?? ?? ?? ?? ? //

//***************************************************//

//? ?? ?? ?? ?? ?? ?子程序說明? ?? ?? ?? ?? ?? ?? ???//

//***************************************************//

//函數1:??ad9851_reset()

//? ?? ???復位ad9851,之后為并口寫入模式

//函數2:??ad9851_reset_serial()

//? ?? ???復位ad9851,之后為串口寫入模式

//函數3:??ad9851_wr_parrel(unsigned char w0,double frequence)

//? ?? ???并口寫ad9851數據,w0為ad9851中w0的數據,frequence

//? ?? ???為寫入的頻率

//函數4:??ad9851_wr_serial(unsigned char w0,double frequence)

//? ?? ???串口寫ad9851數據,w0為ad9851中w0的數據,frequence

//? ?? ???為寫入的頻率

//需定義的位:

//ad9851_w_clk? ? ;

//ad9851_fq_up? ? ;

//ad9851_rest? ???;

//ad9851_bit_data ;

//例:

//sbit ad9851_w_clk? ? =P2^2;

//sbit ad9851_fq_up? ? =P2^1;

//sbit ad9851_rest? ???=P2^0;

//sbit ad9851_bit_data =P1^7;

//***************************************************//

//? ?? ?? ?? ?? ???寫數據說明? ?? ?? ?? ?? ?? ?? ?? ?//

//***************************************************//

//寫數據例:

//? ?? ? ad9851_reset()

//? ?? ? wr_lcd02_data(unsigned char x)

//? ?? ? ad9851_wr_parrel(0x01,1000)

//? ?? ? ad9851_wr_serial(0x01,1000)

//***************************************************//

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

//? ?? ?? ?? ?? ?? ? 程序? ?? ?? ?? ?? ?? ?? ?? ?? ? //

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

# include

# include

# include

sbit ad9851_w_clk? ? =P2^2;??//P2.2口接AD9851的w_clk腳/PIN7

sbit ad9851_fq_up? ? =P2^1;??//P2.1口接AD9851的fq_up腳/PIN8

sbit ad9851_rest? ???=P2^0;??//P2.0口接AD9851的rest腳/PIN12

sbit ad9851_bit_data =P1^7;??//P1.7口接AD9851的D7腳/PIN25

//P1為8位數據口

//***************************************************//

//? ?? ?? ?? ???ad9851復位(并口模式)? ?? ?? ?? ?? ???//

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

void ad9851_reset()

{

ad9851_w_clk=0;

ad9851_fq_up=0;

//rest信號

ad9851_rest=0;

ad9851_rest=1;

ad9851_rest=0;

}

//***************************************************//

//? ?? ?? ?? ???ad9851復位(并口模式)? ?? ?? ?? ?? ???//

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

void ad9851_reset_serial()

{

ad9851_w_clk=0;

ad9851_fq_up=0;

//rest信號

ad9851_rest=0;

ad9851_rest=1;

ad9851_rest=0;

//w_clk信號

ad9851_w_clk=0;

ad9851_w_clk=1;

ad9851_w_clk=0;

//fq_up信號

ad9851_fq_up=0;

ad9851_fq_up=1;

ad9851_fq_up=0;

}

//***************************************************//

//? ?? ?? ? 向ad9851中寫命令與數據(并口)? ?? ?? ?? ? //

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

void ad9851_wr_parrel(unsigned char w0,double frequence)

{

unsigned char w;

long int y;

double x;

//計算頻率的HEX值

x=4294967295/180;//適合180M晶振/180為最終時鐘頻率(或30M六倍頻)

//如果時鐘頻率不為180MHZ,修改該處的頻率值,單位MHz !!!

frequence=frequence/1000000;

frequence=frequence*x;

y=frequence;

//寫w0數據

w=w0;

P1=w;? ?? ?//w0

ad9851_w_clk=1;

ad9851_w_clk=0;

//寫w1數據

w=(y>>24);

P1=w;? ?? ?//w1

ad9851_w_clk=1;

ad9851_w_clk=0;

//寫w2數據

w=(y>>16);

P1=w;? ?? ?//w2

ad9851_w_clk=1;

ad9851_w_clk=0;

//寫w3數據

w=(y>>8);

P1=w;? ?? ?//w3

ad9851_w_clk=1;

ad9851_w_clk=0;

//寫w4數據

w=(y>>=0);

P1=w;? ?? ?//w4

ad9851_w_clk=1;

ad9851_w_clk=0;

//移入始能

ad9851_fq_up=1;

ad9851_fq_up=0;

}

//***************************************************//

//? ?? ?? ? 向ad9851中寫命令與數據(串口)? ?? ?? ?? ? //

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

void ad9851_wr_serial(unsigned char w0,double frequence)

{

unsigned char i,w;

long int y;

double x;

//計算頻率的HEX值

x=4294967295/180;//適合180M晶振/180為最終時鐘頻率(或30M六倍頻)

//如果時鐘頻率不為180MHZ,修改該處的頻率值,單位MHz??!!!

frequence=frequence/1000000;

frequence=frequence*x;

y=frequence;

//寫w4數據

w=(y>>=0);

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

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//寫w3數據

w=(y>>8);

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

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//寫w2數據

w=(y>>16);

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

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//寫w1數據

w=(y>>24);

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

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//寫w0數據

w=w0;

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

{

ad9851_bit_data=(w>>i)&0x01;

ad9851_w_clk=1;

ad9851_w_clk=0;

}

//移入始能

ad9851_fq_up=1;

ad9851_fq_up=0;

}

//***************************************************//

//? ?? ?? ?? ?? ?? ? 測試程序1000Hz? ?? ?? ?? ?? ?? ?//

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

main()

{

P0=0x00;

P1=0x00;

P2=0x00;

P3=0x00;

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

……………………

…………限于本文篇幅 余下代碼請從51黑下載附件…………

總結

以上是生活随笔為你收集整理的ad9850c语言编程,AD9850与单片机波形生成程序及设计资料下载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。