⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad9850-si.c

📁 单片机接口技术实用子程序配套源代码
💻 C
字号:
//-----------------函数声明、通用变量定义--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
sbit FQ_UD=P1^0;          //AD9850信号更新申请 
unsigned char CON_word[5]; 
//Word	data[7]	data[6]	data[5]	data[4]	data[3]	data[2]	data[1]	data[0]
//W0 	Phase b 	Phase b3 	Phase b2 	Phase b1	Phase b0 	Power Down 	Control	    Control
//W1	Freq-b31    Freq-b30	Freq-b29	Freq-b28	Freq-b27	Freq-b26	Freq-b25	Freq-b24
//W2	Freq-b23	Freq-b22	Freq-b21	Freq-b20	Freq-b19	Freq-b18	Freq-b17	Freq-b16
//W3	Freq-b15	Freq-b14	Freq-b13	Freq-b12	Freq-b11	Freq-b10	Freq-b9	Freq-b8
//W4	Freq-b7	    Freq-b6	    Freq-b5	    Freq-b4	    Freq-b3	    Freq-b2	    Freq-b1	Freq-b0
//--------------------------------------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us的延时 
// 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
//--------------------------------------------------------------------------------------------------
  void delay(unsigned  int N)  
  {
  int i; 
  for(i=0;i<N;i++);
  }
//--------------------------------------------------------------------------------------------------
// 函数名称: AD9850_init
// 入口参数: 无
// 函数功能: 初始化设置 设置串口工作方式
//--------------------------------------------------------------------------------------------------
void AD9850_init(void)       //初始化 
     { 
      FQ_UD=0; 
      SCON=0;              //串口工作在方式0;不允许串行口接收数据,先写通讯寄存器  
 } 
//--------------------------------------------------------------------------------------------------
// 函数名称: WRITE_AD9850
// 函数功能: 将控制字写入AD9850
//--------------------------------------------------------------------------------------------------
void WRITE_AD9850(void)
{  
     int i;
     FQ_UD=0;
	 delay(0);
	 CON_word[0]=CON_word[0]&0xFC;            //置工作方式选择位为00
     for(i=4;i>=0;i--)
     {
     SCON=0;          
     SBUF=CON_word[i];      //送通讯寄存器命令   
     while(TI==0);          //等待发送完成  
     TI=0;                  //TI清"0"
     }
     FQ_UD=1;               //上升延要求AD9850改变输出
} 
//--------------------------------------------------------------------------------------------------
// 函数名称:main
// 用户主函数
// 函数功能:主函数
//--------------------------------------------------------------------------------------------------
void main()
     {
	 AD9850_init();
	 WRITE_AD9850();
	 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -