ad9850_例程
//Fout=调制频率控制字*SYSCLK/2 的 32 次方 (SYSCLK=50M) 50M=2faf080 2 的 32 次方=100 000 000 1K=3e8 对应的调制频率控制字=14f8b // #include #define uchar unsigned char //这里用“uchar“ 代替“unsigned char“,“uchar“ 用来定义无符号 字符型数。 #define uint unsigned int //“uint“用来定义无符号整型数。 sbit w_clk1= P1^0; //AD9850_1 的将 8bit 的频率控制字加载进入数据锁存器 上升 沿有效 sbit fq_ud1=P1^1; //AD9850_1 将 40bit 的控制字加载进入相位累加器 上升 沿有效 sbit Rset1= P1^2; //AD9850_1 的复位 上升沿有效sbit w_clk2 =P1^4 ; //AD9850_2 的将 8bit 的频率控制字加载进入数据锁存器 上升沿有效 sbit fq_ud2 =P1^5; //AD9850_2 的 40bit 的控制字加载进入相位累加器 上升沿有 效 sbit Rset2 =P1^6; //AD9850_1 的复位 上升沿有效 sbit DDSLE_1 =P1^7; //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_kz=0; //AD9850_1 的 8bit 的频率控制字 uint AD9850_sc=0; //AD9850_1 的 8bit 的频率数据 uint AD9850_sccs=0; //AD9850_1 的 8bit 的频率数据传输的次数 /******************************************************************** * 名称 : Delay() * 功能 : 延时,延时时间为 10ms * del。这是通过软件延时,有一定误差。 * 输入 : del * 输出 : 无 ***********************************************************************/ void Delay(uint del) { uint i,j; for(i=0; i