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

標題: 單片機模擬低頻DDS信號發生器系統仿真加源程序 DAC0832實現 [打印本頁]

作者: 51hei學習技術中    時間: 2017-3-17 23:06
標題: 單片機模擬低頻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)



作者: QQ291078365    時間: 2019-5-17 11:51
很棒,非常棒
作者: wxkn937    時間: 2019-5-17 14:39
非常有幫助 厲害
作者: 1627350311    時間: 2020-6-12 20:28
很好的文章




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1