【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

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

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

相关文章

Word2vec学习笔记

(1)NNLM模型(神经网络语言模型) 语言模型是一个单纯的、统一的、抽象的形式系统,语言客观事实经过语言模型的描述,比较适合于电子计算机进行自动处理,因而语言模型对于自然语言的信息处理具有重…

TnT-LLM: Text Mining at Scale with Large Language Models

TnT-LLM: Text Mining at Scale with Large Language Models 相关链接:arxiv 关键字:Large Language Models (LLMs)、Text Mining、Label Taxonomy、Text Classification、Prompt-based Interface 摘要 文本挖掘是将非结构化文本转换为结构化和有意义的…

分布式锁中的王者方案 - Redission

文章目录 5.1 分布式锁-redission功能介绍5.2 分布式锁-Redission快速入门5.3 分布式锁-redission可重入锁原理5.4 分布式锁-redission锁重试和WatchDog机制5.5 分布式锁-redission锁的MutiLock原理 5.1 分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题&am…

JVM垃圾收集器你会选择吗?

目录 一、Serial收集器 二、ParNew收集器 三、Paralle Scavenge 四、Serial Old 五、Parallel Old 六、CMS收集器 6.1 CMS对处理器资源非常敏感 6.2 CMS容易出现浮动垃圾 6.3 产生内存碎片 七、G1 收集器 八、如何选择合适的垃圾收集器 JVM 垃圾收集器是Java虚…

CSS3新属性(学习笔记)

一、. 圆角 border-radius:; 可以取1-4个值&#xff08;规则同margin&#xff09; 可以取px和% 一般用像素&#xff0c;画圆的时候用百分比&#xff1a;border-radius:50%; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

Axure RP 9 for Mac中文激活版:原型设计工具

Axure RP 9 for Mac是一款值得设计师信赖的原型设计工具。它以其卓越的性能和稳定的运行赢得了广大用户的赞誉。 软件下载&#xff1a;Axure RP 9 for Mac中文激活版下载 在Axure RP 9中&#xff0c;您可以尽情发挥自己的设计才华&#xff0c;创造出独一无二的原型作品。无论是…

MySQL5.6.11安装步骤(Windows7 64位)

MySQL5.6.11安装步骤&#xff08;Windows7 64位&#xff09; 1. 下载MySQL Community Server 5.6.21&#xff0c;注意选择系统类型&#xff08;32位/64位&#xff09; 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下。 3. 添加环境变量 变量名&#xff1a;MYS…

重大机遇,腾讯云优惠券免费领取入口整理,千元代金券一键搞定

腾讯云代金券领取渠道有哪些&#xff1f;腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券&#xff0c;大家也可以在腾讯云百科蹲守代金券&#xff0c;因为腾讯云代金券领取渠道比较分散&#xff0c;腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

蓝桥杯刷题|03普及-真题

[蓝桥杯 2017 省 B] k 倍区间 题目描述 给定一个长度为 N 的数列&#xff0c;​,,⋯&#xff0c;如果其中一段连续的子序列 ​,,⋯ (i≤j) 之和是 K 的倍数&#xff0c;我们就称这个区间 [i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗&#xff1f; 输入格式 …

算法设计与分析-动态规划算法的应用——沐雨先生

一、实验目的 1&#xff0e; 掌握动态规划算法的基本思想&#xff0c;包括最优子结构性质和基于表格的最优值计算方法。 2&#xff0e;熟练掌握分阶段的和递推的最优子结构分析方法。 3&#xff0e; 学会利用动态规划算法解决实际问题 。 二、实验内容 1. 问题描述 &#…

Linux之缓冲区与C库IO函数简单模拟

缓冲区 首先, 我们对缓冲区最基本的理解, 是一块内存, 用户提供的缓冲区就是用户缓冲区, C标准库提供的就是C标准库提供的缓冲区, 操作系统提供的就是操作系统缓冲区, 它们都是一块内存. 为什么要有缓冲区? 先举个生活中的例子, 我们寄快递的时候往往是去驿站寄快递, 而不是…

4 个多月的蓝猫吃什么猫粮发腮快?

亲爱的猫友们&#xff0c;你们是不是也在为蓝猫的发腮问题而苦恼呢&#xff1f;&#x1f431; 四个多月的蓝猫正处于生长发育的关键时期&#xff0c;选择合适的猫粮对于它们的健康与美丽至关重要。 &#x1f50d; 在选择猫粮时&#xff0c;我们要关注几个关键点&#xff1a;高…

Elasticsearch从入门到精通-06ES统计分析语法

Elasticsearch从入门到精通-06ES统计分析语法 bucket和metric概念简介 bucket就是一个聚合搜索时的数据分组。如&#xff1a;销售部门有员工张三和李四&#xff0c;开发部门有员工王五和赵六。那么根据部门分组聚合得到结果就是两个bucket。销售部门bucket中有张三和李四&…

window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)

window下安装并使用nvm&#xff08;含卸载node、卸载nvm、全局安装npm&#xff09; 一、卸载node二、安装nvm三、配置路径和下载源四、使用nvm安装node五、nvm常用命令六、卸载nvm七、全局安装npm、cnpm八、遇到的问题 nvm 全名 node.js version management&#xff0c;顾名思义…

远程桌面安卓版下载 安卓远程控制免费版

远程桌面安卓版下载与安卓远程控制免费版的应用解析 随着移动互联网的快速发展&#xff0c;远程桌面应用逐渐成为了许多用户、特别是技术爱好者和商务人士的必备工具。它们不仅可以在电脑上实现远程控制&#xff0c;还能将这种功能延伸到移动设备上&#xff0c;如安卓手机和平…

Acwing.167 木棒(回溯)

题目 乔治拿来一组等长的木棒&#xff0c;将它们随机地砍断&#xff0c;使得每一节木棍的长度都不超过 50 个长度单位。 然后他又想把这些木棍恢复到为裁截前的状态&#xff0c;但忘记了初始时有多少木棒以及木棒的初始长度。 请你设计一个程序&#xff0c;帮助乔治计算木棒…

年度告警分类统计

1、打开前端Vue项目kongguan_web&#xff0c;完成前端src/components/echart/YearWarningChart.vue页面设计 在YearWarningChart.vue页面添加div设计 <template><div class"home"><div style"margin: 0px auto;height: 100%"><div …

金蝶云星空——单据附件上传

文章目录 概要技术要点代码实现小结 概要 单据附件上传 技术要点 单据附件上传金蝶是有提供标准的上传接口&#xff1a; http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.AttachmentUpLoad.common.kdsvc 参数说明 参数类型必填说明FileName字符是…

基于springboot+vue的乡村民宿管理系统

一、系统架构 前端&#xff1a;vue | element-ui 后端&#xff1a;springboot | mybatis-plus 环境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. 登录页 02. 注册 03. 管理员-首页 04. 管理员-信息管理-公告信息 05. 管理员…

淘宝|天猫|京东|1688主流电商平台的实时数据返回接口|附Python实例

导读&#xff1a;随着淘宝/天猫直通车功能升级&#xff0c;很多功能越来越白盒化&#xff0c;越来越简化&#xff0c;更方便用户的操作&#xff0c;只需一键即可看出淘宝/天猫直通车存在的问题。淘宝/天猫直通车千人千面后有了实时数据工具&#xff0c;下面通过一个案例告诉大家…