基于stc8a的ad9833模块的例程的使用
用淘宝买的信号模块9833,然后例子也已经给了51的,但是手头用的是stc8a的,因此简单改造一下,测试买的模块。
测试的结果还是比较好的,就是信号比较弱,所以后面需要加运放等电路。
接线:
VCC接单片机的+5V,DGND接单片机的GND,
三个信号引脚;
测试的示波器的引脚GND接AGND,然后红表笔接OUT。
得到后面的波形。
//---------------------------------------------------//
//AD9833模块测试程序
//功能:循环输出1KHz方波,正弦波。三角波//接口:DAT --> P1.0
// CLK --> P1.1
// FNC --> P1.2
//---------------------------------------------------//
//定义头文件
# include <reg51.h>
# include <stdio.h>
# include <intrins.h>sfr P0M0 = 0x94;
sfr P0M1 = 0x93;
sfr P1M0 = 0x92;
sfr P1M1 = 0x91;
sfr P2M0 = 0x96;
sfr P2M1 = 0x95;
sfr P3M0 = 0xb2;
sfr P3M1 = 0xb1;
sfr P4M0 = 0xb4;
sfr P4M1 = 0xb3;
sfr P5M0 = 0xca;
sfr P5M1 = 0xc9;
sfr P6M0 = 0xcc;
sfr P6M1 = 0xcb;
sfr P7M0 = 0xe2;
sfr P7M1 = 0xe1;
//---------------------------------------------------//
sbit ad9833_sdata =P2^2;
sbit ad9833_sclk =P2^3;
sbit ad9833_fsync =P2^4;
//---------------------------------------------------//
//延时程序
//---------------------------------------------------//
void delay(unsigned int m)
{unsigned int n,tt;
for (n=0;n<=m;n++)
{for (tt=0;tt<=10;tt++);
}
}
//---------------------------------------------------//
//向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;
}
//---------------------------------------------------//
// 主程序 //
//---------------------------------------------------//
main()
{int i;P0M0=0x00;P0M1=0x00;P1M0=0x00;P1M1=0x00;P2M0=0x00;P2M1=0x00;P3M0=0x00;P3M1=0x00;P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
while(1)
{delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);
//寄存器频率0输出1KHz波形//第一步:复位//0000 0001 0000 0000write_ad9833_d16(0x0100); //D8=1,复位AD9833for(i=0;i<16;i++);//第二步,设置一次写入的模式//D15D14=00,选择控制寄存器//0010 0001 0000 0000write_ad9833_d16(0x2100); //选择数据一次写入,将D13=1,D12=0for(i=0;i<16;i++);//选择频率0寄存器//第三步,写入低14位//01 10 1001 1111 0001 D15D14=01,选择频率寄存器0 ;D13-D0 MSB14
write_ad9833_d16(0x69F1); //L14 先写LSB14
for(i=0;i<16;i++);//延时一下//第四步,写入高14位//01 00 0000 0000 0000write_ad9833_d16(0x4000); //H14 写MSB14,频率寄存器0为1KHzfor(i=0;i<16;i++);//选择频率1寄存器//第五步,写入低14位
//1001 0011 1110 0011 D15D14=10选择频率寄存器0,01001111100011write_ad9833_d16(0x93E3); //L14for(i=0;i<16;i++);write_ad9833_d16(0x8001); //H14 频率寄存器1为2KHzfor(i=0;i<16;i++);write_ad9833_d16(0x2000); //芯片进入工作状态,寄存器频率0输出1KHz波形
//寄存器频率1输出2KHz波形delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);write_ad9833_d16(0x2800);
//寄存器频率0输出1KHz三角波波形delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);write_ad9833_d16(0x2002);
//寄存器频率0输出1KHz方波波形delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);write_ad9833_d16(0x2020); for(i=0;i<16;i++);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);delay(100000);}
}
```![在这里插入图片描述](https://img-blog.csdnimg.cn/2020070516373087.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtZjY2Ng==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200705163754360.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtZjY2Ng==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200705163809694.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtZjY2Ng==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200705163826545.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtZjY2Ng==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200705163839242.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtZjY2Ng==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020070516384846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtZjY2Ng==,size_16,color_FFFFFF,t_70)
基于stc8a的ad9833模块的例程的使用相关推荐
- python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)
一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...
- 基于STM32与GSM模块发送中英文短信
基于STM32与GSM模块发送中英文短信 最近在做毕业设计有用到GSM模块进行短信报警,模块的功能比较多这里就不介绍了,一般的拨打电话都很简单就只需要一条指令即可,发送英文短信也很简单也只要几条命令也 ...
- 基于STM32的ESP8266模块控制多路继电器
基于STM32的ESP8266模块控制多路继电器 1.视频讲解 基于STM32单片机ESP8266物联网阿里云MQTT多路继电器控制 物联网视频教程STM32+ESP8266 2.实物设计 ESP82 ...
- 基于matlab的光伏模块输出特性及mppt的建模与仿真,基于MATLAB的光伏模块输出特性及MPPT的建模与仿真...
收稿日期:2011-10-13. 光电器件 基于 MATLAB的光伏模块输出特性及 MPPT的建模与仿真 王 雨,胡仁杰 (东南大学 电气工程学院,南京210096) 摘 要: 基于光伏模块的等效电路 ...
- 光伏输出特性matlab,基于MATLAB的光伏模块输出特性及MPPT的建模与仿真
MPPT research based on fuzzy adaptive PID control 张开如;潘安琪;初雪娇; 太阳能光伏模块电器特性的数学建模与仿真 吴萌萌; 光伏电池数学 ...
- Ruoyi-Vue若依前后端分离版 2022年5月 基于代码生成器的新模块添加
Ruoyi-Vue若依前后端分离版 2022年5月 基于代码生成器的新模块添加 在ruoyi数据库的基础上.编辑好自己的数据库表 启动ruoyi前后端,进系统使用代码生成器 将生成的代码导入到现有的项 ...
- ESP32 HttpServer模式下 本地OTA 例程(基于ESP-IDF类似Arduino下OTAWebUpdater例程)
由于项目需要ESP32连接app进行OTA,为了支持AP模式下与STA模式下的本地局域网OTA功能(不需要OTA服务器). 咨询乐鑫技术支持,ESP-IDF下没有该模式的官方例程.网上也一直没有找到相 ...
- 基于NCF的多模块协同实例
简介 这次给大家带来的内容是基于NCF的多模块协同实例.今天的文章主要讲解的内容是NCF的模块Xncf之间相互调用.相互协作的能力. 这里可以把Xncf比作乐高玩具,一个Xncf就是你拥有的乐高玩具的 ...
- 基于89c51的74ls138模块的四位数码管动态显示
基于89c51的74ls138模块的四位数码管动态显示 简介 本人的开发板上只有八位数码管,因此是将p2口的三位接在138的输入上,输出口的前四位接在八位数码管的位选段上以实现四位数码管的显示. 动态 ...
- 【GD32使用】基于GD32的超声波模块开发
基于GD32的超声波模块开发 代码见下: 首先初始化引脚接口,利用PA11作为Triger触发脚,PB12作为Echo脚. (注意如果采集到的超声波信号一直为0,请检查触发脉宽是否大于10us,另外驱 ...
最新文章
- [FLASH_AS]Flash as3 addEventListener事件监听传递参数
- wxWidgets:wxRegEx类用法
- 【转】Dynamics CRM 365零基础入门学习(三)Dynamics 通过Web API 来调用自定义的Action(使用插件)
- D3D9 effect (hlsl)(转)
- mysql dos 下切换连接_如何在dos下连接进入mysql对数据库进行操作
- Android 系统(98)---Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)
- 95-40-105-java.util.concurrent-线程-Executor
- 获取表数据_大数据抽取解决方案——kettle分页循环
- JS处理数据四舍五入
- 叉积求点到平面距离_求一个点到曲线或折线的最短距离?
- 安装破解VS2015(破解使用秘钥)
- android 铃音制作工具,手机铃声制作大师
- 成功的背后!(给所有IT人)--转自CSDN博客排名第二 的大神
- DNS 的工作原理——域名系统
- 清华计算机系博士小姐姐,竟然用图详解web前端,实在是太秀了
- 2018 最好的自动化测试工具
- greenplum segment down 实例
- 2018 ACM-ICPC, Syrian Collegiate Programming Contest F. Pretests(子集dp)
- 微信jssdk图片上传给服务器,使用微信JSSDK进行图片选择和上传
- sap hana连接