版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機應(yīng)用與仿真訓(xùn)練》設(shè)計報告</p><p> ------基于AT89S52單片機簡易電子琴設(shè)計</p><p> 姓 名: </p><p> 學(xué) 號: </p><p> 專業(yè)班級: 電信08—2班
2、</p><p> 指導(dǎo)老師: </p><p> 所在學(xué)院: 電氣工程與自動化學(xué)院 </p><p> 2011年11月22 日</p><p><b> 摘要</b></p><p> 設(shè)計的主要內(nèi)容是用 AT89S52單片機為核心控制元
3、件,通過脈沖觸發(fā)產(chǎn)生出電子音調(diào),設(shè)計一個簡易的電子琴。以單片機作為主控核心,與鍵盤、蜂鳴器等模塊組成控制模塊。該系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用與參考價值。</p><p> 關(guān)鍵詞:AT89S52;單片機;脈沖觸發(fā);電子琴設(shè)計</p><p><b> 目錄</b></p><p&
4、gt;<b> 1 概述2</b></p><p> 1.1 功能簡介2</p><p> 1.2 功能的實現(xiàn)2</p><p> 1.3 音樂產(chǎn)生原理3</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計4</p><p> 2.1 總體方案4</p><p
5、> 2.2 硬件部分4</p><p> 2.2.1 矩陣鍵盤部分4</p><p> 2.2.2 揚聲器接口電路部分5</p><p><b> 3 軟件設(shè)計6</b></p><p> 4 Proteus軟件仿真8</p><p> 5 課程設(shè)計體會9</p
6、><p><b> 參考文獻10</b></p><p> 附錄1 源程序代碼10</p><p> 附錄2系統(tǒng)原理圖18</p><p><b> 1 概述</b></p><p><b> 1.1 功能簡介</b></p>
7、<p> 電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。</p><p> 本簡易電子琴的設(shè)計可實現(xiàn)的功能如下:程序中預(yù)存了一首音樂《月亮代表我的心》,通過一個獨立鍵盤可以實現(xiàn)對該音樂的播放和停止操作的控制。4*4矩陣鍵盤的16個按鍵分別對應(yīng)著16個不同的音符,
8、分為高、低兩個八度,當(dāng)按下某一按鍵,會發(fā)出相應(yīng)的音調(diào)。按下按鍵時,揚聲器會發(fā)出聲音,松開按鍵后,揚聲器停止發(fā)聲,按鍵的時間越長,發(fā)聲時間越久。連續(xù)按下不同的按鍵,可以實現(xiàn)樂曲的演奏。</p><p><b> 1.2 功能的實現(xiàn)</b></p><p> 功能的實現(xiàn)部分分為軟件和硬件兩部分來簡介。</p><p> 1.3 音樂產(chǎn)生原理&
9、lt;/p><p> 一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,只需將一首歌的音階和頻率相對應(yīng)即可。</p><p> 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的
10、時間。利用定時器計時半周期時間,每當(dāng)計時終止后就將P1.0反相,然后重復(fù)計時再反相。就可在P1.0引腳上得到此頻率的脈沖。</p><p> 利用AT89S52的內(nèi)部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數(shù)器計時956μs/1μs=956,每計數(shù)956次時將I/O反相,就可得到中
11、音DO(523Hz)。</p><p> 計數(shù)脈沖值與頻率的關(guān)系式(如式2-1所示)是:</p><p> N=fi÷2÷fr 2-1</p><p> 式中,N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。</p><p
12、> 其計數(shù)初值T的求法如下:</p><p> T=65536-N=65536-fi÷2÷fr 2-2</p><p> 例如:設(shè)K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數(shù)值。</p><p> T=65536-N=65536-fi÷2&
13、#247;fr=65536-1000000÷2÷fr=65536-500000/fr</p><p> 低音DO的T=65536-500000/262=63627</p><p> 中音DO的T=65536-500000/523=64580</p><p> 高音DO的T=65536-500000/1046=65059</p>
14、<p> 我們要為這個音符建立一個表格,單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù),音符表見附錄一。</p><p> 音樂的音拍,一個節(jié)拍為單位(C調(diào))(如表2-1所示)</p><p><b> 表2-1 曲調(diào)值表</b></p><p> 對于不同的曲調(diào)我們也可以用單片機的定時/計數(shù)器來完成。</p><
15、p> 程序流程圖如圖2.5。</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計</p><p><b> 2.1 總體方案</b></p><p> 本設(shè)計采用4*4鍵盤控制通過程序產(chǎn)生高八度和低八度音律,要考慮到軟件和硬件的匹配以及硬件電路焊接時的排版問題,否則建會帶來不必要的焊接麻煩,在編程序時要注意仿真與實際電路中可能的不符,&
16、lt;/p><p><b> 2.2 硬件部分</b></p><p> 本設(shè)計硬件電路共由以下幾部分構(gòu)成:矩陣鍵盤部分;揚聲器部分;AT89S52主控電路部分;獨立按鍵部分。</p><p> 2.2.1 矩陣鍵盤部分</p><p> 設(shè)計中采用AT89S51的并行口P3接4×4矩陣鍵盤,以P3.0-P
17、3.3作輸入線,以P3.4-P3.7作輸出線。每個按鍵有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關(guān)的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”實現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一
18、個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能,在本程序中,當(dāng)程序檢測到有鍵按下時,將查表使按鍵值與預(yù)存數(shù)據(jù)表中數(shù)據(jù)對應(yīng),并調(diào)用發(fā)聲程序。</p><p> 圖2.1 矩陣鍵盤的連接</p><p> 2.2.2 揚聲器接口電路部分</p><p> 仿真中的揚聲器一段接CPU的P2^4口,另一端接高電平。當(dāng)P
19、2^4口有電平變化時,揚聲器被驅(qū)動發(fā)聲。而在實物制作中,這樣是難以實現(xiàn)功能的,需要增加模擬電路以除去多余的干擾信號。也可選用集成芯片LM386作為揚聲器的驅(qū)動芯片。若使用LM386驅(qū)動揚聲器,通過相應(yīng)的模擬電路的設(shè)計,還可以實現(xiàn)音量的調(diào)節(jié)。不過,在平時做實物時,我們一般用一個三極管作為放大器,這次我采用的是8050</p><p> 圖2.2揚聲器接口電路</p><p><b&g
20、t; 3 軟件設(shè)計</b></p><p> 本設(shè)計使用Protues仿真軟件進行仿真,在程序設(shè)計部分,包括鍵盤掃描程序,音樂發(fā)聲程序。程序見附錄1。</p><p> 4*4矩陣鍵盤是由CPU控制I/O口來實現(xiàn)掃描的。具體程序見附錄二主程序鍵盤掃描部分。鍵盤掃描程序流程圖如圖2.4。</p><p> 程序首先給P3口賦值,然后讀取P3的狀態(tài),
21、將讀取的狀態(tài)值同所賦值相比較,如果二者不相同,則說明有鍵按下,子程序?qū)存I值返回主程序;否則,說明沒有鍵按下,程序繼續(xù)進行下一次掃描。 </p><p> 本系統(tǒng)的軟件流程圖如下</p><p> 圖 2.3 系統(tǒng)主程序流程</p><p><b> 鍵盤掃描程序流程圖</b></p><p> 圖 2.4鍵盤掃
22、描程序流程圖</p><p><b> 音樂發(fā)聲程序</b></p><p> 圖 2.5音樂發(fā)聲程序流程圖</p><p> 4 Proteus軟件仿真</p><p><b> 仿真電路圖</b></p><p><b> 5 課程設(shè)計體會</b
23、></p><p> 將程序燒入芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。本設(shè)計通過制作電子琴,將幾個模塊很好的融合,對使用單片機設(shè)計簡易電子琴進行了分析,并了解了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。說明一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,于是我們可以
24、利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂聲音放大。</p><p> 遇到的問題:在剛剛焊接好后,程序燒入芯片后,發(fā)現(xiàn)并不發(fā)聲,經(jīng)檢查才發(fā)現(xiàn)是對鍵盤沒看清楚,將鍵盤接亂了,另外,在硬件電路修改好后,發(fā)現(xiàn)每次按鍵時會引起蜂鳴器一直響,再按鍵時有可能會消失,經(jīng)檢查后知道是再每按鍵件程序后蜂鳴器對應(yīng)參值沒有直接置零。<
25、/p><p> 總之,這是一次動手能力的鍛煉,也是一次單片機知識的再回顧,還是對自己細(xì)心以及耐心能力的考察。</p><p><b> 參考文獻</b></p><p> [1] 賈立新、王涌.電子系統(tǒng)設(shè)計與實踐[M],清華大學(xué)出版社,2008年2月版; [2] 陶春鳴、陳享成、甕嘉民.單片機使用技術(shù)[M],人民郵電出版社,2008年4月版
26、; [3] 余發(fā)山.單片機原理及應(yīng)用技術(shù)[M],中國礦業(yè)大學(xué)出版社,2003年12月版; [4] 李光飛.單片機課程設(shè)計實例指導(dǎo)[M], 航空航天大學(xué)出版社,2004年9月版; [5] 余永權(quán).ATMEL89 系列單片機[M],北京航空航天大學(xué)出版社,2002年4 月版; [6] 胡宴如,耿蘇燕.模擬電子技術(shù)[M],高等教育出版社,2007年12月版; [7] 趙潤林,張迎輝.單片機原理與應(yīng)用教程[M],北京大學(xué)出版社,200
27、7年1月版; [8] 馬淑華、王鳳文.單片機原理與接口技術(shù)[M],北京郵電大學(xué)出版社,2005年10月版; [9] 李建忠.單片機原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2002 年5月版; [10] 楊子文.單片機原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2006 年4月版</p><p><b> 附錄1 源程序代碼</b></p><p> #i
28、nclude<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uint key,i,j,time,m,k;</p><p> uchar temp;</p><p>
29、 uchar STH0,STL0,STH1,STL1;</p><p> sbit sw=P2^7;</p><p> sbit speaker=P2^4;</p><p> sbit P37=P3^7;</p><p> sbit P36=P3^6;</p><p> sbit P35=P3^5;</
30、p><p> sbit P34=P3^4;</p><p> //月亮代表我的心數(shù)據(jù)表</p><p> code unsigned char sszymmh[]={ 0,2,1, 5,1,1, 1,2,3, 3,2,1, 5,2,3, 1,2,1, 7,1,3, </p><p> 3,2,1, 5,2,2, 0,2,1, 5,2,1,
31、 6,2,1, 7,2,2, 1,3,3, </p><p> 6,2,1, 6,2,1, 5,2,1, 5,2,5, 3,2,1, 2,2,1, 1,2,3, </p><p> 1,2,1, 1,2,2, 3,2,1, 2,2,1, 1,2,3, 1,2,1, 1,2,2, </p><p> 2,2,1, 3,2,1,2,2,2, 1,2,1,6,1,2
32、, 2,2,1, 3,2,1, 2,2,5, </p><p><b> };</b></p><p> // 音階頻率表高八位</p><p> code unsigned char FREQH[]={</p><p> 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, </p>
33、;<p> 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i</p><p> 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,</p><p> 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,</p><p><b> } ;
34、</b></p><p> // 音階頻率表低八位</p><p> code unsigned char FREQL[]={</p><p> 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,</p><p> 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1
35、,2,3,4,5,6,7,8,i</p><p> 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, </p><p> 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,</p><p><b> };</b></p><p> unsigned int code tab[]=
36、{ 64103,64260,64400, 64524,64580,64684,64777,</p><p> 64820,64898,64968,65030, 65058,65110,65157,65178,65217};</p><p> void key_music()</p><p><b> {</b></p>&l
37、t;p> unsigned char tmp;</p><p><b> P3=0xff;</b></p><p><b> P34=0;</b></p><p><b> temp=P3;</b></p><p> temp=temp&0x0f;<
38、;/p><p> tmp = temp;</p><p> if(temp!=0x0f)</p><p><b> {</b></p><p> for(i=50;i>0;i--)</p><p> for(j=200;j>0;j--); </p><p>
39、;<b> temp=P3;</b></p><p> temp=temp&0x0f;</p><p> //(temp!=0x0f)</p><p> if(temp==tmp)</p><p><b> {</b></p><p><b>
40、temp=P3;</b></p><p> temp=temp&0x0f;</p><p> switch(temp)</p><p><b> {</b></p><p> case 0x0e:</p><p><b> key=0;</b>&
41、lt;/p><p><b> break;</b></p><p> case 0x0d:</p><p><b> key=1;</b></p><p><b> break;</b></p><p> case 0x0b:</p>
42、<p><b> key=2;</b></p><p><b> break;</b></p><p> case 0x07:</p><p><b> key=3;</b></p><p><b> break;</b></p
43、><p><b> }</b></p><p> //speaker=~speaker;</p><p> STH1=tab[key]/256;</p><p> STL1=tab[key]%256;</p><p><b> temp=P3;</b></p>
44、;<p> temp=temp & 0x0f; </p><p> while(temp!=0x0f)</p><p><b> {TR0=1;</b></p><p><b> temp=P3;</b></p><p> temp=temp
45、& 0x0f; </p><p><b> }</b></p><p><b> TR0=0;</b></p><p> speaker = 0;</p><p><b> }</b></p><p><
46、b> }</b></p><p><b> P3=0xff;</b></p><p><b> P35=0;</b></p><p><b> temp=P3;</b></p><p> temp=temp&0x0f;</p>
47、<p> tmp = temp;</p><p> if(temp!=0x0f)</p><p><b> {</b></p><p> for(i=50;i>0;i--)</p><p> for(j=200;j>0;j--); </p><p><b>
48、; temp=P3;</b></p><p> temp=temp&0x0f;</p><p> //(temp!=0x0f)</p><p> if(temp==tmp)</p><p><b> {</b></p><p><b> temp=P3;&
49、lt;/b></p><p> temp=temp&0x0f;</p><p> switch(temp)</p><p><b> {</b></p><p> case 0x0e:</p><p><b> key=4;</b></p>
50、<p><b> break;</b></p><p> case 0x0d:</p><p><b> key=5;</b></p><p><b> break;</b></p><p> case 0x0b:</p><p>
51、;<b> key=6;</b></p><p><b> break;</b></p><p> case 0x07:</p><p><b> key=7;</b></p><p><b> break;</b></p><
52、;p><b> }</b></p><p> //speaker=~speaker;</p><p> STH1=tab[key]/256;</p><p> STL1=tab[key]%256;</p><p><b> temp=P3;</b></p><p&
53、gt; temp=temp & 0x0f; </p><p> while(temp!=0x0f)</p><p><b> {TR0=1;</b></p><p><b> temp=P3;</b></p><p> temp=temp & 0x0
54、f; </p><p><b> }</b></p><p><b> TR0=0;</b></p><p> speaker = 0;</p><p><b> }</b></p><p><b> }&
55、lt;/b></p><p><b> P3=0xff;</b></p><p><b> P36=0;</b></p><p><b> temp=P3;</b></p><p> temp=temp&0x0f;</p><p>
56、 tmp = temp;</p><p> if(temp!=0x0f)</p><p><b> {</b></p><p> for(i=50;i>0;i--)</p><p> for(j=200;j>0;j--); </p><p><b> temp=P
57、3;</b></p><p> temp=temp&0x0f;</p><p> //(temp!=0x0f)</p><p> if(temp==tmp)</p><p><b> {</b></p><p><b> temp=P3;</b>
58、</p><p> temp=temp&0x0f;</p><p> switch(temp)</p><p><b> {</b></p><p> case 0x0e:</p><p><b> key=8;</b></p><p&g
59、t;<b> break;</b></p><p> case 0x0d:</p><p><b> key=9;</b></p><p><b> break;</b></p><p> case 0x0b:</p><p><b>
60、; key=10;</b></p><p><b> break;</b></p><p> case 0x07:</p><p><b> key=11;</b></p><p><b> break;</b></p><p>&
61、lt;b> }</b></p><p> //speaker=~speaker;</p><p> STH1=tab[key]/256;</p><p> STL1=tab[key]%256;</p><p><b> temp=P3;</b></p><p> te
62、mp=temp & 0x0f; </p><p> while(temp!=0x0f)</p><p><b> {</b></p><p><b> TR0=1;</b></p><p><b> temp=P3;</b></p&
63、gt;<p> temp=temp & 0x0f; </p><p><b> }</b></p><p><b> TR0=0;</b></p><p> speaker = 0;</p><p><b> }</b>
64、;</p><p><b> }</b></p><p><b> P3=0xff;</b></p><p><b> P37=0;</b></p><p><b> temp=P3;</b></p><p> temp=
65、temp&0x0f;</p><p> tmp = temp;</p><p> if(temp!=0x0f)</p><p><b> {</b></p><p> for(i=50;i>0;i--)</p><p> for(j=100;j>0;j--); <
66、;/p><p><b> temp=P3;</b></p><p> temp=temp & 0x0f;</p><p> //(temp!=0x0f)</p><p> if(temp==tmp)</p><p><b> {</b></p>&
67、lt;p><b> temp=P3;</b></p><p> temp=temp&0x0f;</p><p> switch(temp)</p><p><b> {</b></p><p> case 0x0e:</p><p><b>
68、 key=12;</b></p><p><b> break;</b></p><p> case 0x0d:</p><p><b> key=13;</b></p><p><b> break;</b></p><p>
69、case 0x0b:</p><p><b> key=14;</b></p><p><b> break;</b></p><p> case 0x07:</p><p><b> key=15;</b></p><p><b>
70、 break;</b></p><p><b> }</b></p><p> //speaker=~speaker;</p><p> STH1=tab[key]/256;</p><p> STL1=tab[key]%256;</p><p><b> temp
71、=P3;</b></p><p> temp=temp & 0x0f; </p><p> while(temp!=0x0f)</p><p><b> {TR0=1;</b></p><p><b> temp=P3;</b></p>
72、<p> temp=temp & 0x0f; </p><p><b> }</b></p><p><b> TR0=0;</b></p><p> speaker = 0;</p><p><b> }</b>&l
73、t;/p><p><b> }</b></p><p><b> }</b></p><p> void timer0(void) interrupt 1 using 0</p><p><b> {</b></p><p><b> i
74、f(sw==1)</b></p><p><b> {</b></p><p><b> TH0=STH1;</b></p><p><b> TL0=STL1;</b></p><p><b> }</b></p>&
75、lt;p><b> else </b></p><p><b> {</b></p><p><b> TH0=STH0;</b></p><p><b> TL0=STL0;</b></p><p><b> }</b&
76、gt;</p><p> speaker=~speaker;</p><p><b> }</b></p><p> void delay(unsigned char t)</p><p><b> {</b></p><p> unsigned char t1;
77、</p><p> unsigned long t2;</p><p> for(t1=0;t1<t;t1++)</p><p> { </p><p> for(t2=0;t2<8000;t2++)</p><p><b>
78、{</b></p><p><b> ;</b></p><p> } </p><p><b> }</b></p><p><b> TR0=0;</b></p><p&g
79、t;<b> }</b></p><p> void song()</p><p><b> {</b></p><p><b> TH0=STH0;</b></p><p><b> TL0=STL0;</b></p><p
80、><b> TR0=1;</b></p><p> delay(time);</p><p><b> }</b></p><p> void music(void)</p><p><b> {</b></p><p> unsign
81、ed int cnt;</p><p><b> m=0;</b></p><p><b> time=1;</b></p><p><b> sw=1;</b></p><p> cnt = sizeof(sszymmh)/sizeof(char);</p>
82、;<p> while(time&&sw==0)</p><p><b> {</b></p><p><b> if(sw)</b></p><p> {i=0;continue;}</p><p><b> else</b></
83、p><p><b> {</b></p><p> k=sszymmh[m]+7*sszymmh[m+1]-1;</p><p> STH0=FREQH[k];</p><p> STL0=FREQL[k];</p><p> time=sszymmh[m+2];</p>&l
84、t;p> song();m=m+3;</p><p> if(m > cnt) break;</p><p><b> }</b></p><p><b> }</b></p><p> speaker = 0;</p><p><b> }
85、</b></p><p> void main()</p><p><b> {</b></p><p> TMOD=0x01;</p><p><b> ET0=1;</b></p><p><b> TF0 = 1;</b>&
86、lt;/p><p><b> EA=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> if(sw==1)</b></p><p> key_mus
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---基于at89s52單片機簡易電子琴設(shè)計
- 單片機課程設(shè)計報告--基于at89s52的簡易電子琴
- 課程設(shè)計報告--基于at89s52的簡易電子琴
- 2017畢業(yè)論文-基于at89s52單片機的簡易電子琴設(shè)計
- 基于at89s52單片機的電子琴設(shè)計畢業(yè)論文
- 基于at89s52單片機的發(fā)聲電子琴的課程設(shè)計畢業(yè)論文
- 單片機課程設(shè)計簡易電子琴
- 簡易電子琴單片機課程設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 單片機簡易電子琴單片機課程設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 基于at89c52單片機的簡易電子琴設(shè)計
- 單片機課程設(shè)計簡易電子琴
- 單片機課程設(shè)計——簡易電子琴
- 單片機課程設(shè)計---簡易電子琴
- 單片機課程設(shè)計--簡易電子琴設(shè)計
- 基于單片機的簡易電子琴課程設(shè)計
- 基于單片機的簡易電子琴課程設(shè)計
- 基于at89s52單片機的多音階電子琴設(shè)計畢業(yè)論文
- 基于at89s52的玩具電子琴設(shè)計
評論
0/150
提交評論