找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6652|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)+DAC0832數(shù)字信號(hào)發(fā)生器仿真及源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這個(gè)數(shù)字信號(hào)發(fā)生器的數(shù)模轉(zhuǎn)換部分是使用的dac0832芯片.下面是原理圖:


源程序:
  1. #include<reg51.h>
  2. #include<absacc.h>
  3. #define DAC0832 XBYTE[0x7fff]
  4. #define ADC0808 XBYTE[0xfeff]
  5. sbit s0=P1^0;
  6. sbit s1=P1^1;
  7. sbit s2=P1^2;
  8. sbit s3=P1^3;
  9. unsigned int i;
  10. unsigned int x=0;
  11. unsigned char freq;
  12. int code table[]=
  13. {
  14. 100,102,104,107,109,112,114,117,119,121,
  15. 124,126,129,131,133,135,138,140,
  16. 142,144,147,149,151,153,155,157,
  17. 159,161,163,165,167,168,170,172,
  18. 174,175,177,178,180,181,183,184,
  19. 185,187,188,189,190,191,192,193,
  20. 194,194,195,196,197,197,198,198,
  21. 198,199,199,199,199,199,200,199,
  22. 199,199,199,199,198,198,198,197,
  23. 197,196,195,194,194,193,192,191,
  24. 190,189,188,187,185,184,183,181,
  25. 180,178,177,175,174,172,170,168,
  26. 167,165,163,161,159,157,155,153,
  27. 151,149,147,144,142,140,138,135,
  28. 133,131,129,126,124,121,119,117,
  29. 114,112,109,107,104,102,100,97,
  30. 95,92,90,87,85,82,80,78,75,
  31. 73,70,68,66,64,61,59,57,55,
  32. 52,50,48,46,44,42,40,38,36,
  33. 34,32,31,29,27,25,24,22,21,
  34. 19,18,16,15,14,12,11,10,9,
  35. 8,7,6,5,5,4,3,2,2,1,
  36. 1,1,0,0,0,0,0,0,0,0,
  37. 0,0,1,1,1,2,2,3,4,5,
  38. 5,6,7,8,9,10,11,12,14,
  39. 15,16,18,19,21,22,24,25,27,
  40. 29,31,32,34,36,38,40,42,44,
  41. 46,48,50,52,55,57,59,61,64,
  42. 66,68,70,73,75,78,80,82,85,
  43. 87,90,92,95,97,100
  44. }; //正弦波形表               
  45. void sin()
  46. {

  47. while(s0==0)
  48. {
  49. ADC0808=0;
  50. for(i=0;i<freq+1;i++)
  51. DAC0832=table[x];
  52. x++;
  53. if(x>255)x=0;
  54. }
  55. }
  56. void jvchi()
  57. {
  58. while(s1==0)
  59. {
  60. ADC0808=0;
  61. for(i=0;i<freq+1;i++)
  62. DAC0832=x;
  63. x++;
  64. if(x>255)x=0;
  65. }
  66. }
  67. void triangle()
  68. {
  69. while(s2==0)
  70. {
  71. ADC0808=0;
  72. for(i=0;i<freq+1;i++)
  73. {
  74. if(x<256)
  75. DAC0832=x;
  76. else DAC0832=512-x;
  77. }
  78. x++;
  79. if(x>511)x=0;
  80. }
  81. }
  82. void fangbo()
  83. {
  84. while(s3==0)
  85. {
  86. ADC0808=0;
  87. for(i=0;i<freq+1;i++)
  88. {
  89. if(x<256)
  90. DAC0832=0xff;
  91. else DAC0832=0;
  92. }
  93. x++;
  94. if(x>511)x=0;
  95. }
  96. }
  97. void main()
  98. {
  99. IE=0X81;
  100. ADC0808=0;
  101. sin();
  102. jvchi();
  103. triangle();
  104. fangbo();
  105. }
  106. extern0()interrupt 0
  107. {
  108. freq=ADC0808;
  109. }
復(fù)制代碼


所有資料下載:
數(shù)字信號(hào)發(fā)生器.zip (26.48 KB, 下載次數(shù): 108)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:121114 發(fā)表于 2016-10-31 23:02 | 只看該作者
可以可以 很feel!!!請(qǐng)問(wèn) 你是如何完成的??都看了什么書??
回復(fù)

使用道具 舉報(bào)

板凳
ID:145318 發(fā)表于 2016-11-3 17:05 | 只看該作者
起碼程序沒(méi)問(wèn)題。。  一會(huì)用用試試
回復(fù)

使用道具 舉報(bào)

地板
ID:151444 發(fā)表于 2016-12-2 18:44 | 只看該作者
正弦波很好,沒(méi)有問(wèn)題。。。
回復(fù)

使用道具 舉報(bào)

5#
ID:210067 發(fā)表于 2017-6-11 17:41 | 只看該作者
找了好多不合適,希望這個(gè)可以
回復(fù)

使用道具 舉報(bào)

6#
ID:213627 發(fā)表于 2017-6-22 11:06 來(lái)自手機(jī) | 只看該作者
看了好多都不合適,總算在這找到了,看起來(lái)不錯(cuò),但怎么下載
回復(fù)

使用道具 舉報(bào)

7#
ID:244931 發(fā)表于 2017-11-2 09:14 | 只看該作者
好好好
回復(fù)

使用道具 舉報(bào)

8#
ID:286742 發(fā)表于 2018-3-2 08:46 | 只看該作者
圖片有點(diǎn)模糊

評(píng)分

參與人數(shù) 2黑幣 +10 收起 理由
9981難 + 5 的確有點(diǎn)模糊
請(qǐng)輸入用戶名 + 5 淡定

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

9#
ID:286831 發(fā)表于 2018-3-2 10:03 | 只看該作者
下載了不太會(huì)用

評(píng)分

參與人數(shù) 2黑幣 +10 收起 理由
9981難 + 5 多看看
likailikai + 5 慢慢看看

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

10#
ID:1078872 發(fā)表于 2023-6-10 21:42 | 只看該作者
你好,想問(wèn)下輸出的是那幾種波形呀
回復(fù)

使用道具 舉報(bào)

11#
ID:1077459 發(fā)表于 2023-6-12 17:22 | 只看該作者
會(huì)使用LCD或數(shù)碼管顯示頻率嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表