找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5452|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

關(guān)于AD9226的所有資料 單片機(jī)+fpga程序與pdf

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:657819 發(fā)表于 2019-12-13 18:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
關(guān)于AD9226的所有資料


fpga程序不能有中文路徑,打開時請注意避免��!

/******************test_demo1**************************/
fpga程序簡介:
    程序完全基于fpga實(shí)現(xiàn),由fpga構(gòu)建AD9226工作時序,驅(qū)動AD9226,完成對原始數(shù)據(jù)的存儲,可通過Quartus自帶的內(nèi)部邏輯分析儀(SignalTap)對數(shù)據(jù)進(jìn)行檢測。

單片機(jī)源程序如下:
  1. //***************************************************//
  2. //函數(shù)1:           ad9851_reset()                    //
  3. //函數(shù)2:           ad9851_reset_serial()             //
  4. //函數(shù)3:           ad9851_wr_parrel(unsigned char w0,double frequence)//
  5. //函數(shù)4:           ad9851_wr_serial(unsigned char w0,double frequence)//
  6. //版本:              V1.1                            //
  7. //日期:             2008/12/19                      //
  8. //修改日期:         2008/12/19                      //
  9. //編寫者:         xyc5208@163.com)            //
  10. //***************************************************//
  11. //                  子程序說明                       //
  12. //***************************************************//
  13. //函數(shù)1:  ad9851_reset()
  14. //        復(fù)位ad9851,之后為并口寫入模式        
  15. //函數(shù)2:  ad9851_reset_serial()
  16. //        復(fù)位ad9851,之后為串口寫入模式
  17. //函數(shù)3:  ad9851_wr_parrel(unsigned char w0,double frequence)
  18. //        并口寫ad9851數(shù)據(jù),w0為ad9851中w0的數(shù)據(jù),frequence
  19. //        為寫入的頻率       
  20. //函數(shù)4:  ad9851_wr_serial(unsigned char w0,double frequence)
  21. //        串口寫ad9851數(shù)據(jù),w0為ad9851中w0的數(shù)據(jù),frequence
  22. //        為寫入的頻率       
  23. //需定義的位:
  24.          //ad9851_w_clk    ;
  25.          //ad9851_fq_up    ;
  26.          //ad9851_rest     ;
  27.          //ad9851_bit_data ;
  28. //例:
  29.          //sbit ad9851_w_clk    =P2^2;
  30.          //sbit ad9851_fq_up    =P2^1;
  31.          //sbit ad9851_rest     =P2^0;
  32.          //sbit ad9851_bit_data =P1^7;
  33. //***************************************************//
  34. //                 寫數(shù)據(jù)說明                        //
  35. //***************************************************//
  36. //寫數(shù)據(jù)例:
  37. //       ad9851_reset()
  38. //       wr_lcd02_data(unsigned char x)
  39. //       ad9851_wr_parrel(0x01,1000)
  40. //       ad9851_wr_serial(0x01,1000)
  41. //***************************************************//
  42. //---------------------------------------------------//
  43. //                   程序                            //
  44. //---------------------------------------------------//
  45. # include <reg51.h>
  46. # include <stdio.h>
  47. # include <intrins.h>
  48. sbit ad9851_w_clk    =P2^2;  //P2.2口接AD9851的w_clk腳/PIN7
  49. sbit ad9851_fq_up    =P2^1;  //P2.1口接AD9851的fq_up腳/PIN8
  50. sbit ad9851_rest     =P2^0;  //P2.0口接AD9851的rest腳/PIN12
  51. sbit ad9851_bit_data =P1^7;  //P1.7口接AD9851的D7腳/PIN25
  52. //P1為8位數(shù)據(jù)口
  53. //***************************************************//
  54. //              ad9851復(fù)位(并口模式)                 //
  55. //---------------------------------------------------//
  56. void ad9851_reset()
  57. {
  58. ad9851_w_clk=0;
  59. ad9851_fq_up=0;
  60. //rest信號
  61. ad9851_rest=0;
  62. ad9851_rest=1;
  63. ad9851_rest=0;
  64. }
  65. //***************************************************//
  66. //              ad9851復(fù)位(并口模式)                 //
  67. //---------------------------------------------------//
  68. void ad9851_reset_serial()
  69. {
  70. ad9851_w_clk=0;
  71. ad9851_fq_up=0;
  72. //rest信號
  73. ad9851_rest=0;
  74. ad9851_rest=1;
  75. ad9851_rest=0;
  76. //w_clk信號
  77. ad9851_w_clk=0;
  78. ad9851_w_clk=1;
  79. ad9851_w_clk=0;
  80. //fq_up信號
  81. ad9851_fq_up=0;
  82. ad9851_fq_up=1;
  83. ad9851_fq_up=0;
  84. }
  85. //***************************************************//
  86. //          向ad9851中寫命令與數(shù)據(jù)(并口)             //
  87. //---------------------------------------------------//
  88. void ad9851_wr_parrel(unsigned char w0,double frequence)
  89. {
  90. unsigned char w;
  91. long int y;
  92. double x;
  93. //計(jì)算頻率的HEX值
  94. x=4294967295/180;//適合180M晶振/180為最終時鐘頻率(或30M六倍頻)
  95. //如果時鐘頻率不為180MHZ,修改該處的頻率值,單位MHz �。。�
  96. frequence=frequence/1000000;
  97. frequence=frequence*x;
  98. y=frequence;
  99. //寫w0數(shù)據(jù)
  100. w=w0;   
  101. P1=w;      //w0
  102. ad9851_w_clk=1;
  103. ad9851_w_clk=0;
  104. //寫w1數(shù)據(jù)
  105. w=(y>>24);
  106. P1=w;      //w1
  107. ad9851_w_clk=1;
  108. ad9851_w_clk=0;
  109. //寫w2數(shù)據(jù)
  110. w=(y>>16);
  111. P1=w;      //w2
  112. ad9851_w_clk=1;
  113. ad9851_w_clk=0;
  114. //寫w3數(shù)據(jù)
  115. w=(y>>8);
  116. P1=w;      //w3
  117. ad9851_w_clk=1;
  118. ad9851_w_clk=0;
  119. //寫w4數(shù)據(jù)
  120. w=(y>>=0);
  121. P1=w;      //w4
  122. ad9851_w_clk=1;
  123. ad9851_w_clk=0;
  124. //移入始能
  125. ad9851_fq_up=1;
  126. ad9851_fq_up=0;
  127. }
  128. //***************************************************//
  129. //          向ad9851中寫命令與數(shù)據(jù)(串口)             //
  130. //---------------------------------------------------//
  131. void ad9851_wr_serial(unsigned char w0,double frequence)
  132. {
  133. unsigned char i,w;
  134. long int y;
  135. double x;
  136. //計(jì)算頻率的HEX值
  137. x=4294967295/180;//適合180M晶振/180為最終時鐘頻率(或30M六倍頻)
  138. //如果時鐘頻率不為180MHZ,修改該處的頻率值,單位MHz  �。�!
  139. frequence=frequence/1000000;
  140. frequence=frequence*x;
  141. y=frequence;
  142. //寫w4數(shù)據(jù)
  143. w=(y>>=0);
  144. for(i=0;i<8;i++)
  145. {
  146. ad9851_bit_data=(w>>i)&0x01;
  147. ad9851_w_clk=1;
  148. ad9851_w_clk=0;
  149. }
  150. //寫w3數(shù)據(jù)
  151. w=(y>>8);
  152. for(i=0;i<8;i++)
  153. {
  154. ad9851_bit_data=(w>>i)&0x01;
  155. ad9851_w_clk=1;
  156. ad9851_w_clk=0;
  157. }
  158. //寫w2數(shù)據(jù)
  159. w=(y>>16);
  160. for(i=0;i<8;i++)
  161. {
  162. ad9851_bit_data=(w>>i)&0x01;
  163. ad9851_w_clk=1;
  164. ad9851_w_clk=0;
  165. }
  166. //寫w1數(shù)據(jù)
  167. w=(y>>24);
  168. for(i=0;i<8;i++)
  169. {
  170. ad9851_bit_data=(w>>i)&0x01;
  171. ad9851_w_clk=1;
  172. ad9851_w_clk=0;
  173. }
  174. //寫w0數(shù)據(jù)
  175. w=w0;   
  176. for(i=0;i<8;i++)
  177. {
  178. ad9851_bit_data=(w>>i)&0x01;
  179. ad9851_w_clk=1;
  180. ad9851_w_clk=0;
  181. }
  182. //移入始能
  183. ad9851_fq_up=1;
  184. ad9851_fq_up=0;
  185. }
  186. //***************************************************//
  187. //                   測試程序1000Hz                  //
  188. //---------------------------------------------------//
  189. main()
  190. {
  191. P0=0x00;
  192. P1=0x00;
  193. P2=0x00;
  194. P3=0x00;
  195. //---------------------------------------------------//
  196. //并行寫1000Hz程序
  197. //ad9851_reset();
  198. //ad9851_wr_parrel(0x01,1000);
  199. //0X01為開六備頻
  200. //ad9851_wr_parrel(0x00,1000);
  201. //0X00為不開六備頻
  202. //---------------------------------------------------//
  203. //---------------------------------------------------//
  204. //串行寫1000Hz程序
  205. ad9851_reset_serial();
  206. ad9851_wr_serial(0x01,1000);
  207. //0X01為開六備頻
  208. //ad9851_wr_serial(0x00,1000);
  209. //0X00為不開六備頻
  210. //---------------------------------------------------//
  211. while(1)
  212. {
  213. }
  214. }
復(fù)制代碼

所有資料51hei提供下載:
AD9226.rar (5.48 MB, 下載次數(shù): 99)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:721987 發(fā)表于 2020-4-3 22:13 | 只看該作者
還行,還可以拿來用醫(yī)用
回復(fù)

使用道具 舉報(bào)

板凳
ID:828188 發(fā)表于 2020-10-19 19:54 | 只看該作者
學(xué)習(xí)學(xué)習(xí),最近電賽A題做參考
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表