永发信息网

求一个用C语言编写的51单片机音乐程序代码。

答案:3  悬赏:10  手机版
解决时间 2021-03-30 06:22
求一个用C语言编写的51单片机音乐程序代码。
最佳答案
#include
sbit speaker=P2^2;
unsigned char timer0h,timer0l,time;
//生日歌
code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
// 音阶频率表 高八位
code unsigned char FREQH[]={
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
} ;
// 音阶频率表 低八位
code unsigned char FREQL[]={
0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
};
void delay(unsigned char t)
{
unsigned char t1;
unsigned long t2;
for(t1=0;t1 {
for(t2=0;t2<8000;t2++)
{
;
}
}
TR0=0;
}
void t0int() interrupt 1
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
delay(time);
}

void main(void)
{
unsigned char k,i;
TMOD=1; //置CT0定时工作方式1
EA=1;
ET0=1;//IE=0x82 //CPU开中断,CT0开中断
while(1)
{
i=0;
while(i<75){ //音乐数组长度 ,唱完从头再来
k=sszymmh[i]+7*sszymmh[i+1]-1;
timer0h=FREQH[k];
timer0l=FREQL[k];
time=sszymmh[i+2];
i=i+3;
song();
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
FBA海运散货到门需要多久?
中交西西荟的线上翻牌游戏是不是真的哟能信吗
佛家入世什么意思
我今晚在出租车上丢了手机,被司机捡到,他说
买了一个君の名は的4K蓝光碟,在网上找了配置
处理固定资产小车一辆,怎么做会计分录?
一个蚂蚁根上围 八个蚂蚁抬棍棍,打一字
混凝土c40 p6什么意思
怎么让猫咪喜欢猫抓板
bank of america借记卡如果余额是负数,长期
试从人类造房子或高速公路,大桥等的具体情况
女人说i love me是什么心态
缤果盒子完成B轮8000万美元融资了吗?
三星schi869电信版彩信点击下载是怎么回事
微信提现四天了,还没到帐,怎么办
推荐资讯
HTML编网页时如何在数字上画斜线?
我们公司最新启用了OA办公这个软件,现在所有
比2比17重3.8千克求各多少克
华为v10设置一张卡为默认移动数据,另一张就
在遵义考出租车资格证要哪些条件?
国家认证SEO工程师考试怎么报名?
全实木装修多少钱一平方
秦妈火锅哪些菜品容易造成浑汤现象
其他的都能吹响,就是2出不响,感觉明显和其
请教C++指针**
求解观音灵签二十七签大神们帮帮忙
东风风行汽车收音机上DN和UP是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?