久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5883|回復: 3
打印 上一主題 下一主題
收起左側

單片機電子琴設計中怎么存音樂

[復制鏈接]
跳轉到指定樓層
樓主
五一單片機中電子琴的中音樂的那種音律怎么用代碼啊什么表示
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:164602 發表于 2017-6-5 18:12 | 只看該作者
這個問題有點復雜。一個個地說吧。
首先是音樂的知識:
第一:音樂與頻率的關系——標準A = 440 Hz,8度音的頻率為原來音頻率的2倍。我們不是搞音樂的,這個就不多說。
第二:音階與頻率的具體關系:
音階      Octave0 Octave1  Octave2  Octave3
Do  C      262      523     1047     2093
    Db      277      554    1109     2217
Re  D       294      587     1175     2349
    Eb      311       622     1245     2489
Mi  E       330       659     1329     2637
Fa   F      349      698     1397     2794
    Gb      370      740     1480     2960
Sol  G      392       784     1568    3136
    Ab      415       831    1661     3322
La  A       440       880     1760     3520
    Bb      466       923    1865      3729
Si   B       494       988      1976     3951
有了這些知識,就可以用單片機控制頻率,讓蜂鳴器發出音樂了。
怎么編程呢?
給你一個程序:
/*
本實例利用無源蜂鳴器發出音樂聲音。
還用到了定時計數器0
*/


#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char


sbit voice=P1^5;//蜂鳴器I/O口


uchar code sound[]={0xff,


/*
軟件使用規則:
下面已經定義好了簡譜對應的頻率數據
節拍數據為:
四分之一拍:0x10
四分之二拍:0x20
四分之三拍:0x30
      一拍:0x40
一又四分之一拍:0x60
      兩拍:0x80
      三拍:0xc0


音樂數據是這樣的:兩個十六進制數據,表達一個音符,它包含信息有:第一個數據為音階,第二數據為節拍,一定是成對放置。
*/




//此后為音樂樂譜,全部為3拍
0x60,0xc0,//低音階1,2,3,4,5,6,7
0x55,0xc0,
0x4c,0xc0,
0x48,0xc0,
0x40,0xc0,
0x39,0xc0,
0x33,0xc0,


0x30,0xc0,//中音階1,2,3,4,5,6,7
0x2b,0xc0,
0x26,0xc0,
0x24,0xc0,
0x20,0xc0,
0x1c,0xc0,
0x19,0xc0,


0x18,0xc0,//高音階1,2,3,4,5,6,7
0x15,0xc0,
0x13,0xc0,
0x12,0xc0,
0x10,0xc0,
0x0e,0xc0,
0x0d,0xc0,


0x26,0x20,0x2b,0x20,0x26,0x80,0xff,0x20,0x2b,0x20,0x26,0x20,0x26,0x10,//兩只蝴蝶
0x2b,0x10,0x30,0x80,0xff,0x40,0x39,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,
0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x39,0x10,0x30,0x10,0x40,0x80,
0x40,0x80,0x26,0x20,0x2b,0x20,0x26,0x80,0xff,0x20,0x2b,0x20,0x26,0x20,
0x26,0x10,0x2b,0x10,0x30,0x80,0xff,0x40,0x39,0x20,0x30,0x20,0x2b,0x40,
0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x30,0x20,0x2b,0xc0,
0x26,0x20,0x2b,0x20,0x26,0x80,0xff,0x20,0x2b,0x20,0x26,0x20,0x26,0x10,
0x2b,0x10,0x30,0xc0,0x39,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,0x26,0x20,
0x2b,0x20,0x30,0x20,0x39,0x20,0x39,0x10,0x30,0x10,0x40,0xc0,0x26,0x20,
0x20,0x20,0x20,0x80,0xff,0x20,0x20,0x20,0x1c,0x20,0x20,0x20,0x26,0xc0,
0x2b,0x20,0x2b,0x20,0x2b,0x60,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,
0x39,0x20,0x39,0x20,0x30,0x20,0x30,0x20,0x30,0xc0,0xff,0x40,0xff,0x40,
0xff,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,0x19,0x20,0x19,0x20,
0x1c,0x20,0x26,0x20,0x2b,0x20,0x2b,0x20,0x26,0x20,0x26,0x80,0xff,0x20,
0x26,0x20,0x26,0x20,0x20,0x20,0x1c,0x40,0x1c,0x40,0xff,0x20,0x39,0x20,
0x26,0x20,0x2b,0x20,0x2b,0xc0,0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x20,
0x20,0x40,0xff,0x20,0x18,0x40,0x19,0x20,0x1c,0x20,0x1c,0x10,0x19,0x10,
0x26,0x40,0xff,0x20,0x1c,0x20,0x1c,0x20,0x19,0x20,0x1c,0x20,0x20,0x20,
0x26,0x20,0x2b,0x20,0xff,0x20,0x26,0x20,0x2b,0x20,0x26,0x20,0x20,0x80,
0xff,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,0x19,0x20,0x19,0x20,
0x1c,0x20,0x26,0x20,0x2b,0x20,0x2b,0x20,0x26,0x20,0x26,0x80,0xff,0x20,
0x26,0x20,0x26,0x20,0x20,0x20,0x1c,0x40,0x1c,0x40,0xff,0x20,0x39,0x20,
0x26,0x20,0x2b,0x20,0x2b,0xc0,0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x20,
0x20,0x40,0xff,0x20,0x18,0x40,0x19,0x20,0x1c,0x20,0x1c,0x10,0x19,0x10,
0x26,0x40,0xff,0x20,0x1c,0x20,0x1c,0x20,0x19,0x20,0x1c,0x20,0x20,0x20,

0x26,0x20,0x2b,0x20,0xff,0x20,0x40,0x40,0x39,0x20,0x30,0xc0,0xff,0xc0,



0xff,0xc0,//休止符


,0x00};


