691|0

6863

帖子

19

资源

纯净的硅(中级)

分享MSP430控制的DDS输出波形为正弦波和方波c语言程序 [复制链接]

//***************************************************//
//                  子程序说明                       //
//***************************************************//
//函数1:  ad9850_reset()
//        复位ad9850,之后为并口写入模式        
//函数2:  ad9850_reset_serial()
//        复位ad9850,之后为串口写入模式
//函数3:  ad9850_wr_parrel(unsigned char w0,double frequence)
//        并口写ad9850数据,w0为ad9850中w0的数据,frequence
//        为写入的频率   
//函数4:  ad9850_wr_serial(unsigned char w0,double frequence)
//        串口写ad9850数据,w0为ad9850中w0的数据,frequence
//        为写入的频率   
//需定义的位:
         //ad9850_w_clk    ;
         //ad9850_fq_up    ;
         //ad9850_rest     ;
         //ad9850_bit_data ;
//例:
         //sbit ad9850_w_clk    =P2^2;
         //sbit ad9850_fq_up    =P2^1;
         //sbit ad9850_rest     =P2^0;
         //sbit ad9850_bit_data =P1^7;
//***************************************************//
//                 写数据说明                        //
//***************************************************//
//写数据例:
//       ad9850_reset()
//       wr_lcd02_data(unsigned char x)
//       ad9850_wr_parrel(0x01,1000)
//       ad9850_wr_serial(0x01,1000)
//***************************************************//
//---------------------------------------------------//
//                   程序                            //
//---------------------------------------------------//
# include
# include

#define ad9850_w_clk_High   P2OUT|=0x04
#define ad9850_w_clk_Low    P2OUT&=~0x04
#define ad9850_fq_up_High   P2OUT|=0x02
#define ad9850_fq_up_Low    P2OUT&=~0x02
#define ad9850_rest_High    P2OUT|=0x01
#define ad9850_rest_Low     P2OUT&=~0x01
#define ad9850_bit_data     P1OUT

//***************************************************//
//              ad9850复位(并口模式)                 //
//---------------------------------------------------//
void ad9850_reset()
{
  ad9850_w_clk_Low;
  ad9850_fq_up_Low;
  ad9850_rest_Low;
  ad9850_rest_High;
  ad9850_rest_Low;
}
//***************************************************//
//              ad9850复位(并口模式)                 //
//---------------------------------------------------//
void ad9850_reset_serial()
{
ad9850_w_clk_Low;
ad9850_fq_up_Low;
//rest信号
  ad9850_rest_Low;
  ad9850_rest_High;
  ad9850_rest_Low;
//w_clk信号
ad9850_w_clk_Low;
ad9850_w_clk_High;
ad9850_w_clk_Low;
//fq_up信号
ad9850_fq_up_Low;
ad9850_fq_up_High;
ad9850_fq_up_Low;
}
//***************************************************//
//          向ad9850中写命令与数据(并口)             //
//---------------------------------------------------//
void ad9850_wr_parrel(unsigned char w0,double frequence)
{
unsigned char w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/125;//适合125M晶振
//如果时钟频率不为125MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=(double)frequence;
//写w0数据
w=w0;   
ad9850_bit_data=w;      //w0
ad9850_w_clk_High;
ad9850_w_clk_Low;
//写w1数据
w=(y>>24);
ad9850_bit_data=w;      //w1
ad9850_w_clk_High;
ad9850_w_clk_Low;
//写w2数据
w=(y>>16);
ad9850_bit_data=w;      //w2
ad9850_w_clk_High;
ad9850_w_clk_Low;
//写w3数据
w=(y>>8);
ad9850_bit_data=w;      //w3
ad9850_w_clk_High;
ad9850_w_clk_Low;
//写w4数据
w=(y>>=0);
ad9850_bit_data=w;      //w4
ad9850_w_clk_High;
ad9850_w_clk_Low;
//移入始能
ad9850_fq_up_High;
ad9850_fq_up_Low;
}

//***************************************************//
//                   测试程序1000Hz                  //
//---------------------------------------------------//
main()
{
   WDTCTL=WDTPW+WDTHOLD;
   P1DIR=0XFF;
   P2DIR=0XFF;
//---------------------------------------------------//
//并行写1000Hz程序
ad9850_reset();
ad9850_wr_parrel(0x00,1);
//---------------------------------------------------//
while(1)
{
}
}


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表