畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子琴設(shè)計(jì)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  前言2</b></p><p><b>  1 方案論證2</b></p><p>  1.1 控制模塊選擇方案2</p><p>  1.2 按鍵選擇方案3</p><p>  2 系統(tǒng)硬件設(shè)計(jì)3</p><p>  2.1

2、 系統(tǒng)組成及總體框圖3</p><p>  2.2 元件介紹4</p><p>  2.2.1 AT89S524</p><p>  2.2.2 LM3866</p><p>  2.2.3 LED數(shù)碼管8</p><p>  2.3 顯示電路9</p><p>  2.4

3、 各功能模塊原理圖9</p><p>  2.4.1 AT89S52模塊電路原理圖9</p><p>  2.4.2 鍵盤掃描模塊電路原理圖10</p><p>  2.4.3 數(shù)碼管顯示模塊電路原理圖11</p><p>  2.4.4 音頻處理模塊電路原理圖12</p><p>  2.4.5

4、 電源模塊電路原理圖12</p><p>  3 系統(tǒng)軟件設(shè)計(jì)13</p><p>  3.1 音樂相關(guān)知識(shí)13</p><p>  3.2 如何用單片機(jī)實(shí)現(xiàn)音樂的節(jié)拍13</p><p>  3.3 如何用單片機(jī)產(chǎn)生音頻脈沖14</p><p>  3.4 系統(tǒng)總體功能流程圖15</p&g

5、t;<p>  4 電路仿真18</p><p>  4.1 ISIS軟件介紹18</p><p>  4.2 仿真圖介紹18</p><p>  4.3仿真圖19</p><p>  5 PCB印制板制作20</p><p>  5.1 印制板制作的要求20</p>

6、<p>  5.2 印制電路板圖20</p><p><b>  6 系統(tǒng)調(diào)試22</b></p><p>  6.1 軟件仿真調(diào)試22</p><p>  6.2 軟件調(diào)試22</p><p><b>  7 調(diào)試結(jié)論22</b></p><p>

7、;  附錄1:元器件清單23</p><p>  附錄2:主要電路原理圖24</p><p>  附錄3:主要程序25</p><p><b>  參考文獻(xiàn):28</b></p><p>  基于單片機(jī)的電子琴設(shè)計(jì)</p><p><b>  前言</b></p

8、><p>  單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。</p><p>  電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活

9、的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用STC89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。</p><p>  本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。并

10、且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細(xì)闡述。</p><p>  一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。</p><p>&

11、lt;b>  1 方案論證</b></p><p>  1.1 控制模塊選擇方案</p><p>  方案一:用可控硅制作電子琴。將220V交流電經(jīng)變壓器降壓,再經(jīng)過整流、濾波,獲得+13.5V直流電壓。將單向可控硅SCR和電阻、電容組成馳張振蕩器電路。但該設(shè)計(jì)方案制作成本高且復(fù)雜。</p><p>  方案二: 采用AT89C51單片機(jī)進(jìn)行控

12、制,由于AT89C51不具備ISP功能,</p><p>  因此Atmel公司已經(jīng)停產(chǎn)在市面上已經(jīng)不常見,況且其ROM只有4K在系統(tǒng)將來升級(jí)方面沒有潛力。</p><p>  方案三:采用AT89S52單片機(jī)進(jìn)行控制,由于其性價(jià)比高,完全滿足了本作品智能化的要求,它的內(nèi)部程序存儲(chǔ)空間達(dá)到8K,使軟件設(shè)計(jì)有足夠的內(nèi)部使用空間并且方便日后系統(tǒng)升級(jí),使用方便,抗干擾性能提高。</p>

13、;<p>  鑒于上述對(duì)比與分析,本設(shè)計(jì)采用方案三。</p><p>  1.2 按鍵選擇方案</p><p>  方案一 利用I/O口直接連接的獨(dú)立式鍵盤,每鍵都有相應(yīng)的I/O口對(duì)應(yīng),編程容易控制,實(shí)現(xiàn)方便;但拒于IO口有限,能接的按鍵不能太多,而本系統(tǒng)需用戶根據(jù)需要調(diào)整的參數(shù)較多,用獨(dú)立按鍵會(huì)使操作變得復(fù)雜。</p><p>  方案二

14、利用PA口接成4*4鍵盤。優(yōu)點(diǎn):利用8個(gè)IO口得到16個(gè)按鍵,可使操作介界變得簡(jiǎn)單,操作也方便;缺點(diǎn):軟件處理比獨(dú)立按鍵復(fù)雜。</p><p>  通過比較,方案二為最佳方案。</p><p><b>  2 系統(tǒng)硬件設(shè)計(jì)</b></p><p>  2.1 系統(tǒng)組成及總體框圖</p><p>  硬件設(shè)計(jì)的任務(wù)是根

15、據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。</p><p>  該設(shè)計(jì)要實(shí)現(xiàn)一種由單片機(jī)控制的電子琴,單片機(jī)工作于12MHZ時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器T0,工作模式為1,改變計(jì)數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號(hào)。該設(shè)計(jì)具有11個(gè)音節(jié)的鍵盤,用戶可以根據(jù)樂譜在鍵盤上進(jìn)行演奏,音樂發(fā)生器會(huì)根據(jù)用戶的彈奏,通過揚(yáng)聲器將音樂播放出來。由于本例實(shí)現(xiàn)的

16、音樂發(fā)生器是由用戶通過鍵盤輸入彈奏樂曲的,所以節(jié)拍由用戶掌握,不由程序控制。用單片機(jī)產(chǎn)生的音頻脈沖直接驅(qū)動(dòng)揚(yáng)聲器并不能產(chǎn)生所要實(shí)現(xiàn)的音樂,因?yàn)樗鼪]有足夠的驅(qū)動(dòng)能力,這就需要音頻功率放大電路。</p><p>  本例使用國(guó)家半導(dǎo)體公司的低壓音頻功率放大器LM386來實(shí)現(xiàn)音頻功放電路。</p><p>  圖2.1-1 系統(tǒng)結(jié)構(gòu)圖</p><p><b>

17、  2.2 元件介紹</b></p><p>  2.2.1 AT89S52</p><p>  功能特性:AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位

18、CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/

19、計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止[1]。</p><p>  主要性能:與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz 、三級(jí)加密程序存儲(chǔ)器 、32個(gè)可編程I/O口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工UART串行

20、通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符[2]。</p><p><b>  管腳說明:</b></p><p>  VCC:供電電壓。 </p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,

21、每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被

22、外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)

23、行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流