uchar zdjs=0, jp;//jp為節拍變量,


void del(yj);//yj為音階變量,延時為了樂音高低


void main(void)
{
        uint dpjs=0;//讀數據的指針
        uchar yj;
        TMOD=0x01;//定時器0,工作方式1:16位定時器(0~65535),定時器模式,由運行控制位TR0開啟
        IE=0x82;//中斷允許寄存器設置,等于以下分別的設置:EA=1總中斷允許,ET0=1定時器中斷0允許;
        TH0=0xd8;//給定時器賦初值,即定時時間的長短:12MHz下10ms
        TL0=0xf0;
        TR0=1;//啟動定時器0
        while(1)
        {  
                zdjs=0;//節拍長短的計數器計數變量
                dpjs++; yj=sound[dpjs];
                dpjs++; jp=sound[dpjs];
                while(zdjs!=jp)
                {
                        if(yj!=0xff)
                        {
                                if(yj!=0)
                                {
                                        voice=!voice;
                                        del(yj);
                                }
                                else
                                {
                                        dpjs=0;
                                        break;
                                }
                        }
                        else
                        {
                                voice=1;
                                del(jp);
                        }
                }
        }
}


void time0() interrupt 1
{
        TH0=0xd8;//定時10ms,12M
        TL0=0xf0;
        zdjs++;
}


void del(yj)
{
        uchar yj2=2;
        while(yj!=0)
        {      
                while(yj2!=0)
                {
                        yj2--;
                }
                        yj2=2;
                        yj--;  
        }  

}

好了,電子音樂已經可以通過51單片機進行演奏了。

還可以有其它的演奏辦法:
第一:上述程序不是唯一的,只要能控制好蜂鳴器發聲音的頻率,就可以發出音樂。
第二:還可以通過電子電路的設計,通過雙穩態電路(模擬電路)或其它芯片,可以得到發音樂的結果。小孩玩的電子琴,就是這樣來的。網上很多資料,這里不多說了。

兩只蝴蝶簡譜011.jpg (67.42 KB, 下載次數: 156)

兩只蝴蝶簡譜011.jpg
回復

使用道具 舉報

板凳
ID:77589 發表于 2023-5-15 11:11 | 只看該作者
當然用數組存放啊!如果數據太多,外掛Flash啊!
回復

使用道具 舉報

地板
ID:1034262 發表于 2023-5-15 16:27 | 只看該作者
可以參考MIDI。
或者自己定義,節拍速率,音符、時值。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲日韩中文字幕一区 | av网站推荐| 在线āv视频 | 久久精品国产99国产 | 免费在线观看av网址 | 一区二区视频在线 | 一级做受毛片免费大片 | 毛片一区二区三区 | 亚洲精品国产精品国自产在线 | 国产激情91久久精品导航 | 精品视频久久久久久 | 久久99精品久久久久久琪琪 | 最新黄色在线观看 | 亚洲精品福利在线 | 青娱乐av| 中文字幕在线视频一区二区三区 | 精品一区精品二区 | 午夜寂寞影院在线观看 | 欧美日韩毛片 | 久久久久久久久久性 | 日韩靠逼| 久久成人18免费网站 | 国产精品久久久久久久久久久久 | 在线看日韩 | 日韩中文字幕av | 欧美一级二级三级视频 | 久久久久黄 | 一级毛片免费 | 国产精品久久久久不卡 | 国产一级在线 | 午夜爱爱毛片xxxx视频免费看 | 天天搞天天操 | 一级毛片视频 | 欧美九九九 | 国产丝袜一区二区三区免费视频 | 成人亚洲视频 | 久草在线视频中文 | 久久久精品一区 | 国产精品成人一区二区三区夜夜夜 | 天天操天天摸天天爽 | 黄色一级电影在线观看 |