AD603模塊,AD9833 DDS信號發生器芯片(產生頻率可調信號),MCP4725 12位DAC芯片(控制AD603輸出最大值),STM32F103RCT6 正點原子mini板。代碼很簡單,調用直接復制HARDWARE文件下同名文件夾即可。
內含芯片資料,模塊那個寶有。
制作出來的實物圖如下:
IMG_20190730_161540.jpg (2.98 MB, 下載次數: 94)
下載附件
實物連線
2019-8-2 09:30 上傳
IMG_20190730_161550.jpg (3.07 MB, 下載次數: 67)
下載附件
波形
2019-8-2 09:30 上傳
IMG_20190730_161558.jpg (2.72 MB, 下載次數: 86)
下載附件
頻率幅值改變后波形
2019-8-2 09:30 上傳
單片機源程序如下:
- #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, 下載次數: 213)
2019-8-2 16:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|