版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)報(bào)告</p><p> 基于AT89S52的簡易電子琴</p><p><b> 目 錄</b></p><p> 1 設(shè)計(jì)任務(wù)- 1 -</p><p> 2 系統(tǒng)設(shè)計(jì)方案- 1 -</p><p> 2.1 設(shè)計(jì)目的- 1
2、-</p><p> 2. 2設(shè)計(jì)要求- 1 -</p><p> 3 系統(tǒng)硬件設(shè)計(jì)- 1 -</p><p> 3.1 基本原理- 1 -</p><p> 3.2 芯片及原理圖介紹- 3 -</p><p> 3.2.1 AT89C52簡介- 3 -</p><p>
3、 3.2.2 電子琴設(shè)計(jì)的原理圖- 3 -</p><p> 3.3 各個(gè)模塊介紹- 3 -</p><p> 3.3.1 系統(tǒng)硬件設(shè)計(jì)- 4 -</p><p> 3.3.2 子系統(tǒng)模塊一- 4 -</p><p> 3.3.3 子系統(tǒng)模塊二- 5 -</p><p> 3.3.4 子系統(tǒng)模塊三
4、- 5 -</p><p> 3.3.5 AT89C52晶振模塊- 6 -</p><p> 4 系統(tǒng)軟件設(shè)計(jì)- 6 -</p><p> 4. 1 軟件設(shè)計(jì)總流程圖流程- 7 -</p><p> 4. 2 軟件程序- 8 -</p><p> 5 系統(tǒng)的硬件調(diào)試及軟件調(diào)試- 8 -</
5、p><p> 5.1 軟件調(diào)試- 8 -</p><p> 5、2 硬件調(diào)試- 9 -</p><p> 6 課程設(shè)計(jì)心得體會(huì)- 10 -</p><p> 參 考 文 獻(xiàn)- 11 -</p><p> 附錄1 源程序- 12 -</p><p> 附錄2 儀器清單- 1
6、6 -</p><p> 附錄3 系統(tǒng)原理圖- 17 -</p><p><b> 簡易電子琴</b></p><p><b> 1 設(shè)計(jì)任務(wù)</b></p><p> 實(shí)現(xiàn)電子琴發(fā)聲控制系統(tǒng);要求電路實(shí)現(xiàn)如下功能:</p><p> 利用蜂鳴器作為發(fā)聲部件,
7、兩個(gè)數(shù)碼管作為顯示部件,設(shè)置16個(gè)按鍵,實(shí)現(xiàn)高音、中音、低音的1、2、3、4、5、6、7的發(fā)音。</p><p> 用PROTEUS實(shí)現(xiàn)的電子琴仿真設(shè)計(jì)。說明:單片機(jī)的工作時(shí)鐘頻率為11.0592MHz。</p><p><b> 2 系統(tǒng)設(shè)計(jì)方案</b></p><p><b> 2.1 設(shè)計(jì)目的</b><
8、/p><p> 本次設(shè)計(jì)提出了用AT89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)簡易的電子琴. 本方案以AT89C52單片機(jī)作為主控核心,與鍵盤、蜂鳴器等模塊組成核心主控制模塊在主控模塊上設(shè)有4*4個(gè)按鍵和蜂鳴器。根據(jù)使用者的操作隨意彈奏想要表達(dá)的音樂。一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們
9、可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào)。</p><p><b> 2. 2設(shè)計(jì)要求</b></p><p> 1、4*4鍵盤組成16個(gè)按鈕,可以隨意彈奏想要表達(dá)的音樂。</p><p> 2、通過數(shù)碼管顯示按的是哪個(gè)鍵,發(fā)出哪個(gè)音高。</p><p> 3 系統(tǒng)硬件設(shè)計(jì) &l
10、t;/p><p> 3.1 基本原理 </p><p> 要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P3.3反相,然后重復(fù)計(jì)時(shí)再反相。就可在P3.3引腳上得到此頻率的脈沖。利用AT89C52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階
11、,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系式是:N=fi÷2÷fr,式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下:T=65536-N=65536-fi÷2÷fr<
12、/p><p> 例如:設(shè)K=65536,fi=1MHz,求中音DO(261Hz)。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。</p><p> 單片機(jī)12MHZ晶振,中音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表所示:</p
13、><p> 用單片機(jī)播放音樂,或者彈奏電子琴,實(shí)際上是按照特定的頻率,輸出一連串的方波。為了輸出合適的方波,首先應(yīng)該知道音符與頻率的關(guān)系。</p><p> 3.2 芯片及原理圖介紹</p><p> 3.2.1 AT89C52簡介 </p><p> AT89C52(圖1-1)為8位低功耗單片機(jī),采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功
14、能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和GND(20 腳)為供電端口,分別
15、接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(32~39 腳)定義為雙向8位三態(tài)I/O接口,它既可以作為通用I/O接口,又可作為外部擴(kuò)展時(shí)的數(shù)據(jù)總線及低8位地址總線的分時(shí)復(fù)用口;P1端口(1~8腳)定義為準(zhǔn)雙向I/O接口,內(nèi)部具有上拉電阻;P2端口(21~28腳)定義為8位準(zhǔn)雙向I/O接口,內(nèi)部具有上拉電阻,可直接連接外部I/O設(shè)備,同時(shí)與地址高8位復(fù)用;P3端口(10~17)定
16、義為8位準(zhǔn)雙向I/O接口,內(nèi)部具有上拉電</p><p> 圖1-1 AT89C52 </p><p> 3.2.2 電子琴設(shè)計(jì)的原理圖(見附錄) </p><p> 3.3 各個(gè)模塊介紹</p><p> 本系統(tǒng)采用單片機(jī)AT89C52為電子琴的控制核心,系統(tǒng)主要包括按鍵彈奏模塊,數(shù)碼管顯示模塊。下面
17、對(duì)各模塊的設(shè)計(jì)逐一進(jìn)行論證比較。</p><p> 3.3.1 系統(tǒng)硬件設(shè)計(jì)</p><p> 圖2-1 總體硬件組成框圖</p><p> 實(shí)驗(yàn)中每按下一個(gè)琴鍵,單片機(jī)能夠檢測到鍵盤的按鍵,并根據(jù)按鍵的位置,通過程序來控制,使喇叭發(fā)出不同頻率(音調(diào))的聲音,聲音延遲一段時(shí)間,等到按鍵放開之后,聲音停止。然后再繼續(xù)掃描,看是否有鍵按下。如此循環(huán),即可實(shí)現(xiàn)基本
18、的琴鍵功能。</p><p> 3.3.2 子系統(tǒng)模塊一</p><p> 琴鍵模塊如圖2-2所示,利用AT89C52單片機(jī)的P1端口及P2端口與鍵盤(圖2-2 a)、數(shù)碼管(圖2-2 b)的連接。</p><p> 圖2-2(a) 單片機(jī)與鍵盤的連接 圖2-2 (b)單片機(jī)與數(shù)碼管的連接</p><p> 3.3.3 子系
19、統(tǒng)模塊二</p><p> 播放模塊是蜂鳴器構(gòu)成。蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。而且由于所需驅(qū)動(dòng)功率較小,且價(jià)格低廉,所以,被廣泛應(yīng)用。</p&g
20、t;<p> 圖2-3 發(fā)聲模塊電路圖 </p><p> 3.3.4 子系統(tǒng)模塊三</p><p> 電子琴設(shè)有16個(gè)按鍵,分別代表16個(gè)音符,包括中音段的全部音符。通過軟硬件設(shè)計(jì),按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。然后通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序人口,實(shí)現(xiàn)各種琴鍵的聲音。</p><
21、;p> 矩陣鍵盤模塊圖如下:</p><p> 圖2-4 矩陣鍵盤模塊</p><p> 3.3.5 AT89C52晶振模塊</p><p> XTAL1腳為片內(nèi)振蕩電路的輸入端,XTAL2腳為片內(nèi)振蕩電路的輸入端。8952的時(shí)鐘有兩種方式:一種是片內(nèi)時(shí)鐘振蕩方式,但需在18和19腳外接石英晶體(頻率為1.2~12MHZ)和振蕩電容,振蕩電容值一
22、般取10~30pf,典型值為30pf;另一種是外部時(shí)鐘方式,即將XTAL1接地,外部時(shí)鐘信號(hào)從XTAL2腳輸入。下面為方式一電路圖。</p><p> 圖2-6 晶振模塊</p><p><b> 4 系統(tǒng)軟件設(shè)計(jì)</b></p><p> 軟件是該電子琴控制系統(tǒng)的重要組成部分,將系統(tǒng)的各部分功能編寫成子模塊的形式,這樣增強(qiáng)了系統(tǒng)軟
23、件的可讀性和可移植性。KEIL C51 µVision2集成開發(fā)環(huán)境是KEIL Software,Inc/KEIL electronik GmbH開發(fā)的基于80C51內(nèi)核的微處理器軟件開發(fā)平臺(tái),內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立到管理、編譯、鏈接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開發(fā)流程尤其是C編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平,而且可以附加靈活的控制選項(xiàng),在開發(fā)大型項(xiàng)目時(shí)非常理
24、想。</p><p> 4. 1 軟件設(shè)計(jì)總流程圖流程</p><p><b> 4. 2 軟件程序</b></p><p> 本系統(tǒng)的上位機(jī)軟件主要是編輯電子琴播放狀態(tài)的內(nèi)容,在設(shè)計(jì)中采用C語言編寫了電子琴控制系統(tǒng)控制和播放內(nèi)容的程序。見附錄一。</p><p> 5 系統(tǒng)的硬件調(diào)試及軟件調(diào)試</p&g
25、t;<p><b> 5.1 軟件調(diào)試。</b></p><p> 利用protuse與keil聯(lián)調(diào),對(duì)電路原理圖進(jìn)行仿真。</p><p> 當(dāng)按下K0按鍵的時(shí)候,數(shù)碼管顯示如下,同時(shí),蜂鳴器發(fā)出音樂的(音高)。</p><p> 當(dāng)按下K6按鍵的時(shí)候,數(shù)碼管顯示如下,同時(shí),蜂鳴器發(fā)出音樂(音高。)</p>
26、<p><b> 5、2 硬件調(diào)試。</b></p><p> 將焊接好的硬件接到電源上,進(jìn)行調(diào)試。</p><p> 按下K0鍵時(shí),數(shù)碼管顯示為‘0’,并且蜂鳴器有發(fā)出相對(duì)應(yīng)的音高。</p><p> 按下K6鍵時(shí),數(shù)碼管顯示為‘9’,并且蜂鳴器有發(fā)出相對(duì)應(yīng)的音高。</p><p> 按下K15鍵
27、時(shí),數(shù)碼管顯示為‘F’,并且蜂鳴器有發(fā)出相對(duì)應(yīng)的音高。</p><p> 綜合以上幾次操作,發(fā)現(xiàn)硬件調(diào)試成功,硬件的功能與仿真的功能一樣。</p><p> 6 課程設(shè)計(jì)心得體會(huì)</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1] 楊凌霄. 微型計(jì)算機(jī)原理與應(yīng)用,中國礦業(yè)大學(xué)出版社.200
28、8年8月第一版</p><p> [2] 康華光. 電子技術(shù)基礎(chǔ)(數(shù)字部分),高等教育出版社.第五版</p><p> [3] 鄧紅. 單片機(jī)實(shí)驗(yàn)與應(yīng)用設(shè)計(jì)教程 出版日期:2004年05月第1版</p><p> [4] 余發(fā)山、王福忠. 單片機(jī)原理及應(yīng)用技術(shù). 中國礦業(yè)大學(xué)出版社.2008年6月第1 版</p><p><b&
29、gt; 附錄1 源程序</b></p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar code DSY_Table[]=</p
30、><p> {0x7e,0x18,0x6d,0x3d,0x1b,0x37,0x77,0x1c,0x7f,0x3f,0x5f,0x73,0x66,0x79,0x67,0x47};</p><p> uint code Tone_Delay_Table[]=</p><p> {64021,64103,64260,64400,64524,64580,64684,647
31、77,</p><p> 64820,64898,64968,65030,65058,65110,65157,65178};</p><p> sbit BEEP=P3^0;</p><p> uchar KeyNo;</p><p> void DelayMS(uchar x)</p><p><b&g
32、t; {</b></p><p><b> uchar i;</b></p><p> while(x--) for(i=0;i<120;i++);</p><p><b> }</b></p><p> void Keys_Scan()//按鍵掃描</p>
33、<p><b> {</b></p><p> uchar Tmp,k;</p><p> P1=0x0F;//按鍵初始化</p><p> DelayMS(2);</p><p> Tmp=P1^0x0F;</p><p> switch(Tmp)</p>
34、<p><b> {</b></p><p> case 1:k=0;break;</p><p> case 2:k=1;break;</p><p> case 4:k=2;break;</p><p> case 8:k=3;break;</p><p> defaul
35、t:return;</p><p><b> }</b></p><p><b> P1=0xF0;</b></p><p> DelayMS(2);</p><p> Tmp=(P1>>4)^0x0F;</p><p> switch(Tmp)<
36、/p><p><b> {</b></p><p> case 1:k+=0;break;</p><p> case 2:k+=4;break;</p><p> case 4:k+=8;break;</p><p> case 8:k+=12;break;</p><
37、p> default:return;</p><p><b> }</b></p><p><b> KeyNo=k;</b></p><p><b> }</b></p><p> void play_Tone() interrupt 1</p>
38、<p><b> {</b></p><p> TH0=Tone_Delay_Table[KeyNo]/256;</p><p> TL0=Tone_Delay_Table[KeyNo]%256;</p><p> BEEP=~BEEP;</p><p><b> }</b>&
39、lt;/p><p> void main()</p><p><b> {</b></p><p><b> P2=0xBF;</b></p><p> TMOD=0x01;</p><p><b> IE=0x82;</b></p>
40、<p><b> while(1)</b></p><p><b> {</b></p><p> P1=0xF0;//初始值</p><p> if(P1!=0xF0)//有按鍵按下</p><p><b> {</b></p><p
41、> Keys_Scan();//調(diào)用按鍵發(fā)音子程序</p><p> P2=DSY_Table[KeyNo];//顯示按鍵的鍵位</p><p> TR0=1;//開中斷</p><p><b> }</b></p><p><b> else</b></p><
42、p><b> {</b></p><p> TR0=0;//關(guān)中斷</p><p><b> }</b></p><p> DelayMS(2);</p><p><b> }</b></p><p><b> }</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ì)報(bào)告--基于at89s52的簡易電子琴
- 課程設(shè)計(jì)---基于at89s52單片機(jī)簡易電子琴設(shè)計(jì)
- 課程設(shè)計(jì)---基于at89s52單片機(jī)簡易電子琴設(shè)計(jì)
- 基于at89s52的玩具電子琴設(shè)計(jì)
- 2017畢業(yè)論文-基于at89s52單片機(jī)的簡易電子琴設(shè)計(jì)
- 基于at89s52單片機(jī)的發(fā)聲電子琴的課程設(shè)計(jì)畢業(yè)論文
- 基于at89c52的簡易電子琴設(shè)計(jì)
- 基于at89s52單片機(jī)的電子琴設(shè)計(jì)畢業(yè)論文
- 課程設(shè)計(jì)報(bào)告--- 簡易電子琴
- 簡易電子琴課程設(shè)計(jì)
- 簡易電子琴課程設(shè)計(jì)
- 簡易電子琴課程設(shè)計(jì)
- fpga課程設(shè)計(jì)報(bào)告--簡易電子琴的設(shè)計(jì)
- 基于at89s52單片機(jī)的多音階電子琴設(shè)計(jì)畢業(yè)論文
- 簡易電子琴課程設(shè)計(jì) (2)
- 基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì)
- fpga課程設(shè)計(jì)報(bào)告--簡易電子琴的設(shè)計(jì)[1]
- 555簡易電子琴數(shù)字邏輯課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)的簡易電子琴課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--設(shè)計(jì)簡易電子琴
評(píng)論
0/150
提交評(píng)論