久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

AD9850輸出正弦波可調(diào)頻率源程序 有并行和串行

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:666095 發(fā)表于 2019-12-17 11:34 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
有并行和串行

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

所有資料51hei提供下載:
AD9850-1_V3_C程序.rar (76.99 KB, 下載次數(shù): 35)


9850IO接線.jpg (146.49 KB, 下載次數(shù): 54)

9850IO接線.jpg

51hei.png (5.56 KB, 下載次數(shù): 57)

51hei.png

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:972053 發(fā)表于 2021-11-16 18:21 | 只看該作者
為什么我用該代碼沒法產(chǎn)生輸出波形
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色网在线播放 | 久久高清 | 精品日本中文字幕 | 国产一区二区三区在线 | 日韩av视屏 | 国产成人精品亚洲日本在线观看 | 日韩精品免费看 | 日韩成人免费在线视频 | 日韩成人精品在线 | 欧美成年视频 | 一级做a爰片性色毛片16美国 | 亚洲日本一区二区三区四区 | 亚洲视频一区在线 | 久久蜜桃av一区二区天堂 | 日韩一区欧美一区 | 中文字幕一区二区在线观看 | 在线一区 | 亚洲国产精品久久久久婷婷老年 | 一区二区福利视频 | 亚洲乱码一区二区三区在线观看 | 国产精品夜夜春夜夜爽久久电影 | 午夜影院视频在线观看 | 亚洲精品久久久久avwww潮水 | 亚欧精品一区 | 国产精品区二区三区日本 | 久久精品中文字幕 | 国产成人艳妇aa视频在线 | 国产精品国产成人国产三级 | 国产农村妇女毛片精品久久麻豆 | 欧美在线观看黄色 | 国产成在线观看免费视频 | 激情五月婷婷综合 | xx性欧美肥妇精品久久久久久 | 欧美精品在线播放 | www.日本在线| 一级黄色毛片a | 国产精品日日夜夜 | 日韩一区二区久久 | 久久久久久国产 | 日韩免费激情视频 | 中文字幕第十一页 |