關于AD9226的所有資料
51hei.png (11.85 KB, 下載次數: 46)
下載附件
2019-12-13 21:45 上傳
fpga程序不能有中文路徑,打開時請注意避免!!
/******************test_demo1**************************/
fpga程序簡介:
程序完全基于fpga實現,由fpga構建AD9226工作時序,驅動AD9226,完成對原始數據的存儲,可通過Quartus自帶的內部邏輯分析儀(SignalTap)對數據進行檢測。
單片機源程序如下:
- //***************************************************//
- //函數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 //
- //日期: 2008/12/19 //
- //修改日期: 2008/12/19 //
- //編寫者: xyc5208@163.com) //
- //***************************************************//
- // 子程序說明 //
- //***************************************************//
- //函數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 <reg51.h>
- # include <stdio.h>
- # include <intrins.h>
- 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;
- //---------------------------------------------------//
- //并行寫1000Hz程序
- //ad9851_reset();
- //ad9851_wr_parrel(0x01,1000);
- //0X01為開六備頻
- //ad9851_wr_parrel(0x00,1000);
- //0X00為不開六備頻
- //---------------------------------------------------//
- //---------------------------------------------------//
- //串行寫1000Hz程序
- ad9851_reset_serial();
- ad9851_wr_serial(0x01,1000);
- //0X01為開六備頻
- //ad9851_wr_serial(0x00,1000);
- //0X00為不開六備頻
- //---------------------------------------------------//
- while(1)
- {
- }
- }
復制代碼
51hei.png (5.46 KB, 下載次數: 33)
下載附件
2019-12-13 21:46 上傳
所有資料51hei提供下載:
AD9226.rar
(5.48 MB, 下載次數: 99)
2019-12-13 18:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|