亲爱的读者,很多人可能对音乐转换成16进制写进单片机的方法和为什么单片机的乐谱要用十六进制不是很了解,所以今天我来和大家分享一些关于音乐转换成16进制写进单片机的方法和为什么单片机的乐谱要用十六进制的知识,希望能够帮助大家更好地了解这个话题。

本文目录一览

音乐转换成16进制写进单片机的方法

这个需要自己把乐谱转换为十六进制数据:
相关知识:
1.要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。
2.利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。
3.例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系公式如下:
N=Fi÷2÷FrN:计数值;
Fi:内部计时一次为1us,故其频率为12MHz;
Fr:要产生的频率;
4.其计数值的求法如下:
T=65536-N=65536-Fi÷2÷Fr
例如:设K=65536,F=1000000=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、高音DO(1046MHz)的计数值。
T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2÷Fr=65536-500000/Fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1047=65059
5.C调各音符频率与计数值T的对照表如下:
表1C调各音符频率与计数值T的对照表
音符
低1DO频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)
26263628#4FA#74064860
#1DO#27763731中5SO78464898
低2RE
#2RE#29463835#5SO#83164934
31163928中6LA88064968
低3M33064021#693264994
低4FA34964103中7SI98865030
#4FA#37064185高1DO104665058
低5SO39264260#1DO#110965085
#5SO#41564331高2RE117565110
低6LA44064400#2RE#124565134
#646664463高3M131865157
低7SI49464524高4FA139765178
中1DO52364580#4FA#148065198
#1DO#55464633高5SO156865217
中2RE58764684#5SO#166165235
#2RE#62264732高6LA176065252
中3M65964777#6186565268
中4FA69864820高196765283
表2节拍与节拍码对照
节拍码节拍数节拍码节拍数
11/4拍11/8拍
22/4拍21/4拍
33/4拍33/8拍
41拍41/2拍
51又1/4拍55/8拍
61又1/2拍63/4拍
82拍81
A2又1/2拍A1又1/4拍
C3拍C1又1/2拍
F3又3/4拍
表3各调1/4节拍的时间设定各调1/4节拍的时间设定
曲调值DELAY曲调值DELAY
调4/4125毫秒调4/462毫秒
调3/4187毫秒调3/494毫秒
调2/4250毫秒调2/4125毫秒
1/4拍的延迟时间=187毫秒
DELAY:MOVR7,#02
D2:MOVR4,#187别的延迟值,只需修改这儿的值为相应值,即可。
D3:MOVR3,#248
DJNZR3,$
DJNZR4,D3
DJNZR7,D2
DJNZR5,DELAY节拍值放在R5,决定节拍
RET
建立音乐的步骤:
1.先把乐谱的音符找出,然后建立T值表的顺序。
2.把T值表建立在TABLE1,构成发音符是计数值放在“TABLE”。
3.简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。
相关知识:
每一音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2为节拍与节拍码的对照。如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假使1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DEALY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定。
简谱发音简谱码T值
5低音SO164260
6低音LA264400
7低音TI364524
1中音DO464580
2中音RE564684
3中音MI364777
4中音FA764820
5中音SO864898
6中音LA964968
7中音TIA65030
1高音DOB65058
2高音REC65110
3高音MID65157
4高音FAE65178
5高音SOF65217
不发音0
节拍码节拍数
11/4拍
22/4拍
33/4拍
41拍
51又1/4拍
61又1/2拍
82拍
A2又1/2拍
C3拍
F3又3/4拍
表4简谱对应的简谱码、T值、节拍数
#include“reg51.h“
#defineuintunsignedint
#defineucharunsignedchar
uchar*TABLE;
codeuintTABLE1={64260,64400,64524,64580,
64684,64777,64820,64898,
64968,65030,65058,65110,
65157,65178,65217};
codeucharSONG={
//1.迟来的爱
//0
0x08,0x08,
//1
0x02,0x12,0x42,0x62,0x52,0x42,0x21,11,
0x18,0x18,
0x02,0x22,0x42,0x82,0x92,0x82,0x61,0x51,0x42,
0x58,0x58,
//2
0x66,0x51,0x61,0x84,0x62,0x82,
0x52,0x62,0x42,0x52,0x28,
0x52,0x42,0x52,0x62,0x94,0x81,0x91,0x81,0x61,
0x1C,0x12,0x82,
//3
0x68,0x02,0x92,0x82,0x42,
0x5C,0x12,0x62,
0x58,0x02,0x42,0x51,0x41,0x22,
0x4C,0x62,0x52,
//4
0x66,0x82,0x92,0x82,0x61,0x51,0x41,0x51,
0x6C,0x52,0x62,
0x53,0x63,0x52,0x42,0x42,0x22,
0x1C,0x12,0x22,
//5
0x42,0x44,0x51,0x61,0x82,0x84,0x61,0x81,
0x96,0x82,0x66,0x51,0x61,
0x56,0x42,0x22,0x42,0x82,0x62,
0x5C,0x62,0x52,
//6
0x66,0x82,0x92,0x82,0x61,0x51,0x41,0x51,
0x6C,0x52,0x62,
0x56,0x62,0x52,0x42,0x42,0x22,
0x1C,0x12,0x22,
//7
0x42,0x44,0x51,0x61,0x82,0x84,0x61,0x81,
0x96,0x82,0x66,0x51,0x61,
0x56,0x62,0x92,0x82,0x62,0x52,
0x4C,0x62,0x61,0x81,
//8
0x9C,0x81,0x91,0x81,0x61,
0x6C,0x82,0x62,
0x56,0x42,0x24,0x42,0x52,
0x6C,0x62,0x61,0x81,
//9
0x9C,0xB2,0x92,
0x8C,0x82,0x92,
0xB2,0xB2,0xB2,0x92,0xD4,0xC1,0xD1,0xC1,0xB1,
0xCC,0xB2,0xB1,0xC1,
//A
0xDC,0xD2,0xC1,0xB1,
0x9C,0x92,0x91,0xC1,
0x92,0x84,0x92,0x82,0x62,0x51,0x61,0x51,0x41,
0x48,0x48,
//B
0x42,0x41,0x51,0x66,0x82,0x91,0xB1,
0x92,0x86,0x88,
0x42,0x41,0x51,0x66,0x42,0x41,0x51,
0x22,0x16,0x18,
0x86,0x62,0x58,
//C
0x83,0x91,0x62,0x82,0x58,
0x52,0x62,0x52,0x42,0x22,0x12,0x62,0x52,
0x4C,0x62,0x52,
//6
0x66,0x82,0x92,0x82,0x61,0x51,0x41,0x51,
0x6C,0x52,0x62,
0x56,0x62,0x52,0x42,0x42,0x22,
0x1C,0x12,0x22,
//7
0x42,0x44,0x51,0x61,0x82,0x84,0x61,0x81,
0x96,0x82,0x66,0x51,0x61,
0x56,0x62,0x92,0x82,0x62,0x52,
0x4C,0x62,0x61,0x81,
//8
0x9C,0x81,0x91,0x81,0x61,
0x6C,0x82,0x62,
0x56,0x42,0x24,0x42,0x52,
0x6C,0x62,0x61,0x81,
//9
0x9C,0xB2,0x92,
0x8C,0x82,0x92,
0xB2,0xB2,0xB2,0x92,0xD4,0xC1,0xD1,0xC1,0xB1,
0xCC,0xB2,0xB1,0xC1,
//A
0xDC,0xD2,0xC1,0xB1,
0x9C,0x92,0x91,0xC1,
0x92,0x84,0x92,0x82,0x62,0x51,0x61,0x51,0x41,
0x4C,0x62,0x61,0x81,
//8
0x9C,0x81,0x91,0x81,0x61,
0x6C,0x82,0x62,
0x56,0x42,0x24,0x42,0x52,
0x6C,0x62,0x61,0x81,
//9
0x9C,0xB2,0x92,
0x8C,0x82,0x92,
0xB2,0xB2,0xB2,0x92,0xD4,0xC1,0xD1,0xC1,0xB1,
0xCC,0xB2,0xB1,0xC1,
//A
0xDC,0xD2,0xC1,0xB1,
0x9C,0x92,0x91,0xC1,
0x92,0x84,0x92,0x82,0x62,0x51,0x61,0x51,0x41,
0x4C,0x62,0x61,0x81,
//D
0x66,0x51,0x61,0x86,0x61,0x81,
0x52,0x62,0x52,0x42,0x28,
0x82,0x91,0x01,0x62,0x11,0x52,0x11,0x01,0x62,0x54,
0x48,0x48,0x00};
ucharljsz;
ucharjpm;
ucharyfm;
uchart0=0;
uinti=0;
sbitSpeaker=P1^0;
uintk;
voidDelay1()
{
for(k=0;k《20000;k++);
}
voidLignt()
{uchart;
for(t=0;t《10;t++)
{
P2=0xff;
Delay1();
P2=0x00;
Delay1();
}
}
voidLignt1()
{
P2=0xaa;
Delay1();
P2=0x55;
Delay1();
}
voidDelay(uchart0)//延时
{
while(t0--)//决定节拍
Lignt1();
}
voidDelay2(ucharw0)//延时
{
while(w0--)//决定节拍
Lignt();
}
voidT0Int()interrupt1//TIMER0
{
TL0=ljsz;
TH0=hjsz;
Speaker=!Speaker;
}
voidExtInt0()interrupt0//INT0
{
if(t0》10)
t0=0;
i=0;
switch(t0++)
{
case0:TABLE=SONG;break;//选择第1首
case1:TABLE=SONG1;break;//选择第2首
case2:TABLE=SONG2;break;//选择第3首
case3:TABLE=SONG3;break;//选择第4首
case4:TABLE=SONG4;break;//选择第5首
case5:TABLE=SONG5;break;//选择第6首
case6:TABLE=SONG6;break;//选择第7首
case7:TABLE=SONG7;break;//选择第8首
case8:TABLE=SONG8;break;//选择第9首
case9:TABLE=SONG9;break;//选择第10首
}
}
voidsongsing()//发音程序
{
i=0;
while(TABLE)
{
jpm=TABLE&0x0f;//节拍值
yfm=(TABLE》》0x04)&0x0f;//简谱值
if(yfm)//简谱为1,取计数值
{
yfm=yfm-1;
hjsz=(uchar)(TABLE1》》0x08);//取计数值高字节
TH0=hjsz;
ljsz=(uchar)(TABLE1);//取计数值低字节
TL0=ljsz;
TR0=1;//启动TIMER0
}
elseTR0=0;//简谱为0,不发音
Delay(jpm);//节拍延时
i++;
}
}
voidmain(void)
{
TMOD=0X01;//设TIMER0在MODE1
TCON=0X01;//外部中断INT0,下降沿触发
IE=0x83;//开中断(INT0,TIMER0)
IP=0x00;//设置中断优先级
TABLE=SONG0;
while(1)
{
Lignt();
songsing();//调用发音程序
TR0=0;//停止TIMER0
Delay2(1);
TABLE=SONG0;
songsing();
}
}

返回目录

为什么单片机的乐谱要用十六进制

这个需要自己把乐谱转换为十六进制数据:
相关知识:
1.要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。
2.利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。
3.例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系公式如下:
N=Fi÷2÷FrN:计数值;
Fi:内部计时一次为1us,故其频率为12MHz;
Fr:要产生的频率;
4.其计数值的求法如下:
T=65536-N=65536-Fi÷2÷Fr
例如:设K=65536,F=1000000=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、高音DO(1046MHz)的计数值。
T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2÷Fr=65536-500000/Fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1047=65059
5.C调各音符频率与计数值T的对照表如下:
表1C调各音符频率与计数值T的对照表
音符
低1DO频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)
26263628#4FA#74064860
#1DO#27763731中5SO78464898
低2RE
#2RE#29463835#5SO#83164934
31163928中6LA88064968
低3M33064021#693264994
低4FA34964103中7SI98865030
#4FA#37064185高1DO104665058
低5SO39264260#1DO#110965085
#5SO#41564331高2RE117565110
低6LA44064400#2RE#124565134
#646664463高3M131865157
低7SI49464524高4FA139765178
中1DO52364580#4FA#148065198
#1DO#55464633高5SO156865217
中2RE58764684#5SO#166165235
#2RE#62264732高6LA176065252
中3M65964777#6186565268
中4FA69864820高196765283
表2节拍与节拍码对照
节拍码节拍数节拍码节拍数
11/4拍11/8拍
22/4拍21/4拍
33/4拍33/8拍
41拍41/2拍
51又1/4拍55/8拍
61又1/2拍63/4拍
82拍81
A2又1/2拍A1又1/4拍
C3拍C1又1/2拍
F3又3/4拍
表3各调1/4节拍的时间设定各调1/4节拍的时间设定
曲调值DELAY曲调值DELAY
调4/4125毫秒调4/462毫秒
调3/4187毫秒调3/494毫秒
调2/4250毫秒调2/4125毫秒
1/4拍的延迟时间=187毫秒
DELAY:MOVR7,#02
D2:MOVR4,#187别的延迟值,只需修改这儿的值为相应值,即可。
D3:MOVR3,#248
DJNZR3,$
DJNZR4,D3
DJNZR7,D2
DJNZR5,DELAY节拍值放在R5,决定节拍
RET
建立音乐的步骤:
1.先把乐谱的音符找出,然后建立T值表的顺序。
2.把T值表建立在TABLE1,构成发音符是计数值放在“TABLE”。
3.简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。
相关知识:
每一音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2为节拍与节拍码的对照。如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假使1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DEALY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定。
简谱发音简谱码T值
5低音SO164260
6低音LA264400
7低音TI364524
1中音DO464580
2中音RE564684
3中音MI364777
4中音FA764820
5中音SO864898
6中音LA964968
7中音TIA65030
1高音DOB65058
2高音REC65110
3高音MID65157
4高音FAE65178
5高音SOF65217
不发音0
节拍码节拍数
11/4拍
22/4拍
33/4拍
41拍
51又1/4拍
61又1/2拍
82拍
A2又1/2拍
C3拍
F3又3/4拍
表4简谱对应的简谱码、T值、节拍数
#include“reg51.h“
#defineuintunsignedint
#defineucharunsignedchar
uchar*TABLE;
codeuintTABLE1={64260,64400,64524,64580,《br》64684,64777,64820,64898,《br》64968,65030,65058,65110,《br》65157,65178,65217};
codeucharSONG={
//1.迟来的爱
//0
0x08,0x08,
//1
0x02,0x12,0x42,0x62,0x52,0x42,0x21,11,
0x18,0x18,
0x02,0x22,0x42,0x82,0x92,0x82,0x61,0x51,0x42,
0x58,0x58,
//2
0x66,0x51,0x61,0x84,0x62,0x82,
0x52,0x62,0x42,0x52,0x28,
0x52,0x42,0x52,0x62,0x94,0x81,0x91,0x81,0x61,
0x1C,0x12,0x82,
//3
0x68,0x02,0x92,0x82,0x42,
0x5C,0x12,0x62,
0x58,0x02,0x42,0x51,0x41,0x22,
0x4C,0x62,0x52,
//4
0x66,0x82,0x92,0x82,0x61,0x51,0x41,0x51,
0x6C,0x52,0x62,
0x53,0x63,0x52,0x42,0x42,0x22,
0x1C,0x12,0x22,
//5
0x42,0x44,0x51,0x61,0x82,0x84,0x61,0x81,
0x96,0x82,0x66,0x51,0x61,
0x56,0x42,0x22,0x42,0x82,0x62,
0x5C,0x62,0x52,
//6
0x66,0x82,0x92,0x82,0x61,0x51,0x41,0x51,
0x6C,0x52,0x62,
0x56,0x62,0x52,0x42,0x42,0x22,
0x1C,0x12,0x22,
//7
0x42,0x44,0x51,0x61,0x82,0x84,0x61,0x81,
0x96,0x82,0x66,0x51,0x61,
0x56,0x62,0x92,0x82,0x62,0x52,
0x4C,0x62,0x61,0x81,
//8
0x9C,0x81,0x91,0x81,0x61,
0x6C,0x82,0x62,
0x56,0x42,0x24,0x42,0x52,
0x6C,0x62,0x61,0x81,
//9
0x9C,0xB2,0x92,
0x8C,0x82,0x92,
0xB2,0xB2,0xB2,0x92,0xD4,0xC1,0xD1,0xC1,0xB1,
0xCC,0xB2,0xB1,0xC1,
//A
0xDC,0xD2,0xC1,0xB1,
0x9C,0x92,0x91,0xC1,
0x92,0x84,0x92,0x82,0x62,0x51,0x61,0x51,0x41,
0x48,0x48,
//B
0x42,0x41,0x51,0x66,0x82,0x91,0xB1,
0x92,0x86,0x88,
0x42,0x41,0x51,0x66,0x42,0x41,0x51,
0x22,0x16,0x18,
0x86,0x62,0x58,
//C
0x83,0x91,0x62,0x82,0x58,
0x52,0x62,0x52,0x42,0x22,0x12,0x62,0x52,
0x4C,0x62,0x52,
//6
0x66,0x82,0x92,0x82,0x61,0x51,0x41,0x51,
0x6C,0x52,0x62,
0x56,0x62,0x52,0x42,0x42,0x22,
0x1C,0x12,0x22,
//7
0x42,0x44,0x51,0x61,0x82,0x84,0x61,0x81,
0x96,0x82,0x66,0x51,0x61,
0x56,0x62,0x92,0x82,0x62,0x52,
0x4C,0x62,0x61,0x81,
//8
0x9C,0x81,0x91,0x81,0x61,
0x6C,0x82,0x62,
0x56,0x42,0x24,0x42,0x52,
0x6C,0x62,0x61,0x81,
//9
0x9C,0xB2,0x92,
0x8C,0x82,0x92,
0xB2,0xB2,0xB2,0x92,0xD4,0xC1,0xD1,0xC1,0xB1,
0xCC,0xB2,0xB1,0xC1,
//A
0xDC,0xD2,0xC1,0xB1,
0x9C,0x92,0x91,0xC1,
0x92,0x84,0x92,0x82,0x62,0x51,0x61,0x51,0x41,
0x4C,0x62,0x61,0x81,
//8
0x9C,0x81,0x91,0x81,0x61,
0x6C,0x82,0x62,
0x56,0x42,0x24,0x42,0x52,
0x6C,0x62,0x61,0x81,
//9
0x9C,0xB2,0x92,
0x8C,0x82,0x92,
0xB2,0xB2,0xB2,0x92,0xD4,0xC1,0xD1,0xC1,0xB1,
0xCC,0xB2,0xB1,0xC1,
//A
0xDC,0xD2,0xC1,0xB1,
0x9C,0x92,0x91,0xC1,
0x92,0x84,0x92,0x82,0x62,0x51,0x61,0x51,0x41,
0x4C,0x62,0x61,0x81,
//D
0x66,0x51,0x61,0x86,0x61,0x81,
0x52,0x62,0x52,0x42,0x28,
0x82,0x91,0x01,0x62,0x11,0x52,0x11,0x01,0x62,0x54,
0x48,0x48,0x00};
ucharljsz;
ucharjpm;
ucharyfm;
uchart0=0;
uinti=0;
sbitSpeaker=P1^0;
uintk;
voidDelay1()
{
for(k=0;k《20000;k++);
}
voidLignt()
{uchart;《br》for(t=0;t《10;t++)《br》{《br》P2=0xff;《br》Delay1();《br》P2=0x00;《br》Delay1();《br》}
}
voidLignt1()
{
P2=0xaa;
Delay1();
P2=0x55;
Delay1();
}
voidDelay(uchart0)//延时
{
while(t0--)//决定节拍
Lignt1();
}
voidDelay2(ucharw0)//延时
{
while(w0--)//决定节拍
Lignt();
}
voidT0Int()interrupt1//TIMER0
{
TL0=ljsz;
TH0=hjsz;
Speaker=!Speaker;
}
voidExtInt0()interrupt0//INT0
{
if(t0》10)
t0=0;
i=0;
switch(t0++)
{
case0:TABLE=SONG;break;//选择第1首
case1:TABLE=SONG1;break;//选择第2首
case2:TABLE=SONG2;break;//选择第3首
case3:TABLE=SONG3;break;//选择第4首
case4:TABLE=SONG4;break;//选择第5首
case5:TABLE=SONG5;break;//选择第6首
case6:TABLE=SONG6;break;//选择第7首
case7:TABLE=SONG7;break;//选择第8首
case8:TABLE=SONG8;break;//选择第9首
case9:TABLE=SONG9;break;//选择第10首
}
}
voidsongsing()//发音程序
{
i=0;
while(TABLE)
{
jpm=TABLE&0x0f;//节拍值
yfm=(TABLE》》0x04)&0x0f;//简谱值
if(yfm)//简谱为1,取计数值
{
yfm=yfm-1;
hjsz=(uchar)(TABLE1》》0x08);//取计数值高字节
TH0=hjsz;
ljsz=(uchar)(TABLE1);//取计数值低字节
TL0=ljsz;
TR0=1;//启动TIMER0
}
elseTR0=0;//简谱为0,不发音
Delay(jpm);//节拍延时
i++;
}
}
voidmain(void)
{
TMOD=0X01;//设TIMER0在MODE1
TCON=0X01;//外部中断INT0,下降沿触发
IE=0x83;//开中断(INT0,TIMER0)
IP=0x00;//设置中断优先级
TABLE=SONG0;
while(1)
{
Lignt();
songsing();//调用发音程序
TR0=0;//停止TIMER0
Delay2(1);
TABLE=SONG0;
songsing();
}
}

返回目录

单片机音乐代码

#include“reg51.h“
#defineuintunsignedint
#defineucharunsignedchar
uchar*TABLE;
codeuintTABLE1={64260,64400,64524,64580,
64684,64777,64820,64898,
64968,65030,65058,65110,
65157,65178,65217};
codeucharSONG={
//1.迟来的爱
};
codeucharSONG1={
//2.两只蝴蝶
};
codeucharSONG3={
//4.一个师傅三个徒弟
};
ucharhjsz;
ucharljsz;
ucharjpm;
ucharyfm;
uchart0=0;
uinti=0;
sbitSpeaker=P1^0;
uintk;
voidDelay1()
{
for(k=0;k《20000;k++);
}
voidLignt()
{uchart;
for(t=0;t《10;t++)
{
P2=0xff;
Delay1();
P2=0x00;
Delay1();
}
}
voidLignt1()
{
P2=0xaa;
Delay1();
P2=0x55;
Delay1();
}
voidDelay(uchart0)//延时
{
while(t0--)//决定节拍
Lignt1();
}
voidDelay2(ucharw0)//延时
{
while(w0--)//决定节拍
Lignt();
}
voidT0Int()interrupt1//TIMER0
{
TL0=ljsz;
TH0=hjsz;
Speaker=!Speaker;
}
voidExtInt0()interrupt0//INT0
{
if(t0》10)
t0=0;
i=0;//全局变量,指向歌谱的第1个
switch(t0++)
{
case0:TABLE=SONG;break;//选择第1首
case1:TABLE=SONG1;break;//选择第2首
case2:TABLE=SONG2;break;//选择第3首
case3:TABLE=SONG3;break;//选择第4首
case4:TABLE=SONG4;break;//选择第5首
case5:TABLE=SONG5;break;//选择第6首
case6:TABLE=SONG6;break;//选择第7首
case7:TABLE=SONG7;break;//选择第8首
case8:TABLE=SONG8;break;//选择第9首
case9:TABLE=SONG9;break;//选择第10首
}
}
voidsongsing()//发音程序
{
i=0;
while(TABLE)
{
jpm=TABLE&0x0f;//节拍值
yfm=(TABLE》》0x04)&0x0f;//简谱值
if(yfm)//简谱为1,取计数值
{
yfm=yfm-1;
hjsz=(uchar)(TABLE1》》0x08);//取计数值高字节
TH0=hjsz;
ljsz=(uchar)(TABLE1);//取计数值低字节
TL0=ljsz;
TR0=1;//启动TIMER0
}
elseTR0=0;//简谱为0,不发音
Delay(jpm);//节拍延时
i++;
}
}
voidmain(void)
{
TMOD=0X01;//设TIMER0在MODE1
TCON=0X01;//外部中断INT0,下降沿触发
IE=0x83;//开中断(INT0,TIMER0)
IP=0x00;//设置中断优先级
TABLE=SONG0;
while(1)
{
Lignt();
songsing();//调用发音程序
TR0=0;//停止TIMER0
Delay2(1);
TABLE=SONG0;//更改歌曲0
songsing();
}
}

返回目录

求李茂山原唱歌曲《迟来的爱》全部歌词

歌曲:《迟来的爱》

作曲:刘明瑞

作词:王清荣

演唱:李茂山

歌词:

口白:这是一封迟来的告白

许多年以来,我一直都在逃避

不敢面对你多情的关怀

今天我终于鼓起勇气

向你表达我的爱

演唱:一段情要埋藏多少年

一封信要迟来多少天

两颗心要,承受多少,痛苦的煎熬

才能够,彼此完全明了

你应该,会明白我的爱

虽然我,从未向你坦白

多年以来,默默对你,深切地关怀

为什么,你还不能明白

不愿放弃,你的爱

这是我,长久的期待

不能保留,你的爱

那是对她无言的伤害

伤痛的心,一片空白

如何面对,那迟来的爱

口白:我知道,一切都太迟了

明天你就要带着她,走进结婚礼堂

我羡慕她

同时也给你,我最深的祝福

演唱:你应该,会明白我的爱

虽然我,从未向你坦白

多年以来,默默对你,深切地关怀

为什么,你还不能明白

不愿放弃,你的爱

这是我,长久的期待

不能保留,你的爱

那是对她无言的伤害

伤痛的心,一片空白

如何面对那迟来的爱

不愿放弃,你的爱

这是我长久的期待

不能保留,你的爱

那是对她无言的伤害

伤痛的心,一片空白

如何面对,那迟来的爱

扩展资料:

《迟来的爱》是王清荣填词,刘明瑞谱曲,由李茂山演唱的一首歌曲。发行于1987年1月1日。

曲谱:

参考资料来源:百度百科-迟来的爱

返回目录

迟来的爱简谱

迟来的爱简谱:

《迟来的爱》是由李茂山演唱的一首歌曲。迟来的爱是一份迟来的爱情,唯美真切,哀婉动人,凄美绝唱,爱的本身是美好的,当两个人真正的爱了的时候,嫉妒,猜忌。

用真情去感动每个心灵用歌声来传递幸福和快乐。爱是一份迟来的爱情,哀婉·唯美真切,爱的本身是美好的·。用真情去感动每个心灵。

歌词:

演唱:

一段情要埋藏多少年

一封信要迟来多少天

两颗心要

承受多少

痛苦的煎熬

才能够

彼此完全明了

你应该

会明白我的爱

虽然我

从未向你坦白

多年以来

默默对你

深切地关怀

为什么

你还不能明白

不愿放弃

你的爱

这是我

长久的期待

不能保留

你的爱

那是对她无言的伤害

伤痛的心

一片空白

如何面对

那迟来的爱

口白:

我知道

一切都太迟了

明天

你就要带着她

走进结婚礼堂

我羡慕她

同时也给你

我最深的祝福

演唱:

你应该

会明白我的爱

虽然我

从未向你坦白

多年以来

默默对你

深切地关怀

为什么

你还不能明白

不愿放弃

你的爱

这是我

长久的期待

不能保留

你的爱

那是对她无言的伤害

伤痛的心

一片空白

如何面对那迟来的爱

不愿放弃

你的爱

这是我

长久的期待

不能保留

你的爱

那是对她无言的伤害

伤痛的心

一片空白

如何面对

那迟来的爱

返回目录

迟来的爱歌词带和弦

在我们弹奏这个弦的时候,它上面是有这个三根线的,通过这个三根线就可以调节了。

返回目录

如果您对本文的解答感到满意,请在文章结尾处点击“顶一下”以表示您的肯定。如果您对本文不满意,也请点击“踩一下”,以便我们改进该篇文章。