ad9850-c程序-设计源代码

最新更新时间:2012-09-03来源: 互联网关键字:ad9850  c程序  源代码 手机看文章 扫描二维码
随时随地手机看文章

ad9850-c程序-源代码

#include 
#include
float l,m,n,q,z;
double k;  
//-----------------------定义管脚-----------------------------
#define  data_OUT P1
sbit FQ_UD=P3^0;          //AD9850信号更新申请 
sbit W_CLK=P3^1;
sbit FESET="P3"^2;          //写控制字时钟
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 

//--------------------------------------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us的延时 
// 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
//--------------------------------------------------------------------------------------------------
 // void delay(unsigned  int N)  
 // {
 // int i; 
  //for(i=0;i // }
//--------------------------------------------------------------------------------------------------


//--------------------------------------------------------------------------------------------------
 /*******************************************************/
   void Freq_Adjust(long value_Freq)
 
    unsigned int i; 
   long f;
 unsigned char L4,L3,L2,L1,L0; 
   FQ_UD=0; 
    f="value"_Freq*86;
    L0=0x28;
    L4= f&0x000000ff;
    L3=(f>>8)&0x000000ff;
    L2=(f>>16)&0x000000ff;
    L1=(f>>24)&0x000000ff;
   CON_word[0]=L0;
   CON_word[4]=L4;
   CON_word[3]=L3;
   CON_word[2]=L2;
   CON_word[1]=L1;
     FQ_UD=0;
     W_CLK=0;
  //delay(0);
  _nop_(); _nop_(); _nop_();  _nop_(); _nop_();
  CON_word[0]=CON_word[0]&0xFC;   //置工作方式选择位为00
     for(i=0;i<5;i++)
     {  
  FESET="1";
  W_CLK=0;
     data_OUT=CON_word[i];      //送控制字 
    // delay(0);
 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); 
  FESET="0";
     W_CLK=1;                   //上升延
     //delay(0);
  _nop_(); _nop_(); _nop_();_nop_();_nop_();
     }
     FQ_UD=1;
 
}


//-------------------------------------------------------------------------------
// 函数名称:main
// 用户主函数
// 函数功能:主函数
//-------------------------------------------------------------------------------


main()
{
    BEGAIN:
 LCD_Initial(); 
 P2=0XF0;
 GotoXY(0,0);
    Print("Please Input :");
 GotoXY(0,1);
 Print("              ");
 m=0;
 k=0;
 l=0; 
 //q=5; 
  FQ_UD=0;  
    Freq_Adjust(50000);
    while(1)
  {  
      while(1)
      {  
  
    m="keynum"();
    if(m>=0&&m<=9||m==15||m==14)
      { 
      z="m";
   Delay1ms(150);
   break;
    }
    }
     if(m>=0&&m<=9)
      {
    l++;
   }
  

    if(z==14)
      {
     goto  BEGAIN;
   }
    if(z==15)
    {

     GotoXY(0,1);
     Print(&TempBuffer[0]);
     GotoXY(9,1);
     Print("OK!!");
     Delay1ms(1000);
     break; 
    }
       
     if(l==1)
      {k=z;}
     if(l==2)
      {
    k="k"*10+z;
   }
  
     if(l==3)
      {
     k="k"*10+z;
    }
    if(l==4)
    {  
    k="k"*10+z;
    }
    if(l==5)
    {  
    k="k"*10+z;
    }
     if(l==6)
    {  
    k="k"*10+z;
    }
     if(l==7)
    {  
    k="k"*10+z;
    }
     if(l==8)
    {  
    k="k"*10+z;
    }
   
     if(l>8||k>25000000)
     {
        GotoXY(0,1);
        Print("     ERROR!!      ");
     Delay1ms(500);
        goto  BEGAIN;
      }
   
   IntToStr(k,&TempBuffer[0],0);
   GotoXY(0,1);
   Print(&TempBuffer[0]);
         P2=0XF0;
   Delay1ms(150);    
    } 
 FQ_UD=0; 
 Freq_Adjust(k);
 while(1)
 {
 
 GotoXY(0,0);
 Print("THE PL DISPLAY");
 IntToStr(k,&TempBuffer[0],0);
 GotoXY(0,1);
 Print(&TempBuffer[0]);
        m="keynum"();
       if(m==10)
     { Delay1ms(300) ; 
     if(k>=30000000){k=30000000;}
    else{ k="k"+1000;}
     } 
     if(m==11)
     {Delay1ms(300) ;
      if(k<=0){k=0;}
       else{k=k-1000;}
     }
        if(m==14)
      {
   goto  BEGAIN;
   } 
  
    }
}

AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合
成。可编程DDS系统的核心是相位累加器,它由一个加法器和一个N位相位寄
存器组成,N一般为24~32。每来一个外部参考时钟,相位寄存器便以步长M
递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正
弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~3
60°范围的一个相位点。

关键字:ad9850  c程序  源代码 编辑:神话 引用地址:ad9850-c程序-设计源代码

上一篇:ad1674应用电路
下一篇:基于软件的优化手势识别解决方案

推荐阅读最新更新时间:2023-10-12 20:41

