版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)</b></p><p> 題目 音樂演奏器設(shè)計(jì)</p><p> 2010年10月30日</p><p><b> 音樂演奏器設(shè)計(jì)</b></p><p> 摘要:本次設(shè)計(jì)的遠(yuǎn)程音樂演奏器是日新月異的電子技術(shù)的產(chǎn)物,該演奏器電路主要由ATMEG32
2、、PT2262對(duì)數(shù)據(jù)進(jìn)行編碼,送入發(fā)射模塊F05C,通過天線發(fā)射出去;接收模塊J04E則是將收到的信號(hào)進(jìn)行調(diào)解,然后送人解碼器PT2272解碼,解碼出數(shù)據(jù)。最后送入功放發(fā)出美妙的音樂。經(jīng)測試音階頻率、功放、存儲(chǔ)并重放等各項(xiàng)性能指標(biāo)均達(dá)到設(shè)計(jì)要求。</p><p> 關(guān)鍵詞:遠(yuǎn)程音樂器;編碼器;解碼器;發(fā)射模塊;接收模塊</p><p><b> 目錄</b><
3、;/p><p><b> 摘要1</b></p><p><b> 目錄2</b></p><p><b> 緒論3</b></p><p><b> 1.系統(tǒng)設(shè)計(jì)3</b></p><p> 1.1 總體設(shè)計(jì)方案的論
4、證與比較3</p><p> 2.單元硬件電路設(shè)計(jì)4</p><p> 2.1 功率放大電路4</p><p> 2.2 無線數(shù)據(jù)收發(fā)電路5</p><p><b> 3.軟件設(shè)計(jì)6</b></p><p> 3.1 接收部分程序設(shè)計(jì)6</p><p>
5、; 3.2 發(fā)射部分程序設(shè)計(jì)7</p><p><b> 4.系統(tǒng)測試7</b></p><p> 4.1 測試使用的儀器7</p><p> 4.2 指標(biāo)測試和測試結(jié)果7</p><p> 4.2.2 功率放大器額定功率測試8</p><p> 4.2.3 帶寬及距離測試
6、8</p><p><b> 結(jié)論8</b></p><p><b> 致謝9</b></p><p><b> 參考文獻(xiàn)9</b></p><p><b> 附錄A10</b></p><p><b>
7、 附錄B11</b></p><p><b> 附錄C14</b></p><p><b> 緒論</b></p><p> 傳統(tǒng)的音樂演奏器是通過線互相連接的,所以設(shè)計(jì)一款新型的無線音樂演奏器變得非常有價(jià)值。音樂演奏器由主系統(tǒng)和從系統(tǒng)兩大部分組成。</p><p><b
8、> 1、系統(tǒng)設(shè)計(jì)</b></p><p> 1.1總體設(shè)計(jì)方案的論證與比較</p><p> ?。?)音樂演奏器設(shè)計(jì)方案一</p><p> 音樂演奏器設(shè)計(jì)方案一如圖1-1所示。系統(tǒng)主要以ATMEGA8和ATMEGA32單片機(jī)為核心并外接一些外圍單元電路。ATMEGA8和ATMEGA32是基于增強(qiáng)的ARV RISC結(jié)構(gòu)的低功耗CMOS微控制器
9、,由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。其價(jià)格僅與低檔單片機(jī)相當(dāng),在加上ARV單片機(jī)的系統(tǒng)內(nèi)可編程特性,使得無需購買昂貴的仿真器和編程器也可進(jìn)行單片機(jī)嵌入式系統(tǒng)的設(shè)計(jì)和開發(fā)。</p><p> 圖1-1 ATMEGA構(gòu)成的演奏器結(jié)構(gòu)框圖</p><p> (2)音樂演奏器方案二</p><p> 音樂演奏器設(shè)
10、計(jì)方案二圖1-2所示。系統(tǒng)主要以AT89C51單片機(jī)為核心并外接一些外圍單元電路。ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了靈活性高且價(jià)廉的方案。極限工作頻率是24M,同時(shí)支持并行寫入。</p><p> 圖1-2 AT89C51構(gòu)成的演奏器結(jié)構(gòu)框圖</p><p> 經(jīng)上述方案論證與比較,AVR單片機(jī)比AT89C51在運(yùn)行速度、程序燒寫優(yōu)越,還有價(jià)格相當(dāng)
11、,故本系統(tǒng)采用方案一。</p><p> 2、單元硬件電路設(shè)計(jì)</p><p><b> 2.1功率放大電路</b></p><p> 功率放大電路采用TDA2030高保真集成功率放大芯片來設(shè)計(jì),如圖2-1所示。器輸出功率大于10W。VD1、VD2是保護(hù)二極管,RP是音量調(diào)節(jié)電位器,R2、R3決定了該電路交流負(fù)反饋的強(qiáng)弱閉環(huán)增益。該電路閉
12、環(huán)增益為(R2+R3)/R2=(0.68+22)/0.68=33.3倍,C4、C5為電源高頻旁路電容,防止電路產(chǎn)生自激震蕩。C2起隔直流作用,以使電路直流為100%負(fù)反饋。靜態(tài)工作點(diǎn)穩(wěn)定性好。</p><p> 圖2-1功率放大電路圖</p><p> 2.2無線電數(shù)據(jù)收發(fā)電路</p><p> 如圖2-2所示。單片機(jī)將4位并行數(shù)據(jù)輸出至編碼器PT2262,P
13、T2262對(duì)4位并行數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)換成串行信號(hào)送人發(fā)射模塊F05C,通過天線發(fā)射出去;接收模塊則是將收到的信號(hào)進(jìn)行解調(diào),然后送人解碼器PT2272,解碼出4位并行數(shù)據(jù)。采用了專用發(fā)射模塊F05C和接收模塊J04E,該對(duì)模塊是專為這種編碼電路無線傳輸而設(shè)計(jì)的低速傳輸模塊。該模塊采用SMT樹脂封裝,體積小巧,工作在315MHz頻率上,可以長時(shí)間連續(xù)發(fā)送和接收。發(fā)射模塊F05C采用聲表諧振器穩(wěn)頻,頻率一致性好,免調(diào)試,特別適合多發(fā)一收無線遙
14、控及數(shù)據(jù)傳輸系統(tǒng)。</p><p> 圖2-2無線電數(shù)據(jù)收發(fā)電路</p><p><b> 3、軟件設(shè)計(jì)</b></p><p> 采用C編寫程序比匯編語言更符合人們的思考習(xí)慣,開發(fā)者可以擺脫與硬件無必要的接觸,更專心的考慮功能和算法而不是考慮一些細(xì)節(jié)問題,這樣就減少了開發(fā)和調(diào)試時(shí)間。C語言具有良好的程序語言結(jié)構(gòu),適用于模塊化程序設(shè)計(jì),又
15、便于整個(gè)程序的管理,還可增強(qiáng)可讀性和移植性。程序分為接收部分和發(fā)射部分。</p><p> 3.1接收部分程序設(shè)計(jì)</p><p> 圖3-1接收部分程序框圖</p><p> 3.2發(fā)射部分程序設(shè)計(jì)</p><p> 圖3-2發(fā)射部分程序框圖</p><p><b> 4、系統(tǒng)測試</b&g
16、t;</p><p> 4.1測試使用的儀器</p><p> 示波器、函數(shù)信號(hào)發(fā)生器、數(shù)字式萬用表、頻率計(jì)</p><p> 4.2指標(biāo)測試和測試結(jié)果</p><p> 4.2.1音節(jié)頻率準(zhǔn)確度測試</p><p> 采用頻率計(jì)測量準(zhǔn)確度,表4.2.1為記錄表格。式4.2.1為頻率準(zhǔn)確度的計(jì)算公式。<
17、/p><p><b> ?。?.2.1)</b></p><p> 式中,A為頻率準(zhǔn)確度,為標(biāo)準(zhǔn)頻率,為被測頻率。</p><p> 表4.2.1音階頻率準(zhǔn)確度記錄表</p><p> 4.2.2功率放大器額定功率測試</p><p> 由示波器觀察其輸出波形。功放輸入端輸入頻率為1KHz,峰
18、峰值為200mv的正弦波,額定功率可達(dá)3.54W。式4.2.2為額定功率的計(jì)算公式。</p><p><b> (4.2.2) </b></p><p> 4.2.3帶寬及距離測試</p><p> 帶寬檢測采用函數(shù)信號(hào)發(fā)生器把輸出信號(hào)接在功放輸入端,示波器接在喇叭兩端,經(jīng)測試,功率放大器帶寬在大于50Hz~5000Hz輸出信號(hào)無明顯失真
19、,達(dá)到設(shè)計(jì)要求。</p><p> 距離測試:經(jīng)實(shí)際測試,在距離6m處,接收部分能清晰地收到發(fā)射部分發(fā)出的信號(hào)。</p><p><b> 結(jié)論</b></p><p> 本次設(shè)計(jì)主要由發(fā)射和接收兩大部分組成。由于采用單片機(jī)編程使得音階的頻率準(zhǔn)確性大大提高,還采用發(fā)光二極管來指示使得工作狀態(tài)簡單明了。本作品達(dá)到的要求和技術(shù)指標(biāo)如下:<
20、;/p><p> (1)無線鍵盤控制功能,距離>5m;</p><p> (2)樂曲的音階于12個(gè)音階內(nèi),C調(diào)、節(jié)拍頻率1Hz;</p><p> ?。?)一次演奏后可以存儲(chǔ)并重放;</p><p> (4)音階準(zhǔn)確,隨機(jī)抽測一點(diǎn)頻率,頻率誤差均達(dá);</p><p> ?。?)功率放大器滿足以下要求:</
21、p><p> ?、兕~定功率大于2W(負(fù)載電阻8的情況下);</p><p> ?、趲挻笥?0Hz~5000Hz(負(fù)載電阻8的情況下);</p><p> ③在額定功率及帶寬范圍內(nèi)用示波器觀察無明顯失真。</p><p> ?。?)功率放大器失真度<5%(1000Hz時(shí),滿功率輸出);</p><p><b&
22、gt; 致謝</b></p><p> 畢業(yè)設(shè)計(jì)得以完成,要感謝的人實(shí)在太多了,首先要感謝我的指導(dǎo)老師**,因?yàn)樵O(shè)計(jì)是在**老師的悉心指導(dǎo)下完成的,傾注了**老師大量的心血。**老師還指導(dǎo)我的論文的寫作的方向和構(gòu)架,并對(duì)本論文進(jìn)行逐字批閱,指正出其中錯(cuò)誤之處,使我有了思考的方向,他循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪,他一絲不茍的作風(fēng),將一直是我學(xué)習(xí)的榜樣。**老師要指導(dǎo)很多同學(xué)的論文,
23、加上本來就有的教學(xué)任務(wù),工作之大可想而知,但在一次次的回稿中,精確到每一個(gè)字的批改給了我深刻的印象,使我在論文之外明白了做學(xué)問所應(yīng)有的態(tài)度。在此,謹(jǐn)向**老師表示崇高的敬意和衷心的感謝!設(shè)計(jì)的順利完成,還離不開**同學(xué)的幫助,另外,還要感謝在大學(xué)期間所有傳授我知識(shí)的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識(shí),感謝所有給我?guī)椭睦蠋?,謝謝你們!</p><p><b> 參考文獻(xiàn)</b>
24、</p><p> ?。?)曾令琴,模擬電子技術(shù)[M],北京:人民郵電出版社,2008。</p><p> ?。?)張靖武,單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真[M],北京:電子工業(yè)出版社,2007。</p><p> ?。?)付曉光,單片機(jī)原理與實(shí)用技術(shù)[J],北京:清華大學(xué)出版社;北方交通出版社,2004。</p><p> ?。?)葉建
25、波,余志強(qiáng).EDA技術(shù)[M].北京 :清華大學(xué)出版社;北京交通大學(xué)出版社,2005。</p><p> ?。?)黃志瑋,全國大學(xué)生電子設(shè)計(jì)競賽技能訓(xùn)練[M].北京:北京航天大學(xué)出版社,2007。</p><p> 附錄A 主要元器件清單</p><p><b> 附錄B 電路原理圖</b></p><p><b
26、> 圖B1 主系統(tǒng)</b></p><p><b> 圖B2 從系統(tǒng)</b></p><p> 圖B3 功率放大電路</p><p> 圖B4 功放電源電路</p><p><b> 附錄 C程序</b></p><p><b> 從系
27、統(tǒng)程序</b></p><p> #include <iom8v.h></p><p> #include <macros.h></p><p> #include <delay.h></p><p> #pragma interrupt_handler timer2_isr:4<
28、/p><p> #define TD_PORT PORDTD</p><p> #define RD_PORT PIND</p><p> #define TD_EN_ON PORDTB &=0XEF</p><p> #define TD_EN_OFF PORDTB |=0X10</p&g
29、t;<p> #define RD_FLAG PINB &0X08</p><p> #define ledA_ON PORTC |=(0X01<<5)</p><p> #define ledA_OFF PORTC &=~(0X01<<5)</p><p> #define
30、 ledB_ON PORTC |=(0X01<<4)</p><p> #define ledB_OFF PORTC &=~(0X01<<4)</p><p> #define ledC_ON PORTC =(0X01<<3)</p><p> #define ledC_OFF PO
31、RTC &=~(0X01<<3)</p><p> #define ledD1_ON PORTC |=(0X01<<2)</p><p> #define ledD1_OFF PORTC &=~(0X01<<2)</p><p> #define SD_TIME 0X01</p&
32、gt;<p><b> //頻率基數(shù)</b></p><p> const unsigned int Fre_Data[11]={</p><p> 18208,16216,14447,13636,12149,10823,10216,9100,8108,7224,6818};</p><p> //volatile uns
33、ingned char</p><p> volatile unsingned char Sound_Delay;</p><p> volatile unsingned char Sound_Data;</p><p> volatile unsingned char Led_Flag;</p><p><b> //CT
34、C</b></p><p> void time1_init(void)</p><p><b> {</b></p><p> TIMSK=0X01;</p><p> TCNT1=0X00;</p><p> TCCRIA=OXOO;//OxO1 b通道,OX40 a通道
35、,0X50 兩通道</p><p> TCCR1B=0X08;//0x09 啟動(dòng)</p><p> OCR1A=0XFFFF;</p><p> OCR1B=0XFFFF; </p><p><b> }</b></p><p><b> //10ms</b><
36、;/p><p> void time2_init(void)</p><p><b> {</b></p><p> TIMSK=0X08;</p><p> TCCR2=0X0F;//1024</p><p><b> OCR2=117;</b></p>
37、<p><b> }</b></p><p> //time2 中斷</p><p> void timer2_isr(void)</p><p><b> {</b></p><p> if(Sound_Delay)</p><p><b>
38、 {</b></p><p> Sound_Delay--;</p><p><b> }</b></p><p><b> }</b></p><p><b> //完成 </b></p><p> void port_ini
39、t(void)</p><p><b> {</b></p><p> PORT=0x00;</p><p> DDRD=0x0F;</p><p> PORTB=0x10;</p><p> DDRB=0x16;</p><p> PORTC=0x00;<
40、;/p><p> DDRC=0x3F;</p><p><b> }</b></p><p> void reg_init(void)</p><p><b> {</b></p><p> Sound_Delay=0X00;</p><p>
41、 Led_Flag=0x00;</p><p> Sound_Data=0x00;</p><p><b> }</b></p><p> void read_data(void)</p><p><b> {</b></p><p> unsingned char
42、 rd_temp;</p><p> if(RD_FLAG)</p><p><b> {</b></p><p><b> LedD1_ON;</b></p><p> rd_temp=RD_PORT;</p><p> rd_temp &=0xf0;&l
43、t;/p><p> rd_temp=(rd_temp>>4);</p><p> if(rd_temp==0x01)</p><p><b> {</b></p><p><b> LedA_ON;</b></p><p><b> LedB_OF
44、F;</b></p><p><b> LedC_OFF;</b></p><p> Led_Flag=0x01;</p><p><b> }</b></p><p> if(rd_temp==0x02)</p><p><b> {<
45、/b></p><p><b> LedB_ON;</b></p><p><b> LedA_OFF;</b></p><p><b> LedC_OFF;</b></p><p> Led_Flag=0x02;</p><p><
46、b> }</b></p><p> if(rd_temp==0x03)</p><p><b> {</b></p><p><b> LedC_ON;</b></p><p><b> LedB_OFF;</b></p><p&
47、gt;<b> LedA_OFF;</b></p><p> Led_Flag=0x03;</p><p><b> }</b></p><p> if(rd_temp==0x04)</p><p><b> {</b></p><p><
48、;b> }</b></p><p> if(rd_temp>=0x05)</p><p><b> {</b></p><p> Sound_Delay=SD_TIME;</p><p> if(Sound_Data !=rd_temp)</p><p> So
49、und_Data=rd_temp;</p><p> TCCR1A=0X00;</p><p> TCCR1B=0X08;</p><p> TCNT1=0X00;</p><p> OCR1A=Fre_Data[Sound_Data-0X05];</p><p> TCCR1A=0X40;</p>
50、;<p> TCCR1B=0X09;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p&g
51、t;<b> {</b></p><p> LedD1_OFF;</p><p> if(Sound_Delay==0x00)</p><p><b> {</b></p><p> TCCR1A=0X00;</p><p> TCCR1B=0X08;</p
52、><p> TCNT1=0X00;</p><p> Sound_Data=0x00;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> v
53、oid main(void)</p><p><b> {</b></p><p> port_init();</p><p> reg_init();</p><p> time1_init();</p><p> time2_init();</p><p>&
54、lt;b> SEI();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> read_data();</p><p><b> }</b></p><p>&l
55、t;b> }</b></p><p><b> //主系統(tǒng)程序:</b></p><p> #include <iom32v.h></p><p> #include <macros.h></p><p> #inculde <delay.h></p&
56、gt;<p> #pragma interrupt_handler timer2_isr:5</p><p> #define TD_PORT PORT</p><p> #define RD_PORT PINC</p><p> #define TD_EN_ON PORTA &=0XBF</p>&
57、lt;p> #define TD_EN_OFF PORTA |=0X40</p><p> #define TD_FLAG PINA & 0X40</p><p> #define KevHigh PIND </p><p> #define KeyLow PINB</p><p> #
58、define Key1 0X3DFF</p><p> #define Key2 OX3F7F</p><p> #define Key3 OX3FDF</p><p> volatile unsingned int Sound_Long;</p><p> volatile unsingne
59、d int Sound_Cut;</p><p> volatile unsingned char Mold;</p><p> volatile unsingned char Run_Flag;</p><p> volatile unsingned char Time2_Cut;</p><p> volatile unsingn
60、ed char Key_Sure;</p><p> volatile unsingned char Key_Cur;</p><p> volatile unsingned char Now_Data;</p><p> volatile unsingned char Led_Time;</p><p> const unsign
61、ed int Sound_key[11]={</p><p> 0x1FFF,0x2FFF,OX37FF,0x3BFF,0X3EFF,</p><p> 0x3FBF,0X3FEF,0X3FF7,0X3FFB,0x3FFD,</p><p><b> 0x3FFF</b></p><p><b> };
62、</b></p><p><b> //10ms</b></p><p> void time2_init(void)</p><p><b> {</b></p><p> TIMSK=0X80;</p><p> TCCR2=0X0F;//1024&
63、lt;/p><p><b> OCR2=117;</b></p><p><b> }</b></p><p> void eep_write(unsigned int Address, unsigned char Data)</p><p><b> {</b></
64、p><p> while(EECR & (1<<EEWE));</p><p> EEAR=Address;</p><p> EEDR=Data;</p><p> EECR |=(1<<EEMWE);</p><p> EECR |=(1<<EEWE);</p
65、><p><b> }</b></p><p> unsingned char eep_read(unsigned int Address)</p><p><b> {</b></p><p> while(EECR &(1<<EEWE));</p><
66、p> EEAR=Address;</p><p> EECR |=(1<<EERE);</p><p> return EEDR;</p><p><b> }</b></p><p> //time2 中斷</p><p> void timer2_isr(void
67、)</p><p><b> {</b></p><p> unsigned int TItemp;</p><p> unsigned int TItemp2;</p><p> Key_Sure=0x01;</p><p> Time2_Cut++;</p><p
68、> if(Time2_Cut>=0x0a)</p><p><b> {</b></p><p> Time2_Cut=0x00;</p><p> if(Sound_Long <500)</p><p><b> {</b></p><p>
69、TItemp2=Sound_Long+4;</p><p> eep_write(TItemp2,Now_Data);</p><p> Sound_Long ++;</p><p><b> }</b></p><p><b> else</b></p><p>&
70、lt;b> {</b></p><p> Sound_Long=0x00;</p><p> Sound_Cut=0x00;</p><p> Run_Flag=0x00;</p><p><b> }</b></p><p><b> }</b>
71、;</p><p> if((Mold==0x03)&&(Run_Flag))</p><p><b> {</b></p><p> if(Sound_Long >Sound_Cut)</p><p><b> {</b></p><p>
72、TItemp2=Sound_Cut_cut+4;</p><p> TItemp=eep_read(TItemp2);</p><p> if((TItemp>=0x10)&&(TItemp<=0x05))</p><p><b> {</b></p><p> TItemp=0x00
73、;</p><p><b> }</b></p><p> TD_EN_OFF;</p><p> TD_PORT &=0xF0;</p><p> TD_PORT |=TItemp;</p><p><b> TD_EN_ON;</b></p>
74、<p> delay_nms(5);</p><p> TD_EN_OFF;</p><p> Sound_Cut ++;</p><p><b> }</b></p><p><b> else</b></p><p><b> {<
75、;/b></p><p> Sound_Long=0x00;</p><p> Sound_Cut=0x00;</p><p> Run_Flag=0x00;</p><p><b> }</b></p><p><b> }</b></p>&
76、lt;p><b> }</b></p><p><b> }</b></p><p><b> //完成</b></p><p> void port_init(void)</p><p><b> {</b></p><
77、;p> PORT=0x00;</p><p> DDRC=0x0F;</p><p> PORTA=0x40;</p><p> DDRA=0x7F;</p><p> PORTB=0xFF;</p><p> DDRB=0x00;</p><p> PORTD=0x3F;&
78、lt;/p><p> DDRD=0x00;</p><p><b> }</b></p><p> void reg_init(void)</p><p><b> {</b></p><p> Sound_Long=0x00;</p><p>
79、 Sound_Cut=0X00;</p><p> Mold=0X01;</p><p> Run_Flag=0X00;</p><p> Time2_Cut=0X00;</p><p> Key_Sure=0x00;</p><p> Key_Cur=0x00;</p><p>
80、 Key_Data=0x3FFF;</p><p> Now_Data=0x00;</p><p><b> }</b></p><p> void Online_Out(void)</p><p><b> {</b></p><p> if((TD_FlAG))
81、==0)</p><p><b> {</b></p><p> TD_EN_OFF;</p><p> delay nus(10);</p><p> TD_PORT &=0xF0;</p><p> TD_PORT |=Mold;</p><p>&l
82、t;b> TD_EN_ON;</b></p><p><b> }</b></p><p><b> }</b></p><p> void Key_Find(void)</p><p><b> {</b></p><p>
83、 unsigned int KF_Temp;</p><p> unsigned char KF_Temp;</p><p> KF_Temp=KeyHigh & 0x3f;</p><p> KF_temp|=KeyLow;</p><p> if(KF_Temp !=0x3fff)</p><p>
84、;<b> {</b></p><p> if(KF_Temp==Key_Data)</p><p><b> {</b></p><p> Key_Cur ++;</p><p> if(Key_Cur>=0x08)</p><p><b> {
85、</b></p><p> Key_Cur=0x04;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>
86、;</p><p> Key_Data=KF_Temp;</p><p> Key_Cur=0x00;</p><p><b> }</b></p><p> if((KF_Temp==KEY1)&&(Key_Cur==0x04))//KEY1</p><p><b&
87、gt; {</b></p><p> if((Mold==0x02)&&(Run_Flag))</p><p><b> {</b></p><p> KF_Temp2=Sound_Long&0xFF;</p><p> eep_write(0x02,KF_Temp2);&l
88、t;/p><p> KF_Temp2=(Sound_Long>>8);</p><p> eep_write(0x01,KF_Temp2);</p><p><b> }</b></p><p> Sound_Long=0x00;</p><p> Sound_Cut=0x00;
89、</p><p> Run_Flag=0X00;</p><p> Mold=0X01;</p><p> TD_EN_OFF;</p><p> delay_nus(10);</p><p> TD_PORT&=0xF0;</p><p> TD_PORT |=0X01;&
90、lt;/p><p><b> TD_EN_ON;</b></p><p> Now_Data=0x00;</p><p><b> }</b></p><p> if((KF_Temp==KEY2)&&(Key_Cur==0x04))//KEY2</p><p
91、><b> {</b></p><p> Sound_Long=0x00;</p><p> Sound_Cut=0x00;</p><p> eep_write(0x01,0x00); </p><p> eep_write(0x02,0x00);</p><p> ee
92、p_write(0x03,0x00);</p><p> TD_EN_OFF;</p><p> delay_nus(10);</p><p> TD_PORT &=0xF0;</p><p> TD_PORT |=0X02;</p><p><b> TD_EN_ON;</b>
93、</p><p> Mold=0X02;</p><p> Run_Flag=0X01;</p><p> Now_Data=0x00;</p><p><b> }</b></p><p> if((KF_Temp==KEY3)&&(Key_Cur==0x04))//K
94、EY3</p><p><b> {</b></p><p> if((Mold==0x02)&&(Run_Flag))</p><p><b> {</b></p><p> KF_Temp2=Sound_Long&0xFF;</p><p>
95、; eep_write(0x02,KF_Temp2);</p><p> KF_Temp2=(Sound_long>>8);</p><p> eep_write(0x01,KF_Temp2);</p><p><b> }</b></p><p> Sound_Long=eep_read(0x01
96、);</p><p> Sound_Long=(Sound_Long<<8);</p><p> Sound_Long=eep_read(0x02);</p><p> Sound_Cut=0x00;</p><p> TD_EN_OFF;</p><p> delay_nus(10);</
97、p><p> TD_PORT&=0xF0;</p><p> TD_PORT|=0x03;</p><p><b> TD_EN_ON;</b></p><p> if((Sound_Long>0)&&(Sound_Long<511))</p><p>&l
98、t;b> {</b></p><p> Run_Flag=0x00;</p><p><b> }</b></p><p> Mold=0X03;</p><p> Now_Data=0x00;</p><p><b> }</b></p&
99、gt;<p> if((Mold)==0x01)||((Mold==0X02)&&(Run_Flag==0X01)))</p><p><b> {</b></p><p> for(KF_Temp2=0X00;KF_Temp2<11;KF_Temp2++)</p><p><b> {&l
100、t;/b></p><p> if(KF_Temp==Sound_Key[KF_Temp2])</p><p><b> {</b></p><p> TD_EN_OFF;</p><p> delay_nus(10);</p><p> Now_Data=KF_Temp2+0x0
101、5;</p><p> TD_PORT |=Now_Data;</p><p><b> TD_EN_ON;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b
102、></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Key_Data=0x3fff;</p><p> Key_Cur=0x00;</p>
103、;<p><b> {</b></p><p> TD_EN_OFF;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> v
104、oid LED(void)</p><p><b> {</b></p><p> PORTA&=0XF0;</p><p> PORTA|=(1<<(Mold-1));</p><p> if((TD_FLAG)==0)</p><p><b> {<
105、;/b></p><p> PORT |=(1<<3);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> PORTA &=0xf
106、7;</p><p><b> }</b></p><p> if(Run_Flag)</p><p><b> {</b></p><p> if(Led_Time >5)</p><p><b> {</b></p>&
107、lt;p> Led_Time=0x00;</p><p> if(Mold==2)</p><p><b> {</b></p><p> PORT^=0X10;</p><p><b> }</b></p><p><b> else</b
108、></p><p><b> {</b></p><p> PORT &=0XEF;</p><p><b> }</b></p><p> if(Mold==3)</p><p><b> {</b></p>&l
109、t;p> PORT^=0X20;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> PORTA &=0XDF;</p><p><b&g
110、t; }</b></p><p><b> }</b></p><p> Led_Time ++;</p><p><b> }</b></p><p><b> }</b></p><p> void main(void)<
111、;/p><p><b> {</b></p><p> port_init();</p><p> reg_init();</p><p> time2_init();</p><p><b> SEI();</b></p><p><b&
112、gt; while(1)</b></p><p><b> {</b></p><p> Key_Sure=0x00;</p><p> Key_Find();</p><p><b> LED();</b></p><p><b> }&l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂演奏器設(shè)計(jì)課程設(shè)計(jì)
- 基于單片機(jī)音樂演奏系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 智能音樂演奏器
- 基于vhdl的音樂演奏電路設(shè)計(jì)開發(fā)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)論文-智能音樂演奏器設(shè)計(jì)【精校排版】
- 電子音樂演奏器設(shè)計(jì)【文獻(xiàn)綜述】
- 電子音樂演奏器設(shè)計(jì)【開題報(bào)告】
- 微機(jī)原理課程設(shè)計(jì)--音樂演奏
- 微機(jī)原理課程設(shè)計(jì)--音樂演奏
- 匯編課程設(shè)計(jì)--音樂演奏程序設(shè)計(jì)
- 基于vhdl的音樂演奏電路設(shè)計(jì)開發(fā)【畢業(yè)設(shè)計(jì)+開題報(bào)告+文獻(xiàn)綜述】
- 陳尚杰---音樂演奏器設(shè)計(jì)(一稿).doc
- 任務(wù)書-基于dsp的音樂演奏系統(tǒng)設(shè)計(jì)
- 陳尚杰-智能音樂演奏器(定稿).doc
- 陳尚杰-智能音樂演奏器(二稿).doc
- 基于vhdl的音樂演奏電路設(shè)計(jì)開發(fā)【文獻(xiàn)綜述】
- 基于vhdl的音樂演奏電路設(shè)計(jì)開發(fā)【開題報(bào)告】
- 單片機(jī)電子琴課程設(shè)計(jì)-- 基于單片機(jī)的音樂演奏器設(shè)計(jì)
- 音樂播放器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)論文 音樂播放器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論