單片機電子琴音樂盒課程設計_第1頁
單片機電子琴音樂盒課程設計_第2頁
單片機電子琴音樂盒課程設計_第3頁
單片機電子琴音樂盒課程設計_第4頁
單片機電子琴音樂盒課程設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告設計題目: 單片機多功能音樂盒設計 【摘要】本設計是一個基于AT89C51系列單片機的音樂盒,依據單片機技術原理,通過硬件電路制作以及軟件編譯,設計制作出一個多功能多功能音樂盒。該音樂盒主要由按鍵電路、復位電路、時鐘電路以及蜂鳴器組成。使用兩個按鍵控制音樂盒,一個用來暫停歌曲,另一個用來切換歌曲本音樂盒共有四首歌曲,還有4*4矩陣鍵盤電子琴彈奏功能,播放歌曲時,蜂鳴器發出音調,矩陣鍵盤無掃描信號,不動作。當按下暫停歌曲鍵時,可繼續彈奏電子琴。本設計利用KEIL編程軟件對音樂盒源程序進行編程并調試,配合PROTEUS仿真軟件對硬件進行仿真調試,節約了設計時間。設計作者: 吳文豪 專業

2、班級/學號: 10應電三班 1006020144 合作者1: 專業班級/學號: 合作者2: 專業班級/學號: 指導教師: 王明文 設計時間: 2012年5月12日2012年6月3日 目 錄引言.11 設計任務及要求.211設計任務.212設計要求.2 1. 3研究內容.22 系統總體設計.321系統結構框圖設計及說明.33 軟、硬件設計.3.1 系統硬件設計311系統硬件原理圖及工作原理說明312單元電路設計原理與元件參數選擇3 2系統軟件設計.3 2 1軟件系統總流程圖及設計思路說明.3 2 2軟件各功能模塊的流程圖設計及思路說明.4 安裝與調試.41安裝調試過程42調試中遇到的問題5 結論

3、.6 使用儀器設備清單.7 收獲、體會和建議.8 參考文獻.9 附錄引言21世紀,電子技術獲得了飛速的發展,在其推動下,現代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發展和社會信息化程度的提高,同時也使現代電子產品性能進一步提高,產品更新換代的節奏也越來越快。目前,單片機正朝著高性能和多品種方向發展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發展。單片機應用的重要意義還在于它從根本上改變了傳統的控制系統設計思想和設計方法。從前必須由模擬電路或數字電路實現的大部分功能,現在已能用單片機通過軟件方法來實現了。這種軟件代替硬件的控制技

4、術也稱為微控制技術,是傳統控制技術的一次革命。單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。隨著科學技術的進步和社會的發展,人類所接觸的信息也在不斷增加并且日益復雜。面對浩如煙海的信息,人們已經能夠利用計算機等工具高效準確地對之進行處理,但要想將處理完的信息及時,清晰地傳遞給別人,還必須通過尋求更加卓越的顯示技術來實現。單片機技術與液

5、晶顯示技術的結合,使信息傳輸交流向著智能可視化方向迅速發展。隨著人類社會的發展,人們對視覺、聽覺方面的享受提出了越來越高的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化享受。傳統音樂盒多是機械型的,體積笨重,發音單調,不能實現批量生產。本文設計的音樂盒是以單片機為核心元件的電子式音樂盒,體積小,重量輕,能演奏和旋音樂,功能多,外觀效果多彩,使用方便,并具有一定的商業價值。  電子琴是高科技在音樂領域的一個代表,它是古典文化與現代文明的一個濃縮體。它不但可以幫助我們的音樂教師進行傳統音樂文化的教育教學工作,而且由于它又具備現代音樂,特別是電子音樂、電腦音樂的基本結構、特

6、征,因而使我們的教師在進行現代音樂、電子音樂、電腦音樂的教學時,更直接、更簡便。單片微型計算機是大規模集成電路技術發展的產物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩定可靠、應用廣泛的特點。它的應用必定導致傳統的控制技術從根本上發生變革。因此,單片機的開發應用已成為高科技和工程領域的一項重大課題。電子琴是現代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現特性,它已經溶入現代人們的生活中,成為不可替代的一部分。本文的主要內容是用AT89C51單片機為核心控制元件,設計一個電子琴。以單片機作為主控核心,與

