這個數字信號發生器的數模轉換部分是使用的dac0832芯片.下面是原理圖:
0.png (32.78 KB, 下載次數: 90)
下載附件
2016-9-27 16:24 上傳
源程序:
- #include<reg51.h>
- #include<absacc.h>
- #define DAC0832 XBYTE[0x7fff]
- #define ADC0808 XBYTE[0xfeff]
- sbit s0=P1^0;
- sbit s1=P1^1;
- sbit s2=P1^2;
- sbit s3=P1^3;
- unsigned int i;
- unsigned int x=0;
- unsigned char freq;
- int code table[]=
- {
- 100,102,104,107,109,112,114,117,119,121,
- 124,126,129,131,133,135,138,140,
- 142,144,147,149,151,153,155,157,
- 159,161,163,165,167,168,170,172,
- 174,175,177,178,180,181,183,184,
- 185,187,188,189,190,191,192,193,
- 194,194,195,196,197,197,198,198,
- 198,199,199,199,199,199,200,199,
- 199,199,199,199,198,198,198,197,
- 197,196,195,194,194,193,192,191,
- 190,189,188,187,185,184,183,181,
- 180,178,177,175,174,172,170,168,
- 167,165,163,161,159,157,155,153,
- 151,149,147,144,142,140,138,135,
- 133,131,129,126,124,121,119,117,
- 114,112,109,107,104,102,100,97,
- 95,92,90,87,85,82,80,78,75,
- 73,70,68,66,64,61,59,57,55,
- 52,50,48,46,44,42,40,38,36,
- 34,32,31,29,27,25,24,22,21,
- 19,18,16,15,14,12,11,10,9,
- 8,7,6,5,5,4,3,2,2,1,
- 1,1,0,0,0,0,0,0,0,0,
- 0,0,1,1,1,2,2,3,4,5,
- 5,6,7,8,9,10,11,12,14,
- 15,16,18,19,21,22,24,25,27,
- 29,31,32,34,36,38,40,42,44,
- 46,48,50,52,55,57,59,61,64,
- 66,68,70,73,75,78,80,82,85,
- 87,90,92,95,97,100
- }; //正弦波形表
- void sin()
- {
- while(s0==0)
- {
- ADC0808=0;
- for(i=0;i<freq+1;i++)
- DAC0832=table[x];
- x++;
- if(x>255)x=0;
- }
- }
- void jvchi()
- {
- while(s1==0)
- {
- ADC0808=0;
- for(i=0;i<freq+1;i++)
- DAC0832=x;
- x++;
- if(x>255)x=0;
- }
- }
- void triangle()
- {
- while(s2==0)
- {
- ADC0808=0;
- for(i=0;i<freq+1;i++)
- {
- if(x<256)
- DAC0832=x;
- else DAC0832=512-x;
- }
- x++;
- if(x>511)x=0;
- }
- }
- void fangbo()
- {
- while(s3==0)
- {
- ADC0808=0;
- for(i=0;i<freq+1;i++)
- {
- if(x<256)
- DAC0832=0xff;
- else DAC0832=0;
- }
- x++;
- if(x>511)x=0;
- }
- }
- void main()
- {
- IE=0X81;
- ADC0808=0;
- sin();
- jvchi();
- triangle();
- fangbo();
- }
- extern0()interrupt 0
- {
- freq=ADC0808;
- }
復制代碼
0.png (51.88 KB, 下載次數: 86)
下載附件
2016-9-27 16:25 上傳
所有資料下載:
數字信號發生器.zip
(26.48 KB, 下載次數: 108)
2016-9-27 16:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|