24、(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p>  表2.2.1-1 管腳備選功能</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。<

25、/p><p>  ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOV

26、C指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不

27、管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出[3]。</p><p>  2.2.2 LM386

28、</p><p>  LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至 200。輸入端以地為參考同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場(chǎng)合。LM386是一種音頻集成功放,具有自身功耗低、電壓增益可

29、調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中[4]。</p><p>  LM386的封裝形式有塑封8引線雙列直插式和貼片式。</p><p>  圖2.2.2-1 LM386的封裝形式</p><p>  特性(Features):</p><p>  (1)靜態(tài)功耗低,約為4mA,可用于電池供電;

30、</p><p>  (2)工作電壓范圍寬,4-12V or 5-18V;</p><p>  (3)外圍元件少; </p><p>  (4)電壓增益可調(diào),20-200; </p><p><b>  (5)低失真度。</b></p><p><b>  其典型電路如下圖:</b

31、></p><p>  圖2.2.2-2 放大器增益=20(最少器件)</p><p>  圖2.2.2-3 放大器增益=50</p><p>  圖2.2.2-4 低頻提升放大器</p><p>  2.2.3 LED數(shù)碼管</p><p>  本次畢業(yè)設(shè)計(jì)的顯示電路采用LED數(shù)碼管顯示,LED(Lig

32、ht-Emitting Diode)是一種外加電壓從而流過電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時(shí)必須加限流電阻。LED有單個(gè)LED和八段LED之分,也有共陰和共陽兩種。</p><p>  常用的七段顯示器的結(jié)構(gòu)如圖下圖所示。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器(如圖b所示),陰極連在一起的稱為共陰極顯示器(如圖c所示)。1位顯示器由八個(gè)發(fā)光二極管組成,其中七個(gè)發(fā)光二極管a~g控制七個(gè)筆畫

33、(段)的亮或暗,另一個(gè)控制一個(gè)小數(shù)點(diǎn)的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡(jiǎn)單,使用方便[5]。</p><p>  此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進(jìn)行正確的字型段碼編碼。才能顯示出正確的數(shù)字來。</p><p> ?。╝)外形 (b)共陽極 (

34、C)共陰極</p><p>  圖2.2.3-1 數(shù)碼管引腳</p><p><b>  2.3 顯示電路</b></p><p>  本次畢業(yè)設(shè)計(jì)的顯示電路采用LED數(shù)碼管顯示,由于 LED是屬于電流控制器件,使用時(shí)必須加限流電阻。通過單片機(jī)查表得出數(shù)碼管顯示編碼,傳送給數(shù)碼管顯示,以此來實(shí)現(xiàn)按鍵與顯示程序的一致性。</p>

35、<p>  2.4 各功能模塊原理圖</p><p>  2.4.1 AT89S52模塊電路原理圖</p><p>  單片機(jī)主程序模塊通過對(duì)鍵盤掃描程序信號(hào)的讀取,在通過對(duì)應(yīng)的表,取出數(shù)碼管顯示編碼和定時(shí)器初始值以產(chǎn)生不同的聲音信號(hào)。在這一過程中,對(duì)數(shù)碼管編碼是直接賦值,對(duì)聲音信號(hào)則是通過中斷程序進(jìn)行控制。</p><p>  圖2.4.1-1

36、AT89S52模塊電路原理圖</p><p>  2.4.2 鍵盤掃描模塊電路原理圖</p><p>  對(duì)鍵盤掃描電路的掃描方式有行掃描法和線反轉(zhuǎn)法,在此次程序編寫中,采用行掃描法,通過在p20~p23上循環(huán)送出0掃描信號(hào),p24~p27輸入按鍵上的高低電平信息給單片機(jī),經(jīng)處理程序,判斷出是哪個(gè)開關(guān)按下,并送主程序以實(shí)現(xiàn)不同功能。</p><p>  圖2.4.

37、2-1 鍵盤掃描模塊電路原理圖</p><p>  2.4.3 數(shù)碼管顯示模塊電路原理圖</p><p>  數(shù)碼管顯示模塊核心是共陽級(jí)數(shù)碼管,通過來自單片機(jī)I/O口的電平高低來點(diǎn)亮和熄滅數(shù)碼管上的發(fā)光二極管,通過單片機(jī)送來的數(shù)碼管顯示編碼可以在數(shù)碼管上顯示數(shù)字和字符,使應(yīng)用人員可以很容易的理解按鍵按下所對(duì)應(yīng)的音符。</p><p>  圖2.4.3-1 數(shù)碼管顯

38、示模塊電路原理圖</p><p>  2.4.4 音頻處理模塊電路原理圖</p><p>  由于單片機(jī)驅(qū)動(dòng)能力不夠,在處理音符信號(hào)時(shí),需加功率放大裝置,因LM386芯片具有低功耗、高增益的特點(diǎn),這合適單片機(jī)低功耗輸出,所以加裝LM386音頻信號(hào)放大器對(duì)信號(hào)進(jìn)行放大。</p><p>  圖2.4.4-1 音頻處理模塊電路原理圖</p><p&

