娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月03日(星期四)

正在發(fā)生

2018年04月03日 | 基于Proteus 的單片機(jī)演奏系統(tǒng)的整體設(shè)計(jì)

發(fā)布者:快樂舞步 來源: eefocus關(guān)鍵字:Proteus  單片機(jī)  演奏系統(tǒng) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

    當(dāng)前的很多用單片機(jī)實(shí)現(xiàn)音樂演奏的系統(tǒng)都是利用開發(fā)板結(jié)合仿真器實(shí)現(xiàn)的,這種方法不是很復(fù)雜,實(shí)現(xiàn)也較方便,但是調(diào)試不是很方便,且成本也較高。 本文提出的一種基于Proteus 的單片機(jī)演奏音樂的方法,非常簡單實(shí)用,且該方法基于軟件來實(shí)現(xiàn)的,所以成本非常低,調(diào)試方便,效果也很不錯(cuò),適合于愛好音樂的單片機(jī)學(xué)習(xí)者。 單片機(jī)系統(tǒng)的設(shè)計(jì)分兩大部分:硬件設(shè)計(jì)部分和軟件設(shè)計(jì)部分。

    1 硬件設(shè)計(jì)

    硬件部分比較簡單,如果在開發(fā)板上做實(shí)驗(yàn)可仿下面圖1 電路連接。

   在開發(fā)板上實(shí)現(xiàn)的單片機(jī)控制蜂鳴器發(fā)聲原理圖

    AT89C51 單片機(jī)的P2.5 口控制一個(gè)8550 的三極管,三極管控制電磁蜂鳴器的電源通斷。

    如果用Proteus 軟件來仿真的話,電路更加簡單,見圖2。

    在Proteus 環(huán)境下用單片機(jī)控制蜂鳴器發(fā)聲的原理圖
圖2 在Proteus 環(huán)境下用單片機(jī)控制蜂鳴器發(fā)聲的原理圖。


    需要的關(guān)鍵元件:單片機(jī)和蜂鳴器。

    為了便于軟件編程,先要了解單片機(jī)唱歌的基本原理。

    什么是聲音呢?聲音是空氣的振蕩,不同的振蕩頻率我們就可以聽到不同聲調(diào)的聲音。 音的頻譜范圍約在幾十到幾千赫茲。

    其次,如何讓蜂鳴器發(fā)聲?蜂鳴器有很多種類,但大致分為兩類:有源式(直流電就發(fā)聲,但頻率單一);無源式(根據(jù)輸入方波頻率而發(fā)出不同的聲音)。 這里選擇無源式蜂鳴器。

 

    單片機(jī)唱歌的基本原理:利用程序來控制單處機(jī)某個(gè)口線出一定頻率的方波到蜂鳴器,蜂鳴器就可以發(fā)出一定音調(diào)的聲音,若再利用不同的延時(shí)程序改變輸出頻率,就可以改變音調(diào),進(jìn)而就可讓單片機(jī)發(fā)出"1"、"2","3","4","5","6","7"的音樂。

    2 軟件設(shè)計(jì)

    通過軟件延時(shí)或者定時(shí)器延時(shí)來的方式以不同頻率改變口線的的高低電平狀態(tài)來實(shí)現(xiàn)的。 如果只是讓蜂鳴器發(fā)聲這已經(jīng)夠了。 但是我們要的是唱歌,所以還有一些工作需要作。

    2.1 音調(diào)

    輸出不同頻率的方波,以實(shí)現(xiàn)1、2、3、4 等的不同音調(diào);比如,發(fā)出200Hz 的音頻,其周期為1/200s,即5ms. 這樣,當(dāng) P2.5 的高電平或低電平的持續(xù)時(shí)間為2.5ms 時(shí),就能發(fā)出200HZ 的音調(diào)。 我們可以寫一個(gè)延時(shí)子程序,用R3 來提供參數(shù),R3=1 時(shí),延時(shí)為20us,那么R3 取2500/20=125(7DH)時(shí),就可以發(fā)出200Hz 的音調(diào),提供不同的R3 常數(shù),可以得到不同的音調(diào)變化。

    利用通用發(fā)聲程序可以編寫樂曲演奏程序,樂曲是按照一定的高低,長短和強(qiáng)弱的關(guān)系組成的音調(diào),在一首樂曲中,每音符的音高和音長與頻率和節(jié)拍有關(guān)(如圖3 所示)。

    音符的音高和音長與頻率的關(guān)系
圖3 音符的音高和音長與頻率的關(guān)系

    圖3 畫出了兩個(gè)音階(一個(gè)音階是8 個(gè)音符)的鋼琴鍵和每個(gè)鍵的音符名及其頻率(HZ),低音階以低C(130.8Hz)到中C(261.7Hz)高音階以中C 到高C(523.3Hz)黑鍵比它旁邊的白鍵高半個(gè)音或低半個(gè)音。 組成樂曲的每個(gè)音符的頻率和持續(xù)時(shí)間是樂曲程序發(fā)聲所需要的兩個(gè)重要數(shù)據(jù)。 頻率可以從圖中得到,音符的持續(xù)時(shí)間可根據(jù)樂曲速度及每個(gè)音符的節(jié)拍數(shù)來確定,是可以從樂譜中得到的。

    2.2 節(jié)拍

    控制一個(gè)音符輸出的時(shí)間,比如1 拍、1/4 拍。 在4/4(四四拍)中,四分音符為一拍,每小節(jié)4 拍,全音符持續(xù)4 拍,二分音符持續(xù)2 拍,四分音符持續(xù)1 拍,八分音符持續(xù)半拍。 而全音符需要1s 的時(shí)間,則二分音符持續(xù)時(shí)間為0.5s(50×10ms),四分音符的持續(xù)時(shí)間為0.25s(25×10ms),八分音符持續(xù)時(shí)間為0.125s(12.5×10ms)。

    知道了音調(diào)與頻率和時(shí)間的關(guān)系,就可以按照樂曲的曲譜將每個(gè)音符的頻率和持續(xù)時(shí)間定義成兩個(gè)數(shù)據(jù)表,然后編寫程序依次取出表中的時(shí)間值和頻率值。

    僅上所敘還不夠,要準(zhǔn)確奏出一首曲子,必須準(zhǔn)確地控制樂曲節(jié)奏,即一音符的持續(xù)時(shí)間。 例如,一首曲子的節(jié)奏為每分種94 拍,那么一拍就為60/94=0.64s.

    音樂的節(jié)拍我們可用定時(shí)器來控制,簡單的說,一個(gè)一拍的音符唱0.64s,我們就設(shè)置一個(gè)定時(shí)器定時(shí)0.64s,時(shí)間一到就換下一個(gè)音符。 但是,由于單片機(jī)的T0,在12MHz 晶振下最大定時(shí)時(shí)間只能為65ms,因此不可能直接用改變T0 的時(shí)間初值來實(shí)現(xiàn)不同節(jié)拍。 如何定時(shí)一個(gè)更大的時(shí)間,我們可以用T0 來產(chǎn)生10ms 的時(shí)間基準(zhǔn),然后設(shè)置 一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長短。

    例如對(duì)1/4 拍音符,定時(shí)時(shí)間為0.16s,相應(yīng)的時(shí)間常數(shù)(中段計(jì)數(shù)器)為16(即10H);對(duì)3 拍音符,定時(shí)時(shí)間為1.92s,相應(yīng)時(shí)間長數(shù)為192(即C0H)。


    2.3 電路實(shí)現(xiàn)

    因?yàn)橐皇浊硬恢挂粋€(gè)音符,我們不可能對(duì)每一個(gè)音符的音階都去"手工"的提供時(shí)間常數(shù),為了實(shí)現(xiàn)的簡化,我們編制一個(gè)將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成的表格,在程序里用查表指令依次查出每一個(gè)音符的頻率和對(duì)應(yīng)節(jié)拍時(shí)間,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。

 

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

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

    程序框圖如下圖4. 本程序演奏的是民歌"八月桂花遍地開",C 調(diào),節(jié)奏為94 拍/min。

    用Keil 對(duì)程序進(jìn)行編譯,見圖5,具體方法可文獻(xiàn)[5],編譯無誤后生成。hex 文件,然后雙擊Proteus環(huán)境下的原理圖中的AT89C51,找到這個(gè)。 hex 文件,然后點(diǎn)按鈕Play,這時(shí)單片機(jī)控制的蜂鳴器就可以開始播放音樂了。

    圖4 程序流程圖
