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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6992|回復: 4
打印 上一主題 下一主題
收起左側

MSP430控制的DDS輸出波形為正弦波和方波c語言程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:51337 發表于 2013-7-14 16:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. //***************************************************//
  2. //                  子程序說明                       //
  3. //***************************************************//
  4. //函數1:  ad9850_reset()
  5. //        復位ad9850,之后為并口寫入模式        
  6. //函數2:  ad9850_reset_serial()
  7. //        復位ad9850,之后為串口寫入模式
  8. //函數3:  ad9850_wr_parrel(unsigned char w0,double frequence)
  9. //        并口寫ad9850數據,w0為ad9850中w0的數據,frequence
  10. //        為寫入的頻率   
  11. //函數4:  ad9850_wr_serial(unsigned char w0,double frequence)
  12. //        串口寫ad9850數據,w0為ad9850中w0的數據,frequence
  13. //        為寫入的頻率   
  14. //需定義的位:
  15.          //ad9850_w_clk    ;
  16.          //ad9850_fq_up    ;
  17.          //ad9850_rest     ;
  18.          //ad9850_bit_data ;
  19. //例:
  20.          //sbit ad9850_w_clk    =P2^2;
  21.          //sbit ad9850_fq_up    =P2^1;
  22.          //sbit ad9850_rest     =P2^0;
  23.          //sbit ad9850_bit_data =P1^7;
  24. //***************************************************//
  25. //                 寫數據說明                        //
  26. //***************************************************//
  27. //寫數據例:
  28. //       ad9850_reset()
  29. //       wr_lcd02_data(unsigned char x)
  30. //       ad9850_wr_parrel(0x01,1000)
  31. //       ad9850_wr_serial(0x01,1000)
  32. //***************************************************//
  33. //---------------------------------------------------//
  34. //                   程序                            //
  35. //---------------------------------------------------//
  36. # include <msp430f149.h>
  37. # include <stdio.h>

  38. #define ad9850_w_clk_High   P2OUT|=0x04
  39. #define ad9850_w_clk_Low    P2OUT&=~0x04
  40. #define ad9850_fq_up_High   P2OUT|=0x02
  41. #define ad9850_fq_up_Low    P2OUT&=~0x02
  42. #define ad9850_rest_High    P2OUT|=0x01
  43. #define ad9850_rest_Low     P2OUT&=~0x01
  44. #define ad9850_bit_data     P1OUT

  45. //***************************************************//
  46. //              ad9850復位(并口模式)                 //
  47. //---------------------------------------------------//
  48. void ad9850_reset()
  49. {
  50.   ad9850_w_clk_Low;
  51.   ad9850_fq_up_Low;
  52.   ad9850_rest_Low;
  53.   ad9850_rest_High;
  54.   ad9850_rest_Low;
  55. }
  56. //***************************************************//
  57. //              ad9850復位(并口模式)                 //
  58. //---------------------------------------------------//
  59. void ad9850_reset_serial()
  60. {
  61. ad9850_w_clk_Low;
  62. ad9850_fq_up_Low;
  63. //rest信號
  64.   ad9850_rest_Low;
  65.   ad9850_rest_High;
  66.   ad9850_rest_Low;
  67. //w_clk信號
  68. ad9850_w_clk_Low;
  69. ad9850_w_clk_High;
  70. ad9850_w_clk_Low;
  71. //fq_up信號
  72. ad9850_fq_up_Low;
  73. ad9850_fq_up_High;
  74. ad9850_fq_up_Low;
  75. }
  76. //***************************************************//
  77. //          向ad9850中寫命令與數據(并口)             //
  78. //---------------------------------------------------//
  79. void ad9850_wr_parrel(unsigned char w0,double frequence)
  80. {
  81. unsigned char w;
  82. long int y;
  83. double x;
  84. //計算頻率的HEX值
  85. x=4294967295/125;//適合125M晶振
  86. //如果時鐘頻率不為125MHZ,修改該處的頻率值,單位MHz !!!
  87. frequence=frequence/1000000;
  88. frequence=frequence*x;
  89. y=(double)frequence;
  90. //寫w0數據
  91. w=w0;   
  92. ad9850_bit_data=w;      //w0
  93. ad9850_w_clk_High;
  94. ad9850_w_clk_Low;
  95. //寫w1數據
  96. w=(y>>24);
  97. ad9850_bit_data=w;      //w1
  98. ad9850_w_clk_High;
  99. ad9850_w_clk_Low;
  100. //寫w2數據
  101. w=(y>>16);
  102. ad9850_bit_data=w;      //w2
  103. ad9850_w_clk_High;
  104. ad9850_w_clk_Low;
  105. //寫w3數據
  106. w=(y>>8);
  107. ad9850_bit_data=w;      //w3
  108. ad9850_w_clk_High;
  109. ad9850_w_clk_Low;
  110. //寫w4數據
  111. w=(y>>=0);
  112. ad9850_bit_data=w;      //w4
  113. ad9850_w_clk_High;
  114. ad9850_w_clk_Low;
  115. //移入始能
  116. ad9850_fq_up_High;
  117. ad9850_fq_up_Low;
  118. }

  119. //***************************************************//
  120. //                   測試程序1000Hz                  //
  121. //---------------------------------------------------//
  122. main()
  123. {
  124.    WDTCTL=WDTPW+WDTHOLD;
  125.    P1DIR=0XFF;
  126.    P2DIR=0XFF;
  127. //---------------------------------------------------//
  128. //并行寫1000Hz程序
  129. ad9850_reset();
  130. ad9850_wr_parrel(0x00,1);
  131. //---------------------------------------------------//
  132. while(1)
  133. {
  134. }
  135. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:51540 發表于 2013-8-22 08:40 | 只看該作者
看了很不錯!可實用!
回復

使用道具 舉報

板凳
ID:157106 發表于 2016-12-23 12:36 | 只看該作者
這要用到那幾個模塊
回復

使用道具 舉報

地板
ID:194371 發表于 2017-4-27 21:22 | 只看該作者
非常不錯!謝謝樓主!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品性做久久久久久 | 亚洲毛片 | 亚洲福利网 | 亚洲精品日韩精品 | 久久国产精品99久久久大便 | 中文字幕久久精品 | 成人在线观看网址 | 国产中文字幕在线 | 欧美一区二区三区大片 | 国产精品美女久久久久久不卡 | 欧美美女二区 | 五月天综合影院 | ww亚洲ww亚在线观看 | 国产精品99久久久久久www | 伊人久久精品一区二区三区 | 天堂网avav| 欧美精品欧美精品系列 | 久久中文免费视频 | 精品一区二区三区四区 | 别c我啊嗯国产av一毛片 | 国产盗摄视频 | 久久国产亚洲精品 | 亚洲 自拍 另类 欧美 丝袜 | 国产黄色一级电影 | 欧美综合一区 | 国产高清精品一区二区三区 | 中文字幕av高清 | 国产欧美精品一区二区三区 | 四虎免费视频 | 国产精品一区二区在线 | 91精品国产综合久久精品图片 | 一级毛片免费 | 99精品欧美一区二区蜜桃免费 | 在线看av网址 | 天天综合久久 | 91高清在线观看 | 99re| 国产免费一区二区 | 国产黄色大片在线观看 | 久久亚洲欧美日韩精品专区 | 国产色黄 |