39、gt;  2.4.5 電源模塊電路原理圖</p><p>  由于本次設(shè)計(jì)的芯片的工作電壓都為5V,為了排除因?yàn)殡妷翰环€(wěn)定或者不準(zhǔn)確影響電路的工作和軟件的調(diào)試,本次設(shè)計(jì)單獨(dú)用LM7805設(shè)計(jì)了一個(gè)輸出5V的電壓的電路,如圖3-11所示,其中J0為一變壓器插排接口,輸出電壓在7.5V,為交流電壓,經(jīng)過整流橋進(jìn)行整流,電容濾波,再經(jīng)過LM7805穩(wěn)壓后,得到本次設(shè)計(jì)所需的5V直流電源。</p><

40、;p>  圖2.4.5-1 電源模塊電路原理圖</p><p><b>  3 系統(tǒng)軟件設(shè)計(jì)</b></p><p>  本軟件設(shè)計(jì)關(guān)鍵是要實(shí)現(xiàn)一種由單片機(jī)控制的簡(jiǎn)單音樂發(fā)生器,它由16個(gè)音節(jié)組成的的鍵盤,用戶可以根據(jù)樂譜在鍵盤上進(jìn)行演奏,音樂發(fā)生器會(huì)根據(jù)用戶的彈奏,通過揚(yáng)聲器將音樂播放出來。</p><p>  3.1 音樂相關(guān)知識(shí)

41、</p><p>  樂音聽起來有的高,有的低,這就叫音高,音高是由發(fā)音物體振動(dòng)頻率的高低決定的,頻率高聲音就高,頻率低,聲音就低,不同音調(diào)的樂音是用C、D、E、F、G、A、B表示的,這7個(gè)字母就是樂音的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,這是唱曲時(shí)樂音的發(fā)音,所以叫唱名。</p><p>  音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示,休止符表示暫停發(fā)音。<

42、/p><p>  一首音樂是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同的頻率,這樣就可以利用不同頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂[6]。</p><p>  3.2 如何用單片機(jī)實(shí)現(xiàn)音樂的節(jié)拍</p><p>  除了音符以外,節(jié)拍也是音樂的關(guān)鍵組成部分。</p><p>  節(jié)拍實(shí)際上就是音持續(xù)時(shí)間的長(zhǎng)短,在單片機(jī)系統(tǒng)中可以用延時(shí)

43、來實(shí)現(xiàn),如果1/4拍的延時(shí)是0.4秒,則1拍的延時(shí)是1.6秒,只要知道1/4拍的延時(shí)時(shí)間,其余的節(jié)拍延時(shí)時(shí)間就是它的陪數(shù)。如果單片機(jī)要自己播放音樂,那么必須在程序設(shè)計(jì)中考慮到節(jié)拍的設(shè)置,由于本例實(shí)現(xiàn)的音樂發(fā)生器是由用戶通過鍵盤輸入彈奏樂曲的,所以節(jié)拍由用戶掌握,不由程序控制。對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來完成[7]。音樂的音拍,一個(gè)節(jié)拍為單位(C調(diào))具體如下表:</p><p>  表2

44、.3.2-1 音樂節(jié)拍表</p><p>  3.3 如何用單片機(jī)產(chǎn)生音頻脈沖</p><p>  了解音樂的一些基本知識(shí)后可知,產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂,對(duì)于單片機(jī)而言,產(chǎn)生不同頻率有脈沖非常方便,可以利用它的定時(shí)/計(jì)數(shù)器來產(chǎn)生這樣的方波頻率信號(hào),因此,需要弄清楚音樂中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。</p><p>  在本實(shí)驗(yàn)中,

45、單片機(jī)工作于12MHZ時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器T0,工作模式為1,改變計(jì)數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號(hào),在此情況下,C調(diào)的各音符頻率與計(jì)數(shù)值T的對(duì)照如下表:</p><p>  表3.3.3-1 音符頻率與計(jì)數(shù)值T的對(duì)照表</p><p>  T的值決定了TH0和TL0的值,其關(guān)系為:TH0=T/256,TL0=T%256[8]</p><p>

