AD模块的dds信源程序_第1页
AD模块的dds信源程序_第2页
AD模块的dds信源程序_第3页
AD模块的dds信源程序_第4页
AD模块的dds信源程序_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include #include #include /-sbit ad9833_sdata =P 2人2;sbit ad9833_sclk =P 2人3;sbit ad9833_fs yn c1 =P 2人4;sbit ad9833_fs ync2=P 2人1;/外部中断的IOsbit K3=P 3人2;sbit K4=P3A3; #define uchar unsigned char#define uint unsigned int long int m;uint w1=38,w2=38,w3=38,w4=38,floag1=0;uchar z,y=1,y1=1,y2=1;extern u

2、nsigned long int sum,temp1,temp2,temp3,temp4,temp5=0,temp6=0;extern uchar s,di,R,b1,q;void output_f1(unsigned long freq_value);/void output_f2(unsigned long phase_value);void output_p1(unsigned long freq_value);/void output_p2(unsigned long phase_value);void display(long int p,uchar s,uchar b1,uchar

3、/-/AD9833模块测试程序/功能:循环输出1KHz方波,正弦波。三角波/接口:/-/sum为按键输入临时变量/ K3为外部中断口 控制通道开关/ R=33为选择通道A标志R34为选择通道B标志/y1 A通道的开关标志1:关闭 ;0:打开y2也一样temp1 A通道的频率控制字变量temp3 A通道的相位控制字变量temp2B通道的频率控制字变量temp4 B通道的相位控制字变量c1 c2为频率比变量b1为选择比例标志位变量/定义头文件#include #include - /ad9833数据线/ad9833时钟线/通道A使能/通道2使能/外部中断0/外部中断1输出子函数/相位输出函数 输出

4、子函数/相位输出函数floag1);/显示处理函数void IntConfiguration();/外部中断函数/-/延时程序/-/void delay(unsigned int m)unsigned int n; for(n=0;n=m;n+)void delayms(unsigned int ii)/1ms延时函数unsigned int i,x;for(x=0;xii;x+)for (i=0;i100;i+);/-/ write_ad9833:向AD9833_ic1写16位数据 软件SPI方式/void write_ad9833ic1_d16(unsigned int x)int i,w

5、;ad9833_sclk=1; /scl置为高电平ad9833_fsync2=1;ad9833_fsync1=1;ad9833_fsync1=0;/关闭ic2/fsync置为高电平,关闭使能ic1/fsync置为低电平,使能ic1/写16位数据w=x;for(i=0;i16;i+)ad9833_sdata=w&0 x8000;ad9833_sclk=0;ad9833_sclk=1;w=w1;ad9833_fsync1=1;ad9833_sclk=0;- /向16位AD9833_ic2写数据- /oid write_ad9833ic2_d16(unsigned int x)int i,w

6、;ad9833_sclk=1;/scl置为高电平ad9833_fsync1=1;/关闭ic1ad9833_fsync2=1;/fsync置为高电平,关闭使能ad9833_fsync2=0;/fsync置为低电平,使能ic2w=x;for(i=0;i16;i+)ad9833_sdata=w&0 x8000;ad9833_sclk=0;ad9833_sclk=1;w=w1;ad9833_fsync2=1;ad9833_sclk=0;-/F向16位AD9833_ic2- -/ic2/和ic2同 时 写 数 据 写 数 据void write_ad9833_d16(unsigned int x

7、)int i,w;ad9833_sclk=1;ad9833_fsync1=1;ad9833_fsync2=1;ad9833_fsync1=0;ad9833_fsync2=0;/写16位数据w=x;for(i=0;i16;i+)ad9833_sdata=w&0 x8000;ad9833_sclk=0;ad9833_sclk=1;w=w=100) /高于100hz的情况dds=(freq_value/100*1074)+freq_value%100*; /6/ FMCLKelse/A频率输出函数/低于100hz的情况dds=freq_value*;/输出频率=频率控制字=按键输入值*(MC

8、LK/228)系数根据实际情况修改dds_l=dds;/低字节dds_h=dds14; /高字节dds_l=dds_l & 0 x3FFF;dds_l=dds_l | 0 x4000;void output_f2(unsigned long freq_value)unsigned long dds;unsigned int dds_l,dds_h; if(freq_value=100)dds=(freq_value/100*1074)+freq_value%100*; /6/ FMCLKelsedds=freq_value*;dds_l=dds; /低字节dds_h=dds14; /高

