找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1804|回复: 2
打印 上一主题 下一主题
收起左侧

基于51单片机的音乐程序

[复制链接]
跳转到指定楼层
楼主
ID:956085 发表于 2022-11-19 20:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我的51单片机程序编辑文件夹中的一个程序,感兴趣的可以试试,我还弄了一个<《起风了》音乐程序
  1. #include <reg51.h>
  2. #define uchar unsigned char

  3. sbit beepIO=P2^5;
  4. uchar m,n;
  5. uchar code T[49][2]={{0,0},
  6.                 {0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B},
  7.                 {0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05},
  8.                 {0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02},
  9.                 {0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}
  10.                                         };
  11. uchar code music[][2]={{0,4},
  12.                 {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
  13.                 {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,24},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{21,24},
  14.                 {23,4},{21,4},{23,16},{23,4},{21,4},{23,4},{21,4},{19,16},{16,4},{19,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{19,4},{14,24},
  15.                 {23,4},{26,4},{26,16},{26,4},{28,4},{26,4},{23,24},{21,4},{23,4},{21,8},{21,4},{23,4},{21,4},{19,4},{16,4},{16,2},{19,2},{19,24},{0,20},
  16.                 {26,4},{26,4},{28,4},{31,4},{30,4},{30,4},{28,4},{23,4},{21,4},{21,4},{23,16},{0,4},{23,4},{23,4},{26,4},{28,8},{28,12},{16,4},{23,4},{21,4},
  17.                 {21,24},{23,4},{26,4},{26,4},{23,4},{26,8},{0,4},{31,8},{30,4},{28,4},{30,4},{23,8},{0,4},{28,4},{28,4},{30,4},{28,4},{26,4},{23,4},{21,8},{23,4},{21,4},{23,4},{26,16},
  18.                 {0xFF,0xFF}
  19.                 };
  20. void delay(uchar p)
  21. {
  22.         uchar i,j;
  23.         for(;p>0;p--)
  24.         for(i=181;i>0;i--)
  25.         for(j=181;j>0;j--);
  26. }

  27. void pause()
  28. {
  29.         uchar i,j;
  30.         for(i=150;i>0;i--)
  31.         for(j=150;j>0;j--);
  32. }

  33. void T0_int() interrupt 1
  34. {
  35.         beepIO=!beepIO;
  36.         TH0=T[m][0];
  37.         TL0=T[m][1];
  38. }

  39. void main()
  40. {
  41.         uchar i=0;
  42.         TMOD=0x01;
  43.         EA=1;
  44.         ET0=1;
  45.         while(1)
  46.         {
  47.                 m=music[i][0];
  48.                 n=music[i][1];
  49.                 if(m==0x00)
  50.                 {
  51.                         TR0=0;
  52.                         delay(n);
  53.                         i++;
  54.                 }
  55.                 else if(m==0xFF)
  56.                 {
  57.                         TR0=0;
  58.                         delay(30);
  59.                         i=0;
  60.                 }
  61.                 else if(m==music[i+1][0])
  62.                 {
  63.                 TR0=1;
  64.                 delay(n);
  65.                 TR0=0;
  66.                 pause();
  67.                 i++;}
  68.                 else
  69.                 {
  70.                 TR0=1;
  71.                 delay(n);
  72.                 i++;
  73.                 }
  74.         }
  75. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:88606 发表于 2022-11-21 18:52 | 只看该作者
看看好不好听?
回复

使用道具 举报

板凳
ID:433219 发表于 2022-11-22 09:18 | 只看该作者
  频率(谱)是怎么对应编出来的???
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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