找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7748|回復(fù): 6
收起左側(cè)

音樂(lè)轉(zhuǎn)換代碼怎么弄。壳蟠笊裰附

[復(fù)制鏈接]
ID:254549 發(fā)表于 2017-11-29 09:20 | 顯示全部樓層 |閱讀模式
我想把音樂(lè)轉(zhuǎn)換成代碼然后放到程序里面,求大神指教一下要怎么弄才好,非常感謝!
回復(fù)

使用道具 舉報(bào)

ID:254980 發(fā)表于 2017-11-29 11:52 來(lái)自手機(jī) | 顯示全部樓層
我在這個(gè)論壇里看到有人發(fā)了一個(gè)把音樂(lè)自動(dòng)轉(zhuǎn)換成c的軟件 你找找
回復(fù)

使用道具 舉報(bào)

ID:240626 發(fā)表于 2017-11-29 12:04 | 顯示全部樓層
給你一個(gè)代碼,你只需要往里輸入1,2,3,4,5,6,7代表7個(gè)音符,應(yīng)為前面已經(jīng)定義好每個(gè)數(shù)字的16進(jìn)制。#include<reg52.h>
sbit SPK = P2^3;
sbit dula=P2^6;//單片機(jī)開(kāi)發(fā)板上有鎖存器和數(shù)碼管,可以用來(lái)顯示播放進(jìn)度
sbit wela=P2^7;
#define uint unsigned int;
#define uchar unsigned char;
unsigned char x,y;              
uchar bai_c,shi_c,ge_c;
uchar a,b,c;
uchar i1,i2,i3;
//這就 是根據(jù)樂(lè)譜翻譯過(guò)來(lái)的,一個(gè)全音由四個(gè)節(jié)拍組成,,如16,16,1,1,代表半拍高音6加半拍中音1
uchar code MUSIC[]={ 0,0,0,0,16,16,1,1,  15,15,16,16,1,1,1,1,      5,5,6,6,4,4,3,3,       2,2,2,2,2,2,5,5,       5,5,2,2,4,4,3,3,      2,2,1,2,4,4,4,4,
                  16,16,1,1,2,2,4,4,    2,1,16,1,15,15,15,15,    16,16,16,16,15,15,15,15,  15,15,15,15,15,15,15,15,  0,0,5,5,5,5,0,0,  5,5,5,5,4,4,4,4,
              5,5,5,5,2,2,2,2,      2,2,5,5,4,4 ,4,4,         16,16,1,1,2,2,2,2,      4,4,2,2,2,2,4,4,     5,5,5,5,5,5,6,6,   21,21,21,21,6,6,21,21,
  21,21,6,6,5,5,5,5,    5,5,6,6,5,5,4,4,          2,2,2,2,2,2,5,5,       5,5,2,2,4,4,3,3,    2,2,1,2,4,4,4,4,    16,16,1,1,2,2,4,4,
        2,1,16,1,15,15,15,15,  16,16,16,16,15,15,15,15,  5,5,6,6,5,5,6,6,       5,5,4,4,5,5,5,5};
uchar code table[] = { 0,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe,0,0,0,    //0-10定時(shí)半周期的初始值中音123 4 5 67高8位,其中8,9,10為補(bǔ)位碼,只是為了表格整齊
                         0xf8,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0,0,0,    //低音1 2 3 4 5 67高8位
                         0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,          //高音1 2 3 4 5 67高8位   
                       0,0x44,0xad,0x0a,0x34,0x82,0xc8,0x06,0,0,0,    //中音123 4 5 67低8位
                         0x89,0x59,0x13,0x68,0x04,0x90,0x0c,0 ,0,0,   //低音1 2 3 4 5 6 7低8位
                         0x22,0x56,0x85,0x9a,0xc1,0xe4,0x03};        //高音1 2 3 4 5 6 7低8位
uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,          //數(shù)碼管顯示數(shù)字碼
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
uint i,j,k;
void delay(i)        //晶振11.0592MHZ時(shí)延時(shí)1ms
{
  for(j=i;j>0;j--)
    for(k=132;k>0;k--);
}
void display(bai_c,shi_c,ge_c)//3位顯示程序
{
   P0=table1[bai_c];                //顯示百位
   dula=1;
   dula=0;
   P0=0xf7;
   wela=1;
   wela=0;
   delay(2);
   P0=table1[shi_c];                //顯示十位
   dula=1;
   dula=0;
   P0=0xef;
   wela=1;
   wela=0;
   delay(2);
  P0=table1[ge_c];                //顯示個(gè)位
   dula=1;
   dula=0;
   P0=0xdf;
   wela=1;
   wela=0;
   delay(1);
   P0=0xff;  //顯示完畢后關(guān)閉最后一位顯示
   wela=1;
   wela=0;
}
void TIM0_ISR() interrupt 1
{
SPK=!SPK;
TH0=table[x];               //載入定時(shí)半周期的初始值
TL0=table[x+28];
  }
void main(void)
{   
  TMOD|=0x01;
  EA=1;      
  ET0=1;     
while(1)
      {
       y=0;  
       while(y<224)
       {
          i1=y/100;
               i2=y/10%10;
  i3=y%10;
             x=MUSIC[y];
             TH0=table[x];               //載入定時(shí)半周期的初始值
             TL0=table[x+28];
             TR0=1;       //打開(kāi)定時(shí)器
            for(a=25;a>0;a--)   //延時(shí)125ms
{
display(i1,i2,i3);
}
y++;
TR0=0;
           }
       }
  }
回復(fù)

使用道具 舉報(bào)

ID:254549 發(fā)表于 2017-11-29 13:48 | 顯示全部樓層
dai@1228 發(fā)表于 2017-11-29 11:52
我在這個(gè)論壇里看到有人發(fā)了一個(gè)把音樂(lè)自動(dòng)轉(zhuǎn)換成c的軟件 你找找

我翻了好久  找不到  太多了文件
回復(fù)

使用道具 舉報(bào)

ID:254549 發(fā)表于 2017-11-29 13:48 | 顯示全部樓層
1106998808 發(fā)表于 2017-11-29 12:04
給你一個(gè)代碼,你只需要往里輸入1,2,3,4,5,6,7代表7個(gè)音符,應(yīng)為前面已經(jīng)定義好每個(gè)數(shù)字的16進(jìn)制。#include ...

大佬,給個(gè)圖試試
回復(fù)

使用道具 舉報(bào)

ID:91165 發(fā)表于 2017-11-29 16:49 | 顯示全部樓層
網(wǎng)上下載這個(gè)MusicEncode.exe試試
回復(fù)

使用道具 舉報(bào)

ID:254549 發(fā)表于 2017-11-29 17:49 | 顯示全部樓層
HWL0541 發(fā)表于 2017-11-29 16:49
網(wǎng)上下載這個(gè)MusicEncode.exe試試

恩  謝謝  我下個(gè)試試
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表