工控论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 0|回复: 0

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

[复制链接]

425

主题

431

帖子

296

积分

初级会员

Rank: 2

工控币
296
发表于 2020-1-22 13:37:00 | 显示全部楼层 |阅读模式
2.jpg 3.jpg 1.jpg
  1. 单片机源程序如下:
  2. #include <REG52.H>
  3. #include "MusicBox.h"


  4. /*********************代码说明**************************
  5. 音乐驱动参考部分网上代码,感谢原作者
  6. T0,T1用于翁鸣器频率计时和控制
  7. 使用P1.0口控制翁鸣器,高电平导通
  8. 使用外部中断0,实现曲目控制。设置中断0为最高优先级
  9. 在开发板上调试使用STC89C51芯片,4K flash
  10. 在手工焊板上使用STC89C52芯片,8K flash,能放置更多歌曲文件
  11. ********************************************/

  12. #define  MSC_NUM  5                             //总曲目数
  13. unsigned char play_num = 0;                     //当前播放曲目号            
  14. unsigned char play_state = 1;   


  15. unsigned char code Music_SummerNut[];        //盛夏的果实
  16. unsigned char code Music_leftTrouble[];      //忘忧草
  17. unsigned char code Music_moonHeart[];        //月亮代表我的心
  18. unsigned char code Music_JiXiang[];          //吉祥三宝
  19. unsigned char code Music_twoButterFly[];     //两只蝴蝶


  20. //定义歌曲播放指针数组
  21. unsigned char* pMusic[] = {Music_SummerNut, Music_leftTrouble, Music_twoButterFly, Music_moonHeart, Music_JiXiang};

  22. void main(void)
  23. {
  24.    unsigned char degree = 3;          //设定播放音调,升八度
  25.    unsigned int play_speed = 300;     //设定播放速度,默认为300

  26.         InitialSound();
  27.         while(1)
  28.         {        
  29.            //调用歌曲播放函数
  30.                 Play(pMusic[play_num], 0, degree, play_speed);

  31.                 //单曲完毕后,延时1S
  32.                 Delay1ms(1000);
  33.                
  34.                 //重设播放状态为1
  35.       play_state = 1;
  36.         }
  37. }



  38. void Delay1ms(unsigned int count)  //延时,ms级
  39. {
  40.         unsigned int i,j;
  41.         for(i=0; i<count; i++)
  42.         for(j=0; j<120; j++);
  43. }

  44. void Int_1(void) interrupt 2  //中断1,累加全局变量,暂停当前歌曲播放,曲目跳转
  45. {
  46.    EA = 0;

  47.         //设置为不播放状态
  48.         play_state = 0;

  49.         P0 = 0x80;

  50.         //曲目号累加
  51.    play_num++;

  52.         if(play_num >= MSC_NUM){  //若当前播放曲目为最后一条,则回零播放
  53.           play_num = 0;  
  54.         }

  55.    EA = 1;
  56. }


  57. //***********************************Music files**************************************************
  58. //吉祥三宝,一遍,后段转换不成功,未加入
  59. unsigned char code Music_JiXiang[] = { 0x17,0x03, 0x19,0x17, 0x19,0x16, 0x19,0x02, 0x19,0x0D,
  60.                                        0x19,0x03, 0x19,0x0D, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  61.                                        0x17,0x03, 0x19,0x17, 0x19,0x02, 0x19,0x0D, 0x19,0x03,
  62.                                        0x19,0x0D, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x03,
  63.                                        0x16,0x17, 0x15,0x02, 0x15,0x0D, 0x15,0x03, 0x15,0x0D,
  64.                                        0x15,0x03, 0x10,0x03, 0x0F,0x03, 0x17,0x03, 0x16,0x17,
  65.                                        0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x03, 0x16,0x0D,
  66.                                        0x15,0x03, 0x10,0x0D, 0x0F,0x03, 0x19,0x01, 0x18,0x01,
  67.                                        0x17,0x01, 0x17,0x01, 0x00,0x00 };

  68. //盛夏的果实
  69. unsigned char code Music_SummerNut[] = { 0x17,0x02, 0x17,0x03, 0x16,0x03, 0x16,0x16, 0x10,0x03,
  70.                                   0x15,0x02, 0x15,0x03, 0x16,0x03, 0x16,0x02, 0x15,0x03,
  71.                                   0x11,0x03, 0x10,0x02, 0x15,0x02, 0x16,0x03, 0x16,0x03,
  72.                                   0x15,0x03, 0x16,0x03, 0x17,0x02, 0x17,0x03, 0x16,0x03,
  73.                                   0x16,0x01, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  74.                                   0x19,0x16, 0x19,0x03, 0x1A,0x03, 0x17,0x03, 0x17,0x03,
  75.                                   0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x17,0x03,
  76.                                   0x19,0x03, 0x19,0x03, 0x19,0x03, 0x19,0x03, 0x1A,0x03,
  77.                                   0x17,0x03, 0x17,0x03, 0x17,0x16, 0x17,0x03, 0x16,0x03,
  78.                                   0x15,0x03, 0x10,0x03, 0x15,0x03, 0x17,0x04, 0x16,0x04,
  79.                                   0x16,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x19,0x67,
  80.                                   0x1A,0x04, 0x1A,0x02, 0x17,0x03, 0x16,0x03, 0x15,0x02,
  81.                                   0x15,0x03, 0x17,0x03, 0x16,0x02, 0x15,0x03, 0x10,0x03,
  82.                                   0x10,0x14, 0x16,0x66, 0x16,0x03, 0x15,0x66, 0x17,0x03,
  83.                                   0x19,0x03, 0x17,0x03, 0x17,0x15, 0x16,0x15, 0x15,0x03,
  84.                                   0x11,0x03, 0x10,0x03, 0x10,0x14, 0x16,0x66, 0x16,0x03,
  85.                                   0x15,0x02, 0x16,0x02, 0x17,0x02, 0x19,0x67, 0x1A,0x04,
  86.                                   0x1A,0x16, 0x1F,0x03, 0x1F,0x66, 0x1B,0x03, 0x1B,0x66,
  87.                                   0x1F,0x03, 0x1B,0x03, 0x1A,0x03, 0x1A,0x02, 0x17,0x02,
  88.                                   0x17,0x03, 0x16,0x03, 0x16,0x16, 0x10,0x03, 0x15,0x02,
  89.                                   0x15,0x03, 0x16,0x03, 0x16,0x02, 0x15,0x03, 0x11,0x03,
  90.                                   0x10,0x02, 0x15,0x02, 0x16,0x03, 0x16,0x03, 0x15,0x03,
  91.                                   0x16,0x03, 0x17,0x02, 0x17,0x03, 0x16,0x03, 0x16,0x01,
  92.                                   0x17,0x03, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x19,0x16,
  93.                                   0x19,0x03, 0x1A,0x03, 0x17,0x03, 0x17,0x03, 0x16,0x03,
  94.                                   0x17,0x01, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  95.                                   0x19,0x03, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x17,0x03,
  96.                                   0x17,0x03, 0x17,0x16, 0x17,0x03, 0x16,0x03, 0x15,0x03,
  97.                                   0x10,0x03, 0x15,0x03, 0x17,0x04, 0x16,0x04, 0x16,0x02,
  98.                                   0x15,0x03, 0x16,0x03, 0x17,0x02, 0x19,0x67, 0x1A,0x04,
  99.                                   0x1A,0x02, 0x17,0x03, 0x16,0x03, 0x15,0x02, 0x15,0x03,
  100.                                   0x17,0x03, 0x16,0x02, 0x15,0x03, 0x11,0x03, 0x10,0x14,
  101.                                   0x16,0x66, 0x15,0x66, 0x17,0x03, 0x19,0x03, 0x17,0x03,
  102.                                   0x17,0x15, 0x16,0x15, 0x15,0x03, 0x11,0x03, 0x10,0x03,
  103.                                   0x10,0x14, 0x16,0x66, 0x16,0x03, 0x15,0x02, 0x16,0x02,
  104.                                   0x17,0x02, 0x19,0x03, 0x1A,0x03, 0x1A,0x16, 0x1A,0x03,
  105.                                   0x1F,0x01, 0x1B,0x66, 0x1F,0x03, 0x1A,0x03, 0x1A,0x03,
  106.                                   0x1A,0x00, 0x00,0x00 };
  107. //忘忧草
  108. unsigned char code Music_leftTrouble[] = { 0x15,0x66, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x02,
  109.                                   0x17,0x03, 0x19,0x02, 0x1A,0x03, 0x19,0x16, 0x1A,0x66,
  110.                                   0x1F,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x1A,0x03,
  111.                                   0x19,0x03, 0x19,0x02, 0x17,0x03, 0x16,0x16, 0x17,0x66,
  112.                                   0x19,0x03, 0x1A,0x0D, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  113.                                   0x16,0x03, 0x16,0x02, 0x15,0x03, 0x15,0x16, 0x10,0x66,
  114.                                   0x15,0x03, 0x16,0x03, 0x17,0x02, 0x16,0x04, 0x15,0x0E,
  115.                                   0x15,0x04, 0x15,0x71, 0x15,0x01, 0x15,0x03, 0x16,0x03,
  116.                                   0x17,0x66, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x02,
  117.                                   0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x1A,0x03, 0x19,0x16,
  118.                                   0x1A,0x66, 0x1F,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x03,
  119.                                   0x1A,0x0D, 0x19,0x03, 0x19,0x0D, 0x19,0x16, 0x17,0x66,
  120.                                   0x19,0x03, 0x1A,0x0D, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  121.                                   0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x15,0x02,
  122.                                   0x10,0x03, 0x0F,0x03, 0x15,0x02, 0x16,0x03, 0x17,0x03,
  123.                                   0x16,0x03, 0x15,0x0D, 0x15,0x17, 0x10,0x04, 0x15,0x03,
  124.                                   0x15,0x0D, 0x15,0x16, 0x17,0x03, 0x19,0x03, 0x19,0x66,
  125.                                   0x17,0x03, 0x19,0x16, 0x19,0x03, 0x1A,0x66, 0x1F,0x03,
  126.                                   0x1F,0x0D, 0x1A,0x0D, 0x1A,0x02, 0x1A,0x66, 0x1F,0x03,
  127.                                   0x20,0x03, 0x1F,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x66,
  128.                                   0x1A,0x04, 0x19,0x04, 0x17,0x0D, 0x16,0x03, 0x16,0x02,
  129.                                   0x17,0x66, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x16,0x03,
  130.                                   0x16,0x02, 0x16,0x03, 0x15,0x03, 0x15,0x02, 0x10,0x03,
  131.                                   0x0F,0x03, 0x15,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x03,
  132.                                   0x15,0x03, 0x10,0x03, 0x15,0x03, 0x15,0x01, 0x17,0x02,
  133.                                   0x19,0x02, 0x1A,0x15, 0x1A,0x03, 0x1F,0x66, 0x1A,0x03,
  134.                                   0x19,0x16, 0x1A,0x66, 0x1F,0x03, 0x20,0x66, 0x21,0x0D,
  135.                                   0x20,0x03, 0x20,0x0D, 0x20,0x16, 0x1F,0x03, 0x20,0x03,
  136.                                   0x21,0x66, 0x23,0x03, 0x21,0x66, 0x21,0x03, 0x20,0x66,
  137.                                   0x1F,0x03, 0x1F,0x16, 0x1A,0x66, 0x1F,0x03, 0x20,0x03,
  138.                                   0x1F,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x66, 0x1A,0x04,
  139.                                   0x19,0x04, 0x17,0x0D, 0x16,0x03, 0x16,0x02, 0x15,0x66,
  140.                                   0x16,0x03, 0x17,0x02, 0x1F,0x0D, 0x1A,0x03, 0x1A,0x15,
  141.                                   0x19,0x03, 0x1A,0x16, 0x1F,0x03, 0x20,0x02, 0x20,0x03,
  142.                                   0x1F,0x0D, 0x1F,0x17, 0x1F,0x16, 0x00,0x00 };
  143. //两只蝴蝶
  144. unsigned char code Music_twoButterFly[] = { 0x17,0x03, 0x16,0x03, 0x17,0x0C, 0x17,0x03, 0x16,0x03,
  145.                                   0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03,
  146.                                   0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03,
  147.                                   0x10,0x03, 0x15,0x03, 0x0F,0x01, 0x17,0x03, 0x16,0x03,
  148.                                   0x17,0x0B, 0x17,0x03, 0x16,0x03, 0x17,0x03, 0x16,0x03,
  149.                                   0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D,
  150.                                   0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03,
  151.                                   0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x0B, 0x17,0x03,
  152.                                   0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03,
  153.                                   0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03,
  154.                                   0x15,0x03, 0x10,0x03, 0x15,0x03, 0x19,0x01, 0x17,0x03,
  155.                                   0x19,0x03, 0x19,0x0B, 0x19,0x03, 0x19,0x03, 0x1A,0x03,
  156.                                   0x19,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x02,
  157.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  158.                                   0x10,0x0E, 0x15,0x0E, 0x15,0x03, 0x15,0x0D, 0x15,0x79,
  159.                                   0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,
  160.                                   0x1B,0x03, 0x1A,0x03, 0x17,0x03, 0x16,0x0D, 0x16,0x03,
  161.                                   0x17,0x0D, 0x17,0x15, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  162.                                   0x1A,0x02, 0x1A,0x66, 0x10,0x03, 0x17,0x0D, 0x16,0x03,
  163.                                   0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,
  164.                                   0x19,0x16, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1B,0x03,
  165.                                   0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1A,0x03,
  166.                                   0x19,0x03, 0x17,0x03, 0x16,0x02, 0x17,0x0D, 0x16,0x03,
  167.                                   0x17,0x03, 0x19,0x02, 0x00,0x00 };

  168. //月亮代表我的心
  169. unsigned char code Music_moonHeart[] ={ 0x0F,0x03, 0x15,0x66, 0x17,0x03, 0x19,0x66, 0x15,0x03,
  170.                                   0x11,0x66, 0x17,0x03, 0x19,0x16, 0x19,0x03, 0x1A,0x03,
  171.                                   0x1B,0x02, 0x1F,0x66, 0x1A,0x03, 0x1A,0x03, 0x19,0x0D,
  172.                                   0x19,0x02, 0x17,0x03, 0x16,0x03, 0x15,0x66, 0x15,0x03,
  173.                                   0x15,0x02, 0x17,0x03, 0x16,0x03, 0x15,0x66, 0x15,0x03,
  174.                                   0x15,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x02, 0x15,0x03,
  175.                                   0x10,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x15, 0x0F,0x03,
  176.                                   0x17,0x0D, 0x19,0x03, 0x17,0x66, 0x16,0x03, 0x15,0x02,
  177.                                   0x19,0x02, 0x11,0x01, 0x10,0x03, 0x11,0x03, 0x10,0x02,
  178.                                   0x11,0x03, 0x10,0x02, 0x0F,0x02, 0x17,0x01, 0x19,0x02,
  179.                                   0x17,0x66, 0x16,0x03, 0x15,0x02, 0x19,0x02, 0x11,0x01,
  180.                                   0x10,0x03, 0x11,0x03, 0x15,0x66, 0x15,0x03, 0x15,0x02,
  181.                                   0x16,0x0D, 0x17,0x03, 0x16,0x15, 0x0F,0x03, 0x15,0x66,
  182.                                   0x17,0x03, 0x19,0x66, 0x15,0x03, 0x11,0x66, 0x17,0x03,
  183.                                   0x19,0x66, 0x19,0x03, 0x1A,0x66, 0x1B,0x03, 0x1F,0x66,
  184.                                   0x1A,0x03, 0x1A,0x03, 0x19,0x0D, 0x19,0x02, 0x17,0x03,
  185.                                   0x16,0x03, 0x15,0x66, 0x15,0x03, 0x15,0x02, 0x17,0x03,
  186.                                   0x16,0x03, 0x15,0x66, 0x15,0x03, 0x15,0x02, 0x16,0x03,
  187.                                   0x17,0x03, 0x16,0x66, 0x10,0x03, 0x11,0x02, 0x15,0x0D,
  188.                                   0x16,0x03, 0x15,0x15, 0x00,0x00 };

复制代码
基于51单片机音乐播放仿真 乐谱制作软件 音乐资料.rar  [预览压缩包] (668.85 KB, 售价: 1 工控币)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

免责声明: 工控技术网(www.eleok.com)所有内容均为网友自行发布,不代表网站立场。如有版权纠纷,请联系本站删除:1370723259@qq.com

QQ|小黑屋|手机版|工控技术网 |网站地图

GMT+8, 2020-9-29 06:25

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表