msp430单片机控制lcd1602显示C程序
//MSP430写的1602液晶显示程序2011/8/26//硬件连接 //P4 数据口 P3.7---E P3.6---RW P3.5----RS #include msp430x14x.h #define uint unsigned int #define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0); unsigned char table0 = hankouxueyuan ; unsigned char table1 = dianzisheji ; //***
[单片机]
基于AD9850的信号发生器的设计与实现
直接数字频率合成技术(DDS)是20世纪末迅速发展起来的一种新的频率合成技术,它将先进的数字处理技术与方法引入信号合成领域,表现出优越的性能和突出的特点。由于DDS器件采用高速数字电路和高速D/A转换技术,具有频率转换速度快、频率分辨率高、相位噪声低、频率稳定度高等优点,此外,DDS器件很容易实现对信号的全数字式调制。因此,直接数字频率合成器以其独有的优势成为当今电子设备和系统频率源的首选器件。本文介绍了ADI公司出品的 AD9850芯片,以单片机AT89S52为控制核心完成正弦信号发生器的可行性设计方案,并给出了调试通过的源程序以供参考。 1 AD9850芯片性能及管脚功能 AD9850采用了先进的CMOS工艺
[测试测量]
基于<font color='red'>AD9850</font>的信号发生器的设计与实现
单片机I2C通信及LCD1602显示C程序
本程序所用的原理图下载: 点这里 ,单片机芯片使用的stc89c52;找到数码管的原理图即可.这是一整个单片机开发板的电路图其他的忽略.本程序keil工程文件下载: http://www.51hei.com/f/1602iic.rar /* *功能: 利用iic发送数据,在数码管上显示,并通过串口发生到上位机, * 且在lcd1602上显示 Han Zhu Ying Xue * 1754410821@qq.com ; *作者: 徐冉 *日期: 2013-05-29-22:21 2013-5-2919:15 - 22:17 *备注: 程序已经顺利通过调试,耗时3小时。 */ /*********51
[单片机]
经典c程序(20/20)
题目:输入三个整数x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x y则将x与y的值进行交换,       然后再用x与z进行比较,如果x z则将x与z的值进行交换,这样能使x最小。 2.程序源代码: main() { int x,y,z,t; scanf( %d%d%d ,&x,&y,&z); if (x y) {t=x;x=y;y=t;} /*交换x,y的值*/ if(x z) {t=z;z=x;x=t;}/*交换x,z的值*/ if(y z) {t=y;y=z;z=t;}/*交换z,y的值*/ printf(
[单片机]
基于单片机的信号发生器的设计与实现
直接数字频率合成技术(DDS)是20世纪末迅速发展起来的一种新的频率合成技术,它将先进的数字处理技术与方法引入信号合成领域,表现出优越的性能和突出的特点。由于DDS器件采用高速数字电路和高速D/A转换技术,具有频率转换速度快、频率分辨率高、相位噪声低、频率稳定度高等优点,此外,DDS器件很容易实现对信号的全数字式调制。因此,直接数字频率合成器以其独有的优势成为当今电子设备和系统频率源的首选器件。本文介绍了ADI公司出品的 AD9850芯片,以单片机AT89S52为控制核心完成正弦信号发生器的可行性设计方案,并给出了调试通过的源程序以供参考。 1 AD9850芯片性能及管脚功能 AD9850采用了先进的CMOS工艺
[单片机]
基于单片机的信号发生器的设计与实现
PLC程序调试方法步骤介绍
项目分析需要对项目的生产工艺、工作环境、硬件需求和控制要求等方面进行全面分析。这项工作是整个系统设计的基础。如果前期项目分析不到位,将会造成后面硬件选型不准确,导致工程延期。 一、项目分析 工程技术人员首先要对工程项目进行分析,即项目工程的控制流程和每个流程的控制类型,并对整个项目可能出现问题做出预判。 (1)分析控制流程。分析控制流程时,建议绘制相关的控制流程图,清晰的标注每一步工作的内容和到下一步的条件。 (2)分析控制类型和预估PLC选型所需参数。一般PLC适用于四种控制类型,即顺序控制,过程控制,运动(或位置)控制和网络通信等。工程技术人员在分析控制要求后,根据绘制的控制流程图,将每个控制流程的控制类型进行分类,再根据
[嵌入式]
12864液晶显示原理(C程序
目录: 12864液晶显示原理 一、点阵LCD的显示原理 二、12864点阵型LCD简介 三、12864LCD的指令系统及时序 四、12864点阵型LCD软硬件设计实例 1、硬件原理图 2、程序流程图 3、字模代码 五、12864点阵型LCD应用举例 1、硬件部分 2、软件部分( 汉字在内存中的存储形式 ) 12864液晶显示任何图像 一、所需软件 二、DIY一副图画 三、C语言代码 附录 一、机内码和区位码的区别 二、液晶屏常识 1、什么是COG型LCD 2、LCD显示模块的外部接口 1)8080模式,并行 2)6800模式,并行 3)串行模
[单片机]
12864液晶显示原理(<font color='red'>C程序</font>)
51单片机+MAX7219数码管显示C程序
/************************************************** *程序名称: MAX7219 C语言控制程序 *程序功能: 3线串行控制8位共阴数码管 *3线定义:DIN 串行数据输入 * LOAD 数据锁存 * CLK 时钟输入 ******************************************
[单片机]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved