本设计包含proteus仿真+程序代码+设计报告+讲解视频
📚开发环境
仿真图:proteus 8.9
程序编译器:keil 5
编程语言:C语言
设计编号:C0075
📚主要功能
结合实际情况,基于STM32F103单片机设计一个四种波形发生器(正弦波、方波、三角波、锯齿波)。该系统应满足的功能要求为:
(1) 可以实现四种波形:正弦波、方波、三角波、锯齿波;
(2) 通过按键进行选择,频率可以调整;
(3) LCD液晶显示;
(4)设计出来之后用Proteus软件仿真出效果。
主要硬件设备:STM32F103单片机、DAC0832数模转换芯片、矩阵键盘、LCD12864液晶屏幕。
📚整体设计方案
四种波形发生器以STM32F103单片机作为整个系统的控制核心,应用其强大的处理速度,构成波形发生器系统。该系统具备将数字信号转换为模拟信号的能力。正弦波可以直接采用数学函数sin计算出来,送入单片机进行数据处理。经单片机运算后的数据送入DAC0832芯片将数字信号转换为模拟信号输出。其他的波形都可以采用自身的规律采用不同的算法实现。

图2-1 基于STM32单片机的四种波形发生器原理图
本系统硬件主要由矩阵键盘、D/A转换器、LCD12864显示系统、处理器等几部分组成。各模块的主要功能如下:
(1)矩阵键盘的功能是设置波形和频率,然后送入单片机。
(2) MCU的功能是识别键盘的数据并进行相对应的处理,然后转换出波形的数字信号和LCD显示的数据。
(3) LCD12864显示系统的功能是将设置的波形和频率显示出来。
系统的整体设计方案设计图如图2-2所示。

图2-2 系统的整体方案设计图
采用的是DAC0832芯片来做DA转换的,DAC0832将输出电压分成了0xFF(255)份,需要输出不同的波形我们需要给不同的数据,在这里我将所有的波形的一个周期分成了100份,定时器每隔一段时间中断一次,中断100次为一个周期。
正弦波采用数学计算公式sin来计算;
方波只需要在定时器前面50次给0,后面50次给最大值即可;
三角波只需要在定时器前面50次采用最大值的50分之一乘于它本身,后面50次相反即可;
锯齿波只需要在一个周期内,定时器中断一次就用他本身乘于电压最大值的100分之一即可;
📚仿真图
测试波形如下所示:
三角波

锯齿波

方波

正弦波

📚设计报告

📚程序代码


📚资料清单&&下载链接

资料下载链接(可点击):
https://docs.qq.com/doc/DS3FnQUZIYU5jRWZ2
3224

被折叠的 条评论
为什么被折叠?



