91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī) | 音樂程序設(shè)計(jì)原理解析

2oON_changxuemc ? 來源:YXQ ? 2019-06-05 17:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。

例如,要產(chǎn)生200Hz的音頻信號(hào),接入喇叭(若屬臨時(shí)實(shí)驗(yàn),也可將喇叭直接接在P1口線上),實(shí)驗(yàn)程序?yàn)椋?/p>

其中子程序DEL為延時(shí)子程序,當(dāng)R3為1時(shí),延時(shí)時(shí)間約為20us,R3中存放延時(shí)常數(shù),對(duì)200HZ音頻,其周期為1/200秒,即5ms。這樣,當(dāng)P1.4的高電平或低電平的持續(xù)時(shí)間為2.5ms,即R3的時(shí)間常數(shù)取2500/20=125(7DH)時(shí),就能發(fā)出200HZ的音調(diào)。將上述程序鍵入學(xué)習(xí)機(jī),并不斷修改R3的常數(shù)可以感到音調(diào)的變化。

樂曲中,每一音符對(duì)應(yīng)著確定的頻率,表1給出C調(diào)時(shí)各音符頻率及其相應(yīng)的時(shí)間常數(shù)。

讀者可以根據(jù)表1所提供的常數(shù),將其16進(jìn)制代碼送入R3,反復(fù)練習(xí)體會(huì)。根據(jù)表1可以奏出音符。僅這還不夠,要準(zhǔn)確奏出一首曲子,必須準(zhǔn)確地控制樂曲節(jié)奏,即一音符的持續(xù)時(shí)間。

音符的節(jié)拍我們可以用定時(shí)器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。其它節(jié)拍與時(shí)間的對(duì)應(yīng)關(guān)系見表2。

但時(shí),由于T0的最大定時(shí)時(shí)間只能為131毫秒,因此不可能直接用改變T0的時(shí)間初值來實(shí)現(xiàn)不同節(jié)拍。我們可以用T0來產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長(zhǎng)短。表2中也給出了各種節(jié)拍所對(duì)應(yīng)的時(shí)間常數(shù)。例如對(duì)1/4拍音符,定時(shí)時(shí)間為0.16秒,相應(yīng)的時(shí)間常數(shù)為16(即10H);對(duì)3拍音符,定時(shí)時(shí)間為1.92秒,相應(yīng)時(shí)間長(zhǎng)數(shù)為192(即C0H)。

我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。

此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。

為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符。

程序框圖如圖2所示。

下面給出程序序請(qǐng)單,可直接在TD-III型學(xué)習(xí)機(jī)上演奏,對(duì)其它不同型號(hào)的學(xué)習(xí)機(jī),只需相應(yīng)地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開”,C調(diào),節(jié)奏為94拍/分。讀者也可以自行找出一首歌,按表1和表2給定的常數(shù),將樂曲翻譯成碼表輸入機(jī)器,而程序不變。本實(shí)驗(yàn)方法簡(jiǎn)便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機(jī)器的演奏學(xué)唱一首歌曲,其趣味無窮。

硬件連接說明:

隨便找一個(gè)仿真機(jī)或者什么單片機(jī)實(shí)驗(yàn)板,只要能工作的就行,將程序輸入,運(yùn)行,然后找個(gè)音箱(你計(jì)算機(jī)旁邊應(yīng)當(dāng)就有一對(duì)吧)撥出插頭,插頭的前端接在P1。0上,后面部分找根線接單片機(jī)的地,就應(yīng)當(dāng)有聲了,然后怎么改進(jìn)硬件連接就是你的事了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670439
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3846

    瀏覽量

    85246

原文標(biāo)題:?jiǎn)纹瑱C(jī)音樂程序的設(shè)計(jì)原理解析