7、鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設有16個彈奏按鍵、1個播放鍵,1個暫停鍵和揚聲器。概述本設計是以AT89C51芯片的電路為基礎,外部加上放音設備,以此來實現音樂演奏控制器的硬件電路,通過軟件程序來控制單片機內部的定時器使其演奏出優美動聽的音樂。用戶可以按照自己的喜好選擇音樂并將其轉化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要相應的改變一下地址即可。該軟、硬件系統具有很好的通用性,很高的實際使用價值,為廣大的單片機和音樂愛好者提供了很好的借鑒。課題意義音樂盒的起源,可追溯至中世紀歐洲文藝復興時期。當時為使教會的鐘塔報時,而將大小的鐘表裝上機械裝置,被稱為“可發出

8、聲音的組鐘”。音樂盒有著300多年的發展歷史,是人類文明發展的歷史見證。傳統的音樂盒多是機械音樂盒,其工作原理是通過齒輪帶動一個帶有鐵釘的鐵桶轉動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發出聲音。但是,機械式的音樂盒體積比較大,比較笨重,且發音單調。水、灰塵等外在因素,容易使內部金屬發音條變形,從而造成發音跑調。另外,機械音樂盒放音時為了讓音色穩定,必須放平不能動搖,而且價格昂貴,不能實現大批量生產。本文設計的音樂盒,是基于單片機設計制作的電子式音樂盒。與傳統的機械式音樂盒相比更小巧,音質更優美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進行批量生產,所以價格便宜。基于單片機制

9、作的電子式音樂盒,控制功能強大,可根據需要選歌,使用方便。根據存儲容量的大小,可以盡可能多的存儲歌曲。另外,可以設計彩燈外觀效果,使音樂盒的功能更加豐富。1設計任務及要求1.1設計任務(1)設計一個基于AT89C51系列單片機的音樂盒,利用按鍵切換演奏出不同的樂曲。由蜂鳴器發出音調;(2)設計一個(4X4)的鍵盤,并將16個鍵設計成16個音;(3)可彈奏自己想要表達的音樂。1.2設計要求(1)按設計指標進行電路設計;(2)列出音階與單片機定時器輸出頻率關系表格;(3)制作符合設計指標的硬件電路。1.3研究內容(1)電路有兩種工作模式:演奏音樂模式和電子琴模式。演奏音樂模式:演奏完整的一首的歌曲

10、。電子琴模式:數碼管上0F表示十六種音調。包括高低音實現更多音樂彈奏(2)按下按鍵2進入演奏音樂模式,再按切換歌曲,共四首歌曲。(3)按下按鍵1進入暫停歌曲模式,可以進行電子琴彈奏。2 系統總體方案介紹21系統結構框圖設計及說明2.12 系統組成框圖及說明音樂盒的系統結構以AT89C51單片機位控制核心,4*4矩陣鍵盤,加上2個按鍵、時鐘復位電路、蜂鳴器、數碼管6模塊組成。單片機負責接收按鍵的輸入,根據的輸入按鍵所對應的音符蜂由鳴器發音。系統組成框圖如圖2.1所示。 圖2.1 系統組成框圖2.1.2 音樂盒的功能結構圖及說明音樂盒的功能結構如圖2.2所示。Key2負責切換播放歌曲,播放歌曲共4

11、首,分別是千年之戀和寂寞沙冷,七子之歌,感恩的心Key1負責暫停。圖2.2 音樂盒功能結構圖2.1.3電子琴的功能結構圖及說明電子琴的功能結構圖如2.3所示。4*4鍵盤按下獲取相應的鍵值和音符有DO到XI高低音共16個音。并在數碼管上顯示。 圖2.3電子琴功能結構圖3.軟、硬件設計3.1 總體設計框圖圖3.1總體設計框圖3.2各部分硬件設計及其原理3.2.1 AT89C51簡介AT89C51是一種帶4K字節閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。

