版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 單片機課程設計</b></p><p><b> 說明書</b></p><p> 課題名稱: 電子音樂盒的設計 </p><p> 班 級: 11機電對口1班 </p><p> 學生姓名: # # #
2、 </p><p> 學 號: ************* </p><p> 指導教師: # # # </p><p> 完成日期: 2013年9月13日 </p><p> 成 績: </p>
3、<p><b> 目 錄</b></p><p> 引言··························
4、83;··································2</p>
5、<p> 1概述··································
6、183;························3</p><p> 1.1 課題要求······
7、3;····································
8、183;······3</p><p> 1.2設計方案·························
9、;··························3</p><p> 1.3研究內容·····
10、183;····································
11、·········3</p><p> 2 系統(tǒng)總體方案介紹······················
12、·························3</p><p> 2.1 系統(tǒng)組成框圖······
13、····································
14、3;····3</p><p> 2.2 音樂盒的功能結構圖··························&
15、#183;···············4</p><p> 2.3 主要設計軟件介紹···············
16、;·····························4</p><p> 3硬件設計··
17、3;····································
18、183;·················5</p><p> 3.1 總體設計框圖·············
19、183;··································5</p>
20、<p> 3.2各部分硬件設計及其原理································
21、183;·····5</p><p> 3.3 硬件電路圖及功能·························
22、···················6</p><p> 4軟件設計·············
23、;····································
24、83;·······7</p><p> 4.1音調、節(jié)拍以及編碼的確定方法······················&
25、#183;·········7</p><p> 4.2 軟件程序設計·····················&
26、#183;···························10</p><p> 5調試····&
27、#183;····································
28、;··················14</p><p> 5.1 檢查硬件連接············
29、3;··································14</p>
30、<p> 5.2 檢查軟件系統(tǒng)·································&
31、#183;·············14</p><p> 5.3 測試結果·················
32、183;································14</p><p>
33、 6 總結····································
34、;························16</p><p> 致謝········
35、····································
36、3;··············17</p><p> 參考文獻·················
37、83;····································&
38、#183;·18</p><p> 附:原程序······························
39、;························19</p><p><b> 引言</b></p><p> 21世紀,電
40、子技術獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。</p><p> 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發(fā)展。單片機應用的重要意義還在于它從根本上改變了傳統(tǒng)的控制系統(tǒng)設計思
41、想和設計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術也稱為微控制技術,是傳統(tǒng)控制技術的一次革命。單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩
42、具、電子寵物等等,這些都離不開單片機。</p><p> 隨著科學技術的進步和社會的發(fā)展,人類所接觸的信息也在不斷增加并且日益復雜。面對浩如煙海的信息,人們已經(jīng)能夠利用計算機等工具高效準確地對之進行處理,但要想將處理完的信息及時,清晰地傳遞給別人,還必須通過尋求更加卓越的顯示技術來實現(xiàn)。單片機技術與液晶顯示技術的結合,使信息傳輸交流向著智能可視化方向迅速發(fā)展。</p><p> 隨著人
43、類社會的發(fā)展,人們對視覺、聽覺方面的享受提出了越來越高的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂盒多是機械型的,體積笨重,發(fā)音單調,不能實現(xiàn)批量生產(chǎn)。本文設計的音樂盒是以單片機為核心元件的電子式音樂盒,體積小,重量輕,能演奏和旋音樂,功能多,外觀效果多彩,使用方便,并具有一定的商業(yè)價值。</p><p><b> 1概述</b></p>&
44、lt;p> 本設計是以AT89C51單片機的電路為基礎,外部加上放音設備,以此來實現(xiàn)音樂演奏控制器的硬件電路,通過軟件程序來控制單片機內部的定時器使其演奏出優(yōu)美動聽的音樂。用戶可以按照自己的喜好選擇音樂并將其轉化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要相應的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實際使用價值,為廣大的單片機和音樂愛好者提供了很好的借鑒。</p><p>&
45、lt;b> 1.1 課題要求</b></p><p> 1)硬件設計:根據(jù)任務要求,完成單片機最小系統(tǒng)及其擴展設計。</p><p> 2)軟件設計:根據(jù)硬件設計完成顯示功能要求,完成控制軟件的編寫與調試;</p><p> 3)功能要求:查閱資料,了解單片機控制單音喇叭發(fā)聲原理; 設計基于單片機的電子音樂盒;</p><
46、;p><b> 1.2設計方案</b></p><p> 利用按鍵切換演奏出不同的樂曲。蜂鳴器發(fā)出某個音調,與之相對應的LED亮起。使用兩個按鍵,一個用來切換歌曲,另一個切換八路LED的變化花樣。</p><p><b> 1.3研究內容</b></p><p> 1)電路有兩種工作模式:演奏音樂模式和花樣燈
47、模式。</p><p> 演奏音樂模式:演奏完整的一首的歌曲,八路LED隨著音樂變化。</p><p> 花樣燈模式:八路LED變化出各種花樣,蜂鳴器隨著發(fā)出“嘀嘀”聲</p><p> 2)按下按鍵1進入演奏音樂模式,再按切換歌曲,共兩首歌曲。</p><p> 3)按下按鍵2進入花樣燈模式,再按切換LED花樣,共三種花樣。<
48、/p><p> 此電路的程序只占用了1K左右,可編制更多的音樂和LED花樣,使系統(tǒng)的功能更加強大。</p><p> 2 系統(tǒng)總體方案介紹</p><p> 2.1 系統(tǒng)組成框圖</p><p> 音樂盒的系統(tǒng)結構以AT89C51單片機位控制核心,加上2個按鍵、時鐘復位電路、蜂鳴器、LED模塊組成。單片機負責接收按鍵的輸入,根據(jù)輸入控制音
49、樂播放曲目和音樂花樣燈的顯示樣式以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。</p><p> 圖2.1 系統(tǒng)組成框圖</p><p> 2.2 音樂盒的功能結構圖</p><p> 音樂盒的功能結構如圖2.2所示。Key1負責切換播放歌曲,播放歌曲共2首,分別是揮著翅膀的女孩和寂寞沙洲冷。Key2負責切換LED顯示花樣,顯示花樣共3種,第一種順序顯示,第二種
50、由兩邊向中間移動然后向兩邊移動,第三種循環(huán)顯示。</p><p> 圖2.2 音樂盒功能結構圖</p><p> 2.3 主要設計軟件介紹</p><p> 本設計利用KEIL編程軟件對音樂盒源程序進行編程并調試,配合PROTEUS仿真軟件對硬件進行仿真調試,兩種軟件的簡介如下:</p><p> 2.3.1 PROTEUS軟件簡介&
51、lt;/p><p> Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是目前世界上將電路仿真軟件、PCB設計
52、軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年也增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 </p><p> 2.3.2 KEIL簡介</p><p> Ke
53、il軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用
54、對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。</p><p><
55、;b> 3硬件設計</b></p><p> 3.1 總體設計框圖</p><p> 圖3.1總體設計框圖</p><p> 3.2各部分硬件設計及其原理</p><p> 3.2.1 AT89C51簡介</p><p> AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPER
56、OM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT
57、89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3.2所示</p><p> 圖3.2 AT89C51系列單片機</p><p> 3.2.2 LED顯示電路設計與原理</p><p> LED顯示電路是由8個LED發(fā)光二極管組成,連接方式為共陽極,
58、LED接到單片機的P1口,若為低電平,可使LED亮起。發(fā)光二極管的亮、滅由內部程序控制,8個LED發(fā)光二極管分別對應不同的音階,所以LED會隨著音階的變化按規(guī)律亮、滅。</p><p> 3.2.3 時鐘振蕩電路</p><p> AT89C51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體
59、或者陶瓷諧振器一起構成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構成并聯(lián)振蕩電路。對外接電容C1,C2雖然沒有什么嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發(fā)生
60、器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產(chǎn)品技術條件的要求。</p><p> 3.3 硬件電路圖及功能</p><p> 總體硬件電路實現(xiàn)功能如下,如圖3.4所示</p><p> 電路中用P3.2、P3.3控制按鍵。&l
61、t;/p><p> P1.0~P1.7控制LED。</p><p> P2.3控制蜂鳴器。</p><p> 電路為12MHZ晶振頻率工作,起振電路中C1、C2均為30PF。</p><p> 圖3.4 硬件電路圖</p><p><b> 4軟件設計</b></p><
62、p> 在本程序中設置了兩個標志——count1和count2,分別初始化為1和0。按鍵1使得count1在1和2之間切換,按鍵2使得count2在1~4之間切換。程序檢測count1的值,count1等于1時播放第一首歌曲,等于2時播放第二首。另一方面根據(jù)count2的值來切換LED的花樣。count1和count2的值是互斥的,設置count1等于1、2時,count2同時設置為0;設置count2等于1~4時,count1也
63、同時設置為0。</p><p> 4.1音調、節(jié)拍以及編碼的確定方法</p><p> 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和節(jié)拍表示一個音符唱多長的時間。</p><p> 4.1.1 音調的確定</p><
64、;p> 不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,C–D、D–
65、E、F–G、G–A、A–B兩音之間隔著一個黑鍵,他們之間的距離就是全音;E–F、B–C兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上﹟號或者b號的叫變化音。﹟叫升記號,表示把音在原來的基礎上升高半音,b叫降記音,表示在原來的基礎上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266
66、 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音R</p><p> 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。</p>
67、<p> 2)利用AT89C51的內部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。</p><p> 此外結束符和休止符可以分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產(chǎn)生相應的停頓效果。</p><p> 3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數(shù)器
68、計時956us/1us=956,在每次技術956次時將I/O反相,就可得到中音DO(523Hz)。</p><p> 計數(shù)脈沖值與頻率的關系公式如下:</p><p> N=Fi2Fr</p><p> N:計算值;Fi:內部計時一次為1us,故其頻率為1MHz;</p><p> 其計數(shù)值的求法如下:</p>
69、<p> T=65536-N=65536-Fi2Fr</p><p> 例如:設K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計算值</p><p> T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr</p>&l
70、t;p> 低音DO的T=65536-500000/262=63627</p><p> 低音DO的T=65536-500000/523=64580</p><p> 低音DO的T=65536-500000/1047=65059</p><p> C調各音符頻率與計數(shù)值T的對照表如表4.1所示。</p><p> 表4.1 C
71、調各音符頻率與計數(shù)值T的對照表</p><p> 4.1.2 節(jié)拍的確定</p><p> 若要構成音樂,光有音調是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調節(jié)各個音的快滿度。“節(jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分
72、鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。</p><p> 一首音樂是由許多不同的音符組成的,而每個音符對應著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應的延時,構成音樂。了解音樂的一些基礎知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產(chǎn)生這樣的方
73、波頻率信號。因此,需要弄清楚音樂中的音符和對應的頻率,以及單片機定時計數(shù)的關系。</p><p> 表4.2節(jié)拍與節(jié)拍碼對照</p><p> 每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖5.2為節(jié)拍碼的對照。如果1拍為0.4秒,1/4拍實0.1秒,只要設定延遲時間就可求得節(jié)拍的時間。假設1/4拍為1DELAY,則1拍應為4DELAY,以此類推。所以只要求
74、得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時間設定。</p><p> 表4.3 1/4和1/8節(jié)拍的時間設定</p><p><b> 4.1.3 編碼</b></p><p> do re mi fa so la si分別編碼為1~7,重音do編為8,重音re編為9,停頓編為0。播放長度以十六
75、分音符為單位(在本程序中為165ms),一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調作為編碼的高4位,而播放時間作為低4位,如此音調和節(jié)拍就構成了一個編碼。以0xff作為曲譜的結束標志。</p><p> 舉例1:音調do,發(fā)音長度為兩拍,即二分音符,將其編碼為0x18。</p><p> 舉例2:音調re,發(fā)音長度為半拍,即八分音符,將其編碼為0x22<
76、;/p><p> 歌曲播放的設計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個數(shù),然后分離出高4位得到音調,接著找出相應的值賦給定時器0,使之定時操作蜂鳴器,得出相應的音調;接著分離出該數(shù)的低4位,得到延時時間,接著調用軟件延時。</p><p> 表4.4 簡譜對應的簡譜碼、T值、節(jié)拍數(shù)</p><p>
77、 4.2 軟件程序設計</p><p> 4.2.1 程序流程圖及相應代碼塊</p><p><b> 主程序流程圖</b></p><p> 圖4.1 主程序流程圖</p><p><b> 主程序代碼:</b></p><p><b> main()&
78、lt;/b></p><p> {uchar x;</p><p> count1=0;//流水燈無花樣 </p><p> count2=1;//唱第一首歌 </p><p> P34=0;//選取矩陣鍵盤的一列 </p><p> EA=1;//開總中斷</p><p>
79、 EX0=1;//開外部中斷0 </p><p> IT0=1;//外部中斷0下降沿觸發(fā)方式 </p><p> EX1=1;//開外部中斷1 </p><p> IT1=1;//外部中斷1下降沿觸發(fā)方式 </p><p> TMOD=0x01;//定時器0工作在方式1 </p><p><
80、b> TH0=0;</b></p><p><b> TL0=0;</b></p><p><b> ET0=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p&g
81、t;<p> if(count1!=0) //音樂停止,花樣燈開始按照花樣閃爍</p><p><b> {</b></p><p> switch(count1) </p><p><b> {</b></p><p><b> case 1:</b>
82、;</p><p> for(x=0;x<14;x++)</p><p><b> {</b></p><p><b> duan=1;</b></p><p> P1=huayang1[x];</p><p><b> beep();</b&
83、gt;</p><p> delay1(300);</p><p><b> duan=0;</b></p><p> if(count1!=1)</p><p><b> break;</b></p><p><b> }</b></
84、p><p><b> break;</b></p><p><b> case 2:</b></p><p> for(x=0;x<14;x++)</p><p><b> {</b></p><p><b> duan=1;<
85、;/b></p><p> P1=huayang2[x];</p><p><b> beep();</b></p><p> delay1(300);</p><p><b> duan=0;</b></p><p> if(count1!=2)</p
86、><p><b> break;</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 3:</b></p><p> for(x=0;x<1
87、6;x++)</p><p><b> {</b></p><p><b> duan=1;</b></p><p> P1=huayang3[x];</p><p><b> beep();</b></p><p> delay1(300);
88、</p><p><b> duan=0;</b></p><p> if(count1!=3)</p><p><b> break;</b></p><p><b> }</b></p><p><b> break;</
89、b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> song();&
90、lt;/b></p><p> delay1(1000);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 播放音樂子程序流程圖</p>&
91、lt;p> 圖4.2 播放音樂子程序流程圖</p><p> 播放音樂子程序代碼:</p><p> void song()</p><p><b> {</b></p><p> uint temp;</p><p> uchar jp;//jp是簡譜</p>&
92、lt;p><b> i=0;</b></p><p><b> while(1)</b></p><p> {if(count2==0)</p><p><b> {</b></p><p><b> break;</b></p&
93、gt;<p><b> }</b></p><p> if(count2==1)//選曲</p><p> temp=qnzl[i]; // 播放千年之戀</p><p> if(count2==2)</p><p> temp=jmszl[i]; // 播放寂寞沙洲冷</p>&
94、lt;p> if(temp==0xff)//結束標志</p><p><b> break;</b></p><p> jp=temp/16; //取數(shù)的高4位</p><p><b> duan=1;</b></p><p> P1=yinyue[jp];</p>
95、<p><b> duan=0;</b></p><p><b> if(jp!=0)</b></p><p><b> {</b></p><p> timeh=cuzhi[jp*2];</p><p> timel=cuzhi[jp*2+1];</
96、p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> TR0=0;</b></p><p> fm=1;//關蜂鳴器</p>
97、<p><b> }</b></p><p> delay(temp%16); //取數(shù)的低4位</p><p> TR0=0; //唱完一個音停10MS</p><p><b> fm=1;</b></p><p> delay1(10); </p><
98、p><b> TR0=1; </b></p><p><b> i++;</b></p><p><b> }</b></p><p><b> TR0=0;</b></p><p><b> fm=1;</b><
99、;/p><p><b> }</b></p><p><b> 延時程序代碼:</b></p><p> void delay(uint z)//延時165MS,即十六分音符</p><p> {uint x,y;</p><p> for(x=z;x>0;x
100、--)</p><p> for(y=19000;y>0;y--);</p><p><b> }</b></p><p> void delay1(uint z)//延時1MS</p><p> {uint x,y;</p><p> for(x=z;x>0;x--)&
101、lt;/p><p> for(y=112;y>0;y--);</p><p><b> }</b></p><p> 4.2.2 程序源代碼(見文件)</p><p><b> 5調試</b></p><p> 5.1 檢查硬件連接</p><
102、p> 在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復位電路是否設計正確。</p><p> 5.2 檢查軟件系統(tǒng)</p><p> 1.根據(jù)系統(tǒng)的原理結構檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。</p><p> 2.將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的認
103、真檢查,反復測試,如果沒有出現(xiàn)問題即可把源程序編譯成HEX文件裝載到單片機中,對硬件進行仿真。</p><p><b> 5.3 測試結果</b></p><p> 5.3.1.總體運行圖</p><p> 圖5.1 系統(tǒng)總體運行圖</p><p><b> 6 總結</b></p&g
104、t;<p> 單片機的設計至今為止已經(jīng)進入了令人鼓舞的階段,在進行了長達一周的時間的摸索與實驗,使我不僅僅是對于單片機入門軟件與硬件的常用設計與功能,還使我對于一項設計研究的制作過程所需要的詳細步驟和具體的實現(xiàn)方法的力度的掌握。</p><p> 當然在這次寶貴的課程設計任務中,經(jīng)驗才是對于我們最大的收獲,而且還增強了自身對未知問題以及對知識的深化認識的能力,用受益匪淺這個詞語來概括這次難忘的活
105、動我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應用領域這個最終目的下,隨著對單片機這門學科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內被實現(xiàn)。</p><p> 總之,這次設計從程序編寫、調試到軟硬件聯(lián)機調試,我傾注了大量的時間和心血。真是曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯誤而郁悶苦
106、惱過,也曾經(jīng)為某一功能不能實現(xiàn)而猶豫彷徨過,但最終我成功了。</p><p> 我不僅品味到了結果的喜悅,更明白了過程的彌足珍貴。</p><p><b> 致謝</b></p><p> 感謝我的指導老師xx老師,她嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;她循循善誘的教導和不拘一格的思路給予我無盡的啟迪。</p>
107、<p> 感謝我的父母,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠健康快樂是我最大的心愿。</p><p> 感謝我的室友們,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽??烊炅耍路鹁驮谧蛱?。這期間,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學前所擔心的任何不開心的事情。只是今后大家就難得再聚在一起吃每年元旦那頓飯了吧,沒關系,各奔前程,大家珍重。我們在一起的日子,我
108、會記一輩子的。</p><p> 在設計即將完成之際,我的心情無法平靜,從開始進入課題到任務的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助和有聲的指導,在這里請接受我誠摯的謝意!</p><p><b> 參考文獻</b></p><p> [1] 李建忠.單片機原理及應用,西安電子科技大學出版社,2008.2. </p&
109、gt;<p> [2] 黃智偉.全國大學生電子設計競賽系統(tǒng)設計,北京:北京航空航天大學出版社,2006.6.</p><p> [3] 黃智偉.凌陽單片機課程設計指導,北京:北京航空航天大學出版社,2006.11.</p><p> [4] 李廣弟,朱月秀,王秀山.單片機基礎,北京:北京航空航天大學出版社,2001.7.</p><p> [5
110、] 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應用,西安:西安電子科技大學, 2000.</p><p> [6] 候伯亨.VHDL硬件描述語言與數(shù)字邏輯電路設計, 西安:西安電子科技大學出版社, 1999.</p><p> [7] 康華光. 模擬電子技術基礎(第四版), 武漢:華中理工大學出版社,1999.</p><p> [8] 陳小忠,黃寧.
111、單片機接口技術實用子程序,北京:北京人民郵電出版社, 2005.</p><p> [9] 歐偉明,周春臨,瞿遂春.電子信息系統(tǒng)設計,西安電子科技大學出版社,2005.9.</p><p> [10] 賈立新,王涌.電子系統(tǒng)設計與實踐,北京:清華大學出版社,2007.</p><p> [11] 羅亞非.凌陽16位單片機應用基礎,北京:北京航空航天大學出版社,
112、2003.</p><p> [12] 雷思孝.凌陽單片機原理及實用技術,西安電子科技大學,2004.</p><p> [13] 譚浩強.C程序設計(第四版),北京:清華大學出版社,2010.6.</p><p> [14] 羅學恒.單片機實踐與應用,北京:電子工業(yè)出版社,2010.5.</p><p> [15] 蘭吉昌等.單片機
113、C51完全學習手冊,北京:化學工業(yè)出版社,2008.10.</p><p><b> 附:</b></p><p><b> 原程序:</b></p><p> #include <reg51.h></p><p> #define uchar unsigned char<
114、/p><p> #define uint unsigned int</p><p> sbit duan=P2^6;</p><p> sbit key1=P3^2;//按key1可切換花樣</p><p> sbit key2=P3^3;//按key2可切換歌曲</p><p> sbit fm=P3^7;/
115、/蜂鳴器連續(xù)的IO口</p><p> sbit P34=P3^4;//矩陣鍵盤的一列</p><p> uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,</p><p> 0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花樣1</p><p&g
116、t; uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,</p><p> 0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花樣2</p><p> uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,</p>
117、;<p> 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};</p><p> char code huayang4[]={ 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};</p><p> uchar count1;//花樣標志</p><p> uchar count2
118、;//歌曲標志</p><p> uchar timeh,timel,i;</p><p> //---------------------------簡譜---------------------------------------</p><p> //編程規(guī)則:字節(jié)高位是簡譜,低位是持續(xù)時間,</p><p> //代表多少個
119、十六分音符</p><p> //1-7代表中央C調,8-E代表高八度,0代表停頓</p><p> //最后的0是結束標志</p><p> uchar code qnzl[]={ //千年之戀</p><p> 0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34
120、,0x84,0x72,0x82,0x94,0xA8,0x08,</p><p><b> //前奏</b></p><p> 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,</p><p> //竹林的燈火 到過的沙漠</p><p> 0x32,0x31,0
121、x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,</p><p> //七色的國度 不斷飄逸風中</p><p> 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,</p><p> //有一種神秘 灰色的旋渦</p><p> 0x32,0x
122、31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,</p><p> //將我卷入了迷霧中</p><p> 0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,</p><p><b> //看不清的雙手</b></p><p> 0x31,0x51,0x63,0x5
123、1,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,</p><p> //一朵花傳來誰經(jīng)過的溫柔</p><p> 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,</p><p><b> //穿越千年的傷痛</b></p><p> 0x61,
124、0x71,0x82,0x71,0x62,0x52,0x31,0x36,</p><p><b> //只為求一個結果</b></p><p> 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,</p><p> //你留下的輪廓 指引我</p><p> 0x42,0x6
125、3,0x83,0x83,0x91,0x91,</p><p><b> //黑夜中不寂寞</b></p><p> 0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,</p><p><b> //穿越千年的哀愁</b></p><p> 0x61,0x71,
126、0x82,0x71,0x62,0x52,0x31,0x36,</p><p><b> //是你在盡頭等我</b></p><p> 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,</p><p> //最美麗的感動 會值得</p><p> 0x42,0x82,0x8
127、8,0x02,0x74,0x93,0x89,0xff//結束標志</p><p><b> //用一生守候</b></p><p><b> };</b></p><p> uchar code jmszl[]={ //寂寞沙洲冷</p><p> 0x12,0x12,0x22,0x32,0
128、x31,0x22,0x21,0x22,</p><p><b> //自你走后心憔悴</b></p><p> 0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,</p><p> //白色油桐風中紛飛</p><p> 0x51,0x52,0x31,0x52,0x62,0
129、x13,0x11,0x13,0x32,0x28,0x08,0x28,</p><p> //落花似人有情 這個季節(jié)</p><p> 0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,</p><p> //河畔的風放肆拼命地吹</p><p> 0x51,0x51,0x31,0x32
130、,0x31,0x32,0x81,0x72,0x63,</p><p> //不斷撥弄離人的眼淚</p><p> 0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,</p><p> //那樣濃烈的愛再也無法給</p><p> 0x22,0x12,0x11,0x1
131、2,0x11,0x12,0x12,0x14,0x26,0x32,0x26,</p><p><b> //傷感一夜一夜</b></p><p> 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,</p><p> //當記憶的線纏繞過往支離破碎</p&
132、gt;<p> 0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,</p><p> //是慌亂占據(jù)了心扉 </p><p> 0x31,0x81,0x81,0x81,0x61,0x91,0x82,</p><p><b> //有花兒伴著蝴蝶</b>
133、;</p><p> 0x51,0x51,0x51,0x51,0x31,0x61,0x53,</p><p><b> //孤雁可以雙飛</b></p><p> 0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,</p><p><b> //夜深人靜獨徘徊</b
134、></p><p> 0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,</p><p> //當幸福戀人寄來紅色分享喜悅</p><p> 0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,</p&
135、gt;<p> //閉上雙眼難過頭也不敢回</p><p> 0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,</p><p> //仍然撿盡寒枝不肯安歇微帶著后悔</p><p> 0x21,0x31,0x51,0x31,0x21,0x11,
136、0x61,0x21,0x16,</p><p> //寂寞沙洲我該思念誰</p><p><b> 0xff};</b></p><p> //----------------------------簡譜音調對應的定時器初值---------------------------</p><p> //適合11.0
137、592M的晶振</p><p> uchar code cuzhi[]={</p><p> 0xff,0xff,//占位</p><p> 0xFC,0x8E,//中央C調1-7</p><p> 0xFC,0xED,</p><p> 0xFD,0x43,</p><p>
138、0xFD,0x6A,</p><p> 0xFD,0xB3,</p><p> 0xFD,0xF3,</p><p> 0xFE,0x2D,</p><p> 0xFE,0x47,//高八度1-7 </p><p> 0xFE,0x76,</p><p> 0xFE,0x
139、A1,</p><p> 0xFE,0xC7,</p><p> 0xFE,0xD9,</p><p> 0xFE,0xF9,</p><p><b> 0xFF,0x16</b></p><p><b> };</b></p><p>
140、 uchar yinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};</p><p> //將音調轉化為對應的LED樣式</p><p> void delay1(uint z);//延時1MS</p><p> void delay(uint z);//延時165MS,即十六分音符
141、</p><p> void song();</p><p> void beep();//蜂鳴器叫一聲</p><p><b> main()</b></p><p> {uchar x;</p><p> count1=0;//流水燈無花樣</p><p>
142、 count2=1;//唱第一首歌</p><p> P34=0;//選取矩陣鍵盤的一列</p><p> EA=1;//開總中斷</p><p> EX0=1;//開外部中斷0</p><p> IT0=1;//外部中斷0下降沿觸發(fā)方式</p><p> EX1=1;//開外部中斷1</p>
143、<p> IT1=1;//外部中斷1下降沿觸發(fā)方式</p><p> TMOD=0x01;//定時器0工作在方式1</p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p><b> ET0=1;</b>
144、;</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(count1!=0)</p><p><b> {</b></p><p> switch(count1)</p>
145、<p><b> {</b></p><p><b> case 1:</b></p><p> for(x=0;x<14;x++)</p><p><b> {</b></p><p><b> duan=1;</b><
146、;/p><p> P1=huayang1[x];</p><p><b> beep();</b></p><p> delay1(300);</p><p><b> duan=0;</b></p><p> if(count1!=1)</p><
147、p><b> break;</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p> for(x=0;x<14;x++)<
148、/p><p><b> {</b></p><p><b> duan=1;</b></p><p> P1=huayang2[x];</p><p><b> beep();</b></p><p> delay1(300);</p>
149、<p><b> duan=0;</b></p><p> if(count1!=2)</p><p><b> break;</b></p><p><b> }</b></p><p><b> break;</b></
150、p><p><b> case 3:</b></p><p> for(x=0;x<16;x++)</p><p><b> {</b></p><p><b> duan=1;</b></p><p> P1=huayang3[x];<
151、;/p><p><b> beep();</b></p><p> delay1(300);</p><p><b> duan=0;</b></p><p> if(count1!=3)</p><p><b> break;</b></
152、p><p><b> }</b></p><p><b> break;</b></p><p><b> case 4:</b></p><p> for(x=0;x<8;x++)</p><p><b> {</b>
153、</p><p><b> duan=1;</b></p><p> P1=huayang4[x];</p><p><b> beep();</b></p><p> delay1(300);</p><p><b> duan=0;</b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子音樂盒(單片機課程設計)
- 電子音樂盒(單片機課程設計)
- 電子音樂盒單片機課程設計
- 單片機課程設計---電子音樂盒的設計
- 電子音樂盒課程設計
- 單片機課程設計報告--電子音樂盒的設計
- 畢業(yè)設計基于單片機的電子音樂盒設計
- 單片機課程設計--電子音樂設計
- 電子音樂盒設計【開題報告】
- 畢業(yè)論文---基于單片機的電子音樂盒
- 電子音樂盒的設計【任務書】
- 單片機課程設計--電子音樂播放器
- 電子音樂盒的設計【畢業(yè)論文】
- 單片機音樂盒課程設計
- 單片機課程設計--音樂盒
- 音樂盒單片機課程設計
- 單片機音樂盒課程設計
- 單片機音樂盒課程設計
- 基于單片機的電子音樂門鈴的設計說明
- 基于單片機的電子音樂門鈴的設計說明
評論
0/150
提交評論