找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8182|回复: 3
打印 上一主题 下一主题
收起左侧

单片机模拟低频DDS信号发生器系统仿真加源程序 DAC0832实现

[复制链接]
跳转到指定楼层
#

给51黑电子论坛的朋友们分享一个用51单片机做的模拟低频DDS信号发生器系统,带proteus仿真工程文件加单片机源程序.

下面是仿真原理图:



DDS信号发生器的部分单片机源程序:
  1. #include "sin_dds.h"

  2. uchar i,j;
  3. uint counter,step;

  4. /**************定时器0初始化**********************************/
  5. void Init_Timer0(void)
  6. {
  7.    TMOD = (TMOD & 0XF0) | 0X01;         //定时器0,方式1
  8.    TH0 = 0xff;                                                //定时器初值
  9.    TL0 = 0xff;
  10.    TR0 =1;                                                         //启动定时器0
  11.    ET0 =1;                                                        //开定时器0中断
  12. }

  13. /*************************主函数*********************************/
  14. main()
  15. {
  16.    Init_Timer0();                                    //定时器0初始化
  17.    step=2;                                                        //数值采样步数初始化
  18.    EA = 1;                                                        //CPU开中断
  19.         while(1)                                               
  20.         {
  21.                 if(key_up == 0) if(step<4096) step++;         //数值采样步数加1,采样频率变高 ,正弦波周期变小
  22.                 if(key_dw == 0) if(step>1) step--;                 //数值采样步数减1,采样频率变低 ,正弦波周期变大
  23.                 while((!key_up)||(!key_dw));                             //若有一个键按下去,则正弦波周期始终保持不变
  24.         }
  25. }
  26. /******************系统OS定时中断服务***************************/
  27. void OS_Timer0(void) interrupt 1 using 2
  28. {                                                                                                          
  29.    TH0 = 0xff;                                                                          //重装定时器初值
  30.    TL0 = 0xff;                                                                           
  31.    counter = counter + step;                                          //counter以step的步数递增
  32.    dac1=type[(unsigned int)counter>>8];                          //当counter加满(256/step)次时,dac1的采样值变化一次
  33. }
复制代码

全部资料下载(含仿真工程文件和完整代码):
单片机模拟低频DDS信号发生器系统.rar (16.78 KB, 下载次数: 108)


评分

参与人数 1黑币 +3 收起 理由
12345轻轻、 + 3 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

板凳
ID:777622 发表于 2020-6-12 20:28 | 只看该作者
很好的文章
回复

使用道具 举报

沙发
ID:540111 发表于 2019-5-17 14:39 | 只看该作者
非常有帮助 厉害
回复

使用道具 举报

楼主
ID:540575 发表于 2019-5-17 11:51 | 只看该作者
很棒,非常棒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表