msp430g2553单片机控制蜂鸣器发出音乐的程序

如题所述

看起来数组应该是音乐数据,其中包括四种数据,就是休止符(每个100毫秒)、歌曲结束符、音阶(给出的是蜂鸣器的震荡周期)、一个音阶持续的时间长度。如果你的晶振是12MHz,按照定时器中断给Count加一来看,音阶持续的时间应该是以10毫秒为单位。 Play_Song函数要求给出参数i我的看法是这个i是指要播放第几段乐曲,i*217表示每段乐曲都是217个字节。本例中95数组只给出217个字节,所以只有一段乐曲,播放时需要给出参数i=0. if ( Temp1 == 0xFF ) //休止符 { TR0 = 0; Delay_xMs(100); } 所以休止符每个固定是100毫秒。 如果读到第一个不是休止符或者结束符的字节那就是音阶,而下一个字节就是这个音阶的长度或者说节拍 while(1) { FMQ = ~FMQ; Delay_xMs(Temp1); if ( Temp2 == Count ) { Count = 0; break; } } 这一段是说,如果当前音阶的时间(Temp2次定时器中断,由Count计时)还没完,就每隔Temp1毫秒震动一次蜂鸣器,就形成一个震动频率,这段时间就发出一定音调的乐音不过我也有疑惑,震荡周期如果以毫秒为单位恐怕只能发出次声波,所以以上对有关Delay_xMs函数时间的估算都可能有问题907还得看Delay_xMs函数的具体定义才行。追问

有没有具体能用的程序?

温馨提示:内容为网友见解,仅供参考
无其他回答

MSP430G2553的编程
设置io端口需要看手册来进行设置哦。看这款芯片带不带内部上拉电阻的,如果没有还要加上外部上拉电阻。P2SEL=选择功能;P2DIR=设置成输入;if(P2IN&0x10==0x00){ \/\/按下后的处理代码 }

请问用MSP430怎么让蜂鸣器发出“嘟”的声音
这个最好是买那种接电持续发声的蜂鸣器,不能用430的I\/O口直接,驱动不了。蜂鸣器一般都是5V的,得加个5V电源(可在430稳压管前做)接一个小功率NPN三极管,集电极接5V正,蜂鸣器正端接三极管射极,负端接5V负,430的I\/O口接一几K的电阻后接三极管基极。

怎么往msp430里面的flash存放乐谱
看到 msp430G2553,让我想起了launchpad for 430,勾起了我当年学校的那段美好日子。如果你想简单的实现放乐,可以参考EasyARM1138里的蜂鸣器唱歌来实现,如果想高级点,可用个音频解码器来实现,通过 msp430G2553来读取音乐文件,然后将文件实时发送至音频解码器解码即可。

求助,单片机msp430G2553,关于LED的一个小程序
main()函数里定义一个布尔变量blnStatus:0——LED1亮,LED2灭;1——LED1灭,LED2亮。while(1){ blnStatus != blnStatus;if (blnStatus){ \/\/ 点亮LED1,熄灭LED2。} else { \/\/ 熄灭LED1,点亮LED2。} _delay_cycles(1000000);};

这两种控制蜂鸣器的方法有什么不同?三极管不同我是知道的,一个NPN一...
对于上面那个使用NPN三极管的电路来说,输入高电平可以使蜂鸣器发出声音;下面这个电路相反,是输入低电平时可以使蜂鸣器发出声音。对于STM32、MSP430、增强型STC单片机等等,这两个电路除了逻辑相反之外没有别的区别。对于普通的MCS-51单片机(比如STC89C51RC、AT89S51等等),上面那个使用NPN三极管的电路并不适用...

msp430g2553中断问题 我是个新手想设计个小程序:第一次中断,现象一;第...
a是在switch之前就有的,switch只是判断要到那个case语句中

msp430g2553与msp430f149的区别? 时钟一样吗?拿G2553的程序到F149可以...
可以直接移植,把程序的头文件换了。编译软件里430的芯片改到F149的。更改相应的设置。都是TI公司16位低功耗芯片,有些基本功能是相同的。时钟要看你的程序里边对相应的时钟寄存器是怎么设置的了,他们可以实现相同的时钟频率。149有14路12位AD,两路USART通信端口,有比G2553更多的功能寄存器,更多的I\/...

msp430g2553只有一个adc10men怎么进行多路采样,求程序
可以用多路开关来增加啊.比如选个四选一模拟开关,用两个引脚控制选择信号,选好后进行AD转换.完成后再选通另外的进行转换就行了

求大神赐MSP4305438定时器测频率的程序!
include <msp430g2553.h> unsigned char ta0;unsigned char t,i;void main( ){ WDTCTL = WDTPW+ WDTHOLD; \/\/stop WDT TACTL |= BIT9+BIT2; \/\/Timer_A clock source select SMCLK + Timer_A clear CCR0 = 200;CCTL0 |= BIT4; \/\/CCR0 Interrupt enabled CCTL1 |= BITF + B...

想做一辆由单片机控制的智能小车,我需要学习哪些方面的知识?
5,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很激动,这时你真正学会了单片机,你成功了!!!。6,单片机C语言举例:sbit SPEAK = P1^5;\/\/IO口定义为蜂鸣器控制 如果蜂鸣器正极接电源,SPEAK =0;蜂鸣器就会响,你看就是这么简单。unsig...

相似回答