46、;  3.4 系統(tǒng)總體功能流程圖</p><p>  圖3.4-1 主程序框圖</p><p>  圖3.4-2 按鍵子程序流程圖</p><p><b>  4 電路仿真</b></p><p>  4.1 ISIS軟件介紹</p><p>  Proteus ISIS是英國(guó)Labcent

47、er公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。</p><p><b>  該軟件的特點(diǎn)是:</b></p><p>  (1)實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤

48、和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。</p><p>  (2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。</p><p>  (3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以

49、觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。</p><p>  (4)具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。本章介紹Proteus ISIS軟件的工作環(huán)境和一些基本操作[9]。</p><p>  4.2 仿真圖

50、介紹</p><p>  單片機(jī):P0 口對(duì)應(yīng)數(shù)碼管編碼輸出端;</p><p>  P10 口做音樂信號(hào)輸出端;</p><p>  P2 口做鍵盤掃描部分輸入輸出端。</p><p>  鍵盤掃描:將16位開關(guān)通過矩陣連接,接出來四端接輸入口(P0.4~P0.7)用于鍵盤情況的輸入,另外四端接輸出口(P0.0~P0.3)用于給鍵盤掃描信號(hào)

51、。</p><p>  數(shù)碼管顯示:在使用時(shí)一要接上拉電阻(這是有單片機(jī)P0口的物理特性決定的),二是要加限流電阻以使流進(jìn)單片機(jī)的小于單片機(jī)所能承受的電流。</p><p>  音樂處理:LM386將單片機(jī)P1.0口送過來的信號(hào)進(jìn)行20倍的功率放大并送揚(yáng)聲器進(jìn)行音樂的播出。</p><p><b>  仿真圖</b></p>&l

52、t;p>  圖4.3-1 仿真圖</p><p>  5 PCB印制板制作</p><p>  5.1 印制板制作的要求</p><p> ?。?)電源線、地線應(yīng)各設(shè)置一條總線;</p><p> ?。?)線寬盡可能的寬;</p><p> ?。?)應(yīng)減少軟線跳線的使用;</p><p&g

53、t;  (4)元器件排版要均勻,按模塊排版,防止各模塊信號(hào)干擾;</p><p> ?。?)銅箔線不可以產(chǎn)生銳角。</p><p>  5.2 印制電路板圖</p><p>  圖5.2-1 主控電路PCB板圖</p><p>  圖5.2-2輸入按鍵PCB板圖</p><p><b>  6 系統(tǒng)調(diào)試&l

54、t;/b></p><p>  電路調(diào)試是整個(gè)系統(tǒng)功能否實(shí)現(xiàn)的關(guān)鍵步驟,我們將整個(gè)調(diào)試過程分為三大部分:硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。</p><p>  6.1 軟件仿真調(diào)試</p><p>  軟件仿真調(diào)試主要是針對(duì)單片機(jī)部分進(jìn)行調(diào)試。</p><p>  在軟件運(yùn)行前,先確保電路中連線正確,這一工作是整個(gè)調(diào)試工作的第一步,也是非

55、常重要的一個(gè)步驟。在這部分調(diào)試中主要通過目測(cè),用來完成檢測(cè)電路中是否存在斷路或者短路情況等。</p><p>  在確保軟件仿真電路正常,無異常情況(斷路或短路)方可進(jìn)行軟件運(yùn)行,在本次設(shè)計(jì)中,軟件運(yùn)行主要是測(cè)試單片機(jī)鍵盤控制部分、數(shù)碼管點(diǎn)亮部分、和音頻功放電路調(diào)試。</p><p>  A、數(shù)碼管LED電路調(diào)試:軟件運(yùn)行,隨機(jī)按下按鈕可以看到數(shù)碼管顯示數(shù)字;</p><

