MSP430G2553控制AD9851/9850DDS模块产生正弦波、方波

使用MSP430G2553单片机,通过AD9851/9850DDS模块实现100Hz到100kHz频率范围内的正弦波和方波输出。关键代码包括主函数、AD9851复位函数和写函数。硬件连接部分,MSP430由电脑供电,AD9851的D0、D1接高电平,D2接低电平。通过按键可动态调节输出频率,按键P1.0控制位数,按键P1.3调整数值(1-9)。详细代码和更多资料可在指定链接中下载。
摘要由CSDN通过智能技术生成

目录

1 DDS发出一定频率正弦波、方波

        1.1 关键代码

        1.2 硬件连接

        1.3 输出结果

2 按键控制频率(100Hz~100kHz)

        2.1 关键代码

        2.2 硬件连接

        2.3 输出结果


1 DDS发出一定频率正弦波、方波

        1.1 关键代码

        主函数

​
#include <MSP430G2553.h>

//提前声明子函数//
void InitSystemClock(void);//配置时钟
void GPIO_Init();//GPIO初始化
void ad9851_reset_serial();//复位(串口)
void ad9851_wr_serial(unsigned char w0,double frequence);//写函数(串口)

void main(void)
{
    WDTCTL = WDTPW | WDTHOLD; //关闭看门狗
    InitSystemClock();//配置时钟
    GPIO_Init();//GPIO初始化
    ad9851_reset_serial();//复位
    ad9851_wr_serial(0x00,1000);//发出频率1000Hz的信号
    //0X01为开六备频,0X00为没开
    while(1)
    {
    }
}

        AD9851复位函数

//复位函数(串口模式)//
void ad9851_reset_serial()
{
    P1OUT&=~BIT4;//P1.4(时钟)输出低电平
    P1OUT&=~BIT5;//P1.5(频率)输出低电平
    //复位信号
    P1OUT&=~BIT6;//P1.6(复位)输出低电平
    P1OUT|=BIT6;//高电平
    P1OUT&=~BIT6;//低电平
    //时钟信号
    P1OUT&=~BIT4;//P1.4(时钟)输出低电平
    P1OUT|=BIT4;//高电平
    P1OUT&=~BIT4;//低电平
    //频率信号
    P1OUT&=~BIT5;//P1.5(频率)输出低电平
    P1OUT|=BIT5;//高电平
    P1OUT&=~BIT5;//低电平
}

        写函数(向AD9851写命令及数据)

//写函数(串口)//
void ad9851_wr_serial(unsigned char w0,double frequence)
{
unsigned char i,w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/30;//适合30M晶振,需要根据自己的频率进行调整
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w4数据
w=(y>>0);
for(i=0;i<8;i++)
{
    if( (w>>i)&0x01 == 1)
    {
    P1OUT|=BIT7;//P1.7(数据)输出高电平
    }
    else
    {
    P1OUT&=~BIT7;//P1.7(数据)输出低电平
    }
    P1OUT|=BIT4;//P1.4(时钟)输出高电平
    P1OUT&=~BIT4;//低电平
}
//写w3数据
w=(y>>8);
for(i=0;i<8;i++)
{
    if( (w>>i)&0x01 == 1)
    {
    P1OUT|=BIT7;//P1.7(数据)输出高电平
    }
    else
    {
    P1OUT&=~BIT7;//P1.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值