STM32单片机TFT显示AD9833 DDS信号发生器语音播报正弦波方波三角波

实践制作DIY- GC0146---TFT显示AD9833 DDS信号发生器

基于STM32单片机设计---TFT显示AD9833 DDS信号发生器

二、功能介绍:

硬件组成:STM32F103C系列最小系统板 +1.8寸TFT彩屏+AD9833信号模块+4*4矩阵键盘+DY-SV17F语音播报模块

1.通过4*4键盘来设定频率值和三角波正弦波的幅度(方波不可以设定幅度固定4V幅度),频率设定范围0~0.99999MHz。幅度设定范围0~3.3V(低于100mV波形会失真不建议低于100mV)

2.通过4*4键盘选择输出波形范围:正弦波、方波、三角波三种模型可以设定

3.1.8寸TFT彩屏显示频率、幅度、波类型。

4.点击播放键后,开始进行语音播报当前的 波形、频率、幅度。三、详情介绍:

视频讲解:哔哩哔哩搜索UP主“爱搞单片机”在其空间搜索关键词TFT显示AD9833 DDS信号发生器观看该视频详解讲解

 

功能演示操作

这是一款基于STM32单片机TFT显示AD9833 DDS信号发生器

1个主机:STM32F103C系列单片机+LCD1602显示器+蜂鸣器 +LORA无线模块+3个按键(设置、加、减)+HC-05蓝牙模块(仅蓝牙版本有)

2个从机:STM32F103C系列单片机+DS18B20+MQ2烟雾模块+LORA无线模块

1.从机采集DS18B20温度数据,MQ2传感器的烟雾浓度通过LORA无线模块上传至主机。

2.主机接收2个从机的上传的数据,然后在LCD1602上面显示温度数据硬件组成:STM32F103C系列最小系统板 +1.8寸TFT彩屏+AD9833信号模块+4*4矩阵键盘+DY-SV17F语音播报模块

1.通过4*4键盘来设定频率值和三角波正弦波的幅度(方波不可以设定幅度固定4V幅度),频率设定范围0~0.99999MHz。幅度设定范围0~3.3V(低于100mV波形会失真不建议低于100mV)

2.通过4*4键盘选择输出波形范围:正弦波、方波、三角波三种模型可以设定

3.1.8寸TFT彩屏显示频率、幅度、波类型。

4.点击播放键后,开始进行语音播报当前的 波形、频率、幅度。

具体测试方法观看视频详细介绍。。。

 

了解更多尽请观看视频讲解。。。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于FPGA的DDS信号发生器的代码示例,可以实现正弦波方波三角波的输出: ```verilog module dds_generator( input clk, //时钟信号 input rst, //重置信号 input [31:0] freq, //频率控制信号 input [1:0] waveform, //波形选择信号 output reg signed [15:0] out //输出信号 ); //内部寄存器 reg [31:0] phase_acc; reg [31:0] phase_inc; //常量定义 parameter WIDTH = 32; parameter PI = 3.14159265358979323846; //计算频率增量 always @ (posedge clk, posedge rst) begin if (rst) begin phase_acc <= 0; phase_inc <= 0; end else begin phase_acc <= phase_acc + phase_inc; phase_inc <= freq * (1 << WIDTH) / 100000000; end end //计算输出信号 always @ (posedge clk, posedge rst) begin if (rst) begin out <= 0; end else begin case (waveform) 2'b00: out <= $signed($sin(phase_acc[WIDTH-1:0] * 2 * PI / (1 << WIDTH)) * (1 << 15)); //正弦波 2'b01: out <= $signed(phase_acc[WIDTH-1]); //方波 2'b10: out <= $signed(phase_acc[WIDTH-1] ? ~(phase_acc[WIDTH-2:0] << 1) : (phase_acc[WIDTH-2:0] << 1)); //三角波 default: out <= 0; endcase end end endmodule ``` 在原有的DDS信号发生器的基础上,增加了一个波形选择信号waveform,用于选择输出的波形类型。当waveform为00时,输出正弦波;当waveform为01时,输出方波;当waveform为10时,输出三角波。输出信号的计算方法也分别进行了修改,以实现不同类型的波形。其中,方波的计算方法为直接取相位累加器的最高位作为输出信号的值;三角波的计算方法为判断相位累加器的最高位,如果为1,输出 ~(phase_acc[WIDTH-2:0] << 1),否则输出(phase_acc[WIDTH-2:0] << 1)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值