12、AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3.2所示圖3.2 AT89C51系列單片機3.2.2 數碼管顯示電路和4*4鍵盤設計與原理對4*4矩陣鍵盤及單片機P1口進行掃描得到0F的按鍵值由單片機P0

13、口輸出顯示到數碼管上,并由揚聲器發出相對應的聲音。3.2.3 時鐘振蕩電路AT89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構成并聯振蕩電路。對外接電容C1,C2雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩定性、起振的難易程序及溫度穩定性。如果使用石英晶體,我們推薦電容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時鐘。采用外部時鐘

14、的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續時間和最大的低電平持續時間應符合產品技術條件的要求。振蕩器電路圖如下:圖3.2.3 單片機內部、外部振蕩電路3.24硬件電路圖及功能總體硬件電路實現功能如下,如圖所示1.電路中用P3.2、P3.3控制按鍵。2.P1.0P1.7控制4*4矩陣鍵盤3.P3.7控制蜂鳴器。4.P2.0P2.7數碼管顯示5.電路為12MHZ晶振頻率工作,起振電路中C1、C2均為30PF。圖3.2.4 硬件

15、電路圖硬件總體方案及說明51單片機P1口通過連接4*4的矩陣鍵盤,作為琴鍵鍵盤;P3.3接播放音樂鍵;P3.7口接喇叭,通過執行相應的功能程序使電子琴發出不同音色的聲音。(一)芯片介紹:在本次電子琴設計中,我們組成員單片機芯片選用了AT89C51芯片,而89C51系列的兼容性也比較好。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器讀先通)P

16、3口同時為閃爍編程和編程校驗接收一些控制信號。(二)硬件接線:(1)利用P1口為按鍵接入口,形成4×4組成16個按鍵矩陣,設計成16個音,下圖所示:0123456789ABCDEF所對應的鍵碼為(2)p3.7口音頻輸出,接一個喇叭。(3)復位電路我們本來在方案選擇的時候有兩種選擇的,上電復位和按扭復位,上電復位是利用電容充電來實現的,而按扭復位是電源對外節電容的充電使RST為高電平,復位松開后,電容通過下拉電阻放電,使RST恢復低電平。為了制作軟件的方便我們還是選擇用按扭復位,因為它比較直觀。()電路設計圖如下:3.3系統軟件設計3.3軟件系統總流程圖及設計思路說明在本程序中設置了個

17、標志count2,分別初始化為1和0。按鍵Key2使得count2在14之間切換。程序檢測count2的值,count2等于1時播放第一首歌曲,等于2時播放第二首,以此類推。另一方面根據中斷0 Key1來控制count2的值等于0時來暫停歌曲。歌曲停止后,矩陣鍵盤可以輸入音符,相對應的數值由數碼管上顯示。3.3.1音調、節拍以及編碼的確定方法一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和節拍表示一個音符唱多長的時間。3.3.2音調的確定不同音高的樂音是用C、D、E、F、G

18、、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當于漢字“多來米發梭拉西”的讀音,這是唱曲時樂音的發音,所以叫“音調”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,CD、DE、FG、GA、AB兩音之間隔著一個黑鍵,他們之間的距離就是全音;EF、BC兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號或者b號的叫變化音。叫

19、升記號,表示把音在原來的基礎上升高半音,b叫降記音,表示在原來的基礎上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。1.要產生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此

20、頻率的脈沖。2.利用AT89C51的內部定時器使其工作在計數器模式MODE1下,改變計數值TH0及TL0以產生不同頻率的方法。此外結束符和休止符可以分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產生相應的停頓效果。3.例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數器計時956us/1us=956,在每次計數956次時將I/O反相,就可得到中音DO(523Hz)。計數脈沖值與頻率的關系公式如下:N=Fi2FrN:計算值;Fi:內部計時一次為1us,故其頻率為1MHz;其計數值的求法如下:T=65536-N=65536-Fi2F

