亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

音頻編解碼器ADAU1361

  • 單片機音樂中音調和節拍的確定方法

    單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經過聲學家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標準的音高為每秒鐘振動440周。 升C調:1=#C,也就是降D調:1=BD;277(頻率)升D調:1=#D,也就是降E調:1=BE;311升F調:1=#F,也就是降G調:1=BG;369升G調:1=#G,也就是降A調:1=BA;415升A調:1=#A,也就是降B調:1=BB。466,C 262   #C277   D 294   #D(bE)311  E 330   F 349   #F369   G 392  #G415A 440.    #A466    B 494 所謂1=A,就是說,這首歌曲的“導”要唱得同A一樣高,人們也把這首歌曲叫做A調歌曲,或叫“唱A調”。1=C,就是說,這首歌曲的“導”要唱得同C一樣高,或者說“這歌曲唱C調”。同樣是“導”,不同的調唱起來的高低是不一樣的。各調的對應的標準頻率為: 單片機演奏音樂時音調和節拍的確定方法 經??吹揭恍﹦倢W單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長的時間。 在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據倍頻程的關系得到其他音符基本音調的頻率。 知道了一個音符的頻率后,怎樣讓單片機發出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例:   A的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應有的中斷觸發時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定:    t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數初值。因此定時器的高低計數器的初值為:     TH = THL / 256 = ( TALL – t* f0/12) / 256    TL = THL % 256 = ( TALL – t* f0/12) %256  將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值為 :    TH440Hz = (65536 – 1136 * 12/12) /256 = FBH    TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據上面的求解方法,我們就可求出其他音調相應的計數器的予置初值。 音符的節拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C  、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯, 、 就是用來表示節拍的。以 為例加以說明,它表示樂譜中以四分音符為節拍,每一小結有三拍。比如:      其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms??梢姡趩纹瑱C上控制一個音符唱多長可采用循環延時的方法來實現。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。通過上面關于一個音符音調和節拍的確定方法,我們就可以在單片機上實現演奏音樂了。具體的實現方法為:將樂譜中的每個音符的音調及節拍變換成相應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數……,如此直到播放完畢最后一個音符,根據需要也可循環不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數設為FFH,FFH,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節拍參數為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值 : C調音符  頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調音符  頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02

    標簽: 單片機 音調

    上傳時間: 2013-10-20

    上傳用戶:哈哈haha

  • Verilog_HDL的基本語法詳解(夏宇聞版)

            Verilog_HDL的基本語法詳解(夏宇聞版):Verilog HDL是一種用于數字邏輯電路設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種:   系統級(system):用高級語言結構實現設計模塊的外部性能的模型。   算法級(algorithm):用高級語言結構實現設計算法的模型。   RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理這些數據的模型。   門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。   開關級(switch-level):描述器件中三極管和儲存節點以及它們之間連接的模型。   一個復雜電路系統的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊交互的現存電路或激勵信號源。利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,并對所作設計的邏輯電路進行嚴格的驗證。   Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下功能:   · 可描述順序執行或并行執行的程序結構。   · 用延遲表達式或事件表達式來明確地控制過程的啟動時間。   · 通過命名的事件來觸發其它過程里的激活行為或停止行為。   · 提供了條件、if-else、case、循環程序結構。   · 提供了可帶參數且非零延續時間的任務(task)程序結構。   · 提供了可定義新的操作符的函數結構(function)。   · 提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。   · Verilog HDL語言作為一種結構化的語言也非常適合于門級和開關級的模型設計。因其結構化的特點又使它具有以下功能:   - 提供了完整的一套組合型原語(primitive);   - 提供了雙向通路和電阻器件的原語;   - 可建立MOS器件的電荷分享和電荷衰減動態模型。   Verilog HDL的構造性語句可以精確地建立信號的模型。這是因為在Verilog HDL中,提供了延遲和輸出強度的原語來建立精確程度很高的信號模型。信號值可以有不同的的強度,可以通過設定寬范圍的模糊值來降低不確定條件的影響。   Verilog HDL作為一種高級的硬件描述編程語言,有著類似C語言的風格。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習Verilog HDL并不困難,我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,利用它的強大功能來設計復雜的數字邏輯電路。下面我們將對Verilog HDL中的基本語法逐一加以介紹。

    標簽: Verilog_HDL

    上傳時間: 2013-11-23

    上傳用戶:青春給了作業95

  • 基于增量式光電編碼器位移傳感器研究

    為了實現對位移測量的需求,提出了一種基于增量式光電編碼器的位移傳感器的設計方案,并完成系統的軟硬件設計。傳感器硬件部分主要包括增量式光電編碼器、信號的傳輸處理和測量結果的顯示。軟件部分采用匯編語言設計,實時解算測量結果并驅動顯示屏顯示。實際應用表明,該系統具有操作簡便、測試準確的特點,達到了設計要求。

    標簽: 增量式 光電編碼器 位移傳感器

    上傳時間: 2014-12-29

    上傳用戶:13686209316

  • linux_vi命令詳解-屏幕文本編輯器

    本章將詳細介紹linux vi命令。文本編輯器是所有計算機系統中最常使用的一種工具。用戶在使用計算機的時候,往往需要建立自己的文件,無論是一般的文本文件、數據文件,還是編寫的源程序文件,這些工作都離不開linux vi命令。

    標簽: linux_vi 命令 屏幕 文本編輯器

    上傳時間: 2013-11-05

    上傳用戶:my_cc

  • Verilog_HDL的基本語法詳解(夏宇聞版)

            Verilog_HDL的基本語法詳解(夏宇聞版):Verilog HDL是一種用于數字邏輯電路設計的語言。用Verilog HDL描述的電路設計就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種:   系統級(system):用高級語言結構實現設計模塊的外部性能的模型。   算法級(algorithm):用高級語言結構實現設計算法的模型。   RTL級(Register Transfer Level):描述數據在寄存器之間流動和如何處理這些數據的模型。   門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。   開關級(switch-level):描述器件中三極管和儲存節點以及它們之間連接的模型。   一個復雜電路系統的完整Verilog HDL模型是由若干個Verilog HDL模塊構成的,每一個模塊又可以由若干個子模塊構成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設計的模塊交互的現存電路或激勵信號源。利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計,并對所作設計的邏輯電路進行嚴格的驗證。   Verilog HDL行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下功能:   · 可描述順序執行或并行執行的程序結構。   · 用延遲表達式或事件表達式來明確地控制過程的啟動時間。   · 通過命名的事件來觸發其它過程里的激活行為或停止行為。   · 提供了條件、if-else、case、循環程序結構。   · 提供了可帶參數且非零延續時間的任務(task)程序結構。   · 提供了可定義新的操作符的函數結構(function)。   · 提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。   · Verilog HDL語言作為一種結構化的語言也非常適合于門級和開關級的模型設計。因其結構化的特點又使它具有以下功能:   - 提供了完整的一套組合型原語(primitive);   - 提供了雙向通路和電阻器件的原語;   - 可建立MOS器件的電荷分享和電荷衰減動態模型。   Verilog HDL的構造性語句可以精確地建立信號的模型。這是因為在Verilog HDL中,提供了延遲和輸出強度的原語來建立精確程度很高的信號模型。信號值可以有不同的的強度,可以通過設定寬范圍的模糊值來降低不確定條件的影響。   Verilog HDL作為一種高級的硬件描述編程語言,有著類似C語言的風格。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習Verilog HDL并不困難,我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,利用它的強大功能來設計復雜的數字邏輯電路。下面我們將對Verilog HDL中的基本語法逐一加以介紹。

    標簽: Verilog_HDL

    上傳時間: 2014-12-04

    上傳用戶:cppersonal

  • 在 Windows 的資源管理器窗口中

    在 Windows 的資源管理器窗口中,我們見過 WinZIP,WinRAR 等軟件能在文件或文件夾的默認快捷菜單中添加幾個菜單項,它可以使用戶無須進入軟件內部而直接在視窗中進行壓縮/解壓操作,十分方便用戶操作,這無疑是一個較好的應用模型,它就是我們所說的Shell擴展技術。此源代碼將以一個普通的源代碼統計程序為例來說明怎樣實現Shell擴展技術。

    標簽: Windows 資源管理器 窗口

    上傳時間: 2014-11-23

    上傳用戶:zhangliming420

  • 一個交織器的源代碼 留言:站長

    一個交織器的源代碼 留言:站長,我上載的代碼如果有解壓后不識別的文件類型,請保存為rar即可打開!

    標簽: 交織器 源代碼

    上傳時間: 2015-02-11

    上傳用戶:xz85592677

  • 51定時器完整源程序。有詳細介紹

    51定時器完整源程序。有詳細介紹,解壓即用。非常方便,實用

    標簽: 51定時器 源程序 詳細介紹

    上傳時間: 2014-01-18

    上傳用戶:aig85

  • acseespasssee破解器

    acseespasssee破解器,解壓后即可使用,無密碼。很簡單,看后即明白。

    標簽: acseespasssee 破解

    上傳時間: 2013-12-18

    上傳用戶:gengxiaochao

  • 最高優先級編碼器 8位相等比較器 三人表決器(三種不同的描述方式) 加法器描述 8位總線收發器:74245 (注2) 地址譯碼(for m68008) 多路選擇器(使用select語句)

    最高優先級編碼器 8位相等比較器 三人表決器(三種不同的描述方式) 加法器描述 8位總線收發器:74245 (注2) 地址譯碼(for m68008) 多路選擇器(使用select語句) LED七段譯碼 多路選擇器(使用if-else語句) 雙2-4譯碼器:74139 多路選擇器(使用when-else語句) 二進制到BCD碼轉換 多路選擇器 (使用case語句) 二進制到格雷碼轉換 雙向總線(注2) 漢明糾錯嗎譯碼器 三態總線(注2) 漢明糾錯嗎編碼器 解復用器

    標簽: m68008 select 74245 for

    上傳時間: 2015-04-11

    上傳用戶:tianyi223

主站蜘蛛池模板: 高台县| 拉萨市| 德安县| 昆明市| 博爱县| 水城县| 巨鹿县| 平南县| 太保市| 浦江县| 湘潭县| 长汀县| 封开县| 迭部县| 韶山市| 东宁县| 台东县| 岚皋县| 雅安市| 大洼县| 嘉禾县| 缙云县| 临汾市| 利辛县| 昌都县| 平定县| 枣强县| 隆德县| 姚安县| 内江市| 来安县| 巨鹿县| 秦皇岛市| 扎囊县| 栖霞市| 白河县| 宝丰县| 云梦县| 马关县| 承德市| 黄骅市|