文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    熱點(diǎn)推薦

    深入解析英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用考量

    深入解析英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用考量 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,單片機(jī)作為核心控制元件,廣泛應(yīng)用于各種電子設(shè)備中。英飛凌的XC835/836 8位單片機(jī),以其
    的頭像 發(fā)表于 02-10 11:05 ?429次閱讀

    瑞薩 8 位單片機(jī) 740 族指令系統(tǒng)與設(shè)計(jì)要點(diǎn)解析

    深入探討一下 740 族單片機(jī)的指令系統(tǒng)以及設(shè)計(jì)過程中的注意事項(xiàng)。 文件下載: R5F211B1SP#W4.pdf 740 族指令特點(diǎn)概述 指令與尋址方式優(yōu)勢(shì) 740 族具備高效率的指令群和豐富的尋址方式,這使得它能夠有效使用 ROM 區(qū)。豐富的尋址方式為程序設(shè)計(jì)提供了更
    的頭像 發(fā)表于 02-09 16:40 ?137次閱讀

    單片機(jī)里的程序運(yùn)行方式

    我們想要理解單片機(jī)是如何運(yùn)行程序的,我們首先需要了解單片機(jī)的組成,我們這里以80C51單片機(jī)為例來理解
    發(fā)表于 01-16 06:57

    請(qǐng)問單片機(jī)開發(fā)的程序設(shè)計(jì)語言主要有哪幾種?

    單片機(jī)開發(fā)的程序設(shè)計(jì)語言主要有哪幾種?
    發(fā)表于 01-14 08:29

    中穎電子8位單片機(jī)的I/O設(shè)置介紹

    在嵌入式系統(tǒng)設(shè)計(jì)中,單片機(jī)的I/O端口設(shè)置是基礎(chǔ)且關(guān)鍵的一環(huán)。今天我們來詳細(xì)解析中穎電子8位單片機(jī)的I/O設(shè)置,幫助工程師更好地理解和應(yīng)用。
    的頭像 發(fā)表于 12-30 09:37 ?737次閱讀
    中穎電子8位<b class='flag-5'>單片機(jī)</b>的I/O設(shè)置介紹

    單片機(jī)程序的執(zhí)行

    上是不是只要Flash就可以了呢(直接相當(dāng)于PC上的DDRRAM)?這樣成本也會(huì)比一個(gè)RAM,一個(gè)Flash低,更節(jié)省成本,對(duì)于生產(chǎn)商更劃算)。 對(duì)于單片機(jī)程序執(zhí)行時(shí)指令和數(shù)據(jù)的存放與讀取,理解如下
    發(fā)表于 12-04 06:20

    一文解析單片機(jī)晶振腳的原理

    晶振是重要元器件之一,對(duì)于晶振,小編于往期晶振相關(guān)文章中有過諸多闡述。本文中,小編將對(duì)單片機(jī)晶振腳的原理加以解析,以幫助大家更好理解晶振。晶振電路需要2個(gè)10-30pF級(jí)別的電容作為起振用途
    的頭像 發(fā)表于 11-21 15:37 ?3615次閱讀
    一文<b class='flag-5'>解析</b><b class='flag-5'>單片機(jī)</b>晶振腳的原理

    單片機(jī)燒錄原理是怎樣的?輝芒微單片機(jī)燒錄程序詳細(xì)步驟講解

    燒錄(Programming)就是把 .hex/.bin 文件里的機(jī)器碼搬運(yùn)進(jìn)單片機(jī)片內(nèi) Flash 的過程。輝芒微(FMD)單片機(jī)內(nèi)部有一塊 自舉 BootROM,上電時(shí)會(huì)先跑這段程序;如果檢測(cè)
    的頭像 發(fā)表于 09-17 16:14 ?2338次閱讀
    <b class='flag-5'>單片機(jī)</b>燒錄原理是怎樣的?輝芒微<b class='flag-5'>單片機(jī)</b>燒錄<b class='flag-5'>程序</b>詳細(xì)步驟講解

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要
    的頭像 發(fā)表于 07-25 11:39 ?793次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)程序是將編寫好的程序代碼寫入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過程,是單片機(jī)
    的頭像 發(fā)表于 07-23 11:47 ?1304次閱讀

    圖解單片機(jī)功能與應(yīng)用(完整版)

    從基礎(chǔ)知識(shí)的介紹出發(fā),圖文并茂,直觀、系統(tǒng)地介紹了單片機(jī)的內(nèi)部結(jié)構(gòu)、工作原理和應(yīng)用技巧。全書分為10章,內(nèi)容包括51單片機(jī)編程資源圖解、51單片機(jī)指令系統(tǒng)圖解、匯編語言程序設(shè)計(jì)圖解、輸
    發(fā)表于 06-16 16:52

    STC單片機(jī)范例程序

    電子發(fā)燒友網(wǎng)站提供《STC單片機(jī)范例程序.zip》資料免費(fèi)下載
    發(fā)表于 06-04 16:27 ?10次下載

    2.4寸TFT彩屏配套測(cè)試程序-51單片機(jī)

    如題,2.4寸TFT彩屏配套測(cè)試程序-51單片機(jī)
    發(fā)表于 06-04 16:26 ?0次下載

    C51單片機(jī)及C語言知識(shí)點(diǎn)必備秘籍

    26:單片機(jī)矩陣式鍵盤接口技術(shù)及 27:關(guān)于單片機(jī)的一些基本概念 28:實(shí)際案例實(shí)踐——單片機(jī)音樂程序設(shè)計(jì) 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助
    發(fā)表于 05-15 14:00

    單片機(jī)C語言編程寶典大全,初學(xué)必備【強(qiáng)推下載!】

    (400頁(yè)P(yáng)PT) 6. 單片機(jī)程序設(shè)計(jì)實(shí)例 7. 單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)_周航慈.pdf 8. 8051單片機(jī)C語言徹底應(yīng)用 9. C語言
    發(fā)表于 03-14 11:03