【TB作品】msp430单片机,播放蜂鸣器音乐,天空之城

功能

msp430单片机,连接一个无源蜂鸣器,播放蜂鸣器音乐,天空之城。

适用于所有msp430单片机。

硬件

无源蜂鸣器,接单片机P1.5,使用vcc3.3v供电。

如果根据简谱修改音乐?

//第一步
//首先修改music0 的变量,
//低音下面加点
//中音不加点
//高音上面加点
//根据简朴的符号写出对应C调音
//第二步 修改music0_JP数组 这个数组和上一个数组对应 就是每一个音 响多长时间
//普通无点是延时 7 即是800ms
//如果音 下有一条下划线,延时 4
//如果音 下有两条下划线,延时2
//如果音 后加一个点 延时12
//如果音后加一条线 延时16
//如果音后加2条线 延时20
//当然 觉得不好听 可以适当修改延时的值

部分程序


/*  ******************************************    */
//  ********  音乐0	   天空之城
/*  ******************************************    */
//以下是《天空之城》简谱    //每行对应一小节音符
unsigned int  music0[]=
{	Z6,Z7,/**/H1,Z7,H1,H3,/**/Z7,Z3,Z3, /**/Z6,Z5,Z6,H1,/**/Z5,Z3,Z3, /**/Z4,Z3,Z4,H1,Z3,H1,H1,H1,/**/Z7,Z4,Z4,Z7,/**/Z7,Z6,Z7, /**/H1,Z7,H1,H3,/**/Z7,Z3,Z3, /**/Z6,Z5,Z6,H1,Z5, Z3,/**/Z4,H1,Z7,H1,/**/H2,H2,H2,H1,/**/H1,Z6,Z7,Z5,/**/Z6,H1,H2, /**/H3,H2,H3,H5,H2,Z5,Z5, /**/H1,Z7,H1,H3,/**/H3, /**/Z6,H1,Z7,H2,/**/H1,Z5,Z5, /**/H4,H3,H2,H1,H3, /**/Z3,H3, /**/H6,H5,H5, /**/H3,H2,H1,H1,/**/H2,H1,H2,H5,/**/H3,H3,H6,H5, /**/H3,H2,H1,H1,/**/H2,H1,H2,Z7,/**/Z6,Z6,Z7, /**/Z6,0xff}; //以0xff作为音符的结束标志//以下是简谱中每个音符的节拍
//"4"对应4个延时单位,"2"对应2个延时单位,"1"对应1个延时单位
unsigned char  music0_JP[ ]=
{	4,4, /**/12,4,8,8, /**/20,4,4, /**/12,4,8,8, /**/20,4,4, /**/12,4,4,12,20,4,4,4, /**/12,4,8,8, /**/20,4,4, /**/12,4,8,8, /**/20,4,4, /**/12,4,8,8,32, 4, /**/8,4,6,8, /**/4,4,4,16, /**/8,4,6,8, /**/24,4,4, /**/12,4,8,8,24,4,4, /**/4,4,8,8, /**/32, /**/4,8,8,6, /**/12,4,16, /**/8,8,8,8,30, /**/20,8, /**/16,8,8, /**/4,4,16,8, /**/8,4,4,8, /**/20,8,16,16, /**/4,20,8, /**/8,4,4,8, /**/20,4,4, /**/32};/*  ******************************************    */
/*  ********   延时100ms	控制音乐节拍 */
/*  ******************************************    */
void delay1()
{delay_ms( 100 );
}int main( void )
{unsigned char u = 0, t = 0;WDTCTL = WDTPW + WDTHOLD;                               /* Stop WDT */P1DIR |= BIT5;                                          /* P1.0 output */_EINT();while ( 1 ){u = 0, t = 0;while ( music0[u] != 0xff )                     /* 只要没有读到结束标志就继续播放 */{CCR0	= SYSCLK / music0[u] / 2;       /*选一个频率 */for ( t = 0; t < music0_JP[u]; t++ )    /* 控制节拍数 */delay1();                       /* 延时1个节拍单位 */TACTL = TASSEL_2 + MC_0;                /* 关闭 */u++;                                    /* 播放下一个音符 */}}
}/* Timer A0 interrupt service routine */
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A( void )
{P1OUT ^= BIT5;
}

