ad9850_例程
//Fout调制频率控制字*SYSCLK/2 的 32 次方 SYSCLK50M 50M2faf080 2 的 32 次方100 000 000 1K3e8 对应的调制频率控制字14f8b // include define uchar unsigned char //这里用“uchar“ 代替“unsigned char“,“uchar“ 用来定义无符号 字符型数。 define uint unsigned int //“uint“用来定义无符号整型数。 sbit w_clk1 P10; //AD9850_1 的将 8bit 的频率控制字加载进入数据锁存器 上升 沿有效 sbit fq_ud1P11; //AD9850_1 将 40bit 的控制字加载进入相位累加器 上升 沿有效 sbit Rset1 P12; //AD9850_1 的复位 上升沿有效sbit w_clk2 P14 ; //AD9850_2 的将 8bit 的频率控制字加载进入数据锁存器 上升沿有效 sbit fq_ud2 P15; //AD9850_2 的 40bit 的控制字加载进入相位累加器 上升沿有 效 sbit Rset2 P16; //AD9850_1 的复位 上升沿有效 sbit DDSLE_1 P17; //AD9850 的数据锁存器控制端 上升沿有效 uchar code AD9850[61]{0,0 x01,0 x4f,0 x8d,0 x02,0 x9f,0 x16,0 x03,0 xee,0 xa1,0 x05,0 x3e,0 x2c,0 x06,0 x8d,0 xb 7,0 x07,0 xdd,0 x42,0 x09,0 x2c,0 xcd,0 x0a,0 x7c,0 x58,0 x0b,0 xcb,0 xe3,0 x0d,0 x1b,0 x6e,0 x0e,0 x6a,0 xf9,0 x0f,0 xba,0 x84,0 x11,0 x0a,0 x0f,0 x12,0 x59,0 x9a,0 x13,0 xa9,0 x25,0 x14,0 xf8,0 xb0,0 x16,0 x48,0 x3b,0 x17,0 x97,0 xc6,0 x18,0 xe7,0 x51,0 x1a,0 x36,0 xdc}; uint AD9850_kz0; //AD9850_1 的 8bit 的频率控制字 uint AD9850_sc0; //AD9850_1 的 8bit 的频率数据 uint AD9850_sccs0; //AD9850_1 的 8bit 的频率数据传输的次数 /******************************************************************** * 名称 Delay * 功能 延时,延时时间为 10ms * del。这是通过软件延时,有一定误差。 * 输入 del * 输出 无 ***********************************************************************/ void Delayuint del { uint i,j; fori0; idel; i forj0; j1827; j //这个是通过软件仿真得出的数 ; } /******************************************************************** * 名称 Main * 功能 实现灯的闪烁 * 输入 无 * 输出 无 ***********************************************************************/ void AD9850_Rsetvoid //AD9850 复位 {Rset1 0; //AD9850_1 的复位 上升沿有效Rset1 1;Rset1 0;Rset2 0; //AD9850_2 的复位 上升沿有效Rset2 1;Rset2 0; } void AD98501_kzzvoid // 将 8bit 的频率控制字加载到 AD9850_1 { w_clk1 0; //将 8bit 的频率控制字加载进入 AD9850_1 的数据锁存器 上升 沿有效DDSLE_11;P10;w_clk1 1; DDSLE_10; } void AD98501_scpluint AD9850_sc //AD9850_1 的将 32bit 的频率数据加载 {uint s0; //临时变量w_clk1 0; //将 16bit 的 0 的频率数据加载进入 AD9850_1 的数据锁存器 上升沿有效DDSLE_11;P10;w_clk1 1;w_clk1 0; w_clk1 1; w_clk10;DDSLE_10;forAD9850_sccs0;AD9850_sccs3;AD9850_sccs{ sAD9850_sccs AD9850_sc*3; w_clk1 0; //将 8bit 的频率数据加载进入 AD9850_1 的数据锁存器 上 升沿有效DDSLE_11;P1AD9850[s];w_clk1 1; DDSLE_10;} fq_ud10; fq_ud11;AD9850_sc0; } void AD98502_kzzvoid // 将 8bit 的频率控制字加载到 AD9850_2 { // w_clk2 0; //将 8bit 的频率控制字加载进入 AD9850_2 的数据锁存器 上升 沿有效DDSLE_11; // NOP; // NOP;P10; // w_clk21;DDSLE_10; } void AD98502_scpluint AD9850_sc // 将 32bit 的频率数据加载到 AD9850_2 {uint s0; //临时变量w_clk2 0; //将 16bit 的 0 的频率数据加载进入 AD9850_2 的数据锁存器 上升沿有效DDSLE_11;P10;w_clk2 1;w_clk2 0; w_clk2 1; w_clk20;DDSLE_10;forAD9850_sccs0;AD9850_sccs3;AD9850_sccs{sAD9850_sccs AD9850_sc*3;w_clk2 0; //AD9850_1 的将 8bit 的频率数据加载进入数据锁存器 上 升沿有效DDSLE_11;