56、;p>  B、單片機(jī)鍵盤控制部分調(diào)試:軟件運(yùn)行,隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對(duì)應(yīng)的音正確。</p><p><b>  6.2 軟件調(diào)試</b></p><p>  調(diào)試主要方法和技巧:</p><p>  通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過程,要使主程序

57、和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試[10]。</p><p><b>  7 調(diào)試結(jié)論</b></p><p>  通過各方面努力,本次畢業(yè)設(shè)計(jì)任務(wù)完成,系統(tǒng)部分功能已實(shí)現(xiàn)??梢噪S意演奏一首喜歡的曲子,并可以顯示在數(shù)碼管上?;具_(dá)到預(yù)定的效果。畢業(yè)設(shè)計(jì)是專科學(xué)習(xí)階段一次非常難得的理

58、論與實(shí)踐相結(jié)合的機(jī)會(huì),通過這次系統(tǒng)的項(xiàng)目設(shè)計(jì)提高了我運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識(shí)來解決面臨實(shí)際問題的能力,同時(shí)也提高了我查閱各種文獻(xiàn)資料、設(shè)計(jì)手冊(cè)、設(shè)計(jì)規(guī)范以及軟件編程排版的水平。</p><p><b>  附錄1:元器件清單</b></p><p>  附錄2:主要電路原理圖</p><p><b>  附錄3:主要程序</b&g

59、t;</p><p>  ORG 0000H ;初始位置00H</p><p>  JMP STARET ;跳到主程序</p><p>  ORG 000BH ;定時(shí)器0中斷起始單元</p><p>  JMP TIME0 ;跳到中斷程序</p><p>  STARET: MOV TMOD,#000

60、00001B;設(shè)定工作方式為1</p><p>  MOV IE, #10000010B ;開中斷允許</p><p><b>  SETB TR0</b></p><p>  L1: CALL KEY ;調(diào)用鍵盤掃描程序</p><p>  CLR EA ;關(guān)中斷總允許</p>

61、<p>  JB F0,L1 ;查詢鍵盤按下標(biāo)志</p><p>  MOV A,22H ;將鍵盤碼送單元A</p><p>  MOV DPTR,#TABLE1</p><p>  MOVC A,@A+DPTR ;將查詢的數(shù)碼管顯示碼送A</p><p>  MOV P0,A ;將數(shù)碼管顯示碼

62、送數(shù)碼管</p><p>  MOV A,22H ;將鍵盤碼送單元A</p><p>  RL A ;數(shù)據(jù)倍乘</p><p>  MOV DPTR,#TABLE</p><p>  MOVC A,@A+DPTR;將聲音編碼送A</p><p>  MOV TH0,A;將聲音編碼高位給T

63、H0</p><p>  MOV 21H,A;送聲音編碼給21H單元儲(chǔ)存</p><p><b>  MOV A,22H</b></p><p><b>  RL A</b></p><p><b>  INC A</b></p><p>  MOVC

64、A,@A+DPTR;取聲音編碼地位給A</p><p>  MOV TL0,A;將聲音編碼送TL0</p><p>  MOV 20H,A;將聲音編碼低位送20H儲(chǔ)存</p><p>  L2: CALL KEY;調(diào)用江畔掃描程序</p><p>  SETB EA;開斷總允許</p><p>  JB F

65、0,L1;查詢鍵盤按下標(biāo)志</p><p>  JMP L2 ;沒有轉(zhuǎn)L2循環(huán)</p><p>  /*******鍵盤掃描程序*********/</p><p>  KEY: SETB F0 ;鍵盤按下標(biāo)志至1</p><p>  MOV R3,#0F7H;R3送掃描碼 </p><p>  MOV

66、R1,#00H;R1初始為0</p><p>  L3: MOV A,R3;將掃描碼送A</p><p>  MOV P2,A將掃描碼送P2掃描</p><p>  MOV A,P2;讀取鍵盤狀態(tài)</p><p>  SETB C;進(jìn)位至1</p><p>  MOV R5,#04H;將4給R5單元,用于行