全部程序

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

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

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

相关文章

城市之旅:使用 LLM 和 Elasticsearch 简化地理空间搜索(一)

作者&#xff1a;来自 Elastic Philipp Kahr, Valentin Crettaz 这篇博文的本地部署实践 Jupyter notebook 请详细阅读文章 “城市之旅&#xff1a;使用 LLM 和 Elasticsearch 简化地理空间搜索&#xff08;二&#xff09;”。 探索如何从自然语言提问创建地理空间搜索。在下…

最新鸿蒙南北开发学习路线+学习资料分享

前言 5月29日&#xff0c;“千帆竞发启航 共筑鸿蒙生态”鸿蒙原生应用合作仪式在北京成功举办&#xff0c;近40个应用现场官宣启动鸿蒙原生应用开发。此次官宣启动开发的鸿蒙原生应用不仅包括教育、母婴、出行、医疗健康等多领域的知名应用&#xff0c;还有十多家企业内部办公应…

OverlayFS在嵌入式系统中的应用

文章目录 抛出问题基本概念使用场景OverlayFS的详细介绍框架目录合并修改文件删除文件添加文件小结 OverlayFS在嵌入式系统中的应用内核配置OverlayFS简单应用OverlayFS应用新思路 总结 环境介绍 硬件&#xff1a;T113平台 软件&#xff1a;Tina5.0 SDK&#xff08;使用的build…

【第3章】SpringBoot实战篇之登录接口(含JWT和拦截器)

文章目录 前言一、JWT1. 什么是JWT2. 使用场景3. 结构3.1 Header3.2 Payload3.3 Signature 4. 使用 二、案例1.引入库2.JwtUtils3. UserController14. ArticleController 三、拦截器1. 定义拦截器2. 注册拦截器 四、测试1. 登录2. 无token3. 有token4. 全局配置 总结 前言 前面…

485通讯网关

在工业自动化与智能化的浪潮中&#xff0c;数据的传输与交互显得尤为重要。作为这一领域的核心设备&#xff0c;485通讯网关凭借其卓越的性能和广泛的应用场景&#xff0c;成为了连接不同设备、不同协议之间数据转换和传输的桥梁。在众多485通讯网关中&#xff0c;HiWoo Box以其…

unity知识点 专项三 Update函数和如何保证物理移动的准确性

一 概念 1.1 unity update 一秒调用多少次 Unity的Update函数在每一帧调用一次&#xff0c;如果您的游戏运行在60帧每秒&#xff08;这是标准的帧率目标&#xff09;&#xff0c;那么Update函数将在每一秒被调用60次。 这是Unity的默认行为&#xff0c;但实际调用频率可以根…

智驾未来与低代码开发:重塑技术领域的双重革命,引领全新智能时代

在信息化浪潮席卷全球的今天&#xff0c;两大技术趋势——智能驾驶与低代码开发正逐渐崭露头角&#xff0c;它们以其独特的魅力引领着未来科技发展的方向。这两大技术不仅为传统行业注入了新的活力&#xff0c;更催生了众多前所未有的商业模式&#xff0c;使人们的生活变得更加…

计算机组成原理概论 (复习专用)

文章目录 前言一、计算机组成原理概论1.冯诺伊曼体系结构1.基本设计思想2.五大部件1.存储器 2.运算器3.控制器4.5.输入/输出设备 2.计算机语言3.计算机的性能指标1.机器字长2.存储容量3.运算速度4.可靠性、可维护性、可用性5.功耗、能耗 后续看时间&#xff0c;可能会补充例题.…

