单片机音频谱曲软件_基于51单片机音乐播放仿真 乐谱制作软件 音乐资料

本文介绍了如何使用51单片机进行音乐播放,提供了多个音乐曲目的源代码,并通过外部中断0实现曲目切换。程序中详细注释了音乐驱动部分,适配不同型号的单片机,如STC89C51和STC89C52。此外,文章还分享了完整的音乐文件代码供下载参考。
摘要由CSDN通过智能技术生成

单片机源程序如下:

#include

#include "MusicBox.h"

/*********************代码说明**************************

献给师妹黄银盛-------希望你快乐幸福每一天

音乐驱动参考部分网上代码,感谢原作者

T0,T1用于翁鸣器频率计时和控制

使用P1.0口控制翁鸣器,高电平导通

使用外部中断0,实现曲目控制。设置中断0为最高优先级

在开发板上调试使用STC89C51芯片,4K flash

在手工焊板上使用STC89C52芯片,8K flash,能放置更多歌曲文件

********************************************/

#define  MSC_NUM  5                             //总曲目数

unsigned char play_num = 0;                     //当前播放曲目号

unsigned char play_state = 1;

unsigned char code Music_SummerNut[];        //盛夏的果实

unsigned char code Music_leftTrouble[];      //忘忧草

unsigned char code Music_moonHeart[];        //月亮代表我的心

unsigned char code Music_JiXiang[];          //吉祥三宝

unsigned char code Music_twoButterFly[];     //两只蝴蝶

//定义歌曲播放指针数组

unsigned char* pMusic[] = {Music_SummerNut, Music_leftTrouble, Music_twoButterFly, Music_moonHeart, Music_JiXiang};

void main(void)

{

unsigned char degree = 3;          //设定播放音调,升八度

unsigned int play_speed = 300;     //设定播放速度,默认为300

InitialSound();

while(1)

{

//调用歌曲播放函数

Play(pMusic[play_num], 0, degree, play_speed);

//单曲完毕后,延时1S

Delay1ms(1000);

//重设播放状态为1

play_state = 1;

}

}

void Delay1ms(unsigned int count)  //延时,ms级

{

unsigned int i,j;

for(i=0; i

for(j=0; j<120; j++);

}

void Int_1(void) interrupt 2  //中断1,累加全局变量,暂停当前歌曲播放,曲目跳转

{

EA = 0;

//设置为不播放状态

play_state = 0;

P0 = 0x80;

//曲目号累加

play_num++;

if(play_num >= MSC_NUM){  //若当前播放曲目为最后一条,则回零播放

play_num = 0;

}

EA = 1;

}</

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值