【TB作品】MSP430,单片机,Proteus仿真,数字音乐盒,蜂鸣器音乐仿真

文章目录

  • 题目要求
  • 如何根据简谱编曲
  • 仿真图
  • 代码介绍
      • 宏定义部分
      • 全局变量部分
      • LCD 控制函数
      • 按键检测和处理函数
      • 蜂鸣器控制函数
      • 主函数部分
  • 获取代码和仿真

题目要求

86
数字音乐盒的制作
1
设计要求
制作一个数字音乐盒,盒内存有3首乐曲,每首不少于30s。采用LCD显示乐曲信息,
开机时有英文欢迎提示字符,播放时显示歌曲序号及名称。1可通过按下功能键K1、K2、K3
之一,选择3首乐曲中的1首;然后按下播放键K4,即开始播放所选择的乐曲;K5键为暂
停。
原理说明
利用I/0口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。音
乐的播放原理请参考上题。

如何根据简谱编曲

https://qq742971636.blog.csdn.net/article/details/107528580

在这里插入图片描述

仿真图

在这里插入图片描述

代码介绍

这段代码实现了一个数字音乐盒,具有以下功能:

  1. LCD 显示功能:使用 LCD 屏幕显示欢迎信息和当前播放的歌曲信息。

  2. 按键检测和处理功能:通过按下不同的按键选择并播放不同的音乐,还可以暂停播放。

  3. 蜂鸣器功能:根据预设的音乐频率和节拍播放音乐。

现在让我们来逐步介绍代码的各个部分和功能。

宏定义部分

这部分定义了一些常量、频率、延时函数以及音乐的频率和节拍等信息,便于后续使用。

全局变量部分

这部分定义了一些全局变量,如音乐索引、播放标志等,用于控制音乐播放状态。

LCD 控制函数

这些函数用于初始化 LCD 屏幕、向 LCD 屏幕写入指令或数据、设置光标位置以及显示字符和字符串等操作。

按键检测和处理函数

get_key() 函数用于检测按键输入,返回按下的键值。delay_key() 函数根据按下的键值进行相应的处理,如选择音乐、播放、暂停等。

蜂鸣器控制函数

set_fre() 函数用于设置蜂鸣器的频率,根据传入的频率来调节蜂鸣器的声音。BEEPCLOSE 宏用于关闭蜂鸣器。

主函数部分

  1. 初始化:配置端口方向,初始化 LCD 屏幕,设置蜂鸣器模式等。

  2. 欢迎信息显示:在 LCD 屏幕上显示欢迎信息,持续一段时间后清除。

  3. 按键检测和音乐播放:进入主循环后,持续检测按键输入,根据按键的不同选择播放对应的音乐。根据当前选择的音乐索引,通过循环播放预设的音符和节拍。

  4. 蜂鸣器控制:在播放音乐时,根据预设的频率和节拍控制蜂鸣器的声音。

  5. LCD 显示更新:根据当前播放的音乐信息更新 LCD 屏幕的显示内容。

整体结构清晰,功能模块化,便于理解和维护。

获取代码和仿真

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

展开说说:Android之SharedPreferences

SharedPreferences 是一种轻量级的数据持久化存储机制。以key/value键值对形式存储在xml文件,用于保存一些应用程序数据。保存在 /data/data/PACKAGE_NAME/shared_prefs/xxx.Xml文件。 SharedPreferences 只能存储string,int,float&#xff…

【洛谷 P8661】[蓝桥杯 2018 省 B] 日志统计 题解(滑动窗口+优先队列+双端队列+集合)

[蓝桥杯 2018 省 B] 日志统计 题目描述 小明维护着一个程序员论坛。现在他收集了一份“点赞”日志,日志共有 N N N 行。其中每一行的格式是 ts id,表示在 t s ts ts 时刻编号 i d id id 的帖子收到一个“赞”。 现在小明想统计有哪些帖子曾经是“热…

matlab 电机仿真平台GUI

1、内容简介 略 74-可以交流、咨询、答疑 2、内容说明 略 电机仿真平台GUI 包含直流机要加调电压启动、回馈制动、串电阻调速 异步电动机要加串电阻启动、星三角启动、回馈制动模块 3、仿真分析 略 4、参考论文 略

【QT入门】VS2019+QT的开发环境配置

声明:该专栏为本人学习Qt知识点时候的笔记汇总,希望能给初学的朋友们一点帮助(加油!) 往期回顾: 【QT入门】什么是qt,发展历史,特征,应用,QtCreator-CSDN博客【QT入门】Windows平台下…

项目三 操作学生管理数据库中的表

项目三 操作学生管理数据库中的表 1,使用MySQL中的常用数据类型 数据类型决定了数据的取值范围、存储方式与占用的空间大小以及能够对其进行的一组合法操作。 1.1,使用数值类型 1,MySQL 的数值类型大致可以分为两个类别:整数类…