postman教程-10-使用cookie

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了Postman Authorization授权的几种方法&#xff0c;本小节我们讲解一下Postman 使用cookie的方法。 Postman 的 cookie 管理器使您能够查看和编辑与不同域关联的 cookie。您可以为域手动创建 c…

软件测试、测试模型、测试用例

软件开发的五个模型 瀑布模型&#xff08;Waterfall Model&#xff09; 瀑布模型是所有其他模型的基础框架&#xff0c;瀑布模型的每个阶段都只执行一次&#xff0c;因此是线性顺序进行的开发模式优点&#xff1a;强调开发的阶段性&#xff1b; 强调早期计划及需求调查&#…

*args 与 **kwargs

*args 与 **kwargs *args**kwargs *args 在 Python 中&#xff0c;*args 是一个特殊的语法&#xff0c;用于表示函数定义或调用时的可变参数列表&#xff08;variable argument list&#xff09;。这里的星号&#xff08;*&#xff09;表示 “任意数量”&#xff0c;而 args 是…

链表任意位置插入删除

链表的插入删除主要是要考虑如果为空表&#xff0c;删除第一个等特殊情况&#xff0c;考虑全面。 具体实现如下 #include<stdlib.h> #include<stdio.h> struct Node {int data;struct Node* next; }; struct Node* head; void print() {struct Node* temp head;p…

【Python实战】使用postman测试flask api接口

cookie_demo.py # -*- coding: utf-8 -*- """ Time : 2024/5/28 17:14 Author : 娜年花开 File : cookie_demo.py Desc : 需求&#xff1a;用户需要先登陆&#xff0c;登陆之后&#xff0c;通过Cookie来判断是不是能够访问登录后的接口userinfo &quo…

TMS FNC WX Pack TMS软件分发的一组应用程序

TMS FNC WX Pack TMS软件分发的一组应用程序 TMS FNC WX Pack是由TMS软件分发的一组应用程序。这些活动是100%的跨平台和跨Frimorc&#xff0c;并在不同的应用程序中得到支持&#xff0c;如Web应用程序、Windows、Linux等。阿拉伯语视觉组件库。安装这些计算机的过程非常简单高…

【2024最新华为OD-C/D卷试题汇总】密码解密 (100分) - 支持在线评测+三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 在线评测链接 密码解密(100分) 🌍 评测功能需要订阅专栏后私信联系清隆解锁~…

【Unix】运行时so库动态加载

运行时可以自己自定义so库的动态加载框架&#xff0c;主动去加载某些库&#xff0c;并调用其中的某些方法 首先写一些方法&#xff0c;并生成so库 // hello.cpp#include <iostream>/*使用 nm 命令查看 so 库的内容 */// 1. 使用extern // dlsym(handle, "hello&qu…

Elasticsearch REST API 初探:索引与搜索文档的奥秘

在当今数据驱动的时代&#xff0c;高效的数据检索和存储成为了众多企业和项目的关键需求。Elasticsearch 作为一款基于 Lucene 的开源搜索和分析引擎&#xff0c;凭借其分布式、可扩展和高性能的特性&#xff0c;成为了处理大规模数据的首选工具。本文将带你初步探索 Elasticse…

第四讲 单片机STC89C52+RA8889代码移植范例(包含API接口)

本次介绍单片机STC89C52RA8889代码移植范例&#xff0c;该范例已将RA8889的API移植好了&#xff0c;下方提供下载地址。 硬件平台&#xff1a;89C52RA8889 采用SPI通信方式 (已测试通过&#xff09; 上一讲已经阐述RA8889移植到51单片机的基本方法&#xff0c;本讲增加了API…

C语言从头学15——数据类型(一)

C语言中的数据都有类型区别&#xff0c;必须先声明数据的类型后才能操作数据。基本数据类型有三种&#xff1a;字符型&#xff08;char&#xff09;、整型数&#xff08;int&#xff09;和浮点型数&#xff08;float&#xff09;。其它复杂的类型都是以它们为基础构建的&#x…