欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8266|回復: 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:540575 發表于 2019-5-17 11:51 | 只看該作者
很棒,非常棒
回復

使用道具 舉報

板凳
ID:540111 發表于 2019-5-17 14:39 | 只看該作者
非常有幫助 厲害
回復

使用道具 舉報

地板
ID:777622 發表于 2020-6-12 20:28 | 只看該作者
很好的文章
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表