[51单片机] AD9833输出正弦波,程序求教,

[复制链接]
4676|13
 楼主| 我是卖鞋的 发表于 2016-11-7 16:31 | 显示全部楼层 |阅读模式
  1. 第一部分 main.c
  2. #include <c8051f020.h>
  3. #include <AD9833.h>
  4. #include <delay.h>

  5.           void close_dog()         //关看门狗
  6. {
  7.    WDTCN=0xDE;
  8.    WDTCN=0xAD;   
  9. }
  10.        
  11.            void system_clock()
  12. {
  13.         int i;
  14.         OSCXCN=0x67;         //启动外部晶体振荡器                          
  15.         for(i=0;i<256;i++) //等待振荡器启动(>1ms)
  16.         ;
  17.     while(OSCXCN&0x80==0)
  18.     ;                                           //等待振荡器稳定
  19.     OSCICN = 0x88;//选择外部振荡器作为系统时钟源并使能丢失时钟检测器
  20. }

  21.         void port_initialize ()          //端**叉开关设置
  22. {
  23.        
  24.         XBR2=0x00;           //禁止交叉开关使能  端口0,1,2,3强制为输入方式
  25.                
  26. }
  27.   
  28. void main()
  29. {
  30.    close_dog();
  31.    system_clock();
  32.    port_initialize ();
  33.    delay(3);
  34. //1000Hz对应的频率寄存器值为13422,二进制0011 0100 0110 1110
  35.    AD9833_LoadWave(0x2100,0x746E,0x4000,0xC000,0x2000);                 
  36.    while(1);
  37. }
  38. ......................................................................................

  39. 第二部分 AD9833.C
  40. #include <c8051f020.h>
  41. #include <delay.h>
  42. sbit FSYNC1   =P2^5;   //DDS使能引脚,低电平有效
  43. sbit SCLK9833 =P2^6;   //DDS串行时钟输入
  44. sbit SDATA9833=P2^7;   //DDS串行数据输入

  45. //模拟SPI总线
  46. void AD9833_write(unsigned int DDSdata)
  47. {
  48.    unsigned char i ;
  49.    unsigned int DDSdata_temp;
  50.    DDSdata_temp=DDSdata;
  51.    SCLK9833=1;
  52.   delay(10);
  53.    FSYNC1  =1;
  54.    delay(10);
  55.    FSYNC1  =0;
  56.    delay(10);
  57.    for(i=0;i<16;i++)     
  58.    {
  59.      if (DDSdata_temp&0x0001)  
  60.   {
  61.     SDATA9833=1;
  62.   }
  63.   else
  64.   {
  65.     SDATA9833=0;
  66.   }
  67.   delay(10);
  68.   SCLK9833=0;        //时钟信号下降沿数据送入I/O口
  69.   delay(10);
  70.   SCLK9833=1;
  71.   DDSdata_temp=DDSdata_temp>>1;  //16位数据从低位到高位送入               
  72.    }
  73.    FSYNC1   =1;
  74. }

  75. void AD9833_LoadWave(unsigned int Contr_Reg_date, unsigned int Fre_MSBdata, unsigned

  76. int Fre_LSBdata, unsigned int Phs_data, unsigned int Reset_data)
  77. {
  78.    unsigned int Fre_MSBdata_temp=Fre_MSBdata;
  79.    unsigned int Fre_LSBdata_temp=Fre_LSBdata;
  80.    unsigned int Contr_Reg_data_temp=Contr_Reg_date;
  81.    unsigned int Phs_data_temp=Phs_data;
  82.    unsigned int Reset_data_temp=Reset_data;
  83.    AD9833_write(Contr_Reg_data_temp);
  84.    AD9833_write(Fre_MSBdata_temp);
  85.    AD9833_write(Fre_LSBdata_temp);
  86.    AD9833_write(Phs_data_temp);
  87.    AD9833_write(Reset_data_temp);
  88. }
  89. ......................................................................................

  90. 第三部分 delay.c
  91. #include<c8051f020.h>

  92. void delay(unsigned int i)
  93. {
  94.           unsigned int j;
  95.           for(;i>0;i--)
  96.           for(j=125;j>0;j--)
  97.         ;
  98. }
 楼主| 我是卖鞋的 发表于 2016-11-7 16:34 | 显示全部楼层
这是写的让AD9833输出1khz正弦波的代码,结果芯片输出端没有信号输出,本人软件是短板,求助!
长的帅怪我落 发表于 2016-11-7 17:40 | 显示全部楼层
我有个9833的程序,stm32的,反正最后能输出正弦波,需要我发给你?前提是你对程序没要求,而且要自己会改,现在没空看你的程序
 楼主| 我是卖鞋的 发表于 2016-11-7 18:56 | 显示全部楼层
长的帅怪我落 发表于 2016-11-7 17:40
我有个9833的程序,stm32的,反正最后能输出正弦波,需要我发给你?前提是你对程序没要求,而且要自己会改 ...

好的,感谢
长的帅怪我落 发表于 2016-11-8 08:22 | 显示全部楼层

那我咋发你,不能发工程,只能发代码
 楼主| 我是卖鞋的 发表于 2016-11-8 08:58 | 显示全部楼层
长的帅怪我落 发表于 2016-11-8 08:22
那我咋发你,不能发工程,只能发代码

高级模式里面有一个附件选项,可以把工程打包成rar,再上传,麻烦你了。
长的帅怪我落 发表于 2016-11-8 09:04 | 显示全部楼层
本帖最后由 长的帅怪我落 于 2016-11-8 09:21 编辑
我是卖鞋的 发表于 2016-11-8 08:58
高级模式里面有一个附件选项,可以把工程打包成rar,再上传,麻烦你了。
我这个程序不属于加密范围,我没事的时候搞出来的,发出来不违反公司规定



长的帅怪我落 发表于 2016-11-8 09:05 | 显示全部楼层
我是卖鞋的 发表于 2016-11-8 08:58
高级模式里面有一个附件选项,可以把工程打包成rar,再上传,麻烦你了。
...

公司的所以文件都是加密的,这个工程也不例外。只能这么发了,你复制下,等几分钟后我重新编辑删了

评论

你能给我发一份stm32驱动ad9833的程序吗  发表于 2019-3-2 12:43
 楼主| 我是卖鞋的 发表于 2016-11-8 09:13 | 显示全部楼层
长的帅怪我落 发表于 2016-11-8 09:05
公司的所以文件都是加密的,这个工程也不例外。只能这么发了,你复制下,等几分钟后我重新编辑删了 ...

谢谢了!
 楼主| 我是卖鞋的 发表于 2016-11-11 18:48 | 显示全部楼层
长的帅怪我落 发表于 2016-11-8 09:05
公司的所以文件都是加密的,这个工程也不例外。只能这么发了,你复制下,等几分钟后我重新编辑删了 ...

额,好像没法把分数全给你一个人,结不了帖了
长的帅怪我落 发表于 2016-11-14 13:18 | 显示全部楼层
我是卖鞋的 发表于 2016-11-11 18:48
额,好像没法把分数全给你一个人,结不了帖了

多点几次就行了
兄小 发表于 2019-3-2 11:19 | 显示全部楼层
你好,你的AD9833的波形调出来了吗?能否把stm32的程序发一份给我啊,谢谢!
202059mm 发表于 2021-5-3 11:11 | 显示全部楼层
楼主你好,可以提供下程序不??我的AD9833也调不出波形,找不出原因了emmmm....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

98

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部