77范文网 - 专业文章范例文档资料分享平台

AD9833程序,信号发生器,正弦波,方波,三角波输出程序

来源:网络收集 时间:2021-04-06 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

# include <reg51.h>

# include <stdio.h>

# include <intrins.h>

/********************************************/

sbit ad9833_sdata =P1^0;

sbit ad9833_sclk =P1^1;

sbit ad9833_fsync =P1^2;

/*****************定义全局变量*********************/

/*************************************************/

//延时程序

/**************************************************/

void delay(unsigned int m)

{

unsigned int n;

for (n=0;n<=m;n++)

{

}

}

/*****************************************************/

/**向AD9833写16位数据,严格按照这个时序,不能随意修改否则必出错!**/

/*****************************************************/

void write_ad9833_d16(unsigned int x)

{

int i,w;

ad9833_sclk=1;

ad9833_fsync=1;

ad9833_fsync=0;

//写16位数据

w=x;

for(i=0;i<16;i++)

{

ad9833_sdata=w&0x8000;

ad9833_sclk=0;

ad9833_sclk=1;

w=w<<1;

}

ad9833_fsync=1;

ad9833_sclk=0;

}

/**************************************************/

/*************计算AD9833的28位数据值***************/

/*****************************************************/

/**变量frequence就是频率值,单位Hz,比如输入100Hz,则 frequence为100,需要特别注意的是不能超过12MHz;/*****变量frequence_SFR是设置频率寄存器选择0为频率寄存器0,1为频率寄存器1;*******/

/*****变量WAVE_MODE是设置输出波形选择0为三角波,1为方波,2为正弦波;*******/

/*****变量Phase是设置波形相位值*******/

void ad9833_data(double frequence,unsigned int frequence_SFR,unsigned int WAVE_MODE,unsigned int Phase ){

int frequence_LSB,frequence_MSB,Phs_data;

double frequence_mid,frequence_DATA;

long int frequence_hex;

/*********************************计算频率的16进制值***********************************/

frequence_mid=268435456/25;//适合25M晶振

//如果时钟频率不为25MHZ,修改该处的频率值,单位MHz ,AD9833最大支持25MHz

frequence_DATA=frequence;

frequence_DATA=frequence_DATA/1000000;

frequence_DATA=frequence_DATA*frequence_mid;

frequence_hex=frequence_DATA; //这个frequence_hex的值是32位的一个很大的数字,需要拆分成两个14位进行处理;

frequence_LSB=frequence_hex; //frequence_hex低16位送给frequence_LSB

frequence_LSB=frequence_LSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位

frequence_MSB=frequence_hex>>14; //frequence_hex高16位送给frequence_HSB

frequence_MSB=frequence_MSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位

/****************************************************************************/

/******************************相位值*************************************/

Phs_data=Phase|0xC000;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库AD9833程序,信号发生器,正弦波,方波,三角波输出程序在线全文阅读。

AD9833程序,信号发生器,正弦波,方波,三角波输出程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1214238.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: