A. 濡备綍鐢╟璇瑷缂栧啓8051鍗旷墖链洪煶涔愮▼搴
#define uchar unsigned char //瀹氢箟涓涓嬫柟渚夸娇鐢
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //鍖呮嫭涓涓52镙囧嗳鍐呮牳镄勫ご鏂囦欢
char code dx516[3] _at_ 0x003b;//杩欐槸涓轰简浠跨湡璁剧疆镄
sbit BEEP=P1^7; //锽囧彮杈揿嚭鑴
sbit P10=P1^0;
sbit K1= P3^2;
sbit K2= P3^5;
sbit K3= P2^4;
sbit K4= P2^5;
uchar th0_f; //鍦ㄤ腑鏂涓瑁呰浇镄凾0镄勫奸珮8浣
uchar tl0_f; //鍦ㄤ腑鏂涓瑁呰浇镄凾0镄勫间绠8浣
//T0镄勫,鍙婅緭鍑洪戠巼瀵圭収琛
uchar code freq[36*2]={
0xA9,0xEF,//00220HZ ,1 //0
0x93,0xF0,//00233HZ ,1#
0x73,0xF1,//00247HZ ,2
0x49,0xF2,//00262HZ ,2#
0x07,0xF3,//00277HZ ,3
0xC8,0xF3,//00294HZ ,4
0x73,0xF4,//00311HZ ,4#
0x1E,0xF5,//00330HZ ,5
0xB6,0xF5,//00349HZ ,5#
0x4C,0xF6,//00370HZ ,6
0xD7,0xF6,//00392HZ ,6#
0x5A,0xF7,//00415HZ ,7
0xD8,0xF7,//00440HZ 1 //12
0x4D,0xF8,//00466HZ 1# //13
0xBD,0xF8,//00494HZ 2 //14
0x24,0xF9,//00523HZ 2# //15
0x87,0xF9,//00554HZ 3 //16
0xE4,0xF9,//00587HZ 4 //17
0x3D,0xFA,//00622HZ 4# //18
0x90,0xFA,//00659HZ 5 //19
0xDE,0xFA,//00698HZ 5# //20
0x29,0xFB,//00740HZ 6 //21
0x6F,0xFB,//00784HZ 6# //22
0xB1,0xFB,//00831HZ 7 //23
0xEF,0xFB,//00880HZ `1
0x2A,0xFC,//00932HZ `1#
0x62,0xFC,//00988HZ `2
0x95,0xFC,//01046HZ `2#
0xC7,0xFC,//01109HZ `3
0xF6,0xFC,//01175HZ `4
0x22,0xFD,//01244HZ `4#
0x4B,0xFD,//01318HZ `5
0x73,0xFD,//01397HZ `5#
0x98,0xFD,//01480HZ `6
0xBB,0xFD,//01568HZ `6#
0xDC,0xFD,//01661HZ `7 //35
};
//瀹氭椂涓鏂0,鐢ㄤ簬浜х敓鍞辨瓕棰戠巼
timer0() interrupt 1
{
TL0=tl0_f;TH0=th0_f; //璋冨叆棰勫畾镞跺
BEEP=~BEEP; //鍙栧弽阔充箰杈揿嚭IO
}
//******************************
//阔充箰绗﹀彿涓茶В閲婂嚱鏁
//鍏ュ彛:瑕佽В閲婄殑阔充箰绗﹀彿涓,杈揿嚭镄勯煶璋冧覆,杈揿嚭镄勬椂闀夸覆
changedata(uchar *song,uchar *diao,uchar *jie)
{
uchar i,i1,j;
char gaodi; //楂树绠+/-12阔抽桩
uchar banyin;//链夋病链夊崐涓鍗囬煶阒
uchar yinchang;//阔抽暱
uchar code jie7[8]={0,12,14,16,17,19,21,23}; //C璋幂殑7涓鍊
*diao=*song;
for(i=0,i1=0;;)
{
gaodi=0; //楂树绠=0
banyin=0;//鍗婇煶=0
yinchang=4;//阔抽暱1𨰾
if((*(song+i)=='|') || (*(song+i)==' ')) i++;
//𨰾嶅瓙闂撮殧鍜屼竴涓绌烘牸杩囨护
switch(*(song+i))
{
case ',': gaodi=-12;i++;//浣庨煶
break;
case '`': gaodi=12;i++; //楂橀煶
break;
}
if(*(song+i)==0) //阆囧埌0缁撴潫
{
*(diao+i1)=0; //锷犲叆缁撴潫镙囧织0
*(jie+i1)=0;
return;
}
j=*(song+i)-0x30; i++; //鍙栧嚭锘哄嗳阔
j=jie7[j]+gaodi; //锷犱笂楂树绠阔
yinc: switch(*(song+i))
{
case '#': //链夊崐阔砵锷犱竴涓阔抽桩
i++;j++;
goto yinc;
case '-': //链変竴涓阔宠妭锷犻暱
yinchang+=4;
i++;
goto yinc;
case '_': //链変竴涓阔宠妭缂╃煭
yinchang/=2;
i++;
goto yinc;
case '.': //链変竴涓锷犲崐𨰾
yinchang=yinchang+yinchang/2;
i++;
goto yinc;
}
*(diao+i1)=j; //璁板綍阔崇
*(jie+i1)=yinchang; //璁板綍阔抽暱
i1++;
}
}
//******************************************
//濂忎箰鍑芥暟
//鍏ュ彛:瑕佹紨濂忕殑阔充箰绗﹀彿涓
void play(uchar *songdata)
{
uchar i,c,j=0;
uint n;
uchar xdata diaodata[112]; //阔宠皟缂揿啿
uchar xdata jiedata[112]; //阔抽暱缂揿啿
changedata(songdata,diaodata,jiedata); //瑙i喷阔充箰绗﹀彿涓
TR0=1;
for(i=0;diaodata[i]!=0;i++) //阃愪釜绗﹀彿婕斿
{
tl0_f=freq[diaodata[i]*2]; //鍙栧嚭瀵瑰簲镄勫畾镞跺奸佺粰T0
th0_f=freq[diaodata[i]*2+1];
for(c=0;c<jiedata[i];c++) //鎸夌収阔抽暱寤舵椂
{
for(n=0;n<32000;n++);
if((!K1)||(!K2)||(!K3)||(!K4))//鍙戠幇鎸夐敭,绔嫔嵆阃鍑烘挱鏀
{
TR0=0;
return;
}
}
TR0=0;
for(n=0;n<500;n++); //阔崇﹂棿寤舵椂
TR0=1;
}
TR0=0;
}
//浠椤墤
uchar code xianjian[]={
"|3_3_3_2_3-|2_3_2_2_,6,6_,7_|12_1_,7,6_,5_|,6---|"
"3_3_3_2_3.6_|5_6_5_5_22_3_|45_4_32_1_|3.--3_|"
"67_6_55_3_|5--3_5_|26_5_32_3_|3---|"
"26_6_6-|16_6_66_7_|`17_6_76_7_|3.--3_|"
"67_6_55_3_|5--3_5_|67_6_76_7_|3---|"
"26_6_6-|16_6_66_7_|`17_6_7.5_|6---|"
};
uchar code song3[]={
"5-5_3_2_1_|3---|6-6_4_2_1_"
",7--,5_|1.3_5.1_|,7.3_5 5_|"
"6.7_`1.6_|6_5_5-3_2_|1.1_13_2_|"
"1.1_12_3_|2.1_,62_3_|2-- ,5_|"
"1.3_5.1_|,7.3_55_|6.7_`1.6_|"
"6_5_5-3_2_|1.1_13_2_|1.1_12_3_"
"2.,6_,71_2_|1--"
};
//涓栦笂鍙链夊埚埚ソ
uchar code mamahao[]={
"6.5_35|`16_5_6-|35_6_53_2_|1_,6_5_3_2-|"
"2.3_55_6_|321-|5.3_2_1_,6_1_|,5--"
};
//涓変釜鎸夐敭阃夋嫨涓夐栦笉钖岀殑阔充箰鎾鏀,涓涓阌锅沧㈡挱鏀
void main(void) // 涓荤▼搴
{
TMOD = 0x01; //浣跨敤瀹氭椂鍣0镄16浣嶅伐浣沧ā寮
TR0 = 0;
ET0 = 1; //瀹氭椂鍣0涓鏂
EA = 1; //镓揿紑镐讳腑鏂
while(1)
{
if(!K1)
{
while(!K1);
play(xianjian); //鎾鏀鹃煶涔
}
if(!K2)
{
while(!K2);
play(song3); //鎾鏀鹃煶涔
}
if(!K3)
{
while(!K3);
play(mamahao); //鎾鏀鹃煶涔
}
}
}
B. 濡备綍缂栧啓51鍗旷墖链洪煶涔愮▼搴
涓銆佹讳綋铡熺悊锛
涔愭洸涓涓嶅悓镄勯煶绗︼纴瀹炶川灏辨槸涓嶅悓棰戠巼镄勫0阔炽傞氲繃鍗旷墖链轰骇鐢熶笉钖岀殑棰戠巼镄勮剦鍐蹭俊鍙凤纴
缁忚繃鏀惧ぇ鐢佃矾锛岀敱铚傞福鍣ㄦ斁鍑猴纴灏变骇鐢熶简缇庡椤拰璋愮殑涔愭洸銆
浜屻佸崟鐗囨満浜х敓涓嶅悓棰戠巼鑴夊啿淇″彿镄勫师鐞嗭细
1锛夎佷骇鐢熼煶棰戣剦鍐诧纴鍙瑕佺畻鍑烘煇涓阔抽戠殑鑴夊啿锛1/棰戠巼锛夛纴铹跺悗灏嗘ゅ懆链熼櫎浠2锛屽嵆涓哄崐锻
链熺殑镞堕棿锛屽埄鐢ㄥ畾镞跺櫒璁℃椂杩欎釜鍗婂懆链熺殑镞堕棿锛屾疮褰撹℃椂鍒板悗灏卞皢杈揿嚭鑴夊啿镄処/O 鍙岖浉锛岀劧
钖庨吨澶嶈℃椂姝ゅ崐锻ㄦ湡镄勬椂闂村啀瀵笽/O 鍙岖浉锛屽氨鍙浠ュ湪I/O 鑴氢笂寰楀埌姝ら戠巼镄勮剦鍐层
2锛夊埄鐢8051 镄勫唴閮ㄥ畾镞跺櫒浣垮叾宸ヤ綔鍦ㄨ℃暟鍣ㄦā寮廙ODE1 涓嬶纴鏀瑰彉璁℃暟鍊糡H0 鍙奣L0 浠
浜х敓涓嶅悓棰戠巼镄勬柟娉曞备笅锛
渚嫔傦纴棰戠巼涓523Hz锛屽叾锻ㄦ湡澶/523 S=1912uS锛屽洜姝ゅ彧瑕佷护璁℃暟鍣ㄨ℃椂956uS/1us=956锛
鍦ㄦ疮璁℃暟956 娆℃椂灏卞皢I/O 鍙嶆帴锛屽氨鍙寰楀埌涓阔矰O锛532Hz锛夈
璁℃暟鑴夊啿鍊间笌棰戠巼镄勫叧绯诲叕寮忓备笅锛
N=Fi/2/Fr
锛圢锛氲℃暟鍊硷纴Fi锛氩唴閮ㄨ℃椂涓娆′负1uS锛屾晠鍏堕戠巼涓1MHz锛孎r锛氲佷骇鐢熺殑棰戠巼锛
涓夈佸叾璁℃暟鍊肩殑姹傛硶濡备笅锛
T=65536-N=65536-Fi/2/Fr
璁$畻涓句緥锛
璁綤=65536,F==Fi=1MHz锛屾眰浣庨煶DO锛261Hz锛夈佷腑阔矰O锛523Hz锛夈侀珮阔矰O锛1046Hz锛
镄勮℃暟鍊笺
T=65536-N=65536-Fi/2/Fr=6/2/Fr=65536-/Fr
浣庨煶DO 镄凾=65536-/262=63627
涓阔矰O 镄凾=65536-/523=64580
楂橀煶DO 镄凾=65536-/1047=65059
鍙傝幂▼搴忥细
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit BEEP=P3^7;
// 鐢熸棩蹇涔愭瓕镄勯煶绗﹂戠巼琛锛屼笉钖岄戠巼鐢变笉钖岀殑寤舵椂𨱒ュ喅瀹
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<SONG_LONG[i]*20;j++)
{
BEEP=~BEEP;
//SONG_TONE寤舵椂琛ㄥ喅瀹氢简姣忎釜阔崇︾殑棰戠巼
for(k=0;k<SONG_TONE[i]/3;k++);
}
DelayMS(10);
i++;
}
}
void main()
{
BEEP=0;
while(1)
{
PlayMusic(); //鎾鏀剧敓镞ュ揩涔
DelayMS(500); //鎾鏀惧畬钖庢殏锅滀竴娈垫椂闂
}
}
C. 求mp3的具体下载音乐程序
先把网上的歌曲下载到电脑硬盘里。怎样从网上下载歌曲?(如果这步会了,就跳过)
答:首先最好在你硬盘里建一个文件夹,可以给这个文件夹起个名字叫“歌曲”之类的方便查找。
然后教你怎样下载。
1、在地址栏里输入“网络”,按下回车键,或用鼠标左键单击转到。
2、鼠标左键单击“MP3”。
3、可以选择左键单击“歌手列表”。
4、选择你想听这首歌的演唱者。
5、在“网络MP3搜索”的右侧的“○歌词
○全部音乐
○MP3
○rm
○vma
○flash
○铃声
○点歌”里选中“○MP3”,再按下回车键,或用鼠标左键单击“网络搜索”。
6、选中你要听的歌;用鼠标右键单击这首歌或用鼠标右键单击“试听”;然后用鼠标左键单击“目标另存为”;打开“保存在”右边的下拉列表,或用鼠标左键单击“向上一级的符号”,找到你要下载到的“歌曲”文件夹,你可以在这个文件夹里建你要下载这首歌曲的演唱者的文件夹,方便查找,再用鼠标左键双击这个演唱者的文件夹;在下面的“文件名”里输入你下载歌曲的名字(方便查找);按下按下回车键,或用鼠标左键单击保存。
然后你就可以再去一边找歌,一边等待这首被下载的歌曲了。
以此类推,也可以在第5步时在“网络MP3搜索”的右侧的长方框里输入你要下载的歌曲名,然后选中“○MP3”,再按下回车键,或用鼠标左键单击“网络搜索”。
二、MP3插在哪儿??(如果这步会了,就跳过)
答:如果有连接MP3和电脑的线,试试哪面能插到MP3上,就先插到MP3上,另一面就到电脑的前面和后面找,试试哪个插孔能插上就是了。
三、MP3与电脑连接好后,打开MP3的开关。(或者你的MP3自动连接)?(如果这步会了,就跳过)
四、怎样把电脑里的歌曲下载到MP3上??(如果这步会了,就跳过)
一种:用MP3管理软件下载方法:
1、打开桌面上的MP3软件。
2、选中你要装到MP3里的歌曲,点击“下载”。(注意歌曲不要下载太多,每首歌之间也要占MP3空间的,没有空间MP3就不能播放歌曲了)
另一种:
1、打开“我的电脑”,打开你要下载到MP3上的歌曲的文件夹
2、右键单击要下载到MP3上的歌曲→左键单击“复制”
3、打开“我的电脑”,打开“可移动磁盘”,右键单击空白处→左键单击“粘贴。
D. 编写音乐小程序要用到哪些格式代码
编写音乐小程序要用到格式代码如下:
1、音乐播放逻辑代码pages、index、index.js。
2、底部播放器的结构代码page/index、index.wxml,底部播放器暂停/播放按钮控制歌曲pages、index、index.wxml。