ad9850c语言编程,AD9850与单片机波形生成程序及设计资料下载
//***************************************************//
//函数1: ad9851_reset() //
//函数2: ad9851_reset_serial() //
//函数3: ad9851_wr_parrel(unsigned char w0,double frequence)//
//函数4: ad9851_wr_serial(unsigned char w0,double frequence)//
//版本: V1.1 //
//***************************************************//
// 子程序说明 //
//***************************************************//
//函数1: ad9851_reset()
// 复位ad9851,之后为并口写入模式
//函数2: ad9851_reset_serial()
// 复位ad9851,之后为串口写入模式
//函数3: ad9851_wr_parrel(unsigned char w0,double frequence)
// 并口写ad9851数据,w0为ad9851中w0的数据,frequence
// 为写入的频率
//函数4: ad9851_wr_serial(unsigned char w0,double frequence)
// 串口写ad9851数据,w0为ad9851中w0的数据,frequence
// 为写入的频率
//需定义的位:
//ad9851_w_clk ;
//ad9851_fq_up ;
//ad9851_rest ;
//ad9851_bit_data ;
//例:
//sbit ad9851_w_clk =P2^2;
//sbit ad9851_fq_up =P2^1;
//sbit ad9851_rest =P2^0;
//sbit ad9851_bit_data =P1^7;
//***************************************************//
// 写数据说明 //
//***************************************************//
//写数据例:
// ad9851_reset()
// wr_lcd02_data(unsigned char x)
// ad9851_wr_parrel(0x01,1000)
// ad9851_wr_serial(0x01,1000)
//***************************************************//
//---------------------------------------------------//
// 程序 //
//---------------------------------------------------//
# include
# include
# include
sbit ad9851_w_clk =P2^2; //P2.2口接AD9851的w_clk脚/PIN7
sbit ad9851_fq_up =P2^1; //P2.1口接AD9851的fq_up脚/PIN8
sbit ad9851_rest =P2^0; //P2.0口接AD9851的rest脚/PIN12
sbit ad9851_bit_data =P1^7; //P1.7口接AD9851的D7脚/PIN25
//P1为8位数据口
//***************************************************//
// ad9851复位(并口模式) //
//---------------------------------------------------//
void ad9851_reset()
{
ad9851_w_clk=0;
ad9851_fq_up=0;
//rest信号
ad9851_rest=0;
ad9851_rest=1;
ad9851_rest=0;
}
//***************************************************//
// ad9851复位(并口模式) //
//---------------------------------------------------//
void ad9851_reset_serial()
{
ad9851_w_clk=0;
ad9851_fq_up=0;
//rest信号
ad9851_rest=0;
ad9851_rest=1;
ad9851_rest=0;
//w_clk信号
ad9851_w_clk=0;
ad9851_w_clk=1;
ad9851_w_clk=0;
//fq_up信号
ad9851_fq_up=0;
ad9851_fq_up=1;
ad9851_fq_up=0;
}
//***************************************************//
// 向ad9851中写命令与数据(并口) //
//---------------------------------------------------//
void ad9851_wr_parrel(unsigned char w0,double frequence)
{
unsigned char w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/180;//适合180M晶振/180为最终时钟频率(或30M六倍频)
//如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w0数据
w=w0;
P1=w; //w0
ad9851_w_clk=1;
ad9851_w_clk=0;
//写w1数据
w=(y>>24);
P1=w; //w1
ad9851_w_clk=1;
ad9851_w_clk=0;
//写w2数据
w=(y>>16);
P1=w; //w2
ad9851_w_clk=1;
ad9851_w_clk=0;
//写w3数据
w=(y>>8);
P1=w; //w3
ad9851_w_clk=1;
ad9851_w_clk=0;
//写w4数据
w=(y>>=0);
P1=w; //w4
ad9851_w_clk=1;
ad9851_w_clk=0;
//移入始能
ad9851_fq_up=1;
ad9851_fq_up=0;
}
//***************************************************//
// 向ad9851中写命令与数据(串口) //
//---------------------------------------------------//
void ad9851_wr_serial(unsigned char w0,double frequence)
{
unsigned char i,w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/180;//适合180M晶振/180为最终时钟频率(或30M六倍频)
//如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w4数据
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9851_bit_data=(w>>i)&0x01;
ad9851_w_clk=1;
ad9851_w_clk=0;
}
//写w3数据
w=(y>>8);
for(i=0;i<8;i++)
{
ad9851_bit_data=(w>>i)&0x01;
ad9851_w_clk=1;
ad9851_w_clk=0;
}
//写w2数据
w=(y>>16);
for(i=0;i<8;i++)
{
ad9851_bit_data=(w>>i)&0x01;
ad9851_w_clk=1;
ad9851_w_clk=0;
}
//写w1数据
w=(y>>24);
for(i=0;i<8;i++)
{
ad9851_bit_data=(w>>i)&0x01;
ad9851_w_clk=1;
ad9851_w_clk=0;
}
//写w0数据
w=w0;
for(i=0;i<8;i++)
{
ad9851_bit_data=(w>>i)&0x01;
ad9851_w_clk=1;
ad9851_w_clk=0;
}
//移入始能
ad9851_fq_up=1;
ad9851_fq_up=0;
}
//***************************************************//
// 测试程序1000Hz //
//---------------------------------------------------//
main()
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
//---------------------------------------------------//
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
ad9850c语言编程,AD9850与单片机波形生成程序及设计资料下载相关推荐
- ad9850c语言编程,AD9850与单片机波形生成程序及设计
概述================================================= AD9850/AD9851模块是采用ADI应用最广泛的DDS(AD9850和AD9851)制作的 ...
- 基于C语言编程的职工工资管理系统项目的设计与开发
文章目录 基于C语言编程的职工工资管理系统项目的设计与开发 一.需求分析 二.项目环境 2.1.项目创建过程 2.2.向项目添加头文件与源文件 三.职工工资管理系统模块功能 3.1.系统总体设计框图 ...
- 普中tft彩屏驱动程序下载_51单片机 彩屏TFT-SD例程及资料下载 有FAT 红外遥控显示图片...
EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 51单片机 彩屏TFT-SD例程及资料下载 有FAT 红外遥控显示图片 9 ` b( o4 r- D. g" ...
- 单片机c语言编程教学大纲,《单片机C语言编程》教学大纲
<单片机C语言编程>教学大纲 课程代码:000002336 课程英文名称:Microcontroller C Programming Language 课程总学时:24 讲课:16 实验: ...
- 杜洋单片机C语言编程组成,8051单片机C语言编程模板
c语言 本文由fan159147贡献 doc文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. <8051 单片机 C 语言编程模板> 杜洋 2009.7 [程 ...
- 51单片机c语言编程100,51单片机C语言编程100例.doc
51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...
- c8051f c语言编程,C8051F系列单片机开发与C语言编程
C8051F系列单片机开发与C语言编程 维普资讯 http://doc.xuehai.net 雎 A 21进行控制,这样可以选择不同的地址,进而控制的读写. S D1 5 E 6对应的内存和寄存器. ...
- 单片机的c语言编程教程 pdf,单片机C语言编程教程.pdf
单片机C语言编程教程 PIC C 11.1 PIC C C C PIC C C PC PC PC C C PIC C PIC Microchip PIC C PIC C Hitech CCS IAR ...
- 用C语言编程实现矩形波信号,信号与系统综合设计性实验
信号与系统综合设计性实验 傅立叶变换性质 实验设备 硬件 电脑软件 MATLAB 实验目的 掌握MATLAB的基本使用方法 掌握MATLAB环境下信号表示及产生方法 掌握MATLAB环境下傅立叶变换方 ...
最新文章
- 华人博士生首次尝试用两个Transformer构建一个GAN
- 三代测序关键计算技术开发及应用
- HTML用a标签出现404,404.html
- OpenCASCADE:形状愈合之修复工具
- 【视频回放与课件】搭上AI快车-在线公益课堂:基于移动应用的人工智能开发...
- mysql 区间/替换/自增/where与having/字段运算/关键词/修改字段
- LeetCode 150. Evaluate Reverse Polish Notation
- 如何利用数据挖掘结束单身
- React Natvie Fetch工具类
- 103页PPT带你从浅到深了解什么是PMP项目管理(全)
- 基于LM2733升压电路设计
- 电力拖动自动控制系统_专插本专业全面分析:电子工程及其自动化
- 【Jenkins】的四种插件安装方式
- 什么是编程语言,语言之间的区别
- Layui数据表格每一行动态显示倒计时
- ArcMap导入数据到ArcSDE报000597或者000224的错误
- 我的世界java版红石电梯_《我的世界》红石电梯建造教程
- 宽依赖和窄依赖_Spark RDD的宽依赖和窄依赖
- iOS单元测试之接口测试
- Mol文件和SDF文件介绍