21、r例如:設K=65536,F=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=65059C調各音符頻率與計數值T的對照表如表4.1所示。表3.3.1 C調各音符頻率與計數值T的對照表低音頻率T參數中音頻率T參數高音頻率T參數Do2621908229Do523

22、956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17

23、603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630303.3.3 節拍的確定若要構成音樂,光有音調是不夠的,還需要節拍,讓音樂具有旋律(固定的律動),而且可以調節各個音的快滿度。“節拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴格規定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續時間的長短即時值,一般用拍數表示。休止符表示暫停發音。一首音樂是由許多不同的音符

24、組成的,而每個音符對應著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數對應的延時,構成音樂。了解音樂的一些基礎知識,我們可知產生不同頻率的音頻脈沖即能產生音樂。對于單片機來說,產生不同頻率的脈沖是非常方便的,利用單片機的定時/計數器來產生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應的頻率,以及單片機定時計數的關系。表3.3.2節拍與節拍碼對照節拍碼節拍數節拍碼節拍數11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每個音符使用1個字

25、節,字節的高4位代表音符的高低,低4位代表音符的節拍,圖5.2為節拍碼的對照。如果1拍為0.4秒,1/4拍實0.1秒,只要設定延遲時間就可求得節拍的時間。假設1/4拍為1DELAY,則1拍應為4DELAY,以此類推。所以只要求得1/4拍的DELAY時間,其余的節拍就是它的倍數,如圖5.3為1/4和1/8節拍的時間設定。表3.3.3 1/4和1/8節拍的時間設定曲調值DELAY曲調值DELAY調4/4125毫秒調4/462毫秒調3/4187毫秒調3/494毫秒調2/4250毫秒調2/4125毫秒 編碼do re mi fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為

26、0。播放長度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調作為編碼的高4位,而播放時間作為低4位,如此音調和節拍就構成了一個編碼。以0xff作為曲譜的結束標志。舉例1:音調do,發音長度為兩拍,即二分音符,將其編碼為0x18。舉例2:音調re,發音長度為半拍,即八分音符,將其編碼為0x22歌曲播放的設計。先將歌曲的簡譜進行編碼,儲存在一個數據類型為unsigned char 的數組中。程序從數組中取出一個數,然后分離出高4位得到音調,接著找出相應的值賦給定時器0,使之定時操作蜂鳴器,得出相應的音調;接著分離出該數的低4位,得

27、到延時時間,接著調用軟件延時。表4.4 簡譜對應的簡譜碼、T值、節拍數簡譜發音簡譜碼T值節拍碼節拍數5低音SO16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/4拍3中音MI66477761又1/2拍4中音FA76482082拍5中音SO864898A2又1/2拍6中音LA964968C3拍7中音TIA65030F3又3/4拍1高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF652173.4軟件系統總流程圖及設計思路說明(1)鍵盤掃描程序:檢測是否有

28、鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉至功能轉移程序;無鍵按下,則返回鍵盤掃描程序繼續檢測 (2)功能轉移程序:對檢測到得按鍵值進行判斷,是琴鍵則跳轉至琴鍵處理程序,是功能鍵則跳轉至相應的功能程序,我們設計的功能程序有兩種,即音色調節功能和自動播放樂曲功能(3)琴鍵處理程序:根據檢測到得按鍵值,查詢音律表,給計時器賦值,使發出相應頻率的聲音(4)自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執行該程序,電子琴會自動播放事先已經存放好的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續等待是否有鍵按下程序總流程圖開始鍵盤掃描程序T0初始化并開中斷允許T0中斷有鍵按下否 否延時去抖動

29、識別按鍵功能 是是否彈奏鍵播放鍵 否 是取相應的音符碼裝入T0根據按鍵功能裝入相應音符值到T0啟動T0啟動T0按鍵釋放成功否按鍵釋放成功否停止T0工作停止T0工作軟件各功能模塊的流程圖設計及思路說明彈奏程序流程圖開始開中斷并允許中斷設定定時器工作方式取鍵值根據鍵值查音律表給定時器T0賦值開始計時進入中斷Fm-P3.7.退出中斷延時返回鍵盤掃描程序自動播放歌曲程序流程圖開始開中斷,設定定時器T0工作模式取簡譜碼取該音符的節拍碼Count2=0STOP Y N查音律表,給定時器賦值返回鍵盤掃描 開始計時 進入中斷Fm3.7退出中斷延時4.安裝與調試4.1 檢查硬件連接在PROTUES檢查各硬件管腳

30、是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復位電路是否設計正確。4.2 檢查軟件系統1根據系統的原理結構檢查各流程圖是否正確,再根據流程圖來檢查程序是否也正確。2將所有程序組織起來,在軟件環境下運行,檢查程序是否正確。通過對硬件和軟件系統的認真檢查,反復測試,如果沒有出現問題即可把源程序編譯成HEX文件裝載到單片機中,對硬件進行仿真。總體運行圖4.3調試中遇到的問題1.電子琴實現,音樂盒不能進行音樂播放。經過程序不斷修改后。可將電子琴,音樂盒兩種不同的音律在同個定時器T0里實現。5.結論設計簡單原理介紹一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不

31、同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。在這個程序中,彈奏音樂的程序是用定時/計數器T0來完成的,播放音樂程序則也是是用定時/計數器T0來完成的。6.設計儀器、設備和材料清單主要儀器設備:個人計算機和相關的軟件主要元器件: 獨立按鍵18個單片機芯片AT80C51一片12MHz晶振一個單個共陽數碼管不同阻值電阻數個USB電源插口一個喇叭一個10uF、30pF電容數個電路板一塊電烙鐵一個等7. 收獲、體會和建議這次設計從軟件方面來講不是很難,

32、程序相對長一點,但都是書本上所學的知識,主要是中端及其服務程序的編寫。在protues上仿真,則起到很好的效果,因為元器件都是理想狀態的,但做出實物來卻不是那么簡單啦。經過多次調試、修改才得以出結果。將程序燒入芯片,調試成功后,可任意彈奏自己想要的旋律。同時可以播放和切換4首歌曲,但是也有不足之處的,聲音雜音時而有點大,不穩定。經過本次課程設計,我們比較好的把理論知識與實踐相結合,而我們在也本次設計中收獲不少。設計過程中,首先,對于C語言多了一層了解,其次,還有硬件的接線,還有8051芯片的引腳方面,都讓我們收獲不少。加強了自身的動手能力。當然在這次寶貴的畢業設計活動中,經驗才是對于我們最大的

33、收獲,而且還增強了自身對未知問題以及對知識的深化認識的能力,用受益匪淺這個詞語來概括這次難忘的活動我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應用領域這個最終目的下,隨著對單片機這門學科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內被實現。 總之,這次設計從軟件編寫、調試到軟硬件聯機調試,我傾注了大量的時間和心血。真是曾經為程序的編寫而冥思查找過,曾經為無法找出錯誤而郁悶苦惱過,也曾經為某一功能不能實現而猶豫彷徨過,但最終我成功了。我不僅品味到了結果的喜悅,更明白了過程的彌足珍貴

34、。8.參考文獻1周美娟 肖來勝 單片機原理及系統設計清華大學出版社2 謝自美.電子線路設計·實驗·測試華中理工大學出版社,199210附錄設計源程序#include <reg51.h>#define uchar unsigned char#define uint unsigned int/sbit duan=P36;sbit key1=P32;/按key1可暫停歌曲sbit key2=P33;/按key2可切換歌曲sbit fm=P37;/蜂鳴器連續的IO口sbit KK=P20; /點亮一個數碼管uchar count2=0;/歌曲標志 uchar timeh

35、,timel,i;/*/uchar code DSY_table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, /08 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8f; /9,AFuint code tone_delay_table= 64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178; /個音符對應的延時uchar keyno;/定義按鍵得到的初值void delay_ms(u

36、char x) /延時子函數 uchar i; while(x-) for(i=0;i<120;i+);void keys_scan() /鍵盤掃描子函數 uchar tmp,k; P1=0x0f;/高四位置0,放入四行 delay_ms(2);/按鍵后00001111將變成0000xxxx,x中1個為0,3個仍為1/下面的異或操作會把3個1變成0,唯一的0變成1tmp=P10x0f;/判斷按鍵發生于03列中的哪一列switch(tmp)case 1:k=0; break; case 2:k=1; break; case 4:k=2; break; case 8:k=3; break;

37、default:return;/無按鍵按下 P1=0xf0; /低四位置0,放入四列 delay_ms(2); tmp=(P1>>4)0x0f; /按鍵后11110000將變成xxxx0000,x中1個為0,3個仍為1,將高四位移至低四位,并將其中唯一的0 變成1,其余為0/對03行分別附加其初始值0,4,8,12switch(tmp)case 1:k+=0; break; case 2:k+=4; break; case 4:k+=8; break; case 8:k+=12; break; default:return; keyno=k; /將k的值賦給keyno由數碼管輸出

38、/-簡譜-/編程規則:字節高位是簡譜,低位是持續時間,/代表多少個十六分音符/1-7代表中央C調,8-E代表高八度,0代表停頓/最后的0是結束標志uchar code qnzl= /千年之戀0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,0x32,0x31,

39、0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,

40、0x53,0x42,0x63,0x83,0x83,0x91,0x91,0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff/結束標志;uchar code jmszl= /寂寞沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,0x21,0x31,0x51,0x52,0x31,0x52,

41、0x61,0x15,0x14,0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,0x32,0x61,0x51,

42、0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34, 0x31,0x81,0x81,0x81,0x61,0x91,0x82,0x51,0x51,0x51,0x51,0x31,0x61,0x53,0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,0x31,0x31,0x81,0x81,0x81

43、,0x61,0x91,0x81,0x61,0x31,0x56,0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff/結束標志; uchar code qizige= /七子之歌0x54,0x32,0x52,0x32,0x54,0x62,0x52,0x32,0x62,0x54,0x14,0x12,0x22,0x34,0x52,0x32,0x02,0x32,0x58,0x52,0x52,0x62,0x52

44、,0x32,0x54,0x52,0x62,0x52,0x82,0x62,0x58,0x14,0x52,0x32,0x22,0x12,0x24,0x32,0x54,0x2,0x22,0x34,0x1f,0x18,0x04,0x54,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x62,0x81,0xa2,0x82,0x9c,0x02,0x52,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x64,0xa2,0x92,0x9f,0xa4,0x92,0x81,0x62,0x52,0x54,0x84,0x62,

45、0x52,0x32,0x22,0x14,0x04,0x22,0x32,0x58,0x58,0x04,0x52,0x62,0x8f,0xff/結束標志; uchar code ganen= /感恩的心0x12,0x14,0x22,0x32,0x54,0x32,0x84,0x72,0x62,0x54,0x02,0x62,0x62,0x52,0x54,0x12,0x22,0x32,0x28,0x12,0x14,0x22,0x32,0x54,0x32,0x84,0x92,0x82,0x54,0x32,0x24,0x21,0x61,0x54,0x22,0x32,0x12,0x18,0x22,0x24,0

46、x12,0x24,0x11,0x21,0x34,0x32,0x21,0x31,0x34,0x12,0x22,0x22,0x22,0x11,0x21,0x22,0x64,0x52,0x52,0x32,0x38,0x31,0x52,0x51,0x52,0x31,0x51,0x58,0x31,0x82,0x81,0x82,0x31,0x61,0x68,0x62,0x62,0x62,0x51,0x61,0x64,0x61,0x82,0x61,0x9c, 0x52,0xa4,0x92,0xa4,0x32,0x84,0x72,0x64,0x62,0x94,0x82,0x94,0x61,0x81,0x92,0x91,0x91,0x92,0x81,0xa1,0xa2,0x92,0x94, 0x52,0xa4,0x92,0xa4,0x32,0x84,0x72,0x64, 0x52,0x62,0x81,0x81,0x82,0x92,0xa2,0x94,0x82,0x72,0x82,0x88,0xff/結束標志; /-簡譜音調對應的定時器初值-/適合11.0592M的晶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論