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

文章目录

  • 题目
  • 效果
  • 梯形波100个点产生方法
  • 锯齿波100个点产生方法
  • c代码和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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/463710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型知识积累——幻觉

什么是大模型幻觉 在大语言模型的文本生成场景下,幻觉是指一本正经的胡说八道。逻辑连贯的自然表述中,有理论或者事实错误,捏造事实等问题。 幻觉问题的危害 LLM幻觉可能产生传播错误知识的后果。对于医疗应用中结果安全和可信AI尤为重要&a…

Android 系统的启动过程

Android 系统的启动流程: RomBoot(只读存储器引导程序):这是设备上电时运行的初始软件。RomBoot执行基本的硬件初始化,确保硬件处于可以运行后续启动阶段的状态。这一阶段非常重要,因为它为整个启动过程奠定…

部署 JimV 私有云

server1 控制节点计算节点192.168.136.131server2 计算节点192.168.136.132 准备环境 基础系统 Centos7 (确保关闭防火墙 禁用SELinux) 私有云平台JimV-3.10.2-x86_64-DVD-240129-CentOS72009.iso 离线安装 将Jimv的镜像上传到server1上 并将其挂载…

Linux之shell循环

华子目录 for循环带列表的for循环格式分析示例shell允许用户指定for语句的步长,格式如下示例 不带列表的for循环示例 基于C语言风格的for循环格式示例注意 while循环格式示例 until循环作用格式示例 循环控制breakcontinue详细语法示例 循环嵌套示例 for循环 for循…

字典树 [Tire]

数据结构、算法总述:数据结构/基础算法 C/C_禊月初三的博客-CSDN博客 字典树,英文名 trie。顾名思义,就是一个像字典一样的树。 Trie 树是一种多叉树的结构,它的特点是所有的字符都存储在树的分支上,并且从根节点到某…

最详细爬虫零基础教程03——Request库的介绍

文章目录 前言一、Request库的使用?二、响应Response中的属性3.用户代理(User-Agent) 前言 Request库是一个Python的第三方库,用于发送HTTP请求和处理HTTP响应。它提供了简单而方便的接口,使得发送HTTP请求变得容易。…

OpenCV(七)——灰度图像的阙值处理以及图像的边界填充

灰度图像的阙值处理 在OpenCV中利用threshold()对灰度图像进行阙值处理,该函数通过将图像中的每个像素值与一个给定的阈值进行比较来工作。如果像素值超过这个阈值,那么像素值将被设置成指定的最大值;如果没有超过阈值,则根据不同…

C语言例:设 int a=11; 则表达式 a+=a-=a*a 的值

注&#xff1a;软件为VC6.0 代码如下&#xff1a; #include<stdio.h> int main(void) {int a11, b;b (aa-a*a); //a*a121 -->a-121结果为a-110 -->a-110结果为a-220printf("表达式aa-a*a 的值为&#xff1a; %d\n",b);return 0; } //优先级&#x…

组播协议详解

1.组播基础 &#xff08;1&#xff09;组播简介 &#xff08;2&#xff09;组播的地址 &#xff08;3&#xff09;组播的MAC地址 &#xff08;4&#xff09;组播的MAC地址 &#xff08;5&#xff09;反向转发路径—RPF 2.IGMP &#xff08;1&#xff09;简介 &#xff0…

vite ts vue 项目提示 . Projects must list all files or use an include pattern.

vite ts vue 项目提示 . Projects must list all files or use an include pattern. 在引用一个 ts 的时候&#xff0c;提示如下&#xff1a; 需要在 tsconfig.node.json 文件中添加&#xff1a; {"compilerOptions": {"composite": true,"skipLibC…

【LLM】LLama2模型(RMSNorm、SwiGLU、RoPE位置编码)

note 预训练语言模型除了自回归&#xff08;Autoregressive&#xff09;模型GPT&#xff0c;还有自编码模型&#xff08;Autoencoding&#xff09;BERT[1]、编-解码&#xff08;Encoder-Decoder&#xff09;模型BART[67]&#xff0c;以及融合上述三种方法的自回归填空&#xf…

一文速通ESP32(基于MicroPython)——含示例代码

ESP32 简介 ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片&#xff0c;支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa 32 位 LX7 双核处理器&#xff0c;主频高达 240 MHz&#xff0c;内置 512 KB SRAM (TCM)&#xff0c;具有 45 个可编程 GPIO 管…

ttkbootstrap界面美化系列之简介(一)

一&#xff1a;前言 相信很多同学用Python进行界面设计第一个用到的就是Tkinter&#xff0c;Tkinter是Python的一个标准接口&#xff0c;用于创建GUI&#xff08;图形用户界面&#xff09;应用程序。它是Tcl/Tk的封装&#xff0c;Tkinter的名称来源于Tk技术工具包(Tool…

2024 Mazing 3 中文版新功能介绍Windows and macOS

iMazing 3中文版(ios设备管理软件)是一款管理苹果设备的软件&#xff0c; Windows 平台上的一款帮助用户管理 IOS 手机的应用程序。iMazing中文版与苹果设备连接后&#xff0c;可以轻松传输文件&#xff0c;浏览保存信息等&#xff0c;软件功能非常强大&#xff0c;界面简洁明晰…

Outlook API发送邮件的方法?如何设置接口?

如何使用Outlook API发送电子邮件&#xff1f;怎么调用API接口&#xff1f; 为了满足更高级别的需求&#xff0c;我们可能需要通过编程的方式来操作Outlook&#xff0c;这时候&#xff0c;Outlook API就显得尤为重要了。那么&#xff0c;如何使用Outlook API发送邮件呢&#x…

Linux下的多线程编程:原理、工具及应用(3)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Flower of Life—陽花 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶️ ☰ …

从零到一构建短链接系统(五)

1.修改UserService Service public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements UserService {public UserRespDTO getUserByUsername(String username) {LambdaQueryWrapper<UserDO> queryWrapper Wrappers.lambdaQuery(UserDO.c…

【python】集合

前言 简洁整理&#xff0c;无废话 集合概念 含义&#xff1a;跟数学中的基本一样 形式&#xff1a;{1,a,(1,2)} 性质&#xff1a;不重复性&#xff0c;集合中每个元素不会有重复&#xff1b;集合中必须是不可变元素&#xff0c;不能有列表可以有元组 创建&#xff1a;{}或…

如何引入ElementUI组件库,快速上手Element

前言&#xff1a;在上篇文章中分享了如何快速上手Vue框架项目&#xff0c;本篇文章则介绍的是Element的使用&#xff0c;通过本篇文章的分享&#xff0c;我们就可以将Vue和Element结合使用&#xff0c;快速构建出精美的网页界面 目录 一.Element和ElementUI 二.如何引入Eleme…

算法打卡day19|二叉树篇08|Leetcode 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

算法题 Leetcode 235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 大佬视频讲解&#xff1a;二叉搜索树的最近公共祖先视频讲解 个人思路 昨天做过一道二叉树的最近公共祖先&#xff0c;而这道是二叉搜索树&#xff0c;那就要好好利用这个有序的特点…