原创 AD9835程序

2007-9-10 21:43 4875 4 8 分类: MCU/ 嵌入式

/******************************
       AD9835程序
******************************/
#include
#define FMCLK 50
/*AD9835*/
sbit D_CS = P1^5;
sbit D_SDA = P1^7;
sbit D_SCLK = P1^6;


sbit LED = P1^1;


void SendData(unsigned int d)
{
unsigned char i;
D_CS = 0;
for(i=0;i<16;i++ )
{
d<<=1;
D_SDA=CY;
D_SCLK=1;
D_SCLK=0;
}
D_CS = 1;
}


void main(void)
{
unsigned int i;


D_CS = 1;


for(i=0;i<1000;i ){/* //"开机延时 */ }


/****************"初始化 AD9835*****************************/
//Control register write D15 D14 11
// D13 D12 D11
// sleep="1" reset="1" clr="1"
// 1111 1xxx xxxx xxxx
SendData(0xf800);


//Setting SYNC and SELSRC D15 D14 10
//D13 SYNC==1
//D12 SELSRC="0" 0/1 using the pins/bits FSELECT,PSEL0 and PSEL1
// 1010 xxxx xxxx xxxx
SendData(0xa000);


//write initial data
//输出14.8 f1=14.8-0.2=14.6 f0=14.8 0.2=15 fmclk="50"
//14.6 freg1 = fout0/fmclk*2^32 = 1254130450.432 = 1254130450
// = 0x 4A C0 83 12 实际14.599999995
//15 freg0 = fout1/fmclk*2^32 = 1288490188.8 = 1288490188
// = 0x 4c cc cc cc 实际14.999999991


//f1=14.8-0.05=14.75 f0=14.85 fmclk="50MHz"
//freg1=14.75/50*2^32=0x4b851eb8
//freg0=14.85/50*2^32=0x4c083126


//"高8位是固定的,具体看手册
//0011 0000 freg0 L LSBS
//0010 0001 freg0 H LSBS
//0011 0010 freg0 L MSBS
//0010 0011 freg0 H MSBS
//50M 14.6M 1254130450=0x 4A C0 83 12
SendData(0x3012);
SendData(0x2183);
SendData(0x32c0);
SendData(0x234a);


 


//"高8位是固定的,具体看手册
//0011 0100 freg1 L LSBS cc
//0010 0101 freg1 H LSBS cc
//0011 0110 freg1 L MSBS cc
//0010 0111 freg1 H MSBS 4c


//50M 15M 1288490188=0x4c cc cc cc
SendData(0x34cc);
SendData(0x25cc);
SendData(0x36cc);
SendData(0x274c);


//phase
//0001 1000 phase0 LSBS
//0000 1001 phase0 MSBS
//0001 1010 phase1 LSBS
//0000 1011 phase1 MSBS
//0001 1100 phase2 LSBS
//0000 1101 phase2 MSBS
//0001 1110 phase3 LSBS
//0000 1111 phase3 MSBS
SendData(0x1800);
SendData(0x0900);
SendData(0x1a00);
SendData(0x0b00);
SendData(0x1c00);
SendData(0x0d00);
SendData(0x1e00);
SendData(0x0f00);


//Control register write D15 D14 11
// D13 D12 D11
// sleep="0" reset="0" clr="0"
// 1100 0xxx xxxx xxxx
SendData(0xc000);


while(1);
}

文章评论4条评论)

登录后参与讨论

用户265026 2008-6-16 10:23

你好!我现在用的是ad9834能不能帮忙提供一下资料啊?这方面的详细资料实在是太少了,大家好好交流一下啊!qq:171587203;谢谢! 邮箱:m6511@163.com

用户154032 2008-6-16 10:22

你好!我现在用的是ad9834能不能帮忙提供一下资料啊?这方面的详细资料实在是太少了,大家好好交流一下啊!qq:171587203;谢谢! 邮箱:m6511@163.com

用户1076896 2008-3-26 23:17

你好,我现在正在使用AD9835,能不能给一些关于芯片的一些资料,邮箱: lljlook00@yahoo.cn 谢谢

用户1076896 2008-3-26 23:14

你好,我现在正在使用AD9835,能不能给一些关于芯片的一些资料,谢谢
相关推荐阅读
用户371213 2011-07-23 23:13
FPGA的GTP信号PCB布线要点
FPGA的GTP信号PCB布线要点千兆位级串行I/O技术有着极其出色的优越性能,但这些优越的性能是需要条件来保证的,即优秀的信号完整性。例如,有个供应商报告说,他们第一次试图将高速、千兆位级串行设计用...
用户371213 2011-07-12 22:27
Win7下VC6.0 “打开工程”、“添加文件”导致崩溃问题
启动 打开文件 对话框,在 Visual c + + 中使用键盘快捷键或从 文件 菜单中将产生以下错误: 访问冲突 (0xC0000005) 在 0x5003eaed DEVSHL.DLL 中。...
用户371213 2011-01-21 17:35
DDR2 SDRAM硬件设计中需要注意地方
DDR2 SDRAM硬件设计中需要注意地方   在XXX板的设计过程中,DDR2 SDRAM的设计,遇到了不少困惑,经过与其他人交流和查阅相关资料,基本完成了DDR2 SDRAM部分的设计。这里以MT...
用户371213 2011-01-21 17:33
DDR2调试中的几个时钟的解释
DDR2调试中的几个时钟的解释 1. MCB需要三个基本时钟l  MCB system clocks ,memory controller的工作作时钟 和external memory device的...
用户371213 2007-09-21 22:28
劝诫
        给学电子的同学们转一好帖,对照它试着掂量一下自己,克制自己浮躁的学习态度。确实,学技术的不能浮躁,不能眼高手低,应该注重基础。                     请不要做浮躁的电...
用户371213 2007-09-14 22:25
FPGA开发软件Quartus7.1破解版
Quartus II7.1 PC版下载&&破解- [EDA相关]QuartusII更新快啊,喜欢体验新功能的要赶紧下了 ftp://ftp.altera.com/outgoing/re...
我要评论
4
4
关闭 站长推荐上一条 /2 下一条