中易网

用c语言在单片机AT89C51编写音乐程序,求程序,求求你们了

答案:2  悬赏:0  
解决时间 2021-02-22 16:53
用c语言在单片机AT89C51编写音乐程序,求程序,求求你们了
最佳答案
下面是一段个完整的程序,有两首歌曲编码,看看可以吗?
#include "reg52.h"
unsigned char Count;
sbit _Speak =P2^3 ;//讯响器控制脚 

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,
//路边的野华不要采
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 Time0_Init()
{
TMOD = 0x01;
IE = 0x82;
TH0= 0xD8;
TL0= 0xEF;//12MZ晶振,10ms
}

void Time0_Int() interrupt 1
{
TH0 = 0xD8;
TL0 = 0xEF;
Count++;//长度加1
}


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);//播放
}
}
追问:还是不行
全部回答

具体要求 是什么
追问:你能帮我吗
追答:可以的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
张卫健演的西游记最后一级孙悟空变成石头那的
信佛去哪做皈依。收费吗?
灰沙发买什么色茶几和电视柜好
从韶关到佛山大沥,坐火车(到广州转车)好还
李老师有50000元钱,打算存入银行两年。可以
金星图文中心在什么地方啊,我要过去处理事情
谁有STC15W102串口通信程序的代码?
百科学历怎么去啊,有事要去办理
北京有情侣酒店吗????请给详细位置
南山中学自主招生考试难吗?考哪几科共计多少
农美在什么地方啊,我要过去处理事情
遵循自由组合定律的条件。高中生物
大连渤海高中(走小道能进的人)(花钱)
金杰西餐批发地址在哪,我要去那里办事
工伤后补缴社保
推荐资讯
金海岸洗浴休闲广场怎么去啊,有知道地址的么
浮想联翩的反义词
我要下载河南豫剧选段,请问到哪里找啊,急急
当天阳千品美食宴海楼怎么去啊,有知道地址的
木林乡地址有知道的么?有点事想过去
米3好用吗?
藤原京食酒所我想知道这个在什么地方
地税怎么在网上申报
百矿集团广西百色百东汽车销售服务有限公司这
怎样投诉申通快递县级网点
热塑性丁苯橡胶sbs791,792和796的区别
我家发现了个木雕,下面是八卦中间是个麒麟,
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?