这个程序我的板子上运行不出来,感觉是连接蜂鸣器的问题,网上完全找不到用这种G2开发板的
还有麻烦帮我改进成能通过一个按键控制三首歌循环切歌的

#include<MSP430G2553.h>
//音乐播放
// by wys
void P_Onclick(int n,int j);
//7个基本音的子函数
void jby_1(int s);
void jby_2(int s);
void jby_3(int s);
void jby_4(int s);
void jby_5(int s);
void jby_6(int s);
void jby_7(int s);
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)
{
while(1);
}
BCSCTL1=CALBC1_1MHZ;
DCOCTL=CALDCO_1MHZ; //校准时钟频率1MHZ
//按照《两只老虎》的简谱对7个基本音进行调用
jby_1(400);
jby_2(400);
jby_3(400);
jby_1(400);
_delay_cycles(3000); //每个完整的拍后接一个延时
jby_1(400);
jby_2(400);
jby_3(400);
jby_1(400);
_delay_cycles(3000);
jby_3(400);
jby_4(400);
jby_5(800);
_delay_cycles(3000);
jby_3(400);
jby_4(400);
jby_5(800);
_delay_cycles(3000);
jby_5(200);
jby_6(200);
jby_5(200);
jby_4(200);
jby_3(400);
jby_1(400);
_delay_cycles(3000);
jby_5(300);
jby_6(100);
jby_5(300);
jby_4(100);
jby_3(400);
jby_1(400);
_delay_cycles(3000);
jby_2(400);
jby_5(400);
jby_1(800);
_delay_cycles(3000);
jby_2(400);
jby_5(400);
jby_1(800);
}
//输入每个音调的频率对应的n和持续时间j
void P_Onclick(int n,int j)
{
P1DIR |= BIT6;
///延时每个音调的时长
for ( ;j>0;j--)
{
volatile unsigned int i;
P1OUT ^= BIT6;
i = n;
do
{
i--; // 自减操作
_NOP(); // 空操作
}while (i != 0); // 标准的do……while语句,注意别漏掉了括号后面的分号
}
}
// do
void jby_1(int s)
{
P_Onclick(95,s);
}
//re
void jby_2(int s)
{
P_Onclick(85,s);
}
//mi
void jby_3(int s)
{
P_Onclick(75,s);
}
//fa
void jby_4(int s)
{
P_Onclick(71,s);
}
//sol
void jby_5(int s)
{
P_Onclick(63,s);
}
//la
void jby_6(int s)
{
P_Onclick(56,s);
}
//si
void jby_7(int s)
{
P_Onclick(50,s);
}