版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 音樂播放器設(shè)計(jì)</b></p><p> 姓名: </p><p> 學(xué)號(hào): </p><p> 班級(jí): </p><p><b> 目錄</b></p><p><
2、b> 1概述1</b></p><p> 1.1 課題意義1</p><p><b> 1.2設(shè)計(jì)方案1</b></p><p><b> 1.3研究?jī)?nèi)容1</b></p><p> 2 系統(tǒng)總體方案介紹2</p><p> 2.1 系
3、統(tǒng)組成框圖2</p><p> 2.2 音樂盒的功能結(jié)構(gòu)圖2</p><p><b> 3硬件設(shè)計(jì)3</b></p><p> 3.1 總體設(shè)計(jì)框圖3</p><p> 3.2各部分硬件設(shè)計(jì)及其原理3</p><p> 3.2.1 ATmega16簡(jiǎn)介3</p>
4、<p> 3.2.2 LED顯示電路設(shè)計(jì)與原理3</p><p> 3.2.3 時(shí)鐘振蕩電路3</p><p> 3.3 硬件電路圖及功能4</p><p><b> 4軟件設(shè)計(jì)5</b></p><p> 4.1音調(diào)、節(jié)拍以及編碼的確定方法5</p><p>
5、4.1.1 音調(diào)的確定6</p><p> 4.1.2 節(jié)拍的確定6</p><p> 4.1.3 編碼7</p><p> 4.2 軟件程序設(shè)計(jì)7</p><p> 4.2.1 程序流程圖及相應(yīng)代碼塊7</p><p> 4.2.2 程序源代碼(見附錄A)10</p><p&
6、gt;<b> 5調(diào)試10</b></p><p> 5.1 檢查硬件連接10</p><p> 5.2 檢查軟件系統(tǒng)10</p><p> 5.3 測(cè)試結(jié)果10</p><p> 5.3.1.總體運(yùn)行圖10</p><p> 5.3.2.花樣燈11</p>
7、<p><b> 6總結(jié)11</b></p><p><b> 7心得體會(huì)11</b></p><p><b> 8參考文獻(xiàn)11</b></p><p> 9附錄A 原理圖12</p><p> 10附錄B 程序源代碼及注釋13</p>
8、<p> 基于ATmega16單片機(jī)的音樂播放器設(shè)計(jì)</p><p> 【摘要】本設(shè)計(jì)是一個(gè)基于ATmega16系列單片機(jī)的音樂盒,依據(jù)單片機(jī)技術(shù)原理,通過硬件電路制作以及軟件編譯,設(shè)計(jì)制作出一個(gè)多功能多功能音樂盒。該音樂盒主要由按鍵電路、復(fù)位電路、時(shí)鐘電路以及蜂鳴器組成。使用兩個(gè)按鍵控制音樂盒,一個(gè)用來切換歌曲,另一個(gè)用來切換播放速度,本音樂盒共有兩首歌曲。播放歌曲時(shí),蜂鳴器發(fā)出某個(gè)音調(diào),與之
9、對(duì)應(yīng)的LED亮起。本設(shè)計(jì)利用ICC AVR編程軟件對(duì)音樂盒源程序進(jìn)行編程并調(diào)試,配合PROTEUS仿真軟件對(duì)硬件進(jìn)行仿真調(diào)試,節(jié)約了設(shè)計(jì)時(shí)間。</p><p> 【關(guān)鍵字】音樂盒;ATmega16單片機(jī);ICC AVR; PROTEUS; 音調(diào)</p><p><b> 1概述</b></p><p> 本設(shè)計(jì)是以ATmega16芯片的電
10、路為基礎(chǔ),外部加上放音設(shè)備,以此來實(shí)現(xiàn)音樂演奏控制器的硬件電路,通過軟件程序來控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽的音樂。用戶可以按照自己的喜好選擇音樂并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。對(duì)于不同型號(hào)的單片機(jī)只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實(shí)際使用價(jià)值,為廣大的單片機(jī)和音樂愛好者提供了很好的借鑒。</p><p><b> 1.1 課題意義</b>
11、;</p><p> 音樂盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時(shí)期。當(dāng)時(shí)為使教會(huì)的鐘塔報(bào)時(shí),而將大小的鐘表裝上機(jī)械裝置,被稱為“可發(fā)出聲音的組鐘”。音樂盒有著300多年的發(fā)展歷史,是人類文明發(fā)展的歷史見證。</p><p> 傳統(tǒng)的音樂盒多是機(jī)械音樂盒,其工作原理是通過齒輪帶動(dòng)一個(gè)帶有鐵釘?shù)蔫F桶轉(zhuǎn)動(dòng),鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂盒體積比較大,比較笨重
12、,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂盒放音時(shí)為了讓音色穩(wěn)定,必須放平不能動(dòng)搖,而且價(jià)格昂貴,不能實(shí)現(xiàn)大批量生產(chǎn)。</p><p> 本文設(shè)計(jì)的音樂盒,是基于單片機(jī)設(shè)計(jì)制作的電子式音樂盒。與傳統(tǒng)的機(jī)械式音樂盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動(dòng)力來源是電池,制作工藝簡(jiǎn)單,可進(jìn)行批量生產(chǎn),所以價(jià)格便宜?;趩纹瑱C(jī)制作的電子式音樂盒,控制功能強(qiáng)
13、大,可根據(jù)需要選歌,使用方便。根據(jù)存儲(chǔ)容量的大小,可以盡可能多的存儲(chǔ)歌曲。另外,可以設(shè)計(jì)彩燈外觀效果,使音樂盒的功能更加豐富。</p><p><b> 1.2設(shè)計(jì)方案</b></p><p> 設(shè)計(jì)一個(gè)基于ATmega16系列單片機(jī)的音樂盒,利用按鍵切換演奏出不同的樂曲。蜂鳴器發(fā)出某個(gè)音調(diào),與之相對(duì)應(yīng)的LED亮起。使用兩個(gè)按鍵,一個(gè)用來切換歌曲,另一個(gè)切換八路L
14、ED的變化花樣。</p><p><b> 1.3研究?jī)?nèi)容</b></p><p> 1)電路有兩種工作模式:演奏音樂模式和花樣燈模式。</p><p> 演奏音樂模式:演奏完整的一首的歌曲,八路LED隨著音樂變化。</p><p> 花樣燈模式:八路LED變化出各種花樣,蜂鳴器隨著發(fā)出“嘀嘀”聲</p&g
15、t;<p> 2)按下按鍵1進(jìn)入演奏音樂模式,再按切換歌曲,共兩首歌曲。</p><p> 3)按下按鍵2進(jìn)入花樣燈模式,再按切換LED花樣,共三種花樣。</p><p> 此電路的程序只占用了1K左右,可編制更多的音樂和LED花樣,使系統(tǒng)的功能更加強(qiáng)大。</p><p> 2 系統(tǒng)總體方案介紹</p><p> 2.
16、1 系統(tǒng)組成框圖</p><p> 音樂盒的系統(tǒng)結(jié)構(gòu)以AT89C51單片機(jī)位控制核心,加上2個(gè)按鍵、時(shí)鐘復(fù)位電路、蜂鳴器、LED模塊組成。單片機(jī)負(fù)責(zé)接收按鍵的輸入,根據(jù)輸入控制音樂播放曲目和音樂花樣燈的顯示樣式以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。</p><p> 圖2.1 系統(tǒng)組成框圖</p><p> 2.2 音樂盒的功能結(jié)構(gòu)圖</p>
17、<p> 音樂盒的功能結(jié)構(gòu)如圖2.2所示。Key1負(fù)責(zé)切換播放歌曲,播放歌曲共2首,分別是揮著翅膀的女孩和寂寞沙洲冷。Key2負(fù)責(zé)切換LED顯示花樣,顯示花樣共3種,第一種順序顯示,第二種由兩邊向中間移動(dòng)然后向兩邊移動(dòng),第三種循環(huán)顯示。</p><p> 圖2.2 音樂盒功能結(jié)構(gòu)圖</p><p><b> 3硬件設(shè)計(jì)</b></p>
18、<p> 3.1 總體設(shè)計(jì)框圖</p><p> 圖3.1總體設(shè)計(jì)框圖</p><p> 3.2各部分硬件設(shè)計(jì)及其原理</p><p> 3.2.1 ATmega16簡(jiǎn)介</p><p> 圖3.2 ATmega16系列單片機(jī)</p><p> 3.2.2 LED顯示電路設(shè)計(jì)與原理</p
19、><p> LED顯示電路是由8個(gè)LED發(fā)光二極管組成,連接方式為共陽極,LED接到單片機(jī)的P1口,若為低電平,可使LED亮起。發(fā)光二極管的亮、滅由內(nèi)部程序控制,8個(gè)LED發(fā)光二極管分別對(duì)應(yīng)不同的音階,所以LED會(huì)隨著音階的變化按規(guī)律亮、滅。</p><p> 3.2.3 時(shí)鐘振蕩電路</p><p> ATmega16中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器
20、,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1,C2雖然沒有什么嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可
21、以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號(hào)是通過一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:</p><p> 圖3.3 單片機(jī)內(nèi)部、外部振蕩電路</p><p>
22、3.3 硬件電路圖及功能</p><p> 總體硬件電路實(shí)現(xiàn)功能如下,如圖3.4所示</p><p> 電路中用PB0、PB1、PB2控制按鍵。</p><p> PA0~PA7控制LED。</p><p><b> PD5控制蜂鳴器。</b></p><p> 電路為12MHZ晶振頻率
23、工作,起振電路中C1、C2均為30PF。</p><p> 圖3.4 硬件電路圖</p><p><b> 4軟件設(shè)計(jì)</b></p><p> 在本程序中設(shè)置了兩個(gè)標(biāo)志——count1和count2,分別初始化為1和0。按鍵1使得count1在1和2之間切換,按鍵2使得count2在1~4之間切換。程序檢測(cè)count1的值,count1
24、等于1時(shí)播放第一首歌曲,等于2時(shí)播放第二首。另一方面根據(jù)count2的值來切換LED的花樣。count1和count2的值是互斥的,設(shè)置count1等于1、2時(shí),count2同時(shí)設(shè)置為0;設(shè)置count2等于1~4時(shí),count1也同時(shí)設(shè)置為0。</p><p> 4.1音調(diào)、節(jié)拍以及編碼的確定方法</p><p> 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻
25、率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。</p><p> 4.1.1 音調(diào)的確定</p><p> 高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音R
26、E的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。</p><p> 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。</p><p> 2)利用AT
27、mega16的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。</p><p> 此外結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。</p><p> 3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)956us/1us=956,在
28、每次技術(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。</p><p> 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:</p><p> N=Fi2Fr</p><p> N:計(jì)算值;Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHz;</p><p> 其計(jì)數(shù)值的求法如下:</p><p> T=65
29、536-N=65536-Fi2Fr</p><p> C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表如表4.1所示。</p><p> 表4.1 C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表</p><p> 4.1.2 節(jié)拍的確定</p><p> 一首音樂是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的
30、延時(shí),構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對(duì)于單片機(jī)來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。</p><p> 表4.2節(jié)拍與節(jié)拍碼對(duì)照</p><p> 每個(gè)音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖
31、5.2為節(jié)拍碼的對(duì)照。如果1拍為0.4秒,1/4拍實(shí)0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時(shí)間設(shè)定。</p><p><b> 4.1.3 編碼</b></p><p> do re mi fa so
32、la si分別編碼為1~7,重音do編為8,重音re編為9,停頓編為0。播放長(zhǎng)度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。</p><p> 舉例1:音調(diào)do,發(fā)音長(zhǎng)度為兩拍,即二分音符,將其編碼為0x18。</p><
33、;p> 舉例2:音調(diào)re,發(fā)音長(zhǎng)度為半拍,即八分音符,將其編碼為0x22</p><p> 4.2 軟件程序設(shè)計(jì)</p><p> 4.2.1 程序流程圖及相應(yīng)代碼塊</p><p><b> 主程序流程圖</b></p><p> 圖4.1 主程序流程圖</p><p><
34、b> 主程序代碼:</b></p><p> void main(void) </p><p><b> {</b></p><p> unsigned char i,j;</p><p> DDRA = 0xFF;//方向輸出</p><p> PORT
35、A = 0x00;//輸出低電平</p><p> DDRB = 0x00;//上拉</p><p> PORTB = 0xFF;</p><p> DDRC = 0x00;</p><p> PORTC = 0xFF;</p><p> DDRD = 0xFF;
36、 //輸出高電平</p><p> PORTD = 0xFF;</p><p> while (1) </p><p><b> {</b></p><p> keyscan();</p><p> TCCR1A = 0x40; <
37、/p><p> TCCR1B = 0x09; //比較匹配時(shí)OCA1電平取反,CTC模式,無預(yù)分頻</p><p> if(count1==1) //如果按鍵1按下,播放第一首</p><p><b> {</b></p><p> buzzer01(); //7種聲音,由低到高</
38、p><p> for (i = 0; i < 8; i ++) </p><p><b> {</b></p><p> PORTA = (1 << i);</p><p> if(count3==1)//如果按鍵3按下,播放速度變慢</p><p> DelayMs(
39、500);</p><p> DelayMs(100); </p><p><b> }</b></p><p> PORTA=0X00; //關(guān)閉所有LED</p><p><b> }</b></p><p> if(c
40、ount2==1) //如果按鍵2按下,播放第二首</p><p><b> {</b></p><p> buzzer02(); //7種聲音,由高到低 </p><p> for (i = 0; i < 8; i ++) </p><p><b> {</b><
41、;/p><p> PORTA = (1 << i);</p><p> if(count3==1)//如果按鍵3按下,播放速度變慢</p><p> DelayMs(500);</p><p> DelayMs(200); </p><p><b> }</b>
42、</p><p> PORTA=0X00; //關(guān)閉所有LED</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 播放音樂子程序流程圖
43、</p><p> 圖4.2 播放音樂子程序流程圖</p><p> 播放音樂子程序代碼:</p><p> //7種聲音,由低到高</p><p> void buzzer01(void)</p><p><b> {</b></p><p> for(OCR
44、1A= 1000;OCR1A<1700;OCR1A+=100)</p><p><b> {</b></p><p> TCCR1A = 0x40; </p><p> TCCR1B = 0x09;</p><p> DelayMs(300); //蜂鳴器鳴叫300mS鐘,定時(shí)器
45、一開始工作蜂鳴器即開始鳴叫</p><p> TCCR1A = 0x00; //定時(shí)器停止工作,無頻率產(chǎn)生,蜂鳴器停止鳴叫</p><p><b> }</b></p><p><b> }</b></p><p> //7種聲音,由高到低 </p><p
46、> void buzzer02(void)</p><p><b> {</b></p><p> for(OCR1A= 1600;OCR1A>900;OCR1A-=100)</p><p><b> {</b></p><p> TCCR1A = 0x40;
47、</p><p> TCCR1B = 0x09;</p><p> DelayMs(300); //蜂鳴器鳴叫300mS鐘,定時(shí)器一開始工作蜂鳴器即開始鳴叫</p><p> TCCR1A = 0x00; //定時(shí)器停止工作,無頻率產(chǎn)生,蜂鳴器停止鳴叫</p><p><b> }</b>
48、;</p><p><b> }</b></p><p> 4.2.2 程序源代碼(見附錄A)</p><p><b> 5調(diào)試</b></p><p> 5.1 檢查硬件連接</p><p> 在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:
49、晶振電路的連接,復(fù)位電路是否設(shè)計(jì)正確。</p><p> 5.2 檢查軟件系統(tǒng)</p><p> 1.根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。</p><p> 2.將所有程序組織起來,在軟件環(huán)境下運(yùn)行,檢查程序是否正確。通過對(duì)硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測(cè)試,如果沒有出現(xiàn)問題即可把源程序編譯成HEX文件裝載到單片機(jī)中,對(duì)硬
50、件進(jìn)行仿真。</p><p><b> 5.3 測(cè)試結(jié)果</b></p><p> 5.3.1.總體運(yùn)行圖</p><p> 圖5.1 系統(tǒng)總體運(yùn)行圖</p><p><b> 5.3.2.花樣燈</b></p><p> 由于截圖只能看到靜態(tài)圖,不能看到整體圖樣,
51、下面畫圖說明:</p><p><b> 圖5.2 花樣燈</b></p><p><b> 6 總結(jié)</b></p><p> 單片機(jī)的設(shè)計(jì)至今為止已經(jīng)進(jìn)入了令人鼓舞的階段,在進(jìn)行了半年時(shí)間的摸索與實(shí)驗(yàn),使我不僅僅是對(duì)于單片機(jī)入門軟件與硬件的常用設(shè)計(jì)與功能,還使我對(duì)于一項(xiàng)設(shè)計(jì)研究的制作過程所需要的詳細(xì)步驟和具體的實(shí)
52、現(xiàn)方法的力度的掌握。</p><p> 當(dāng)然在這次寶貴的課程設(shè)計(jì)活動(dòng)中,經(jīng)驗(yàn)才是對(duì)于我們最大的收獲,而且還增強(qiáng)了自身對(duì)未知問題以及對(duì)知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語來概括這次難忘的活動(dòng)我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時(shí)候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下,隨著對(duì)單片機(jī)這門學(xué)科的認(rèn)識(shí)加深,到達(dá)了拓展的程度,
53、我想這個(gè)目的將在不遠(yuǎn)的時(shí)期內(nèi)被實(shí)現(xiàn)。</p><p> 總之,這次設(shè)計(jì)從軟件編寫、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和心血。真是曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯(cuò)誤而郁悶苦惱過,也曾經(jīng)為某一功能不能實(shí)現(xiàn)而猶豫彷徨過,但最終我成功了。</p><p> 我不僅品味到了結(jié)果的喜悅,更明白了過程的彌足珍貴。</p><p><b> 7心
54、得體會(huì)</b></p><p> 感謝我的老師,他們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報(bào),你們永遠(yuǎn)健康快樂是我最大的心愿。感謝我的同學(xué)們,是你們和我共同維系著彼此之間親人般的感情,維系著班級(jí)那份家的融洽。在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多
55、少可敬的師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!</p><p><b> 8參考文獻(xiàn)</b></p><p> [1] 李建忠.單片機(jī)原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2008.2. </p><p> [2] 黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)[M],北京:北京航空航天大學(xué)出版社,2006.6.<
56、/p><p> [3] 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)[M],北京:北京航空航天大學(xué)出版社,2001.7.</p><p> [4] 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用[M],西安:西安電子科技大學(xué), 2000.</p><p> [5] 譚浩強(qiáng).C語言程序設(shè)計(jì)(第二版)[M],北京:清華大學(xué)出版社,1991.</p><
57、p><b> 9附錄A 原理圖</b></p><p> 10附錄B 程序源代碼及注釋</p><p> #include <iom16v.h></p><p> #include <macros.h></p><p> #include "buzzer.h"&
58、lt;/p><p> #include "delay.h"</p><p> void buzzer01(void) //7種聲音,由低到高</p><p><b> {</b></p><p> for(OCR1A= 1000;OCR1A<1700;OCR1A+=100)</p&g
59、t;<p><b> {</b></p><p> TCCR1A = 0x40; </p><p> TCCR1B = 0x09;</p><p> DelayMs(300); //蜂鳴器鳴叫300mS鐘,定時(shí)器一開始工作蜂鳴器即開始鳴叫</p><p> TCCR1A
60、 = 0x00; //定時(shí)器停止工作,無頻率產(chǎn)生,蜂鳴器停止鳴叫</p><p><b> }</b></p><p><b> }</b></p><p> void buzzer02(void)//7種聲音,由高到低 </p><p><b> {</b
61、></p><p> for(OCR1A= 1600;OCR1A>900;OCR1A-=100)</p><p><b> {</b></p><p> TCCR1A = 0x40; </p><p> TCCR1B = 0x09;</p><p> Delay
62、Ms(300); //蜂鳴器鳴叫300mS鐘,定時(shí)器一開始工作蜂鳴器即開始鳴叫</p><p> TCCR1A = 0x00; //定時(shí)器停止工作,無頻率產(chǎn)生,蜂鳴器停止鳴叫</p><p><b> }</b></p><p><b> }</b></p><p>
63、; void keyscan()//鍵盤掃描</p><p><b> {</b></p><p> unsigned char count1,count2,count3;</p><p> if(key1==0)//若按鍵1按下,播放第一首曲</p><p><b> {</b>
64、;</p><p> DelayMs(10);</p><p> if(key1==0)</p><p><b> {</b></p><p><b> count1=1;</b></p><p><b> }</b></p>&
65、lt;p> while(!key1);</p><p><b> }</b></p><p> if(key2==0)//若按鍵2按下,播放第二首曲</p><p><b> {</b></p><p> DelayMs(10);</p><p> i
66、f(key2==0)</p><p><b> {</b></p><p><b> count1=2;</b></p><p><b> }</b></p><p> while(!key2);</p><p><b> }<
67、/b></p><p> if(key3==0)//若按鍵3按下,播放速度變慢</p><p><b> {</b></p><p> count3=1;</p><p> while(!key2);</p><p><b> }</b></p
68、><p><b> }</b></p><p> void main(void) //主程序</p><p><b> {</b></p><p> unsigned char i,j;</p><p> DDRA =
69、0xFF;//方向輸出</p><p> PORTA = 0x00;//輸出低電平</p><p> DDRB = 0x00;//上拉</p><p> PORTB = 0xFF;</p><p> DDRC = 0x00;</p><p> PORTC = 0
70、xFF;</p><p> DDRD = 0xFF; //輸出高電平</p><p> PORTD = 0xFF;</p><p> while (1) </p><p><b> {</b></p><p> keyscan();</
71、p><p> TCCR1A = 0x40; </p><p> TCCR1B = 0x09; //比較匹配時(shí)OCA1電平取反,CTC模式,無預(yù)分頻</p><p> if(count1==1) //如果按鍵1按下,播放第一首</p><p><b> {</b></p&g
72、t;<p> buzzer01(); //7種聲音,由低到高</p><p> for (i = 0; i < 8; i ++) </p><p><b> {</b></p><p> PORTA = (1 << i);</p><p> if(count3==1)//如
73、果按鍵3按下,播放速度變慢</p><p> DelayMs(1000);</p><p> DelayMs(100); </p><p><b> }</b></p><p> PORTA=0X00; //關(guān)閉所有LED</p><p><
74、b> }</b></p><p> if(count2==1) //如果按鍵2按下,播放第二首</p><p><b> {</b></p><p> buzzer02(); //7種聲音,由高到低 </p><p> for (i = 0; i < 8; i ++) &
75、lt;/p><p><b> {</b></p><p> PORTA = (1 << i);</p><p> if(count3==1)//如果按鍵3按下,播放速度變慢</p><p> DelayMs(1000);</p><p> DelayMs(200);
76、 </p><p><b> }</b></p><p> PORTA=0X00; //關(guān)閉所有LED</p><p><b> }</b></p><p><b> }</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)音樂播放器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的音樂播放器
- 基于單片機(jī)音樂播放器設(shè)計(jì)-課程設(shè)計(jì)論文
- 單片機(jī)音樂播放器課程設(shè)計(jì)報(bào)告
- 單片機(jī)音樂播放器課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)--基于單片機(jī)的簡(jiǎn)易音樂播放器
- 基于atmega16單片機(jī)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——紅外遙控音樂播放器
- 課程設(shè)計(jì)-基于單片機(jī)的音樂盒播放器設(shè)計(jì)
- 基于atmega16單片機(jī)鬧鐘設(shè)計(jì)
- 硬件課程設(shè)計(jì)報(bào)告--基于51單片機(jī)音樂播放器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子音樂播放器
- 基于51單片機(jī)的音樂播放器設(shè)計(jì)
- (湖南工業(yè)大學(xué)單片機(jī)課程設(shè)計(jì)-)基于51單片機(jī)的音樂播放器
- 基于單片機(jī)音樂播放器設(shè)計(jì)[文獻(xiàn)綜述]
- 基于單片機(jī)音樂播放器設(shè)計(jì)軟件設(shè)計(jì)
- 基于單片機(jī)的自動(dòng)音樂播放器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的音樂播放器
- 畢業(yè)設(shè)計(jì)-- 基于單片機(jī)的音樂播放器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)—基于單片機(jī)的音樂播放器
評(píng)論
0/150
提交評(píng)論