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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求問這串歌曲音調數組怎么算出來的?單片機音樂程序

[復制鏈接]
回帖獎勵 1 黑幣 回復本帖可獲得 1 黑幣獎勵! 每人限 1 次
匿名
跳轉到指定樓層
樓主
匿名  發表于 2019-9-24 13:01 回帖獎勵 |倒序瀏覽 |閱讀模式
論壇內一個大佬的代碼,這段百思不得其解怎么算出來115,102...這串數組的?
uchar code tone[]={115,102,91,86,77,68,61,57};                //歌曲音調
void main()                                                
{        
        uchar yd,temp;                                
        yd=0;                            //初始化t2
        while(1)
        {
                //演奏部分
                if(k1==0)                                
                {
                        while(!k1)                //如果鍵盤1被按下發音do
                        sound(0);
                        temp=1;yd=0;        
                }
                if(k2==0)                                //如果鍵盤2被按下發音ra
                {
                        while(!k2)        
                         sound(1);
                        temp=1;yd=1;
                }        
                if(k3==0)                                //如果鍵盤3被按下發音mi
                {
                        while(!k3)        
                         sound(2);
                        temp=1;yd=2;        
                }
                if(k4==0)                                //如果鍵盤4被按下發音fa
                {
                        while(!k4)        
                         sound(3);
                        temp=1;yd=3;        
                }
                if(k5==0)                                //如果鍵盤5被按下發音so
                {
                        while(!k5)        
                         sound(4);
                        temp=1;yd=4;        
                }
                if(k6==0)                                //如果鍵盤6被按下發音la
                {
                        while(!k6)        
                        sound(5);
                        temp=1;yd=5;        
                }
                if(k7==0)                                //如果鍵盤7被按下發音xi
                {
                        while(!k7)        
                         sound(6);
                        temp=1;yd=6;        
                }
                if(k8==0)                                //如果鍵盤8被按下發音do#
                {
                        while(!k8)         
                        sound(7);               
                        temp=1;yd=7;
                }
         }
}
void delay8um(uchar x)                                        //8ms延時函數
{
        uchar i,j;
        for(i=0;i<x;i++)
                for(j=0;j<1;j++);
}
void sound(uchar x)                                        //音調函數
{
        uchar i;
        for(i=0;i<60;i++)
        {
                buzzer=0;                                                                                       
                delay8um(tone[x]);                //開關頻率。。從而產生節拍
                buzzer=1;
                delay8um(tone[x]);
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:235200 發表于 2019-9-24 18:25 | 只看該作者
delay8um()函數是8ms,假設需要播放的聲音頻率是fx,周期是1/fx,用1/fx/2/8,可得該值
回復

使用道具 舉報

板凳
ID:213173 發表于 2019-9-25 07:22 | 只看該作者
音樂就是有比例關系的聲音。首先要定調,1與高八度1正好頻率翻倍,七個音階頻率比例關系(C調)如下:
1=262Hz
2=262*3/2Hz
3=262*5/4Hz
4=262*4/3Hz
5=262*9/8Hz
6=262*5/3Hz
7=262*15/8Hz
高音1=262*2Hz
這個數組是改變延時函數的延時時間的,也就改變了無源蜂鳴器的振蕩頻率,就能產生音樂。樓主可以根據這個原理定一個基調,按比例算出音階,就可以隨心所欲發出各種音樂。也許你就是未來的電子音樂合成大師。
回復

使用道具 舉報

地板
ID:275826 發表于 2019-9-25 07:55 | 只看該作者
根據語調的頻率與定時器定時時間計算
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲男人天堂网 | 亚洲视频在线看 | 国内精品视频在线 | 亚洲成人免费 | 亚洲 中文 欧美 | 少妇午夜一级艳片欧美精品 | 中文字幕在线一区二区三区 | 日韩在线免费 | 综合久久亚洲 | www.久久精品| 亚洲综合精品 | 精品国产91亚洲一区二区三区www | 亚洲一区二区电影网 | 伊人久操| 午夜精品一区二区三区在线观看 | 国产精品亚洲综合 | 日韩精品a在线观看图片 | 丁香六月伊人 | 青青久视频 | 一级黄色毛片 | www国产成人免费观看视频,深夜成人网 | 亚洲欧美一区二区三区视频 | 日韩三级在线观看 | 久色激情 | 国产乱码久久久久久一区二区 | 成人在线中文字幕 | 一区二区三区四区免费观看 | 中文字幕一区二区三区在线乱码 | 蜜桃久久 | 欧美日韩亚洲国产 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 亚洲一区二区三区桃乃木香奈 | 国产精品毛片av | av免费电影在线 | 91色综合 | 欧美1—12sexvideos | 亚洲精品乱码久久久久久9色 | 欧美a∨ | 中文字幕久久久 | 日韩欧美一区二区三区 | 手机av在线|