圖4 程序流程圖

   圖5 在Keil 環(huán)境下對(duì)程序進(jìn)行編譯
圖5 在Keil 環(huán)境下對(duì)程序進(jìn)行編譯

    3 結(jié)論

    以上介紹的方法已通過測(cè)試,運(yùn)行良好。 對(duì)初學(xué)單片機(jī)者有一定的啟示作用。 讀者也可以自行找出一首歌,將樂曲翻譯成碼表輸入單片機(jī),而程序不變。 本實(shí)驗(yàn)方法簡便,即使不懂音樂的人,也可方便地將一首陌生的曲子翻譯成代碼。


關(guān)鍵字:Proteus  單片機(jī)  演奏系統(tǒng) 引用地址:基于Proteus 的單片機(jī)演奏系統(tǒng)的整體設(shè)計(jì)

上一篇:利用AT89C51單片機(jī)控制剪板機(jī)
下一篇:6MHz時(shí)鐘的單片機(jī)AT89C51系統(tǒng)時(shí)鐘中斷的應(yīng)用分析

推薦閱讀

去(2017)年中國大陸商用PC市場(不含工作站)出貨3,116萬臺(tái),年減0.6%,未能延續(xù)2016年正成長態(tài)勢(shì),但垂直細(xì)分行業(yè)中仍然不乏亮點(diǎn)。IDC預(yù)測(cè),在專業(yè)服務(wù)、教育、交通、醫(yī)療等行業(yè)的推動(dòng)下,商用PC市場仍舊蘊(yùn)含巨大潛力,預(yù)估今(2018)年將呈現(xiàn)穩(wěn)中有進(jìn)。根據(jù)《IDC季度中國PC追蹤報(bào)告》顯示,2017年中國PC市場(不含工作站)整體出貨5,333萬臺(tái),其中消費(fèi)市場2,21...
某種意義上說,過去 50 年半導(dǎo)體行業(yè)的發(fā)展成為人類計(jì)算革命的燃料來源。從概念上看,半導(dǎo)體又被理解為芯片,是一種高度小型化的電子產(chǎn)品,它可以非常快速地完成大量數(shù)學(xué)運(yùn)算,利用這種計(jì)算可以在現(xiàn)實(shí)物理世界里完成目標(biāo)。簡而言之,芯片是為我們的電子設(shè)備的大腦。它們幫助計(jì)算機(jī)和其他機(jī)器評(píng)估替代品,為電話、計(jì)算機(jī)、汽車、飛機(jī)、互聯(lián)網(wǎng)提供計(jì)算能力...
先說重點(diǎn):切換時(shí)鐘源后,需要重新初始化時(shí)鐘相關(guān)的外設(shè)。項(xiàng)目需求,單片機(jī)在A狀態(tài)下使用外部12MHz的晶振作為時(shí)鐘信號(hào),B狀態(tài)下使用內(nèi)部時(shí)鐘HSI。代碼如下://初始化時(shí)鐘信號(hào)//形參:UINT8 Clk_Flg:時(shí)鐘源,可以選為HSE或HSIvoid InitClock(UINT8 Clk_Flg) { UINT16 Clk_Cnt = 0; if(HSE == Clk_Flg){ //時(shí)鐘源選為HSE CLK_DeInit(); C...
有消息稱,華為內(nèi)部發(fā)文宣布組織架構(gòu)調(diào)整,撤銷了四大事業(yè)部之一的云與計(jì)算BG(Cloud & AI BG)。調(diào)整后,原屬于云與計(jì)算BG的服務(wù)器、存儲(chǔ)等業(yè)務(wù)劃歸到“網(wǎng)絡(luò)產(chǎn)品與解決方案”,改為ICT產(chǎn)品解決方案。與此同時(shí),曾擔(dān)任華為消費(fèi)者云業(yè)務(wù)負(fù)責(zé)人的張平安,被任命為華為云(Cloud BU)總裁。這也得到了其本人的確認(rèn)。就在今年1月27日,華為消費(fèi)者BG CEO余承東...

史海拾趣

問答坊 | AI 解惑

有趣的隨機(jī)數(shù),有興趣可以來做做

