-
2021-05-24 10:02:35
这部分的歌词是:“长 亭 外, 古 道 边,”;
这部分的乐谱是:| 5 35 1 - | 6 16 5 - |。
(注意:乐谱中的1是高音,上边是带点的;还有些音符,应该有下划线,在这里都无法标出。感兴趣的网友应该去查看正规的乐谱。)
那么,据此就可以写出《送别》前二小节的数据表:
//--------------------------------------
code unsigned char sszymmh[] = {
5, 2, 2, 3, 2, 1, 5, 2, 1, 1, 3, 4,
//嗦,中音,2个半拍; 咪,中音,1个半拍; 嗦,中音,1个半拍; 哆,高音,4个半拍
6, 2, 2, 1, 3, 1, 6, 2, 1, 5, 2, 4,
//啦,中音,2个半拍; 哆,高音,1个半拍; 啦,中音,1个半拍; 嗦,中音,4个半拍
0, 0, 0};
//结束标记
//--------------------------------------
记住:三个数字一组,代表一个音符。
第一个数字是1234567之一,代表音符哆来咪发...;
第二个数字是0123之一,代表低音、中音、高音、超高音;
第三个数字是半拍的个数,代表时间长度。
当三个数字都是0,就代表乐曲数据表的结尾。
用这个数据表,替换掉程序中《世上只有妈妈好》的数据表,本程序就可以播放《送别》的前两小节。
更多相关内容 -
51单片机蜂鸣器音乐盒程序代码
2019-05-06 10:03:19基于51单片机的蜂鸣器音乐播放器代码,直接在代码中包含头文件,调用函数即可使用,可自行添加歌曲谱播放 -
51单片机蜂鸣器音乐
2020-07-04 11:27:14通过设置开关频率使蜂鸣器发出不同音节,只需要在程序里调用就可以奏出你想要的音乐。无源蜂鸣器的效果比有源的稍微好一些。 -
51单片机蜂鸣器唱歌软件 1.zip
2020-12-20 12:02:3351单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip51单片机蜂鸣器唱歌软件 1.zip -
C利用51单片机蜂鸣器演奏音乐的源代码.rar
2019-07-09 16:38:12C利用51单片机蜂鸣器演奏音乐,硬件接法:P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率。在本程序中,定时器初始值计算方法:假设音乐频率为 X,晶振为11.0592MHz 一、先求出一个定时周期的时间 1.求机器... -
51单片机蜂鸣器音乐.zip
2019-10-02 19:23:46有人说现在可以唱歌的扬声器那么普遍,为什么要用蜂鸣器播放音乐呢?其实用蜂鸣器播放音乐的地方有很多,有些地方需要做一些特别的提示音,如果用扬声器的话成本又划不来,而使用蜂鸣器就十分合适了。同时用这个做... -
基于c51单片机编写简单蜂鸣器音乐程序的方法
2018-04-07 17:23:07编写一个能发相应频率声音的子程序。...续的时间时候常常和音乐的拍子有相关性。 最后在主程序中运行子程序通过读rom里面的数组来达到连续播放各种不同音调的音 的目的这样听起来就像一首曲子了。 -
C语言控制51单片机蜂鸣器播放音乐代码.rar
2019-07-09 16:38:10C语言控制51单片机蜂鸣器播放音乐,另附单片机演奏音乐时音调和节拍的确定方法。压缩包内有两个使用51单片机播放音乐的实验程序源代码,供初学者参考。 -
51单片机蜂鸣器音乐实验(致爱丽丝)
2012-09-22 08:19:1651单片机蜂鸣器音乐实验(致爱丽丝) 需要蜂鸣器即可,运行前请检查IO口的设置 -
C语言控制51单片机蜂鸣器播放音乐
2021-03-15 18:46:09摘要:VC/C++源码,多媒体技术,51单片机,蜂鸣器 C语言控制51单片机蜂鸣器播放音乐,另附单片机演奏音乐时音调和节拍的确定方法。压缩包内有两个使用51单片机播放音乐的实验程序源代码,供初学者参考。 -
51单片机+蜂鸣器 播放音乐,4按键换歌
2021-01-12 18:18:3251单片机+蜂鸣器 播放音乐 4按键换歌 -
C利用51单片机蜂鸣器演奏音乐
2021-03-15 16:11:46摘要:VC/C++源码,其它分类,51单片机,蜂鸣器 C利用51单片机蜂鸣器演奏音乐,硬件接法:P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率。在本程序中,定时器初始值计算方法:假设音乐频率为 X,晶振为11.0592MHz ... -
51单片机之蜂鸣器七音【音乐七音】
2021-09-07 13:38:1551单片机之蜂鸣器七音【音乐七音】 -
51单片机蜂鸣器播放音乐、暂停音乐以及选择音乐的实现
2017-05-05 19:00:36使用51单片机的蜂鸣器输出三首音乐:送别、爬音阶、八月桂花。当然了,可以随意更换乐曲,把谱输入数组就行。在播放过程中,使用外部中断来暂停音乐,使用独立按键来选择音乐。经过调试该程序可行。其中蜂鸣器接p1.5... -
51单片机蜂鸣器播放音乐代码
2021-05-22 11:01:50//播放完后暂停一段时间 } } /*两只蝴蝶歌曲*//*******************************************/ #include // 这是 单片机音乐代码生成器 生成的代码 #define uchar unsigned char sbit beepIO=P1^5; // 输出 为 P.../*生日快乐歌曲*//*******************************************/
#include
#define uint unsigned int
#define uchar unsigned char
sbit beep = P1^5;
uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,
212,212,106,126,159,169,190,119,119,126,159,142,159,0};
uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,
9,3,12,12,12,12,12,9,3,12,12,12,24,0};
//延时
void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t<120;t++);
}
void PlayMusic()
{
uint i=0,j,k;
while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
{ //播放各个音符,SONG_LONG 为拍子长度
for(j=0;j
{
beep=~beep;
//SONG_TONE 延时表决定了每个音符的频率
for(k=0;k
}
DelayMS(10);
i++;
}
}
void main()
{
beep=0;
while(1)
{
PlayMusic(); //播放生日快乐
DelayMS(500); //播放完后暂停一段时间
}
}
/*两只蝴蝶歌曲*//*******************************************/
#include // 这是 单片机音乐代码生成器 生成的代码
#define uchar unsigned char
sbit beepIO=P1^5; // 输出 为 P1.5 可以修改 成 其它 IO 口
uchar m,n;
uchar code T[49][2]={{0,0},
{0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},
{0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},
{0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},
{0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}
};
uchar code music[][2]={{0,4},
{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,24},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{21,24},
{23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
{23,4},{26,4},{26,16},{26,4},{28,4},{26,4},{23,24},{21,4},{23,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{16,2},{19,2},{19,24},{0,20},
{26,4},{26,4},{28,4},{31,4},{30,4},{30,4},{28,4},{23,4},{21,4},{21,4},{23,16},{0,4},{23,4},{23,4},{26,4},{28,8},{28,12},{16,4},{23,4},{21,4},
{21,24},{23,4},{26,4},{26,4},{23,4},{26,8},{0,4},{31,8},{30,4},{28,4},{30,4},{23,8},{0,4},{28,4},{28,4},{30,4},{28,4},{26,4},{23,4},{21,8},{23,4},{21,4},{23,4},{26,16},
{0xFF,0xFF}};
void delay(uchar p)
{
uchar i,j;
for(;p>0;p--)
for(i=181;i>0;i--)
for(j=181;j>0;j--);
}
void pause()
{
uchar i,j;
for(i=150;i>0;i--)
for(j=150;j>0;j--);
}
void T0_int() interrupt 1
{
beepIO=!beepIO;
TH0=T[m][0]; TL0=T[m][1];
}
void main()
{
uchar i=0;
TMOD=0x01; EA=1; ET0=1;
while(1)
{
m=music[i][0];n=music[i][1];
if(m==0x00)
{TR0=0;delay(n);i++;}
else if(m==0xFF)
{TR0=0;delay(30);i=0;}
else if(m==music[i+1][0])
{TR0=1;delay(n);TR0=0;pause();i++;}
else
{TR0=1;delay(n);i++;}
}
}
/*祝你平安*//*******************************************/
#include "reg52.h"
unsigned char Count;
sbit _Speak =P1^5 ;
unsigned char code SONG[] ={ //祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00};
void Time0_Init()
{
TMOD = 0x01;
IE = 0x82;
TH0 = 0xD8;
TL0 = 0xEF; //12MZ晶振,10ms
}
void Time0_Int() interrupt 1
{
TH0 = 0xD8;
TL0 = 0xEF;
Count++; //长度加1
}
/*-------------------------------------------------
功能:1MS延时子程序
-------------------------------------------------*/
void Delay_xMs(unsigned int x)
{
unsigned int i,j;
for( i =0;i < x;i++ )
{
for( j =0;j<3;j++ );
}
}
void Play_Song(unsigned char i)
{
unsigned char Temp1,Temp2;
unsigned int Addr;
Count = 0; //中断计数器清0
Addr = i * 217;
while(1)
{
Temp1 = SONG[Addr++];
if ( Temp1 == 0xFF ) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
else if ( Temp1 == 0x00 ) //歌曲结束符
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
_Speak = ~_Speak;
Delay_xMs(Temp1);
if ( Temp2 == Count )
{
Count = 0;
break;
}
}
}
}
}
/*-------------------------------------------------
功能:主程序
-------------------------------------------------*/
void main()
{
Time0_Init(); //定时器0中断初始化
while(1)
{
Play_Song(0); //播放
}
}
-
51单片机蜂鸣器代码
2019-04-12 20:11:3351单片机蜂鸣器代码 用于最简单的51单片机基础知识 -
51单片机蜂鸣器beep
2022-02-01 09:38:1351单片机蜂鸣器beep -
51单片机蜂鸣器音乐之八月桂花播放源程序
2021-05-22 11:02:21/************************************************************************[文件名]C51音乐程序(八月桂花)[功能] 通过单片机演奏音乐/**********************************************************************/#.../************************************************************************
[文件名] C51音乐程序(八月桂花)
[功能] 通过单片机演奏音乐
/**********************************************************************/
#include
#include
//本例采用89C52, 晶振为12MHZ
//关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.
//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;
//所以拿出谱子, 试探编吧!
sbit Beep = P2^1 ;
unsigned char n=0; //n为节拍常数变量
unsigned char code music_tab[] ={
0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,
0x20, 0x40, 0x1C , 0x10,
0x18, 0x10, 0x20 , 0x10,
0x1C, 0x10, 0x18 , 0x40,
0x1C, 0x20, 0x20 , 0x20,
0x1C, 0x20, 0x18 , 0x20,
0x20, 0x80, 0xFF , 0x20,
0x30, 0x1C, 0x10 , 0x18,
0x20, 0x15, 0x20 , 0x1C,
0x20, 0x20, 0x20 , 0x26,
0x40, 0x20, 0x20 , 0x2B,
0x20, 0x26, 0x20 , 0x20,
0x20, 0x30, 0x80 , 0xFF,
0x20, 0x20, 0x1C , 0x10,
0x18, 0x10, 0x20 , 0x20,
0x26, 0x20, 0x2B , 0x20,
0x30, 0x20, 0x2B , 0x40,
0x20, 0x20, 0x1C , 0x10,
0x18, 0x10, 0x20 , 0x20,
0x26, 0x20, 0x2B , 0x20,
0x30, 0x20, 0x2B , 0x40,
0x20, 0x30, 0x1C , 0x10,
0x18, 0x20, 0x15 , 0x20,
0x1C, 0x20, 0x20 , 0x20,
0x26, 0x40, 0x20 , 0x20,
0x2B, 0x20, 0x26 , 0x20,
0x20, 0x20, 0x30 , 0x80,
0x20, 0x30, 0x1C , 0x10,
0x20, 0x10, 0x1C , 0x10,
0x20, 0x20, 0x26 , 0x20,
0x2B, 0x20, 0x30 , 0x20,
0x2B, 0x40, 0x20 , 0x15,
0x1F, 0x05, 0x20 , 0x10,
0x1C, 0x10, 0x20 , 0x20,
0x26, 0x20, 0x2B , 0x20,
0x30, 0x20, 0x2B , 0x40,
0x20, 0x30, 0x1C , 0x10,
0x18, 0x20, 0x15 , 0x20,
0x1C, 0x20, 0x20 , 0x20,
0x26, 0x40, 0x20 , 0x20,
0x2B, 0x20, 0x26 , 0x20,
0x20, 0x20, 0x30 , 0x30,
0x20, 0x30, 0x1C , 0x10,
0x18, 0x40, 0x1C , 0x20,
0x20, 0x20, 0x26 , 0x40,
0x13, 0x60, 0x18 , 0x20,
0x15, 0x40, 0x13 , 0x40,
0x18, 0x80, 0x00
};
void int0() interrupt 1 //采用中断0 控制节拍
{ TH0=0xd8;
TL0=0xef;
n--;
}
void delay (unsigned char m) //控制频率延时
{
unsigned i=3*m;
while(--i);
}
void delayms(unsigned char a) //豪秒延时子程序
{
while(--a); //采用while(--a) 不要采用while(a--); 各位可编译一下看看汇编结果就知道了!
}
void main()
{ unsigned char p,m; //m为频率常数变量
unsigned char i=0;
TMOD&=0x0f;
TMOD|=0x01;
TH0=0xd8;TL0=0xef;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
-
51单片机蜂鸣器实现警笛声.docx
2021-03-27 16:55:4951内核单片机用蜂鸣器实现警笛声c语言 -
51单片机音乐起风了.txt
2021-01-02 00:07:10以51单片机为主体利用轰鸣器播放的音乐 -
无源蜂鸣器播放《欢乐颂》.rar
2021-01-20 18:07:00使用无源蜂鸣器播放欢乐颂,程序使用乐谱编辑软件制作 -
51单片机蜂鸣器生日快乐歌C语言程序
2018-12-30 20:54:2751单片机的生日快乐歌C语言程序 ,51单片机的生日快乐歌C语言程序 , -
51单片机蜂鸣器实现救护车报警声
2021-03-27 16:58:1151单片机蜂鸣器实现救护车报警声 -
51单片机 使用蜂鸣器播放简单音乐
2021-05-22 11:00:52MCU型号 STC 89C52RC#include#defineRldTmr(fr)65536-(11059200/12)/(fr<<1)#defineFuDian(n)(n<<1)/3//附点n分音符的换算typedefunsignedcharUCHAR;typedefunsignedintUINT;typedefunsignedlongULONG;...MCU型号 STC 89C52RC
#include
#defineRldTmr(fr)65536-(11059200/12)/(fr<<1)
#defineFuDian(n)(n<<1)/3//附点n分音符的换算
typedefunsignedcharUCHAR;
typedefunsignedintUINT;
typedefunsignedlongULONG;
sbitBUZZ=P1^6;
UINTcodenoteFreq[]={//中音1-7和高音1-7对应的频率列表
523,587,659,698,784,880,988,
1047,1175,1319,1397,1568,1760,1976
};
UINTcodetmrRld[]={//中音1-7和高音1-7对应的定时器重载值
RldTmr(523),RldTmr(587),RldTmr(659),RldTmr(698),RldTmr(784),RldTmr(880),RldTmr(988),
RldTmr(1047),RldTmr(1175),RldTmr(1319),RldTmr(1397),RldTmr(1568),RldTmr(1760),RldTmr(1976),
};
UCHARcodemusicNote[]={//音名
1,2,3,1,
1,2,3,1,
3,4,5,
3,4,5,
5,6,5,4,3,1,
5,6,5,4,3,1,
1,5,1,
1,5,1
};
UCHARcodenoteDuration[]={//音名对应的时值,4表示4分音符,8表示8分音符,16表示16分音符
4,4,4,4,
4,4,4,4,
4,4,2,
4,4,2,
FuDian(8),16,FuDian(8),16,4,4,
FuDian(8),16,FuDian(8),16,4,4,
4,4,2,
4,4,2
};
bitenable=1,tmrFlg=0;
UCHART0RH=0XFF,T0RL=0X00;
voidDelay(UINTn);
voidPlayMusic(UCHARspeed);//固定标准为4分音符的速度:例如speed=108表示一分钟扫过108个4分音符
voidmain(){
EA=1;
TMOD=0X01;
TH0=T0RH;
TL0=T0RL;
ET0=1;
TR0=1;
while(1){
PlayMusic(72);
Delay(40000u);
}
}
voidDelay(UINTn){
UINTi;
for(i=0;i}
voidPlayMusic(UCHARspeed){
UCHARi;
UCHARidx;
UINTcnt=0;
UINTdurationCnt=0;//当前音符的时值对应的定时器计数
UINTsoundCnt=0;//当前音符的发声时值对应的计数值
for(i=0;iwhile(!tmrFlg);
tmrFlg=0;
if(cnt==0){
idx=musicNote[i]-1;
T0RH=tmrRld[idx]>>8;
T0RL=tmrRld[idx];
durationCnt=(ULONG)240*(ULONG)noteFreq[idx]/((ULONG)noteDuration[i]*(ULONG)speed);
soundCnt=durationCnt-(durationCnt>>2);//当前音符时值的前3/4发声,后1/4静音
enable=1;
cnt++;
}
else{
if(cnt==durationCnt){
cnt=0;
i++;
}
else{
cnt++;
if(cnt==soundCnt){
enable=0;
}
}
}
}
}
voidInterruptTmr0()interrupt1{
TH0=T0RH;
TL0=T0RL;
tmrFlg=1;
if(enable)
BUZZ=~BUZZ;
else
BUZZ=1;
}
-
51单片机实验-蜂鸣器播放音乐
2021-10-03 19:33:3951单片机实验-蜂鸣器播放音乐 题目:编程实现利用单片机使蜂鸣器播放“茉莉花”的乐曲。 学校单片机时写的,利用单片机控制蜂鸣器播放乐曲,开发板上的蜂鸣器可以用三极管驱动,需要根据乐谱来设置当前节拍的发声... -
基于51单片机蜂鸣器的音乐播放器设计C
2020-07-08 09:05:28reg51.h> #include <stdio.h> sbit beep = P2^3; unsigned char timer0h, timer0l, time; code unsigned char high[] = { 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC,//低音1234567 0xFC, 0xFC, 0... -
51单片机实例+蜂鸣器音乐播放
2011-09-21 17:27:21该工程实现了51单片机的蜂鸣器音乐播放,内有详细注释和程序,完整的工程 -
51单片机蜂鸣器实现歌曲《起风了》代码
2022-03-25 10:28:28//单片机开发板型号不同需要修改为所对应的蜂鸣器管脚 uchar code sound[]={0xff, 0x2b,0x30,0x30,0x10,0x2b,0x30,0x30,0x10,0x2b,0x20,0x26,0x20,0x20,0x20, 0x26,0x20,0x2b,0x30,0x30,0x10,0x2b,0x30,0x30,0x10,... -
无源蜂鸣器播放《黑人抬棺》.rar
2021-01-20 18:07:49无源蜂鸣器播放《黑人抬棺》.rar