论文阅读——GeoChat(cvpr2024)

GeoChat : Grounded Large Vision-Language Model for Remote Sensing 一、引言 GeoChat,将多模态指令调整扩展到遥感领域以训练多任务会话助理。 遥感领域缺乏多模式指令调整对话数据集。受到最近指令调优工作的启发,GeoChat 使用 Vicuna-v1.5和自动化…

深度学习-解读GoogleNet深度学习网络

深度学习-解读GoogleNet深度学习网络 深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰,打…

android studio 连接mumu模拟器调试

1、打开mumu模拟器 2、在Android Studio 中 控制台 cd 到 sdk 目录下 platform-tools 文件夹,有一个adb.exe 可运行程序 一般指令: adb connect 127.0.0.1:7555 但是这个执行在window环境下可能会报错 解决方法是在 adb 之前加 ".\", 问题…

【AI】用iOS的ML(机器学习)创建自己的AI App

用iOS的ML(机器学习)创建自己的AI App 目录 用iOS的ML(机器学习)创建自己的AI App机器学习如同迭代过程CoreML 的使用方法?软件要求硬件开始吧!!构建管道:设计和训练网络Keras 转 CoreML将模型集成到 Xcode 中结论推荐超级课程: Docker快速入门到精通Kubernetes入门到…

迷茫了!去大厂还是创业?

大家好,我是麦叔,最近我创建了一个 学习圈子 有球友在 星球 里提问。 大厂的layout岗位和小厂的硬件工程师岗位,该如何选择? 这个问题我曾经也纠结过,不过现在的我,I am awake! 肯定是有大点大。…

GiT: Towards Generalist Vision Transformer through Universal Language Interface

GiT: Towards Generalist Vision Transformer through Universal Language Interface 相关链接:arxiv github 关键字:Generalist Vision Transformer (GiT)、Universal Language Interface、Multi-task Learning、Zero-shot Transfer、Transformer 摘要 …

小清新卡通人物404错误页面模板源码

小清新卡通人物404错误页面模板源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 下载地址 小清新卡通人物404错误页面模板源码

ClickHouse:一款高效且强大的列式数据库管理系统

ClickHouse是一款开源的列式数据库管理系统,专为大规模数据仓库和数据分析应用而设计。它允许用户快速地存储和处理海量数据,同时提供了简单易用的SQL接口。本文将介绍ClickHouse的概念、技术原理以及使用案例,并探讨其优势和挑战。 一、引言…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:WaterFlow)

瀑布流容器,由“行”和“列”分割的单元格所组成,通过容器自身的排列规则,将不同大小的“项目”自上而下,如瀑布般紧密布局。 说明: 该组件从API Version 9 开始支持。后续版本如有新增内容,则采用上角标单…

Django验证码(二)

一、生成图片 1.1、说明 通过pillow模板库生成图片,步骤如下 安装pillow模板建立 生成验证码内容 方法建立 生成验证码颜色 方法建立 生成验证码 方法1.2、需要安装 Pillow 库 pip install Pillow==9.3.01.3、生成验证码内容 import randomdef random_str(length=4):"…

html中如何让网页禁用右键禁止查看源代码

在网页中,辛辛苦苦写的文章,被别人复制粘贴给盗用去另很多站长感到非常无奈,通常大家复制都会使用选取右键复制,或CTRLC等方式,下面介绍几种禁止鼠标右键代码,可减少网页上文章被抄袭的几率,当然…

Linux学习方法-框架学习法——Linux系统框架

配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p2&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux系统框架(从裸机到OS) Linux可看成是一个大软件/大程序 应用和驱动 内核态和用户态 Linux的文件系统 Linux初学者首先要搞清楚三…

Microsoft Word 符号 / 特殊符号

Microsoft Word 符号 / 特殊符号 1. 插入 -> 符号 -> 其他符号 -> Wingdings 2References 1. 插入 -> 符号 -> 其他符号 -> Wingdings 2 ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

创新指南|制药行业如何拥抱生成式AI在新药发现与开发中突破获益

生成式AI在药物发现中的应用可加速药物研发过程,并可能降低成本。通过利用GenAI,制药公司能在早期药物发现和开发中实现更快的成果,这包括从目标识别、验证,到优化的多个环节。 AI有潜力在药物筛选和优先排序、目标识别及验证、药…

Jmeter+Ant 接口自动化环境配置指南

一 、Jmeter安装与配置 https://blog.csdn.net/tester_sc/article/details/80746405 注:Jmeter5.0的环境变量配置与4.0或历往老版本有部分小差异,笔者用的Jmeter 5.0 二 、Ant的安装与配置 # Ant下载地址(下载到指定目录后,进行解压到当前…