AD603模块,AD9833 DDS信号发生器芯片(产生频率可调信号),MCP4725 12位DAC芯片(控制AD603输出最大值),STM32F103RCT6 正点原子mini板。代码很简单,调用直接复制HARDWARE文件下同名文件夹即可。
内含芯片资料,模块那个宝有。
制作出来的实物图如下:
实物连线
波形
频率幅值改变后波形
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "key.h"
- #include "ad9833.h"
- #include "MCP4725.h"
- int main(void)
- {
- u8 t=0;
- static unsigned int freq,votage,vout;
- delay_init(); //延时函数初始化
- AD9833_Init_GPIO();
- MCP4725_Init();
- LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); //初始化与按键连接的硬件接口
- LED0=0; //点亮LED
- while(1)
- {
- t=KEY_Scan(0); //得到键值
- switch(t)
- {
- case KEY0_PRES:
- LED0=!LED0;
- freq+=10000;
- break;
- case KEY1_PRES:
- LED1=!LED1;
- vout+=1;
- votage=(vout*4096)/5;
- break;
- case WKUP_PRES:
- LED0=!LED0;
- LED1=!LED1;
- freq=0;
- votage=0;
- vout=0;
- break;
- default:
- delay_ms(10);
- }
-
-
- AD9833_WaveSeting(freq,0,SIN_WAVE,0 );//100KHz, 频率寄存器0,正弦波输出 ,初相位0 */
- //AD9833_WaveSeting(1000.5,0,TRI_WAVE,0 );//1.0005KHz,频率寄存器0,三角波输出 ,初相位0
- //AD9833_WaveSeting(1000000,0,SQU_WAVE,90); //1MHz, 频率寄存器0,方波输出 ,初相位90 */
- //AD9833_WaveSeting(100000,0,SIN_WAVE,0 );//100KHz, 频率寄存器0,正弦波输出 ,初相位0 */
-
-
- MCP4725_WriteData_Digital(votage);
-
-
-
-
-
- }
- }
复制代码
所有资料51hei提供下载:
自建基于AD603的可控信号放大.7z
(3.48 MB, 下载次数: 212)
|