轉(zhuǎn)自:西郵Linux興趣小組 下面是隨機(jī)產(chǎn)生1--10之間的不同值的一段程序: #include <stdio.h> #include <stdlib.h> #include <time.h> main() {         int i, j, n;    &nb ...…

查看全部問答∨

搶分題:80c51和89s52有啥區(qū)別?

搶分題:80c51和89s52有啥區(qū)別?…

查看全部問答∨

msp430單片機(jī)中斷調(diào)試疑問

請(qǐng)教:我用EW4.10單步調(diào)試定時(shí)器A時(shí),用view-register觀察TAR中的值沒有變化,點(diǎn)擊GO運(yùn)行后也沒有變化,我知道用IAR進(jìn)行simulate模擬中斷時(shí)要用Forced Interrupt-trigger觸發(fā)中斷,和KEIL IDE 非常不一樣,而且即使中斷后中斷標(biāo)志位也沒有變化,不 ...…

查看全部問答∨

如何使PCI 9054 由觸發(fā)高/低電平來通知用戶

剛接觸PCI卡!現(xiàn)在同事已經(jīng)把PCI卡的驅(qū)動(dòng)基本做好了!現(xiàn)要求外界來的數(shù)據(jù)觸發(fā)個(gè)高或低電平,由所觸發(fā)的高低電平來提醒用戶外界數(shù)據(jù)進(jìn)來了!如何實(shí)現(xiàn)?具體是首先是如何觸發(fā)高低電平?如何通知用戶!謝謝!分?jǐn)?shù)不夠了!請(qǐng)大家勿閑分少!…

查看全部問答∨

wince5.0 hive 使用,出現(xiàn)問題???

使用的s3c2440+wince5,想要在flash保存注冊(cè)信息,比如touch信息,新建的連接等等 當(dāng)sysgen后下載運(yùn)行,結(jié)果wince不能啟動(dòng)。當(dāng)去掉“hive_based_registry”又可以啟動(dòng) 請(qǐng)問這是何原因???如何解決??? 1.當(dāng)我在PB中添加了“hive_based_registry ...…

查看全部問答∨

MSP430™ 的圖形代碼生成工具

為什么下不了啊!!http://focus.ti.com.cn/cn/docs/toolsw/folders/print/grace.html?DCMP=Grace&HQS=Other+EM+grace_em_sw…

查看全部問答∨

Keil軟件運(yùn)行出錯(cuò),WIN7 64位 旗艦版

本來幾個(gè)小時(shí)前運(yùn)行還好好的,現(xiàn)在打開就變成這個(gè)樣子了,哪位大哥能幫幫忙啊,重新卸載安裝也不行 …

查看全部問答∨

第一次見到FPGA實(shí)物的小菜鳥有問題求助

今天第一次在實(shí)驗(yàn)室見到FPGA芯片實(shí)物,Xilinx的,想請(qǐng)教各位一下,那個(gè)FPGA芯片正面有個(gè)金屬蓋,上面寫著品牌名、型號(hào)和一些其他參數(shù),和以往見到的芯片外觀不同。這個(gè)金屬蓋起什么作用,可以取下來嗎,取下來會(huì)有什么影響嗎…

查看全部問答∨

matlab里simulink的問題

matlab2013a的 simulink里沒有Target Preferences 后來我從2011a的matlab里復(fù)制了個(gè)文件夾到2013里面, 但是在建模時(shí)打開雙擊這個(gè)模塊時(shí)彈出這個(gè)。我該怎么決解,求指導(dǎo)…

查看全部問答∨

T12電源

在壇友處買一t12的配件,想DIY一個(gè)T12烙鐵,電源現(xiàn)成的,19V,3.19A應(yīng)該夠用了,不知這個(gè)能不能用…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 望都县| 台安县| 临澧县| 彭泽县| 清原| 柏乡县| 涿鹿县| 金门县| 右玉县| 英山县| 泽州县| 青川县| 鹤壁市| 大悟县| 宁蒗| 化州市| 健康| 鹤岗市| 盐山县| 广灵县| 博湖县| 内黄县| 漾濞| 广宁县| 新化县| 仁怀市| 光山县| 思南县| 苗栗县| 永兴县| 蒲城县| 望江县| 恩施市| 阳西县| 金阳县| 富源县| 孟津县| 吉木萨尔县| 伊宁县| 集安市| 左云县|