freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機帶流水燈的電子音樂盒(編輯修改稿)

2024-07-16 12:47 本頁面
 

【文章內(nèi)容簡介】 ,即使不使用 C 語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。Keil C51 生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 第 11 頁 共 32 頁 音調(diào)、節(jié)拍以及編碼的確定方法一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和節(jié)拍表示一個音符唱多長的時間。 音調(diào)的確定不同音高的樂音是用 C、D、E、F、G、A、B 來表示,這 7 個字母就是音樂的音名,它們一般依次唱成 DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調(diào)” ,即 Tone。把 C、D、E、F、G、A、B 這一組音的距離分成 12 個等份,每一個等份叫一個“半音” 。兩個音之間的距離有兩個“半音” ,就叫“全音” 。在鋼琴等鍵盤樂器上,C–D、D–E、F–G、G–A、A–B 兩音之間隔著一個黑鍵,他們之間的距離就是全音;E–F、B–C 兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成 7 的音叫自然音,那些在它們的左上角加上﹟號或者 b 號的叫變化音。﹟叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b 叫降記音,表示在原來的基礎(chǔ)上降低半音。例如高音 DO 的頻率(1046Hz)剛好是中音 DO 的頻率(523Hz)的一倍,中音DO 的頻率(523Hz)剛好是低音 DO 頻率(266 Hz)的一倍;同樣的,高音 RE的頻率(1175Hz)剛好是中音 RE 的頻率(587Hz)的一倍,中音 RE 的頻率(587Hz)剛好是低音 RE 頻率(294 Hz)的一倍。1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率) ,然后將此周期除以 2,即為半周期的時間。利用定時器計時這半個周期時間,每當(dāng)計時到后就將輸出脈沖的 I/O 反相,然后重復(fù)計時此半周期時間再對 I/O 反相,就可在I/O 腳上得到此頻率的脈沖。2)利用 AT89C51 的內(nèi)部定時器使其工作在計數(shù)器模式 MODE1 下,改變計數(shù)值 TH0 及 TL0 以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼 00H 和 FFH 來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應(yīng)的停頓效果。3)例如頻率為 523Hz,其周期 T=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次技術(shù) 956 次時將 I/O 反相,就可得到中音 DO(523Hz) 。計數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi 2 Fr?N:計算值; Fi:內(nèi)部計時一次為 1us,故其頻率為 1MHz;4)其計數(shù)值的求法如下:T=65536N=65536Fi 2 Fr?例如:設(shè) K=65536,F(xiàn)=1000000=Fi=1MHz,球低音 DO(261Hz) 。中音DO(523Hz) 。高音的 DO(1046Hz)的計算值T=65536N=65536Fi 2 Fr=655361000000 2 Fr=65536500000/Fr?低音 DO 的 T=65536500000/262=63627低音 DO 的 T=65536500000/523=64580低音 DO 的 T=65536500000/1047=650595)C 調(diào)各音符頻率與計數(shù)值 T 的對照表如表 所示。 第 12 頁 共 32 頁表 C 調(diào)各音符頻率與計數(shù)值 T 的對照表低音 頻率 T 參數(shù) 中音 頻率 T 參數(shù) 高音 頻率 T 參數(shù)Do 262 1908 229 Do 523 956 115 Do 1046 57 57Do﹟ 277 1805 217 Do﹟ 554 903 108 Do﹟ 1109 54 54Re 294 1701 204 Re 587 852 102 Re 1175 51 51Re﹟ 311 1608 193 Re﹟ 622 804 97 Re﹟ 1245 48 48Mi 330 1515 182 Mi 659 759 91 Mi 1318 45 45Fa 349 1433 172 Fa 698 716 86 Fa 1397 43 43Fa﹟ 370 1351 162 Fa﹟ 740 676 81 Fa﹟ 1480 41 41So 392 1276 153 So 784 638 77 So 1568 38 38So﹟ 415 1205 145 So﹟ 831 602 72 So﹟ 1661 36 36La 440 1136 136 La 880 568 68 La 1760 34 34La﹟ 464 1078 129 La﹟ 932 536 64 La﹟ 1865 32 32Si 494 1012 121 Si 988 506 61 Si 1976 30 30 節(jié)拍的確定若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動) ,而且可以調(diào)節(jié)各個音的快滿度。 “節(jié)拍”,即 Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若 1 拍實 ,則 1/4 拍為。至于 1 拍多少 s,并沒有嚴格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘 72 下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂是由許多不同的音符組成的,而每個音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時,構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機定時計數(shù)的關(guān)系。表 節(jié)拍與節(jié)拍碼對照節(jié)拍碼 節(jié)拍數(shù) 節(jié)拍碼 節(jié)拍數(shù)1 1/4 拍 1 1/8 拍2 2/4 拍 2 1/4 拍3 3/4 拍 3 3/8 拍4 1 拍 4 2/1 拍5 1 又 1/4 拍 5 5/8 拍6 1 又 1/2 拍 6 3/4 拍8 2 拍 8 1 拍A 2 又 1/2 拍 A 1 又 1/4 拍C 3 拍 C 1 又 1/2 拍F 3 又 3/4 拍每個音符使用 1 個字節(jié),字節(jié)的高 4 位代表音符的高低,低 4 位代表音符的節(jié)拍,圖 為節(jié)拍碼的對照。如果 1 拍為 秒,1/4 拍實 秒,只要 第 13 頁 共 32 頁設(shè)定延遲時間就可求得節(jié)拍的時間。假設(shè) 1/4 拍為 1DELAY,則 1 拍應(yīng)為4DELAY,以此類推。所以只要求得 1/4 拍的 DELAY 時間,其余的節(jié)拍就是它的倍數(shù),如圖 為 1/4 和 1/8 節(jié)拍的時間設(shè)定。表 1/4 和 1/8 節(jié)拍的時間設(shè)定曲調(diào)值 DELAY 曲調(diào)值 DELAY調(diào) 4/4 125 毫秒 調(diào) 4/4 62 毫秒調(diào) 3/4 187 毫秒 調(diào) 3/4 94 毫秒調(diào) 2/4 250 毫秒 調(diào) 2/4 125 毫秒 編碼do re mi fa so la si 分別編碼為 1~7,重音 do 編為 8,重音 re 編為 9,停頓編為 0。播放長度以十六分音符為單位(在本程序中為 165ms) ,一拍即四分音符等于 4 個十六分音符,編為 4,其它的播放時間以此類推。音調(diào)作為編碼的高 4 位,而播放時間作為低 4 位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0xff 作為曲譜的結(jié)束標志。舉例 1:音調(diào) do,發(fā)音長度為兩拍,即二分音符,將其編碼為 0x18。舉例 2:音調(diào) re,發(fā)音長度為半拍,即八分音符,將其編碼為 0x22歌曲播放的設(shè)計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個數(shù),然后分離出高 4 位得到音調(diào),接著找出相應(yīng)的值賦給定時器 0,使之定時操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低 4 位,得到延時時間,接著調(diào)用軟件延時。表 簡譜對應(yīng)的簡譜碼、T 值、節(jié)拍數(shù)簡譜 發(fā)音 簡譜碼 T 值 節(jié)拍碼 節(jié)拍數(shù)5 低音 SO 1 64260 1 1/4 拍6 低音 LA 2 64400 2 2/4 拍7 低音 TI 3 64524 3 3/4 拍1 中音 DO 4 64580 4 1 拍2 中音 RE 5 64684 5 1 又 1/4拍3 中音 MI 6 64777 6 1 又 1/2拍4 中音 FA 7 64820 8 2 拍5 中音 SO 8 64898 A 2 又 1/2拍6 中音 LA 9 64968 C 3 拍7 中音 TI A 65030 F 3 又 3/4拍1 高音 DO B 650582 高音 RE C 651103 高音 MI D 651574 高音 FA E 651785 高音 SO F 65217 第 14 頁 共 32 頁 軟件程序設(shè)計 程序流程圖及相應(yīng)代碼塊在本程序中設(shè)置了兩個標志——count1 和 count2,分別初始化為 1 和 0。按鍵 1 使得 count1 在 1 和 5 之間切換,按鍵 2 使得 count2 在 1~5 之間切換。程序檢測 count1 的值,count1 等于 1 時播放第一首歌曲,等于 2 時播放第二首。另一方面根據(jù) count2 的值來切換 LED 的花樣。count1 和 count2 的值是互斥的,設(shè)置 count1 等于 1~5 時,count2 同時設(shè)置為 0;設(shè)置 count2 等于 1~5時,count1 也同時設(shè)置為 0。主程序流程圖圖 主程序流程圖 第 15 頁 共 32 頁播放音樂子程序流程圖圖 播放音樂子程序流程圖 程序源代碼(見附錄 A) 第 16 頁 共 32 頁5 系統(tǒng)調(diào)試 電路調(diào)試是整個系統(tǒng)功能否實現(xiàn)的關(guān)鍵步驟,我們將整個調(diào)試過程分為三大部分:硬件調(diào)試和仿真、軟件調(diào)試和綜合調(diào)試。 硬件連接和仿真設(shè)計一個系統(tǒng)需要根據(jù)需要設(shè)計出硬件電路和軟件,但是如何知道它們是否能正常工作呢?這時候使用仿真工具去模擬實際的硬件和軟件,就可以輕松實現(xiàn)檢驗功能,并且還能省去一大筆試驗硬件投資。所以系統(tǒng)設(shè)計的仿真顯然是系統(tǒng)設(shè)計的很重要的一個環(huán)節(jié)。程序的編制與調(diào)試的通過是系統(tǒng)軟件設(shè)計是否成功的關(guān)鍵,而仿真的通過則是整個系統(tǒng)是否成功關(guān)鍵,通過仿真能迅速的確定方案的可行性,能節(jié)省了設(shè)計的時間和成本?! ≡诔绦蚓幾g好之后,在確定編譯無誤后,如果直接連接硬件,并不能一下子得到預(yù)期的結(jié)果,并且耗費時間長,硬件成本大,如果先在電腦上進行仿真,不僅可以方便的運用各種硬件器件,并且可以多次調(diào)試,修改程序,來達到預(yù)期效果,然后再進行硬件的連接。 在 PROTUES 檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計正確。 檢查軟件系統(tǒng)1.根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。2.將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的認真檢查,反復(fù)測試,如果沒有出現(xiàn)問題即可把源程序編譯成 HEX 文件裝載到單片機中,對硬件進行仿真。 測試結(jié)果
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1