9、字节dds_l=dds_l & 0 x3FFF; dds_l=dds_l | 0 x4000;dds_h=dds_h & 0 x3FFF;dds_h=dds_h | 0 x4000;write_ad9833ic2_d16(0 x0100);write_ad9833ic2_d16(0 x2100);write_ad9833ic2_d16(dds_l);write_ad9833ic2_d16(dds_h);/28位连续,/28位连续,选择频率0,选择频率0,相位相位0,0,RESET=0RESET=0void display(long int p,uchar s,uchar b1,

10、uchar floag2)uchar i=0,j=0;float c1=0,c2=0;/显示处理 函数dds_h=dds_h & 0 x3FFF;dds_h=dds_h | 0 x4000;write_ad9833ic1_d16(0 x0100);write_ad9833ic1_d16(0 x2100);write_ad9833ic1_d16(dds_l);write_ad9833ic1_d16(dds_h);/28/28位连续,选择频率0,相位位连续,选择频率0,相位0,0,RESET=0RESET=0/B频率输出函数if(y1=0)w1=46;w2=0;if(y1=1)w1=w2=

11、38;if(y2=0)w3=46;w4=0;if(y2=1) w3=w4=38;/y1=0显示on(打开通道)/y1=1显示off(关闭通道)/同上/if(R=33&di=1) temp1=p;if(R=34&di=1) temp2=p;if(s=5)/r=33,di=1则写a通道的频率控制字/r=34,di=1则写b通道的频率控制字if(b1=1)c1=c2=1;if(b1=2) c1=1;c2=2;if(b1=3) c1=1;c2=3;if(b1=4) c1=2;c2=3;temp2=temp1*(c2/c1);/*频率显示 函 数*/-CHA- /if(R=33&

12、di=1) displayc(0,2);displayd(0,2);displaye(0,2);displayb(30,2);/光标R=33,di=1,光标在a通道频率处,并清除其余处的光标显示if(R=33&di=2) displayb(0,2);displayc(30,2);/s/光标、类似上面if(R=34&di=1) displayb(0,2);displayc(0,2);displaye(0,2); displayd(30,2);/s/ if(R=34&di=2) displayd(0,2); displaye(30,2);/s/光标if(s=5)if(q=1

13、)光标elsedisplaya(0,0);/sdisplaya(0,1);/idisplaya(38,2);/ndisplaya(0,3);/ndisplaya(0,4);/cdisplaya(70,0);/fdisplaya(17,1);/1displaya(26,2);/:displaya(70,3);/fdisplaya(2+16,4);/2displaya(0,0);/sdisplaya(0,1);/idisplaya(0,2);/ndisplaya(0,3);/ndisplaya(0,4);/cdisplaya(51,6);/edisplaya(73,7);/edisplaya(78

14、,8);/edisplaya(67,9);/e displaya(69,10);/edisplayb(temp1/1000000+16,3);displayb(temp1%1000000/100000+16,4);displayb(temp1%100000/10000+16,5);displayb(temp1%10000/1000+16,6);displayb(temp1%1000/100+16,7);displayb(temp1%100/10+16,8); displayb(temp1%10+16,9);displayb(40,10); /Hdisplayb(90,11); /z -CHB/

15、displayd(34,0);displayd(26,1);displayd(temp2/1000000+16,3);displayd(temp2%1000000/100000+16,4);displayd(temp2%100000/10000+16,5);displayd(temp2%10000/1000+16,6);displayd(temp2%1000/100+16,7);else/displaya(51,4);/sdisplaya(73,5);/idisplaya(78,6);/ndisplaya(67,7);/cdisplaya(69,8);/edisplaye(30,0);disp

16、layb(33,0);/CHAdisplayb(26,1);/displayd(temp2%100/10+16,8);displayd(temp2%10+16,9);displayd(40,10); /Hdisplayd(90,11); /z/* *相位显示 函 数*/-CHAdisplayc(0,0);displayc(26,1); displayc(48,3);displayc(temp3/100+16,4);displayc(temp3%100/10+16,5);displayc(temp3%100%10+16,6);displayc(92,7); /相位displayc(47,9);d

17、isplayc(w1,10);displayc(w2,11);/- CHB- /displaye(0,0);displayc(26,1);displaye(48,3); displaye(temp4/100+16,4); displaye(temp4%100/10+16,5);displaye(temp4%100%10+16,6); displaye(92,7);/相位displaye(47,9); displaye(w3,10); displaye(w4,11);displayf(38,0); /频率比值displayf(26,1); displayf(c1+16,2);displayf(2

18、6,3); /:displayf(c2+16,4);displayf(27,5);displayf(93,6); /相位差displayf(92,7);/i+;if(temp3=temp4)displayf(temp3-temp4)/100+16,8); /temp3temp4时,相位差=temp3-temp4displayf(temp3-temp4)%100/10+16,9);displayf(temp3-temp4)%10+16,10);elsedisplayf(temp4-temp3)/100+16,8); displayf(temp4-temp3)%100/10+16,9);displayf(temp4-temp3)%10+16,10);displayf(92,11);void IntConfiguration()/设置INT0IT0=1;/跳变沿出发方式(下降沿)EX0=1;/打开INT0的中断允许。/设置INT1IT1=1;EX1=1;EA=1;/打开总中断void I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论