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

正文內(nèi)容

本科畢業(yè)設(shè)計(基于單片機的音樂盒的設(shè)計)(編輯修改稿)

2025-07-25 09:57 本頁面
 

【文章內(nèi)容簡介】 它支持805HC11和PIC系列中的111230以及DsPIC33,另外還支持AVR、ARM、8086以及MSP430等,后來還支持Cortex與DSP等處理器,不僅如此,該設(shè)計平臺還在不斷增加其他的處理器模型[16]。該平臺同樣支持許多的編譯器,比如IAR和Keil以及MATLAB等,以便用戶只用同一個平臺來進(jìn)行各項操作。在軟件編程的過程中,我們用匯編軟件把源程序該成機器碼,這樣CPU才能對其執(zhí)行命令,過去在MCS51單片機上進(jìn)行匯編,所使用的軟件是A51,而現(xiàn)在單片機發(fā)展迅速,開發(fā)所用的語言大多是高級語言,現(xiàn)如今大多研究人員在單片機上用的是最流行的Keil軟件,所用最近一段時間的廠商在制作仿真機的過程中都表示會對Keil軟件給予全面的支持。如今使用的開發(fā)語言大部分是C語言,美國Keil公司出品一款開發(fā)系統(tǒng)就支持在單片機上運用C語言來開發(fā),是51系列的KeilC51軟件,C語言比匯編語言的優(yōu)勢要大的多,不管從功能上,結(jié)構(gòu)上,還是可讀性,可維護(hù)性上都明顯,而且簡單易懂。Keil軟件具有完整性,擁有完整的開發(fā)方案,我們可以將一些功能和方案集中到一個集成開發(fā)環(huán)境(Vision)中,其中的功能方案有C編譯器,有宏匯編,有連接器與庫管理,還有一個功能強大的仿真調(diào)試器。在WINDOWS7和WINXP等一些操作系統(tǒng)中就可以使用Keil軟件。不管你用的開發(fā)語言是C語言還是匯編語言,它集成環(huán)境方便,軟件仿真調(diào)試效率高,能使你的工作也會事半功倍。目前差不多有超出10萬名微控制器開發(fā)人員在使用這種獲得業(yè)界認(rèn)同的解決方案[17]。 音調(diào)與節(jié)拍 發(fā)聲原理物理學(xué)中聲波的頻譜范圍一般在幾十赫茲到幾千赫茲。單片機發(fā)聲是通過揚聲器發(fā)出的聲音,其原理是在接口線處生成“高電平”或“低電平”,這樣就可以制造一定頻率的方波信號,而發(fā)出的聲音不可能是單一的,所以要對“高低”電平的持續(xù)時間進(jìn)行控制,這些都是通過一個延時程序來控制的,這樣就可以改變音調(diào),放出不同的聲響[16]。音調(diào)和音符就是音樂能順利播放的必要元素。先了解一下音調(diào),對于音調(diào),聲音的頻率與聲音播放的強度就是其確定因素。純音達(dá)到一定的強度時,頻率的升降也直接會決定音調(diào)的升降;而純音的頻率中,低頻純音的音調(diào)會隨著聲音強度的增高而有所下降,相對的高頻純音的音調(diào)卻會隨著聲音強度的增高而上升[17]。另外,音符的頻率有所不同?,F(xiàn)在來了解節(jié)拍,設(shè)計軟件時想要控制音符的節(jié)拍,只需用定時器T0就可以了,而不同定時時間的產(chǎn)生只要有不同的初值輸入就行了。但是初值是不能直接去改變的,所以想要控制節(jié)拍時間的長短,可以通過判斷中斷計數(shù)器的值來實現(xiàn),并產(chǎn)生不同的節(jié)拍,這是因為T0的定時時間最多只有131ms,不過可以利用T0生成10ms的時間基準(zhǔn),再設(shè)置一個中斷計數(shù)器就行了[19]。在播放音樂時產(chǎn)生的音符和控制節(jié)奏,都是通過查表的程序依次讀取的,而這個表是由曲譜中全部的常數(shù)構(gòu)成的,一組常數(shù)又是由一個音符中時間常數(shù)與相對應(yīng)的節(jié)拍常數(shù)組成,這樣就可以實現(xiàn)發(fā)聲效果。特別的,音樂的結(jié)束由結(jié)束符(00H)表示,音樂的停頓效果則是由休止符(FFH)表示,還可以在相同的兩個音符間或其他音符間插入時間單位頻率不一樣的音符,這樣可以增強節(jié)奏感[20]。單片機播放出的音樂沒有電子琴可以演奏不同音調(diào)聲音的功能,因為放出的音樂基本是單音頻率,沒有一定幅度的諧波頻率,這樣,對單片機放音只要知道音調(diào)和節(jié)拍的知識就可以了。音符頻率對照表如表41所示。表41:音符頻率對照表 音調(diào)的確定 唱歌時會正常有DO、RE、MI、FA、SO、LA、SI這7個音調(diào),音調(diào)名就是大寫的英文字母C、D、E、F、G、A、B來表示的,唱成簡譜的7,相當(dāng)于漢字“哆唻咪發(fā)唆啦西”的讀音,這是唱曲時聲樂的發(fā)音,所以叫“音調(diào)”,即Tone[19]。而C、D、E、F、G、A、B這組音調(diào)名可以被我們拆為12個等份,可以用一個“半音”來描述一個等份,用“全音”來描述相鄰兩個音間隔的兩個“半音”。我們通常唱成7的音叫自然音,那些在它們的左上角加上﹟號或者b號的叫變化音。這些變化音中﹟的作用是在基于原來的音上再升高半音,叫做升記號,b的作用是在基于原來的音再降低半音,叫做降記號。例如,高頻率(1046hz做)只是中間做頻率(523hz)翻了一番,阿爾托做頻率(523hz)只是低音頻率(266赫茲)的兩倍;同樣,高重復(fù)頻率(1175hz)只是中間再頻率(587hz)翻了一番,阿爾托重新頻率(587hz)只是低音重復(fù)頻率(294赫茲)的兩倍。(1)以生成音頻脈沖,以解決只是一個音頻周期(1 /頻率),那么這段除以2,其中一半是周期時間。利用定時器計使用這個半周期的時間,我們可以重復(fù)計時此半周期時間,在計時結(jié)束后再將I/O口進(jìn)行反相,直接就能在I/O腳上獲得這個頻率的脈沖信號。(2)在計數(shù)器模式下工作,只要采用AT89C52單片機內(nèi)部的定時器就能實現(xiàn),然后通過獲取TH0和TL0的數(shù)值的方法來產(chǎn)生不同頻率。 特別的,音樂的結(jié)束由結(jié)束符(00H)表示,音樂的停頓效果則是由休止符(FFH)表示。通過查表可查到OOH與FFH,以此來實現(xiàn)功能。(3)如中音D0,頻率為523HZ,其周期T=1/523=1912微秒,要想獲得中音D0(523HZ),就將令計數(shù)器直接定時為1912/2=956,這樣每當(dāng)計數(shù)956次后,就將I/O口反相就可以了。C調(diào)各音符頻率與計數(shù)值T的對照表如表42所示。表42:C調(diào)各音符頻率與計數(shù)值T的對照表 節(jié)拍的確定音樂是要有旋律的,所以音樂不僅僅只靠音調(diào),節(jié)拍也是必不可少的,這樣音樂才有旋律,音樂的快慢也可以控制。節(jié)拍的英文叫做Beat,通俗點來講就是打拍子,比如在聽音樂的時候會情不自禁的隨其拍手。實際上1拍是多少秒,并無嚴(yán)格的規(guī)定,就和人的心跳差不多,人的心跳大多是每分鐘72左右,但有些人會快一些,而有些人會慢一些,只要音樂聽的動聽就好。這樣我們就可以用節(jié)拍來描述一首音樂可以持續(xù)多長時間,當(dāng)遇到休止符時,發(fā)音會暫停。形成音樂的過程是將不同頻率相互結(jié)合,再通過與節(jié)拍數(shù)相對應(yīng)的延時過程就行了,通過理解音樂的一些基本常識,可以知道將很多不一樣的音符結(jié)合可以產(chǎn)生音樂,而不同的音符還對應(yīng)不一樣的頻率,這樣生成不同頻率的音頻脈沖就可以形成音樂。單片機內(nèi)可以很容易的就得到不一樣頻率的脈沖,形成有方波頻率的信號通過定時器與計數(shù)器就能直接實現(xiàn)。所以,能播放出如此悅耳動聽的聲音,只要能搞明白音符和相對應(yīng)的頻率就行了。 音樂編碼一個音符中要有兩個音節(jié),其中音調(diào)占用一個字節(jié),而另一個字節(jié)被節(jié)拍占用。在音調(diào)字節(jié)中,高四位意味著低中高音,0表示低音,1表示中音,2表示高音;音調(diào)就是其中的低四位。就像中音do就表示成0x11。節(jié)拍字節(jié)中,數(shù)值i的意思是延遲i個十六分音符。一首歌曲如果是4分音符組成,那一拍就是0x04。而0x04還可以來代表其的延時,就是在下邊無橫線,右邊無橫線和數(shù)字的情況。若底面有個橫線就是用0x02表示;右邊有個橫則用0x08表示。右邊有兩橫就用0x0c表示。而右邊有三橫則是用0x10表示;右下角有一點:加上當(dāng)前延時的一半。因為每個歌曲的播放速率各不相同,單位就可以用曲速(單位——拍每分鐘)表示。所以在音樂編碼表中的第0和第1元素用來表示曲速。這樣就能根據(jù)以上的規(guī)律在不同歌曲的簡譜圖上編寫出單片機辨別的簡譜表。 系統(tǒng)軟件總體設(shè)計流程圖 主程序流程圖開始掃描鍵盤否否讀下一個音符否是關(guān)閉定時器P0口置0是是否停止播放?算出定時器初值識別按鍵 是有矩陣鍵按下?算出音符的音調(diào)、節(jié)拍否是是否結(jié)束符?讀取歌曲播放鍵按下?關(guān)閉T0 T1否是按鍵是否釋放?開啟定時器,并賦初值,揚聲器發(fā)聲按節(jié)拍延遲根據(jù)音調(diào)給T0賦初值開啟T0 T1 圖41主程序流程圖 歌曲播放流程圖 開 始 初 始 化設(shè)置音節(jié)起始位置和節(jié)拍間距讀取音節(jié),音符顯示當(dāng)前播放歌曲 節(jié) 拍 結(jié) 束 音 樂 結(jié) 束圖42 歌曲播放流程圖 按鍵掃描流程圖由于定時器的初始值設(shè)置不一樣,所以不同按鍵對應(yīng)不同的功能。在設(shè)計過程中通常會設(shè)計一個按鍵掃描的子程序,這樣其他的功能就可以更方便的調(diào)用這個程序。按鍵掃描子程序的流程圖如圖43所示。YY N 開 始是否有鍵按下?延時去抖NN 有否鍵按下?Y計算并保存鍵值按鍵是否釋放?恢復(fù)鍵值返回圖43 按鍵掃描流程圖 延時子程序流程圖延時程序通常是經(jīng)過一層或多層循環(huán)來實現(xiàn)的,整個系統(tǒng)延時的時間是程序執(zhí)行的指令總條數(shù)和執(zhí)行每條指令所用的時間進(jìn)行相乘。因為該系統(tǒng)的晶振采用的是12M,因此執(zhí)行每條指令所用時間為2us。程序執(zhí)行流程圖如圖44所示。 開 始是否否x 0?是 x y0? y 返 回圖44 延時子程序流程圖在函數(shù)初始化子程序設(shè)計中,在主函數(shù)內(nèi),給某些參數(shù)以及一些標(biāo)記位賦個初值并編寫成一個函數(shù),也就是函數(shù)初始化程序,如此可以讓程序能更加擁有層次,更明顯易懂。由于整個程序要用到定時器0和定時器1,所以初始化程序主要是對定時器相關(guān)內(nèi)容作說明。第5章 總結(jié)個人覺得本次的單片機還是非常有意義的,我覺得帶給我的好處可以總結(jié)為兩點:第一,能讓把實際的與理論的知識做一個結(jié)合,第二,讓我們對單片機這一個應(yīng)用學(xué)科,有了更深入的學(xué)習(xí),了解單片機的各種操作,而不僅僅局限在書本上念字。這次的課程設(shè)計,我做的是一個電子琴音樂播放器,原本的心中理想作品是可以自由選擇歌曲的音樂盒。但由于實際操作中碰到很多問題,影響到設(shè)計的進(jìn)度,最終設(shè)計的要求改為,帶音樂播放(2首),帶按鍵彈琴。前期準(zhǔn)備的時候搜集了很多東西,并分析了一些可以借鑒的文檔,然后綜合并總結(jié)了多個文檔確定了我這次的設(shè)計方案。然后根據(jù)這些資料在Proteus軟件上進(jìn)行了繪制,并進(jìn)行前期的仿真,之后開始硬件的焊裝。一開始我對按鍵模塊進(jìn)行了選擇。原先的方案是獨立式按鍵,最后發(fā)現(xiàn)按鍵少,達(dá)不到要求,最終選擇了4*4矩陣鍵盤。在做放大電路時我們選用的是NPN型三極管,因為覺得三極管的能力就已經(jīng)能達(dá)到要求,不需要放大器。做揚聲器的時候我選用了喇叭。差不多三天的時間焊接好硬件電路,并開始調(diào)試,首先編輯一個簡單的方波信號來檢測揚聲器的好壞,經(jīng)過多次調(diào)試和改件最終能工作,然后利用C語言編寫了一個按鍵的發(fā)音,經(jīng)過調(diào)試成功后,在開始編寫多個按鍵的發(fā)音,最后我都把子程序?qū)懞?,調(diào)試成功,然后組合成一個總程序,達(dá)到設(shè)計的要求。當(dāng)然在組合的時候也出現(xiàn)過程序問題,因為我有的部分使用了同一個工作寄存器,還有定時器。在碰到問題的時候有時候一天都調(diào)不出來,但是最后反復(fù)檢查分析錯誤原因,才解決了這些問題。這次的畢業(yè)設(shè)計對自己真的有很大的提高,以后工作有機會多多接觸這方面的實踐,積累相關(guān)的經(jīng)驗,從實際中學(xué)到書本上學(xué)不到的知識。致謝六月份的到來,代表新的畢業(yè)季的降臨,也預(yù)示著我大學(xué)四年的學(xué)習(xí)生活走向尾聲。當(dāng)我回首眺望,看到自己一生最珍貴的時光能在大學(xué)校園之中,有著眾多有共同興趣愛好的朋友,實在是榮幸之極。在四年的時間里,我在學(xué)習(xí)上有了很大的進(jìn)步,思想上得到較高的提升。通過我自己的努力,老師的指導(dǎo)以及同學(xué)與朋友的幫助,和家人的支持與鼓勵,讓我在大學(xué)期間獲益良多。完成一篇好的論文是枯燥艱辛而又具有很大挑戰(zhàn)的。但老師不厭其煩的指導(dǎo)、同學(xué)間的互相幫助以及家長的支持鼓勵,讓我有了堅持完成論文的動力。在此,我特別要感謝我的導(dǎo)師。老師一直都孜孜不倦的指導(dǎo)我,不管是開始論文選題,采集文獻(xiàn),還是中期硬件的制作,結(jié)構(gòu)的布局,以及最后論文的確定和論文中內(nèi)容格式,標(biāo)點符號等,都為我提供了幫助。要是沒有老師的不知疲倦的指導(dǎo),我就不能夠順利完成論文。同時也感謝寢室的各位同學(xué),在我遇到問題時幫我出謀劃策,讓我度過難關(guān)。最后要感謝一直給我理解與支持,鼓勵與幫助的家人,有了他們的這些正能量,讓我在做事情時更有動力,更有信心,讓我所做的一切更加有意義。此次的論文由于時間的緊迫和自身專業(yè)水平的還有待提高,所以論文中肯定存在一些尚未發(fā)現(xiàn)的錯誤。懇請老師能多予指正,讓我大學(xué)最后的階段更加圓滿,不留遺憾。在此學(xué)生感激致謝!參考文獻(xiàn)[1][M].國防工業(yè)出版社,2009.[2][M].北京航空航天大學(xué)出版社,2010.[3][J].合肥理工學(xué)院,(3):111—113.[4][J].科技信息(學(xué)術(shù)研究),(35) :6579.[5] [J].河北理工大學(xué)學(xué)報,(8):156168.[6][J].
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1