【TB作品】MSP430,波形发生器,单片机,Proteus仿真

题目

114
波形发生器的制作
设计要求
设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。设置5个开关K1~K5(从
上到下),分别对应正弦波、方波、三角波、梯形波、锯齿波,按一下其中一个开关,则选择出所要
产生的波形。

效果

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

梯形波100个点产生方法

python:

import numpy as np
import matplotlib.pyplot as plt

# 定义梯形波参数
total_points = 100
min_value = 0
max_value = 255

# 假设每个部分的点数相等,因此每部分25个点
points_per_section = total_points // 4

# 生成梯形波的各个部分
rising_edge = np.linspace(min_value, max_value, points_per_section, endpoint=False)
top = np.full(points_per_section, max_value)
falling_edge = np.linspace(max_value, min_value, points_per_section, endpoint=False)
bottom = np.full(total_points - 3 * points_per_section, min_value)

# 合并生成完整的梯形波
trapezoidal_wave = np.concatenate((rising_edge, top, falling_edge, bottom))
# int 化
trapezoidal_wave = trapezoidal_wave.astype(int)

print(trapezoidal_wave.tolist())
# 绘制梯形波形
plt.plot(trapezoidal_wave)
plt.title('Trapezoidal Wave')
plt.ylim(min_value - 10, max_value + 10)
plt.show()

在这里插入图片描述

锯齿波100个点产生方法

python

import numpy as np
import matplotlib.pyplot as plt

# 定义锯齿波参数
total_points = 100  # 一个周期的总点数
max_value = 255
num_teeth = 2  # 一个周期内锯齿波的数量

# 计算单个锯齿波的点数
points_per_tooth = total_points // num_teeth

# 生成单个锯齿波
single_tooth = np.linspace(0, max_value, points_per_tooth, endpoint=False)

# 生成完整的锯齿波,由两个单个锯齿波拼接而成
sawtooth_wave = np.tile(single_tooth, num_teeth)
sawtooth_wave = sawtooth_wave.astype(int)
sawtooth_wave = sawtooth_wave.tolist()
# sawtooth_wave = sawtooth_wave[::-1]
print(sawtooth_wave)
# 绘制锯齿波形
plt.plot(sawtooth_wave)
plt.title('Sawtooth Wave')
plt.ylim(-10, max_value + 10)  # 设置y轴范围以略微超出最小和最大值
plt.show()

在这里插入图片描述

c代码和proteus仿真

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 05:28:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 05:28:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 05:28:03       82 阅读
  4. Python语言-面向对象

    2024-03-14 05:28:03       91 阅读

热门阅读

  1. 分布式链路追踪(一)SkyWalking(2)使用

    2024-03-14 05:28:03       42 阅读
  2. springboot 接双 Kafka

    2024-03-14 05:28:03       36 阅读
  3. 谷歌搜索语法

    2024-03-14 05:28:03       39 阅读
  4. C++面试100问!(二)

    2024-03-14 05:28:03       41 阅读
  5. 力扣由浅至深 每日一题.02 回文数

    2024-03-14 05:28:03       39 阅读
  6. Linux常用web开源服务器

    2024-03-14 05:28:03       38 阅读
  7. Python web框架fastapi中间件的使用

    2024-03-14 05:28:03       38 阅读