資源簡介
C語言,基于51單片機的DDS信號發生器(AD9833)程序

代碼片段和文件信息
#include?
#include?
??
//定義AD9833的時鐘????
#define??FMCLK?250000000?//AD9833的主晶振為1MHz?????
???
sbit?FSYNC1???=P1^0;???//DDS使能引腳低電平有效
sbit?SCLK9833?=P3^2;???//DDS串行時鐘輸入
sbit?SDATA9833=P3^3;???//DDS串行數據輸入
???
//函數聲明????
???
void?Write_word(unsigned?int?dataa);//寫16位數據到SPI接口????
void?init_ad9833(void);???
void?output(unsigned?long?freq_dword);//AD9833輸出指定頻率的正弦波:freq_dword=fout*268435456/FMCLK????
void?delay_nus(unsigned?int?t);//延時函數——微妙????
void?delay_nms(unsigned?int?t);//延時函數——毫秒????
???
int?main(void)???
{???????????
?init_ad9833();??
?output(100007);//freq_dword=fout*268435456/FMCLK???????
????while(1)???
????{??????????????
????}???
}???
???
???
???
/*-----------------------------------------------------------------------??
delay_nus???????:長延時函數(GCC內部延時函數的延時過短)??
???
輸入參數:?t?????????:延時時間?us??
-----------------------------------------------------------------------*/???
void?delay_nus(unsigned?int?t)???
{???
????while?(t--);???
??????????
}???
???
/*-----------------------------------------------------------------------??
delay_nms???????:長延時函數(GCC內部延時函數的延時過短)??
???
輸入參數:?t?????????:延時時間?ms??
-----------------------------------------------------------------------*/???
void?delay_nms(unsigned?int?t)???
{???
????while?(t--);???
??????????
}???
???
//-----------------------------------------------------------------------????
//Write_word????:?寫16位數據到SPI接口,軟件SPI方式????
//?????
//輸入參數:?data:???數據(16位)????
//-----------------------------------------------------------------------????
???
void?Write_word(unsigned?int?dataa)???
{???
????unsigned?char?i;???
???????
????SCLK9833=1;???
????SDATA9833=1;???
????FSYNC1=1;???
????delay_nus(2);???
????FSYNC1=0;???
????for(i=0;i<16;i++)???
????{???
????????if(dataa&0x8000)????SDATA9833=1;???
????????else????????????????SDATA9833=0;???
????????delay_nus(1);???
????????SCLK9833=0;???
????????delay_nus(5);???
????????SCLK9833=1;?????????????
????????dataa=dataa<<1;???
????}???
???????
????delay_nus(2);???
????FSYNC1=1;???
????delay_nus(1);???
????SCLK9833=0;???
????delay_nus(200);???
}???
void?init_ad9833(void)???
{???
????Write_word(0x2100);?//28位連續,選擇頻率0,相位0,RESET=1????
????delay_nus(1000);???
????Write_word(0x2000);???
????Write_word(0x4000);?//寫頻率0寄存器的低字節LSB????
????Write_word(0x403f);?//寫頻率0寄存器的高字節MSB????
????Write_word(0x2900);?//28位連續,選擇頻率0,相位0,RESET=1????
????Write_word(0x8000);?//寫頻率1寄存器的低字節LSB????
????Write_word(0x803f);?//寫頻率1寄存器的高字節MSB????
????Write_word(0xC002);?//寫相位0寄存器????
????Write_word(0xF100);?//寫相位1寄存器????
????Write_word(0x2000);?//28位連續,選擇頻率0,相位0,RESET=0???????
}???
???
//------------------------------------------------------------------????
//output????:AD9833輸出指定頻率的正弦波????
//????
//輸入參數:freq_value???類型:unsigned?long????
//輸出參數:無????
//------------------------------------------------------------------????
???
void?output(unsigned?long?freq_dword)//freq_dword=fout*2684
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4706??2011-07-21?10:19??AD9833\AD9833程序\AD9833
?????文件???????1038??2011-07-21?10:19??AD9833\AD9833程序\AD9833.hex
?????文件?????????42??2011-07-21?10:19??AD9833\AD9833程序\AD9833.lnp
?????文件???????7485??2011-07-14?10:55??AD9833\AD9833程序\AD9833.LST
?????文件???????7191??2011-07-21?10:19??AD9833\AD9833程序\AD9833.M51
?????文件??????????0??2009-06-29?15:30??AD9833\AD9833程序\AD9833.mpw
?????文件???????7356??2011-07-14?10:55??AD9833\AD9833程序\AD9833.OBJ
?????文件???????1848??2011-08-05?07:53??AD9833\AD9833程序\AD9833.Opt
?????文件????????198??2011-08-05?07:53??AD9833\AD9833程序\AD9833.plg
?????文件???????2001??2011-07-14?12:10??AD9833\AD9833程序\AD9833.Uv2
????.......??????1848??2011-07-21?10:19??AD9833\AD9833程序\AD9833_Opt.Bak
?????文件???????2204??2009-07-03?10:03??AD9833\AD9833程序\AD9833_Uv2.Bak
?????文件????????781??2009-07-23?15:29??AD9833\AD9833程序\config.h
?????文件??????77878??2009-08-11?12:55??AD9833\AD9833程序\Copy_2009811125512.bmp
?????文件??????77878??2009-08-11?12:55??AD9833\AD9833程序\Copy_2009811125531.bmp
?????文件???????6432??2011-07-14?12:10??AD9833\AD9833程序\include\AT89X52.H
?????文件???????3795??2013-03-09?11:26??AD9833\AD9833程序\main.c
?????文件???????6584??2011-07-21?10:19??AD9833\AD9833程序\main.LST
?????文件???????5308??2011-07-21?10:19??AD9833\AD9833程序\main.OBJ
????..A.SH.?????19456??2009-08-11?19:50??AD9833\AD9833程序\Thumbs.db
?????文件????1668702??2009-07-07?16:45??AD9833\AD9833程序\仿真時序.bmp
?????文件??????74989??2009-07-15?11:42??AD9833\AD9833程序\仿真時序Final.bmp
?????文件?????230454??2009-07-07?03:45??AD9833\AD9833程序\時基時序0X2100.bmp
?????文件?????230454??2009-07-08?17:45??AD9833\AD9833程序\時序0X2100.bmp
?????目錄??????????0??2011-07-21?10:19??AD9833\AD9833程序\include
?????目錄??????????0??2011-08-05?07:53??AD9833\AD9833程序
?????目錄??????????0??2013-03-09?11:25??AD9833
-----------?---------??----------?-----??----
??????????????2438628????????????????????27
............此處省略0個文件信息
- 上一篇:求陪集分解
- 下一篇:gco-v3.0代碼
評論
共有 條評論