版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計說明書(論文)設計(論文)題目: 單片機音樂發(fā)生器 專 業(yè): 應用電子 班 級: 應電G09-3 學 號: 姓 名: 王寶旭 指導教師: 王娜麗 2011年4月20日目錄摘 要1緒 論211研究的目的和意義212國內外研究的現(xiàn)狀及發(fā)展趨勢2121國內外研究的現(xiàn)狀213音樂發(fā)生器的擴展3第1章 設計方案411 設計方案論證4111 方案一4112 方案二4113 方案三5113 方案比較6第2章 硬件設計721 電路組成及工作原理7211 電路組成7212 電路工作原理722 AT89C51的簡介8221 AT89C51功能概述8222 AT89C51的管腳圖9223 AT89C5 單片
2、機的引腳介紹9224 晶振電路1023 揚聲器電路1024 顯示電路1125 更換歌曲電路1126 復位電路1227 程序存儲器外部擴展電路12第3章 軟件系統(tǒng)設計1331 軟件流程設計13第4章 系統(tǒng)調試1441 常用調試工具14411 Keil C 軟件14412 PROTEUS軟件1542 系統(tǒng)調試及性能分析15心得體會16參考文獻17附 錄18附錄1 音樂發(fā)生器電路原理圖18附錄2 元件明細表19附錄3 源程序代碼20摘 要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使
3、用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。當今,利用單片機控制音樂播放多不勝舉,音樂芯片也相當之多,而利用單片機存儲音樂,控制播放最為廣泛。它有功能多價格優(yōu)外圍電路簡單的特點,很受音樂愛好者及音樂芯片制造商的青昧。本文中,用單片機芯片及少數(shù)外圍電路控制音樂播放。本設計是以單片機AT89C51為核心數(shù)據處理器件,由數(shù)碼管顯示調整歌曲的曲號和播放中,顯示歌曲的曲號,四個數(shù)據輸入按鍵組成七功能分別是對歌曲曲號進行加一設置、對歌曲曲號進行減一設置、對歌曲曲號進行復位、對在播放中的歌曲進行暫停;元件以低耗、高能、耐用、精確、易于操作等為優(yōu)先考慮因素
4、。采用獨立式輸入按鈕,用作對歌曲播放的設置,通過按鍵將單片機I/0 口的電平拉低,單片機檢測到I/O口電平為0時,在下一曲按鈕中,自動將歌曲的編號加一;在播放/暫停按鈕中,自動將歌曲暫停、播放;在上一曲按鈕中自動將歌曲的編號減一。當播放歌曲時,會在數(shù)碼管上顯示該歌曲的序號。在顯示時使用的是由一個七段數(shù)碼管顯示,在本設計中根據實際情況采用的是動態(tài)顯示方法并通過查表法,將其在數(shù)碼管上顯示出來,P1口低7位為字選段輸入端。通過查表將字型碼送給7段數(shù)碼管顯示數(shù)字。軟件去抖動功能,如果“開始鍵”按下就向下執(zhí)行,否者跳到開始。AT89C51單片機的內存較小,就用了一個74LS373鎖存器和27512外部擴
5、展芯片對該單片機進行了內存的擴充,增大了它的存儲空間,讓他可以存儲足夠多的歌曲。該音樂發(fā)生器的論文詳細介紹了其硬件結構和設計方法,整個設計簡單實用,功能完整。結論11研究的目的和意義音樂電聲的一個重要內容就是電子音樂。電子琴的出現(xiàn),開辟了音樂的一個新天地。但是自從電子合成器問世以來,電子音樂就又進入了一個更高的階段。 目前,由于電子音樂的普及,電子合成器(合成器實際上是一臺聲音的頻率合成儀,可以制作各種聲音,改變各種音色)可以解決相當一部分的歌唱及舞廳的伴奏問題。可以事先制作伴奏音樂或背景音樂,而不需要樂隊,或者部分代替樂隊。由于音樂合成器制作和修改方便,成本低,音樂豐滿,所以市場需求量很大,
6、因此,世界許多國家的廠商都不斷地在發(fā)展并推出新的型號,每年都要更新?lián)Q代。當前的發(fā)展趨勢是不斷的采用先進技術,例如有的合成器有“跟隨”功能,即經預置,每一個音后可以跟隨一個二度或三度音,“重疊”功能,輕奏或重奏時可以發(fā)不同音調或音色;另外,合成器還向輕便、使用操作方便等方向發(fā)展。電腦音樂也許不會成為今后音樂的主流,但它在整個人類音樂史上的地位已經不容置疑地確立了,相信它會越來越深入地浸透到音樂創(chuàng)作和欣賞的領域中,并且將在一定程度上影響人們對音樂的理解和詮釋。用單片機制作的音樂發(fā)生器也會越來越多,這將必然成為一種趨勢。12國內外研究的現(xiàn)狀及發(fā)展趨勢 121國內外研究的現(xiàn)狀隨著以法、德、意為代表的歐
7、洲和以美國為代表的電子音樂、計算機音樂早期的大力發(fā)展,國際上許多國家紛紛開始引入電子音樂研究與創(chuàng)作。因此,電子音樂創(chuàng)作作為音樂科技領域發(fā)展的重要標志,在風格上也體現(xiàn)出比以往任何時代都鮮明的個性化特征。六十年代,美國物理學家Robert Moog 研制出了小型實用的電子合成器。從此,首先在歐美地區(qū),合成器作為新型的樂器被音樂家尤其是流行音樂家所采用并飛快的流行開來。由于美國雄厚的經濟和科技基礎,在早期計算機音樂獲得巨大成功后,越來越多的音樂家和科學家步入到計算機音樂的研究與開發(fā)的領域中來,他們一起工作、共同開展研究,許多新產品和新設計不斷涌現(xiàn)。13音樂發(fā)生器的擴展熟練的運用89C51單片機定時器
8、產生固定頻率的方波信號,推動喇叭發(fā)出旋律,按下單鍵可以演奏預先設置的歌曲旋律,最重要的是自己還可以通過程序設計輸入自己喜歡的歌曲來演奏中,本設計采用簡易音階編碼直覺式輸入法方便設計音樂旋律,可以擴充其功能如下:1. 設計三個按鍵操作來更改歌曲的序號;2. 可以按照歌曲的序號來播放歌曲;3. 可以顯示播放中歌曲的序號;4. 可以存儲多首歌曲;第1章 設計方案11 設計方案論證111 方案一利用AT89C51和LM386(音頻功放) 組成的音樂播放器(1)功能特色。LM386(音頻功放)來實現(xiàn)音樂的播放。(2)硬件設計。電路以AT89C51為主控制器,LM386(音頻功放)來實現(xiàn)的。晶振采用12M
9、Hz,音樂信號由P30口輸出,經喇叭發(fā)聲而播放歌曲,框架圖如圖1-1所示。圖1-1方案二框架圖AT89C51單片機LM386音頻功放揚聲器(3)軟件設計。程序中根據每個音符對應頻率由定時器T0產生。為了程序調用方便,每個音符都對應一個編碼,占用一個字節(jié)。112 方案二利用AT89C51、74LS373鎖存器和27512外部擴展組成的音樂播放器(1)功能特色對內存進行了擴展,可以播放三首以上的歌曲。(2)硬件設計電路以AT89C51為主控制器,74LS373和27512進行外部程序存儲器的擴展,播放/暫停鍵為播放/暫停歌曲,下一曲鍵和上一曲鍵分別為調整歌曲的下一曲和上一曲選擇鍵的按鈕。晶振采用1
10、2MHz,音樂信號由P30口輸出,經喇叭發(fā)聲而播放歌曲如圖1-2所示框架圖。AT89C51單片機復位電路外部擴展電路圖1-2方案二框架圖揚聲電路顯示電路晶振電路更換歌曲電路(3)軟件設計程序中根據音選取的是C調三個8度內的音符,共16個音。每個音符對應頻率由定時器T0產生。為了程序調用方便,每個音符都對應一個編碼,占用一個字節(jié)。在程序中以查表的方式加載計數(shù)初值。當值為00H時表示空拍,與節(jié)拍碼配合完成節(jié)拍發(fā)音。節(jié)拍碼也占一個字節(jié),其總時間長度等于基本時間乘以節(jié)拍碼的值。節(jié)拍碼值為01H時,表示當前樂曲結束,為00H時,表示全部樂曲結束。為了編碼簡單,一般節(jié)拍碼高半字節(jié)表示整拍,低半字節(jié)表示分數(shù)
11、,只要基本延時設定恰當即可并且在按開始按鈕后,可以播放歌曲。113 方案三(1)功能特色本播放器是由4X4組成的16個按鈕矩陣鍵盤,設計成16個音組成的聲音發(fā)生器并且能夠播放音樂。(2)硬件設計電路以AT89C51為主控制器,下一曲、上一曲分別為上一曲、下一曲選擇鍵的按鈕并且采用利用4X4組成的16個按鈕矩陣鍵盤來每按一個鍵,發(fā)出一個音。晶振采用12MHz,音樂信號由P30口輸出,經喇叭發(fā)聲而播放歌曲,如圖1-3所示。AT89C51單片機晶振電路4*4矩陣鍵盤揚聲器圖1-3方案三框架圖(3)軟件設計程序中音選取的是C調三個8度內的音符,共16個音。每個音符對應頻率由定時器T0產生。為了程序調用
12、方便,每個音符都對應一個編碼,占用一個字節(jié)。在程序中以查表的方式加載計數(shù)初值,為了編碼簡單,一般節(jié)拍高半字節(jié)表示整拍,低半字節(jié)表示分數(shù),只要基本延時設定恰當即可,為了及時響應鍵盤操作,鍵掃描指令安排在基本延時時間子程序中,按鍵每按下一次,樂曲數(shù)目計數(shù)器R5加1或減1,根據R5的內容轉向不同的樂曲并且在按下開始按鈕后,就開始播放歌曲。113 方案比較從以上三種方案,方案三只能利用按鍵發(fā)音,可以發(fā)出16個音并且只能播放三首歌曲,而方案二進行了內存的擴充而可以播放三首以上的歌曲,在播放的過程中,方案二可以隨時的暫停播放歌曲的進度,而方案一不具有該功能。方案二從實現(xiàn)的功能上優(yōu)于方案一、三,方案二在使用
13、上及其功能的實現(xiàn)上都較方案三簡潔,并且由于單片機具有優(yōu)越的高集成電路性,使其工作速度更快、效率更高。另外AT89C51單片機采用12MHz的晶振,提高了信號的測量精度,并且使該系統(tǒng)可以通過軟件改進來擴張功能。通過方案對比,最終選擇方案二,音樂發(fā)生器電路原理圖見附錄1所示。第2章 硬件設計21 電路組成及工作原理211 電路組成音樂發(fā)生器的電路設計方框圖如圖2-1所示,電路原理圖見附錄1所示,主要由單片機控制系統(tǒng)、調整歌曲序號、顯示歌曲序號、內存外部擴充電路、復位電路等組成。AT89C51單片機揚聲電路顯示電路晶振電路更換歌曲電路復位電路外部擴展電路圖2-1 音樂發(fā)生器框架圖單片機AT89C51
14、是本系統(tǒng)的核心,它主要負責控制各個部分協(xié)調工作。在其外圍接上:復位電路、數(shù)碼管、按鈕及揚聲器。元件為:晶振X1、電容、電阻、與非門、非門、數(shù)碼管、揚聲器、四個按鍵、74LS373鎖存器、27512外部程序存儲器擴展。其中,四個按鍵分別是上一曲、下一曲、暫停/播放、復位。P10-P16是位選口,P32、P36、P37共同為上、下歌曲的調整口,實現(xiàn)對歌曲的調整操作,并且加減調整歌曲的曲號,P33口為歌曲的暫停/播放按鈕,可對播放中的歌曲進行暫停/播放,P30為蜂鳴器的控制口。212 電路工作原理 本音樂發(fā)生器是用單片機來設計制作完成,其功能的實現(xiàn)主要通過軟件編程來完成, AT89C51單片機片內帶
15、有4KB和外部程序存儲器擴展的256K的內存,并且允許在系統(tǒng)內改寫或用編程器編程。該音樂發(fā)生器的效率較高,其誤差主要由晶振自身的誤差所造成。存儲歌曲是采用的外部擴展,更改歌曲號是通過下一曲和上一曲來實現(xiàn)的,按鍵將單片機I/0 口的電平拉低,單片機檢測到I/O口電平為0時,自動改變顯示的數(shù),實現(xiàn)更改的功能。顯示是使用一個的七段共陰極數(shù)碼管顯示,設計中根據實際情況采用的是動態(tài)顯示方法,其中通過查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。當播放歌曲時,會在數(shù)碼管上顯示該歌曲的編號提示現(xiàn)在正在播放的歌曲的序號。軟件去抖動,如果“開始鍵”按下就向下執(zhí)行,否者跳到開始。采用延時程序進行對歌曲的播放。22 AT8
16、9C51的簡介221 AT89C51功能概述自從1971年微型計算機問世以來,隨著大規(guī)模集成電路技術的進一步發(fā)展,導致微型計算機正向兩個主要方向發(fā)展:一是高速度、高性能、大容量的高檔微型機及其系列化向大、中型計算機的挑戰(zhàn);另一個是穩(wěn)定可靠、小而廉、能適應各種控制領域需要的單片機。MCS51系列是Intel公司在1980年推出的高檔8位單片機,具有性能價格比高、品種多、兼容性強、開發(fā)用的仿真機較完善等優(yōu)點,所以在國際上和國內的占有率相當高。它擁有8位微處理器和控制器,內含一個一位布爾運算處理器,可直接對數(shù)據的位進行操作和運算,特別適用于邏輯控制。內部含有4KB的程序ROM并且在外部擴展了256K
17、的存儲空間,2個16位的計數(shù)/定時器。本次采用的是AT89C51單片機,其電路如2-2所示,它的中斷功能比較強,有5個中斷源,即外部中斷2個,定時器中斷2個,串行中斷1個,有2個中斷優(yōu)先級。中斷控制電路主要包括用于中斷控制的四個寄存器:定時器控制寄存器TCON,串行口控制寄存器SCON,中斷允許控制寄存器IE,中斷優(yōu)先級控制寄存器IP等。內部時鐘振蕩器,全雙工方式的串行接口(UART),兩極中斷優(yōu)先權的6個中斷源/5個中斷矢量的中斷邏輯。哈佛結構的存儲器組織,支持高達64K為單周期指令,支持六種尋址方式。最高時鐘振蕩頻率可達12MHZ,大部分指令執(zhí)行時間為1s,乘、除指令為4s。222 AT8
18、9C51的管腳圖MCS-51系列單片機采用40引腳雙列直插式封裝(DIP),其引腳排列和邏輯符號如圖2-3所示,4個并行口共有32根引腳,可分別作地址線、數(shù)據線和I/O線;2根電源線;2根時鐘振蕩電路引腳和4根控制線。a)b)圖2-2 AT89C51芯片信號引腳圖223 AT89C5 單片機的引腳介紹AT89C51單片機是高性能單片機,因為受引腳數(shù)目的限制,所以有許多引腳具有第二功能,各引腳功能說明如下:(1)輸入/輸出口線A 口8位雙向口線B 口8位雙向口線C 口8位雙向口線D 口8位雙向口線(2)ALE地址鎖存控制信號在系統(tǒng)擴展時,ALE用于控制把口輸出的底8位地址送入鎖存器鎖存起來,以實
19、現(xiàn)低位地址和數(shù)據的分時傳送。此外由于ALE是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。(3)外部程序存儲器讀選通信號在讀外部ROM時有效(低電平),以實現(xiàn)外部ROM單元的讀操作。(4)訪問程序存儲器控制信號當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當信號為高電平時,對ROM的讀操作是從內部程序存儲器開始,并可延續(xù)至外部程序存儲器。(5)RST 復位信號當輸入的復位信號延續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復位操作。(6)XTAL1和XTAL2外接晶體引線端當使用芯片內部時鐘時,這兩個引線端用于外接石英晶體和微調電容;當使用外
20、部時鐘時,用于接外部時鐘脈沖信號。(7)電源、地線GNDVCC、GND。VCC一般接+5V電源,GND接地。圖2-3 晶振電路24 晶振電路MCS-51片內有一個高增益的反相放大器,其輸入端為引腳XTAL1和輸出端為引腳為XTAL2,用于外接石英晶體振蕩器和微調電容,構成穩(wěn)定的的自激振蕩器,其發(fā)出的脈沖直接送入內部的時鐘電路,如圖2-3所示。電容C1和C2對頻率有微調作用,電容一般取20pF左右。晶體振蕩頻率范圍是12Mz12MHz,一般情況下,選用振蕩頻率為12MHz的石英晶體。振蕩脈沖信號經過內部時鐘發(fā)生器進行二分頻之后,才成為單片機的時鐘信號。23 揚聲器電路本設計是采用蜂鳴器用來發(fā)出聲
21、音,當你按下播放按鈕時,單片機就開始運行程序,蜂鳴器開始讀程序而播放你所要播放的歌曲,電路如圖2-4所示。24 顯示電路圖2-4 揚聲電路本設計顯示是采用一個七段共陰極LED顯示,當片選信號為0時,數(shù)碼就會點亮,主要是用來顯示播放中歌曲的序號、選擇歌曲來播放等信息。其分別利用單片機的P10口至P17口與數(shù)碼管相連接,完成字段碼顯示歌曲的號數(shù)。數(shù)碼管的另一引腳接低電平(接地)。電路如圖2-5所示。圖2-5 顯示電路25 更換歌曲電路采用3個按鈕作為更換歌曲按鍵,上一曲、下一曲和播放/暫停按鍵分別是歌曲的序號的加、減和對歌曲進行暫停/播放。利用三個上拉電阻和與非門、非門來實現(xiàn)歌曲的選擇和暫停,單片
22、機的P32口至P37口始終是高電平,當沒有按鍵按下時,就會一直的播放歌曲。電路如圖2-6所示。26 復位電路AT89C51的復位是由外部的復位電路來實現(xiàn)的。復位引腳RST通過一個施密特觸發(fā)器用來抑制噪聲,施密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。圖2-7 復位電路本設計是采用上電自動復位,上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復位。時鐘頻率用12MHZ時C取20PF。27 程序存儲器外部擴展電路圖2-8程序存儲器外部擴展電路本設計是采用了一個74LS373鎖存器和一個27512程序存儲器外部擴
23、展組成,其主要的功能就是為了在外部擴展單片機內存,使它有足夠的空間存放系統(tǒng)中的程序,而達到使它實現(xiàn)所要得到的功能和應用的領域,其圖如圖2-8所示第3章 軟件系統(tǒng)設計31 軟件流程設計主要程序流程有:主程序、顯示子程序、發(fā)聲子程序、更改歌曲曲號子程序。軟件實現(xiàn)的基本原理是,當單片機P30口為0時,軟件去抖動功能,如果“開始鍵”按下就向下執(zhí)行,否者跳到開始。主程序流程圖校驗鍵,歌曲曲號顯示,發(fā)聲程序等功能子程序組成,系統(tǒng)完成初始化后循環(huán)檢查各個功能當用戶使用某個功能時,按下相應的按鈕(或開關)單片機進入相應的功能處理。主程序流程圖如圖3-1所示。而外來脈沖是通過按鍵產生的,因此實際上單步執(zhí)行就是按
24、一次鍵執(zhí)行一條指令。NYCnt=0;判斷歌曲是否播放到最后一首開始初始化Temp=cnt;調用播放子程序并且隨時等待相應中斷Cnt+;圖3-1主程序流程圖第4章 系統(tǒng)調試調試是一個必不可少的環(huán)節(jié),它將會驗證你的成果,是否實現(xiàn)了所要完成的功能。系統(tǒng)調試仿真時先要使用Keil C編譯器,把所寫的程序進行編譯,同時在仿真器里設置生成HEX文件,編譯無錯誤時還要進行PROTEUS仿真,查看功能是否能夠實現(xiàn)。下面就將仿真將會用到的軟件進行簡單的介紹,并對仿真過程予以簡介。41 常用調試工具411 Keil C 軟件Keil C軟件是集成調試環(huán)境,集成了編緝器、編譯器、調試器,支持軟件模擬,支持項目管理功
25、能強大的觀察窗口,支持所有的數(shù)據類型。樹狀結構顯示,一目了然,支持ASM(匯編)、C語言,多語言多模塊源程序混合調試,在線直接修改、編譯、調試源程序,錯誤指令定位。功能很強大。用于對程序的調試和編輯。圖4-1 Keil C軟件界面Keil C軟件界面如圖4-1所示。412 PROTEUS軟件系統(tǒng)仿真還用到了PROTEUS軟件,可通過仿真可以完全顯示出所設計系統(tǒng)的功能,對于程序的調試等有很大的幫助。首先要新建一個文檔是DNS型的找出需要的器件,可以使用搜索功能。接著把各個器件放到合適的位置都要放到藍色框內。然后根據自己的設計要求連線。把所有的元件都連接好,做出完整的電路圖。42 系統(tǒng)調試及性能分
26、析系統(tǒng)的調試開始是把偉福編譯生成的無錯誤后綴名為HEX的文件加載到AT89C51單片機中,方法是雙擊單片機彈出一個對話框,在program file后選擇要添加文件,文件要求必須是HEX文件。然后可以點擊運行觀察現(xiàn)象,當出現(xiàn)錯誤時,大多都是軟件出了問題,經過不斷的改進調試。對按鍵檢測、加減歌曲序號與按鍵之間產生的不一致、歌曲調用子程序等軟件的修改后,系統(tǒng)基本實現(xiàn)了所要設計的功能。 在進行系統(tǒng)的測試過程中。當調節(jié)歌曲的序號時,程序是給了一個初始值“1”,假如調節(jié)歌曲的序號后,歌曲播放的就是顯示屏上顯示的歌曲序號的歌曲。如按下復位鍵后時間會回到初始時間,即從頭開始。數(shù)碼管也跟隨顯示歌曲的序號為“1
27、”,同時蜂鳴器發(fā)出了聲響,為第一首歌曲。通過調試系統(tǒng)達到設計的任務要求。心得體會本設計報告主要介紹了用單片機實現(xiàn)的音樂發(fā)生器的設計方法。系統(tǒng)介紹了該電路的硬件構成和軟件工作過程,系統(tǒng)以AT89C51為核心,主要采用中斷控制系統(tǒng),結合所學的單片機的知識,實現(xiàn)系統(tǒng)的功能要求。設計中很好的使軟、硬件相結合,基本上達到了設計的要求。通過這次畢業(yè)設計,使我對單片機及其附屬電路有了一定的了解,對課本上的知識有了近一步的掌握,也深刻明白了自己的不足。完成本次課程設計的過程,是一個從無到有的過程,經歷了興奮、自信、失落、奮發(fā)、所悟、完成幾個過程。課程設計時,仔細閱讀設計的題目和要求,以為沒什么困難的,所用的知
28、識書上都有??墒钱斘覄邮珠_始做的時候,才發(fā)現(xiàn)其中的算法,設計是那么繁瑣。經過一天的努力,毫無結果。失落的心情油然而生。于是,再到圖書館和網上查找資料,在經過借鑒很多類似的資料,文獻后,總算是有點眉目了。埋頭苦干的過程是痛苦的,尤其是在思考算法和程序框架時,迷茫,煩躁,特別是當苦思出來一個結果,又被自己推翻,心痛的無法言繪,在這不斷循環(huán)中,終于最后完善了程序。其中的煎熬是很痛苦的,深刻明白攻克自己“未知領域”的困難。但當課程設計完成時,那感覺是甜蜜的,沒有耕耘,哪來得收獲的喜悅,不懂付出怎么能知道回報的快樂,一分耕耘一分收獲,有付出才會有回報,就在這樣的痛與快樂的交換中,我學到了知識, 學到了做
29、人的道理。通過這短短幾個月的制作,我感覺到自己從課本上學到的理論知識和實踐仍有很大的差距。很多元器件根本不知道有什么功效,在仿真儀器中是什么代碼。有的知識,自己感覺已經掌握得差不多了,但是實際操作起來就有問題出現(xiàn)了。我遇到了不少問題,花費了很多的時間。這讓我重新反思我們的學習,深刻領悟到我們這個專業(yè)動手,實踐的重要性。理論不經過實踐考驗,是沒法實施的,就像我們編的程序,很多方面考慮的都不夠,幾乎沒有涉及到實際應用時的防范方法措施。這次的課程設計,讓我學到了很多書本上學不到的東西,學到了實際應用時,是取用成本的最小化,做設計不僅要考慮大的方面,小的方面也必須做到完美。最大的收獲是:對按鍵,顯示器
30、,單片機匯編語言的應用有了深刻的了解。參考文獻1 樊明龍任麗靜編單片機原理與應用M化學工業(yè)出版社,20052 徐愛卿編單片微型計算機應用和開發(fā)系統(tǒng)M北京航空航天大學出版社,19983 戴梅芳編微型計算機技術及應用M清華大學出版社,19964 李廣弟,朱月秀,王秀山編單片機基礎M北京航空航天大學出版社,20015 吳金戌編8051單片機實踐與應用M清華大學出版社,2003附 錄附錄1 音樂發(fā)生器電路原理圖附錄2 元件明細表序號名稱型號規(guī)格標號數(shù)量1電阻10KR1-R1111個2電容20pfC1、C2各1個3電容10ufC31個4單片機AT89C51U11個5數(shù)碼管LED7SEG-COM-CATH
31、ODE1個6揚聲器SounderS11個7按鍵Button1-44個8晶振CRYSTALX11個9鎖存器74LS373U21個10程序存儲器27512U31個11與非門74LS00U41個12非門74LS04U51個附錄3 源程序代碼 /* SOUND PLAY FOR 51MCU /*說*明* 曲譜存貯格式 unsigned char code MusicName音高,音長,音高,音長, 0,0;末尾:0,0 表示結束(Important)*/#ifndef _SOUNDPLAY_H_REVISION_FIRST_#define _SOUNDPLAY_H_REVISION_FIRST_/*#
32、define SYSTEM_OSC /定義晶振頻率HZ#define SOUND_SPACE 4/5 /定義普通音符演奏的長度分率,/每4分音符間隔sbit BeepIO=P30; /定義輸出管腳 sbitkey_int0=P33;sbit key_add=P36;sbitkey_dec=P37;sbit key_led=P31;unsigned char code table=0x06,0x5b,0x4f;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始頻率表unsigned
33、char code SignTab7 = 0,2,4,5,7,9,11 ; /17在頻率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;unsigned char Sound_Temp_TH0,Sound_Temp_TL0; /音符定時器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1; /音長定時器初值暫存unsigned char cnt=0;unsigned char temp=0;unsigned char flag=1;void Delay1ms(unsigned int co
34、unt); /初始化函數(shù)void InitialSound(void)BeepIO = 0; /喇叭關閉Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;/ 計算TL1應裝入的初值 (10ms的初裝值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;/ 計算TH1應裝入的初值 TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;/設置定時器0、1的工作方式為工作方式1ET0 = 1;/開啟定時啤/計數(shù)中斷0ET1 = 0;/開啟定時啤/計數(shù)
35、中斷1TR0 = 0;/啟動定時計數(shù)器0TR1 = 0;/啟動定時計數(shù)器1EA = 1;EX0=1;EX1=1;/定時器0的中斷程序void BeepTimer0(void) interrupt 1/音符發(fā)生中斷BeepIO = !BeepIO;TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0; /播放程序int Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)unsigned int NewFreTab12; /新的頻率表unsi
36、gned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,F(xiàn)D;for(i=0;i 11)j = j-12;NewFreTabi = FreTabj*2;elseNewFreTabi = FreTabj;if(Octachord = 1)NewFreTabi=2;else if(Octachord = 3)NewFreTabi=2;SoundLength = 0;while(Sound
37、SoundLength != 0x00) /計算歌曲長度SoundLength+=2;Point = 0;Tone = SoundPoint;Length = SoundPoint+1; / 讀出第一個音符和它時時值LDiv0 = 12000/Speed;/ 算出1分音符的長度(幾個10ms) LDiv4 = LDiv0/4; / 算出4分音符的長度 LDiv4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最長間隔標準 TR0 = 0;TR1 = 1;while(Point = 2; /低音 if (SM=3) CurrentFre = 2; /高音Temp_T = 655
38、36-(50000/CurrentFre)*10/(/SYSTEM_OSC);/計算計數(shù)器初值Sound_Temp_TH0 = Temp_T/256; Sound_Temp_TL0 = Temp_T%256; TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0 + 12; /加12是對中斷延時的補償 if(cnt!=temp) /判斷有無中斷 return 0; flag=1;while(flag=1)flag=1;/暫停程序SLen=LengthTabLength%10; /算出是幾分音符XG=Length/10%10; /算出音符類型(0普通1連音2頓音)
39、 FD=Length/100;LDiv=LDiv0/SLen; /算出連音音符演奏的長度(多少個10ms)if (FD=1) LDiv=LDiv+LDiv/2;if(XG!=1)if(XG=0) /算出普通音符的演奏長度 if (SLen0;i-) /發(fā)規(guī)定長度的音 while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(cnt!=temp) /判斷有無中斷 return 0;flag=1;while(flag=1)flag=1; if(LDiv2!=0)TR0=0; BeepIO=0;for(i=LDiv2;i0;i-)
40、 /音符間的間隔while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;Point+=2; Tone=SoundPoint;Length=SoundPoint+1; BeepIO = 0;cnt+; #endif#include #include SoundPlayhvoid Delay1ms(unsigned int count)unsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+); /揮著翅膀的女孩unsigned char code Music_file3500= 0x17
41、,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x17,0x03, 0x18,0x
42、03, 0x19,0x02, 0x1A,0x03, 0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
43、 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x
44、1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,
45、0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x0
46、3, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03,
47、0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02, 0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02, 0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00,/同一首歌 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00
48、, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0
49、x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自我評價與發(fā)展計劃
- 2021年山東省泰安市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2023年內蒙古自治區(qū)赤峰市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2024年山東省青島市公開招聘警務輔助人員輔警筆試自考題2卷含答案
- 2024年增味劑項目資金申請報告代可行性研究報告
- 2024年PCB高純化學品項目資金籌措計劃書代可行性研究報告
- 2025年無機礦物填充塑料項目規(guī)劃申請報告模范
- 2025年盆景及園藝產品項目提案報告
- 2025年電池組配件項目申請報告范文
- 2025年監(jiān)控攝像頭項目申請報告模稿
- 公豬站工作總結匯報
- 醫(yī)學專業(yè)醫(yī)學統(tǒng)計學試題(答案見標注) (三)
- cnas實驗室規(guī)劃方案
- 新教材蘇教版三年級上冊科學全冊單元測試卷
- 膠囊內鏡定位導航技術研究
- 溫病護理查房
- 職工心理健康知識手冊
- 11396-國家開放大學2023年春期末統(tǒng)一考試《藥事管理與法規(guī)(本)》答案
- 天津市四校2022-2023學年高二上學期期末聯(lián)考數(shù)學試題(原卷版)
- 全國優(yōu)質課一等獎人教部編版小學四年級下冊道德與法治《說話要算數(shù)》公開課課件(內嵌視頻)
- 四年級上冊道德與法治全冊知識點匯總
評論
0/150
提交評論