67、掃描</p><p>  L4: RLC A</p><p>  JNC KEYIN;有鍵按下跳到KEYIN</p><p>  INC R1;無鍵按下R1加1</p><p>  DJNZ R5,L4;判斷一行有沒有判斷完畢</p><p>  MOV A,R3;掃描完畢后,再次送掃描碼給A</p&

68、gt;<p>  SETB C;進(jìn)位置1</p><p>  RRC A;對(duì)A進(jìn)行右移</p><p>  MOV R3 ,A ;送新的掃描碼給R3</p><p>  JC L3 ;判斷是否掃描完畢,是則循環(huán)</p><p><b>  RET;返回主程序</b></p><p>

69、  KEYIN: MOV 22H,R1;將鍵盤碼送22H儲(chǔ)存</p><p>  CLR F0;對(duì)鍵盤按下標(biāo)志清0</p><p><b>  RET;返回主程序</b></p><p>  TIME0: PUSH ACC;將A壓入堆棧</p><p>  PUSH PSW;將PSW壓入堆棧</

70、p><p>  MOV TL0,20H;將聲音編碼低位送TL0</p><p>  MOV TH0,21H;將聲音編碼高位送TH0</p><p>  CPL P1.0;對(duì)輸出口聲音信號(hào)取反</p><p>  POP PSW;.從堆棧還原PSW</p><p>  POP ACC;從堆棧還原ACC</p>

71、<p>  RETI;中斷返回</p><p>  /********音符編碼***************/</p><p>  TABLE: DW 64021,64103,64260,64400</p><p>  DW 64524,64580,64684,64777</p><p>  DW 64820,64898,64

72、968,65030</p><p>  DW 65058,65110,65157,65178</p><p>  /********共陽極數(shù)碼編碼*********/</p><p>  TABLE1: DB 0CH,98H,48H,40H,1EH </p><p>  DB 9FH,25H,0DH,99H,49H,41H,1F

73、H</p><p>  DB 11H,01H0,63H,3H</p><p><b>  END </b></p><p><b>  參考文獻(xiàn):</b></p><p>  [1] 胡漢才:?jiǎn)纹瑱C(jī)原理及其接口技術(shù),北京清華大學(xué)出版社,2004,P142-P145</p>

74、<p>  [2] 蘇家健、曹柏榮、汪志鋒:?jiǎn)纹瑱C(jī)原理及應(yīng)用技術(shù),高等教育出版社,2004.9,P3-P7</p><p>  [3] 陳明熒:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材,北京清華大學(xué)出版社,2003.9,P231-P235</p><p>  [4] 劉永明、賀民譯:[美]Ashish Wilfred Meeta Gupta Kartik Bhatnagar, php專業(yè)

75、項(xiàng)目實(shí)例開發(fā),水利水電出版社,2003,P79-P83</p><p>  [5] 趙鑫、蔣亮、齊兆群:數(shù)字電路設(shè)計(jì),北京機(jī)械工業(yè)出版社,2005.6,P27-P31</p><p>  [6] 龔妮麗:音樂美學(xué)論綱,中國(guó)社會(huì)科學(xué)出版社,2002.12,P47-P51</p><p>  [7] 楊恢先、黃輝先:?jiǎn)纹瑱C(jī)原理及應(yīng)用,人民郵電出版社,2006,P1

76、14-P117</p><p>  [8] 徐新艷:?jiǎn)纹瑱C(jī)原理應(yīng)用與實(shí)踐,北京高等教育出版社,2005.3,P64-P67</p><p>  [9] 張靖武、周靈彬:?jiǎn)纹瑱C(jī)原理、應(yīng)用與PROTEUS仿真,2008.8,P71-P74</p><p>  [10] 謝自美:電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試,華中理工大學(xué)出版社,1992,P131-P1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論