基于單片機(jī)的簡易電子琴畢業(yè)設(shè)計(論文)說明書
《基于單片機(jī)的簡易電子琴畢業(yè)設(shè)計(論文)說明書》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的簡易電子琴畢業(yè)設(shè)計(論文)說明書(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、摘 要 隨著社會的發(fā)展進(jìn)步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會向惡。我們都會抽空欣賞世界名曲,作為對精神的洗禮。本論文設(shè)計一個基于單片機(jī)的簡易電子琴。我們對于電子琴如何實現(xiàn)其功能,如音色選擇、自動放音功能等等也很好奇。 電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用STC89C51單片機(jī)為核心控制元件,設(shè)計一個電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有12個按鍵
2、和一個揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。 關(guān)鍵詞:STC89C51,電子琴,數(shù)碼管 ABSTRACT With the development and progress of society, music has become an important part of life, it was said that people do not like the music to the evil. W
3、e will find time to enjoy the world music, as the baptism of the spirit. This thesis developed a simple microcontroller-based electronic key board. Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It modern music played an important rol
4、e in single chip is a powerful control functions and flexible programming characteristics, It has converged with modern peoples lives, become an irreplaceable part. The main content is STC89C51 control of the core components, Design of an electronic organ, single chip as a host to the core, with the
5、 keyboard, speakers and other core modules main control module, in the main control module has 16 keys and speakers. Stability of the system, its advantages are simple hardware circuits, software functions, control system reliability, high cost performance and have certain practical and reference va
6、lue. Key words: STC89C51, electronic organ,led display 目 錄 摘 要 1 ABSTRACT 2 目 錄 3 第一章 緒論 3 1.1電子琴設(shè)計的背景及意義 3 1.2 電子琴設(shè)計的目標(biāo) 3 1.3方案的比較和選擇 5 第二章 硬件設(shè)計及說明 5 2.1系統(tǒng)組成及總體框圖 5 2.2元件簡介 6 2.2.1 STC89C51 6 2.2.2 9013 9 2.2.3 LED數(shù)碼管 10 2.3 各功能模塊原理圖 11 2.3.1 STC89C51模塊電路原理圖 11 2.3.2鍵盤
7、掃描模塊電路原理圖 12 2.3.3數(shù)碼管顯示模塊電路原理圖 12 2.3.4音頻處理模塊電路原理圖 13 第三章 軟件設(shè)計 13 3.1 音樂相關(guān)知識 13 3.2如何用單片機(jī)產(chǎn)生音頻脈沖 13 3.3系統(tǒng)總體功能流程圖 14 第四章 系統(tǒng)調(diào)試 14 4.1硬件調(diào)試 14 4.2 軟件調(diào)試 15 第五章 課程設(shè)計總結(jié)以及心得體會 15 致 謝 16 參考文獻(xiàn) 17 附錄A 電路圖 18 附錄C C語言源程序 20 第一章 緒論 1.1電子琴設(shè)計的背景及意義 隨著當(dāng)代科學(xué)技術(shù)的發(fā)展,電子產(chǎn)品在人們的日常生活中占據(jù)著越來越重要的地位。電子琴作為
8、其中的一個典型代表,是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。因此,我們選擇了簡易電子琴這個題目來制作,因為它不僅能夠提高我的實踐動手能力,還與實際生活有著緊密地聯(lián)系。 單片機(jī)是一門實踐性很強(qiáng)的課程,而此次課程設(shè)計依據(jù)的理論基礎(chǔ)是單片機(jī)的相關(guān)知識。其主要目的是通過本課程的培養(yǎng),啟發(fā)學(xué)生的創(chuàng)造性思維,進(jìn)一步理解數(shù)字系統(tǒng)的概念,掌握小型數(shù)字系統(tǒng)的設(shè)計方法,掌握小型數(shù)字系統(tǒng)的組裝和調(diào)試技術(shù),裝握查閱有關(guān)資料的技能。 單片機(jī)又稱單片微控制器,它不是完成某一個邏輯
9、功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機(jī)是了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。 1.2 電子琴設(shè)計的目標(biāo) 由于本設(shè)計主要用于人們娛樂方面,因此在設(shè)計上盡量使其安全以及簡單易操作。其次,在這次設(shè)計可行性上進(jìn)行分析如下: 1、經(jīng)濟(jì)可行性: 所謂經(jīng)濟(jì)可行性,即在這次設(shè)計上需要投入資金的多少,由于課程設(shè)計是提高我們的動手能力以及資金有限。因此在經(jīng)濟(jì)上必須能夠承受,比較理想化的對于我們課程設(shè)計來說是不可行的。通過分析后,無論是在器件價格或是常見度上均是可行的。 2、
10、技術(shù)可行性: 技術(shù)可行性主要是分析技術(shù)條件上是否能夠順利開展并完成課程設(shè)計的主要問題,硬件、軟件能否滿足設(shè)計者的需要等。通過分析各種軟件環(huán)境,硬件仿真環(huán)境等均已經(jīng)具備。 綜上所述,本系統(tǒng)設(shè)計目標(biāo)已經(jīng)明確,在經(jīng)濟(jì)與技術(shù)上均可行,因此本系統(tǒng)的開發(fā)是完全可行的。 1.3方案的比較和選擇 方案一:用可控硅制作電子琴。將220V交流電經(jīng)變壓器降壓,再經(jīng)過整流、濾波,獲得+13.5V直流電壓。將單向可控硅SCR和電阻、電容組成馳張振蕩器電路。但該設(shè)計方案制作成本高且復(fù)雜。 方案二:采用STC89C51單片機(jī)進(jìn)行控制,由于其性價比高,完全滿足了本作品智能化的要求,它的內(nèi)部程
11、序存儲空間達(dá)到8K,使軟件設(shè)計有足夠的內(nèi)部使用空間并且方便日后系統(tǒng)升級,使用方便,抗干擾性能提高。 選擇方案:鑒于上述對比與分析,本設(shè)計采用方案二。 第二章 硬件設(shè)計及說明 2.1系統(tǒng)組成及總體框圖 硬件設(shè)計的任務(wù)是根據(jù)總體設(shè)計要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計出系統(tǒng)的原理框圖、電路原理圖。 該設(shè)計要實現(xiàn)一種由單片機(jī)控制的電子琴,單片機(jī)工作于12MHZ時鐘頻率,使用其定時/計數(shù)器T0,工作模式為1,改變計數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號。該設(shè)計具有8個音節(jié)的鍵盤,用戶可以根據(jù)樂譜在鍵盤上進(jìn)行演奏,音樂發(fā)生器會根據(jù)用戶的彈奏,通過揚(yáng)聲器
12、將音樂播放出來。由于本例實現(xiàn)的音樂發(fā)生器是由用戶通過鍵盤輸入彈奏樂曲的,所以節(jié)拍由用戶掌握,不由程序控制。用單片機(jī)產(chǎn)生的音頻脈沖直接驅(qū)動揚(yáng)聲器并不能產(chǎn)生所要實現(xiàn)的音樂,因為它沒有足夠的驅(qū)動能力,這就需要功率放大電路。 本例使用三極管9013.來實現(xiàn)音頻功放電路。 按鍵 音頻功放電路 單片機(jī)STC89C51 揚(yáng)聲器 LED顯示電路 圖2-1 系統(tǒng)結(jié)構(gòu)圖 2.2元件簡介 2.2.1 STC89C51 STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CP
13、U 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6
14、T/12T可選。 綜上所述,凌陽單片機(jī)雖然性能更好,但價格比較昂貴,且本設(shè)計不需要很復(fù)雜的運(yùn)算,所以本設(shè)計選用更便宜,更易用的STC89C52單片機(jī)。 圖2-2 STC89C51引腳圖 DIP封裝 單片機(jī)是美國STC公司最新推出的一種新型51內(nèi)核的單片機(jī)。片內(nèi)含有Flash程序存儲器、SRAM、UART、SPI、PWM等模塊。 (一)STC89C52主要功能、性能參數(shù)如下: (1)內(nèi)置標(biāo)準(zhǔn)51內(nèi)核,機(jī)器周期:增強(qiáng)型為6時鐘,普通型為12時鐘; (2)工作頻率范圍:0~40MHZ,相當(dāng)于普通8051的0~80MHZ; (3)STC89C52RC對應(yīng)Flash空間:4KB;
15、 (4)內(nèi)部存儲器(RAM):512B; (5)定時器\計數(shù)器:3個16位; (6)通用異步通信口(UART)1個; (7)中斷源:8個; (8)有ISP(在系統(tǒng)可編程)\IAP(在應(yīng)用可編程),無需專用編程器\仿真器; (9)通用I\O口:32\36個; (10)工作電壓:3.8~5.5V; (11)外形封裝:40腳PDIP、44腳PLCC和PQFP等。 (二)STC89C52單片機(jī)的引腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部
16、程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P
17、2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3.0 RXD(串行輸入口) P3.1 TXD
18、(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 I/O口作為輸入口時有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時實際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過某種運(yùn)算或變換后再寫回到端口鎖存器。只有讀端口時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。上面圖中的兩個三角形表示的就是輸入緩沖器CPU將根據(jù)不
19、同的指令分別發(fā)出讀端口或讀引腳信號以完成不同的操作。這是由硬件自動完成的,不需要我們操心,1然后再實行讀引腳操作,否則就可能讀入出錯,為什么看上面的圖,如果不對端口置1端口鎖存器原來的狀態(tài)有可能為0Q端為0Q^為1加到場效應(yīng)管柵極的信號為1,該場效應(yīng)管就導(dǎo)通對地呈現(xiàn)低阻抗,此時即使引腳上輸入的信號為1,也會因端口的低阻抗而使信號變低使得外加的1信號讀入后不一定是1。若先執(zhí)行置1操作,則可以使場效應(yīng)管截止引腳信號直接加到三態(tài)緩沖器中實現(xiàn)正確的讀入,由于在輸入操作時還必須附加一個準(zhǔn)備動作,所以這類I/O口被稱為準(zhǔn)雙向口。89C51的P0/P1/P2/P3口作為輸入時都是準(zhǔn)雙向口。接下來讓我們再看另
20、一個問題,從圖中可以看出這四個端口還有一個差別,除了P1口外P0P2P3口都還有其他的功能。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才
21、起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTA
22、L2:來自反向振蕩器的輸出。 (三)STC89C52單片機(jī)最小系統(tǒng): 最小系統(tǒng)包括單片機(jī)及其所需的必要的電源、時鐘、復(fù)位等部件,能使單片機(jī)始終處于正常的運(yùn)行狀態(tài)。電源、時鐘等電路是使單片機(jī)能運(yùn)行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部分,通過對其進(jìn)行存儲器擴(kuò)展、A/D擴(kuò)展等,使單片機(jī)完成較復(fù)雜的功能。 STC89C52是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡單﹑可靠。用STC89C52單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機(jī)接上時鐘電路和復(fù)位電路即可,結(jié)構(gòu)如圖2-3所示,由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。 時鐘電路 復(fù)位電路
23、 51系列單片機(jī) I/O 接口 時鐘電路 復(fù)位電路 STC89C52單片機(jī) I/O口 圖2-3 單片機(jī)最小系統(tǒng)原理框圖 (1) 時鐘電路 STC89C52單片機(jī)的時鐘信號通常有兩種方式產(chǎn)生:一是內(nèi)部時鐘方式,二是外部時鐘方式。內(nèi)部時鐘方式如圖2-4所示。在STC89C52單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的XTAL1(18)和XTAL2(19)引腳外接石英晶體(簡稱晶振),就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時鐘脈沖信號。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為30pF。晶振CYS的振蕩頻率范圍在1.2~12MHz
24、間選擇,典型值為12MHz和6MHz。 圖2-4 STC89C52內(nèi)部時鐘電路 (2) 復(fù)位電路 當(dāng)在STC89C52單片機(jī)的RST引腳引入高電平并保持2個機(jī)器周期時,單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。 復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。 最簡單的上電自動復(fù)位電路中上電自動復(fù)位是通過外部復(fù)位電路的電容充放電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。 除了上電復(fù)位外,有時還需要按鍵手動復(fù)位。本設(shè)計就是用的按鍵手動復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過RST(9)端與電源Vc
25、c接通而實現(xiàn)的。按鍵手動復(fù)位電路見圖2-5。時鐘頻率用11.0592MHZ時C取10uF,R取10kΩ。 圖2-5 STC89C52復(fù)位電路 2.2.2 9013 9013 - NPN外延型晶體管(三極管) 9013是一種最常用的普通三極管。它是一種低電壓,大電流,小信號的NPN型硅三極管 有如下特性: 集電極電流Ic:Max 500mA 集電極-基極電壓Vcbo:40V 工作溫度:-55℃ to +150℃ 功率(W):0.625 fT(MHZ):200 hFE :64 ~ 202 主要用途: 開關(guān)應(yīng)用 射頻
26、放大 低噪聲放大管 圖2-6 9013引腳圖 2.2.3 LED數(shù)碼管 本次課程設(shè)計的顯示電路采用LED數(shù)碼管顯示,LED(Light-Emitting Diode)是一種外加電壓從而流過電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時必須加限流電阻。LED有單個LED和八段LED之分,也有共陰和共陽兩種。 常用的七段顯示器的結(jié)構(gòu)如圖下圖所示。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器(如圖b所示),陰極連在一起的稱為共陰極顯示器(如圖c所示)。1位顯示器由八個發(fā)光二極管組成,其中七個發(fā)光二極管a~g控制七個筆畫(段)的亮或暗,另一個控制一個小數(shù)點的亮和暗,這種筆畫式的
27、七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡單,使用方便。 此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進(jìn)行正確的字型段碼編碼。才能顯示出正確的數(shù)字來。 (a)外形 (b)共陽極 (C)共陰極 圖2-7 數(shù)碼管引腳 數(shù)碼管使用注意事項說明: (1)數(shù)碼管表面不要用手觸摸,不要用手去弄引角; (2)焊接溫度:260度;焊接時間:5S (3)表面有保護(hù)膜的產(chǎn)品,可以在使用前撕下來。 2.3 各功能模塊原理圖 2.3.1 STC89C51模塊電路原理圖 單片機(jī)主程序模塊通過對鍵盤
28、掃描程序信號的讀取,在通過對應(yīng)的表,取出數(shù)碼管顯示編碼和定時器初始值以產(chǎn)生不同的聲音信號。在這一過程中,對數(shù)碼管編碼是直接賦值,對聲音信號則是通過中斷程序進(jìn)行控制。 圖2-8 STC89C51模塊電路原理圖 2.3.2鍵盤掃描模塊電路原理圖 對鍵盤掃描電路的掃描方式有行掃描法和線反轉(zhuǎn)法,在此次程序編寫中,采用行掃描法,通過在p30~p33上循環(huán)送出0掃描信號,p34~p37輸入按鍵上的高低電平信息給單片機(jī),經(jīng)處理程序,判斷出是哪個按鍵按下,并送主程序以實現(xiàn)不同功能。 圖2-9 鍵盤掃描模塊電路原理圖 2.3.3數(shù)碼管顯示模塊電路原理圖 數(shù)碼管顯示模塊核心是共陽級數(shù)碼管,通過
29、來自單片機(jī)I/O口的電平高低來點亮和熄滅數(shù)碼管上的發(fā)光二極管,通過單片機(jī)送來的數(shù)碼管顯示編碼可以在數(shù)碼管上顯示數(shù)字和字符,使應(yīng)用人員可以很容易的理解按鍵按下所對應(yīng)的音符。 圖2-10 數(shù)碼管顯示模塊電路原理圖 2.3.4音頻處理模塊電路原理圖 由于單片機(jī)驅(qū)動能力不夠,在處理音符信號時,需加功率放大裝置,所以本設(shè)計采用雙9013三極管驅(qū)動。 圖2-11 音頻處理模塊電路原理圖 第三章 軟件設(shè)計 本軟件設(shè)計關(guān)鍵是要實現(xiàn)一種由單片機(jī)控制的簡單音樂發(fā)生器,它由8個音節(jié)組成的的鍵盤,用戶可以根據(jù)樂譜在鍵盤上進(jìn)行演奏,音樂發(fā)生器會根據(jù)用戶的彈奏,通過揚(yáng)聲器將音樂播放出來。
30、 3.1 音樂相關(guān)知識 樂音聽起來有的高,有的低,這就叫音高,音高是由發(fā)音物體振動頻率的高低決定的,頻率高聲音就高,頻率低聲音就低,不同音商的樂音是用C、D、E、F、G、A、B表示的,這7個字母就是樂音的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,這是唱曲時樂音的發(fā)音,所以叫唱名。 一首音樂是由許多不同的音符組成的,而每個音符對應(yīng)著不同的頻率,這樣就可以利用不同頻率的組合,構(gòu)成音樂。 3.2如何用單片機(jī)產(chǎn)生音頻脈沖 了解音樂的一些基本知識后可知,產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂,對于單片機(jī)而言,產(chǎn)生不同頻率有脈沖非常方便,可以利用它的定時/計數(shù)器來產(chǎn)生這樣的方波頻
31、率信號,因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機(jī)定時計數(shù)的關(guān)系。 在本實驗中,單片機(jī)工作于12MHZ時鐘頻率,使用其定時/計數(shù)器T0,工作模式為1,改變計數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號。 3.3系統(tǒng)總體功能流程圖 該程序設(shè)計思路比較清晰既從開始到聲明變量與函數(shù)再到讀取按鈕開關(guān),判斷是否按下,然后就是一個一個按鈕的動作。其主程序流程圖如下: 開始 初始化定時器 模式鍵按下次數(shù) 奇 偶 播放內(nèi)置音樂 等待音符按下播放單個音符 結(jié)束 圖3-1主程序流程圖 第四章 系統(tǒng)調(diào)試
32、 電路調(diào)試是整個系統(tǒng)功能否實現(xiàn)的關(guān)鍵步驟,我們將整個調(diào)試過程分為兩大部分:硬件調(diào)試和軟件調(diào)試。 4.1硬件調(diào)試 硬件調(diào)試主要是針對單片機(jī)部分進(jìn)行調(diào)試。 在上電前,先確保電路中不在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況等。注意焊點之間,確保焊點沒有短接在一起,同時注意焊點的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。 在確保硬件電路正常,無異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確,在本次設(shè)計中,上電調(diào)試主要鍵盤單片機(jī)控制部分、數(shù)
33、碼管點亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試。 1、數(shù)碼管LED電路調(diào)試:接通電源,隨機(jī)按下按鈕可以看到數(shù)碼管顯示數(shù)字。 2、鍵盤單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動鍵盤可以發(fā)現(xiàn)各個按鍵對應(yīng)的音正確。 4.2 軟件調(diào)試 調(diào)試主要方法和技巧: 通常一個調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點、查看變量、更改數(shù)值。整個程序是一個主程序調(diào)用各個子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運(yùn)行,各個模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個子程序模塊進(jìn)行分別調(diào)試。 第五章 課程設(shè)計總結(jié)以及心得體會 通過這次的單片機(jī)課程設(shè)計,我學(xué)到了不少課本上沒有的知識,也
34、鍛煉了自己的動手能力,將以前學(xué)過的零散的知識串到一起。 首先在課程設(shè)計剛開始的調(diào)研階段,我學(xué)會了怎么通過各種方式查詢相關(guān)的資料。通過對這些資料的學(xué)習(xí),我大致了解了單片機(jī)的發(fā)展現(xiàn)狀以及未來的發(fā)展趨勢,認(rèn)識到目前單片機(jī)方面的各種各樣的發(fā)展,和它們之間的競爭。了解了單片機(jī)方面的先進(jìn)技術(shù),這些都為我的未來的學(xué)習(xí)指明了方向。 我的課程設(shè)計主要涉及硬件和軟件兩方面的內(nèi)容,通過這些我的硬件和軟件開發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開發(fā)流程和所要做的工作。并設(shè)計了一個單片機(jī)最小系統(tǒng)。通過開發(fā)板的設(shè)計和硬件搭建的過程,使我對52系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍
35、電路引腳和連接方法,如LED數(shù)碼管,鍵盤等。 在軟件方面,通過串行口調(diào)試工具的開發(fā),使我加深了封裝的理解,熟悉了51系列單片機(jī)內(nèi)部的寄存器和編程規(guī)則,以及如何控制外圍電路。 此外在學(xué)習(xí)單片機(jī)知識的時候?qū)τ谶@個領(lǐng)域有了更新更全面的認(rèn)識。微型計算機(jī)的出現(xiàn)和大量使用將人類社會帶入一個新的時代,單片微型計算機(jī)(簡稱單片機(jī))在其中扮演著十分重要的角色。雖然它沒有常見的PC那樣大的體積和重量,不會在辦公桌或控制臺上占據(jù)一個顯要的位置,但它就像小小的螺絲釘一樣,鑲嵌在人們工作、生活中需要計算、控制、測量等智能活動的各個角落。自20世紀(jì)70年代問世以來,單片機(jī)以其體積小、可靠性高、控制功能強(qiáng)、使用
36、方便、性能價格比高、容易產(chǎn)品化等特點,在智能儀表、機(jī)電一體化、實時控制、分布式多機(jī)系統(tǒng)、家用電器等各個領(lǐng)域得到了廣泛應(yīng)用,對各個行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代起著重要的推動作用,對人們生活質(zhì)量的提高產(chǎn)生了深刻的影響。作為21世紀(jì)的工科大學(xué)生,學(xué)好單片機(jī),一方面可以加深對計算機(jī)原理和結(jié)構(gòu)的認(rèn)識,另一方面也為自身在專業(yè)上的深入發(fā)展構(gòu)筑了一個很好的平臺其重要性怎么強(qiáng)調(diào)都不為過。 致 謝 這次畢業(yè)論文能夠得以順利完成,是所有曾經(jīng)指導(dǎo)過我的老師,幫助過我的同學(xué),一直支持著我的家人對我的幫助和鼓勵的結(jié)果。我要在這里對他們表示深深的謝意! 首先,要特別感謝我的指導(dǎo)老師——呂雪老師。呂老師在我畢業(yè)論
37、文的撰寫過程中,給我提供了極大的幫助和指導(dǎo)。從開始選題到中期修正,再到最終定稿,呂老師給我提供了許多寶貴建議。老師豐富的專業(yè)知識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,樸實無華、平易近人的人格魅力對我影響深遠(yuǎn)。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。 其次,要感謝所有曾經(jīng)教我們電子信息的任課老師,老師們教會我的不僅僅是專業(yè)知識,更多的是對待學(xué)習(xí)、對待生活的態(tài)度。 第三,感謝我的父母親,,謝謝你們對我的支持與鼓勵! 再次,感謝我的室友及其他同學(xué),因為有你們的幫助,我的論文得以順利完成。不會忘記,大學(xué)四年里我們一起度過的
38、歡樂時光,那些開心的日子,總是那么令人難以忘懷。 最后對老師,同學(xué)和家人再次致以我最衷心的感謝!正因為有了你們,我的大學(xué)才算完整,有了你們我的生活更加精彩。 參考文獻(xiàn) 【1】黃鑫,馬善農(nóng),趙永科.基于CPLD的電子琴研究與設(shè)計[J].科技廣場,2007 【2】吳金戌,沈慶陽,郭庭吉,8051單片機(jī)實踐與應(yīng)用[M].清華大學(xué)出版社,2001 【3】龍威林,楊冠聲,胡山.單片機(jī)應(yīng)用入門:AT89S51和AVR[M].北京:化學(xué)工業(yè)出版社,2008. 【4】張毅剛,MCS-51單片機(jī)應(yīng)用設(shè)計[M].哈爾濱工業(yè)大學(xué)出版社,2004 【5】李朝青. 單片機(jī)原理及接口技術(shù)[M]. 北京:北
39、京航天航空大學(xué)出版色,2001 【6】胡漢才. 單片機(jī)原理及其接口技術(shù)[M]. 北京:清華大學(xué)出版社,2004 【7】陳明熒.8051單片機(jī)課程設(shè)計實訓(xùn)教材[M].北京:清華大學(xué)出版社,2003年9月 【8】徐新艷.單片機(jī)原理、應(yīng)用與實踐[M].北京:高等教育出版社,2005年3月 【9】楊恢先,黃輝先.單片機(jī)原理及應(yīng)用[M].北京:人民郵電出版社,2006 【10】張虹.單片機(jī)原理及應(yīng)用[M].北京:中國電力出版社,2009 【11】趙亮,侯國銳.單片機(jī)C語言編程與實例[M].北京:人民郵電出版社,2003 【12】[美]Ashish Wilfred Meeta Gupta K
40、artik Bhatnagar著,劉永明,賀民譯. php專業(yè)項目實例開發(fā)[J]. 水利水電出版社,2003 【13】Datasheet of Single chip 433/868/915 MHz Transceiver nRF903 ,Nordic VLSI,2002 【14】Fischer R A,Laakonen A S,Schulz N N.A general pooling algorithm using a wireless AMR system for restoration confirmation.IEEE Transon Power Systems,2001 附
41、錄A 電路圖
附錄B 仿真圖
附錄C C語言源程序
#include
42、 0xfd,0x45, //So 0xfd,0x92, //La 0xfd,0xd0, //Si 0xfd,0xee, //Do# 0x00,0x00, //間隔 }; uc code shengri_tone[]={1,1,2,1,4,3,0, //生日快樂音調(diào) 1,1,2,1,5,4,0, 1,1,8,6,4,3,2,0, 7,7,6,4,5,4,0 //0代表不發(fā)聲,即停頓;數(shù)字即為音調(diào) }; uc code laohu_ton
43、e[]={1,2,3,1,0,1,2, 3,1,0,3,4,5,0,3, 4,5,0,5,6,5,4,3, 1,0,5,6,5,4,3,1, 0,3,2,1,0,3,2,1,0 }; uc code yishan_tone[]={1,1,5,5,0,6,6,5, 0,4,4,3,3,0,2,2, 1,0,5,5,4,4,0,3, 3,2,0,5,5,4,4,0, 3,3,2,0,1,1,5,5, 0,6,6,5,0,4,4,3, 3,0,2,2,1,0
44、};
uc code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x7f};
void delay(ui z)
{
ui x,y;
for(x=0;x 45、
temp=P3;
P3=0x0f;
temp1=P3;
key_s=temp|temp1;
switch(key_s)
{
case 0xed:if(flag==0) {EA=0;P2=tab[1];a=0xfb;b=0xe9;EA=1;} break;
case 0xdd:if(flag==0) {EA=0;P2=tab[2];a=0xfc;b=0x5c;EA=1;} break;//注意:EA不能改為TR0
case 0xbd:if(flag==0) {EA=0;P2=tab[3];a=0xfc;b=0xc1; 46、EA=1;} break;
case 0x7d:if(flag==0) {EA=0;P2=tab[4];a=0xfc;b=0xef;EA=1;} break;
case 0xeb:if(flag==0) {EA=0;P2=tab[5];a=0xfd;b=0x45;EA=1;} break;
case 0xdb:if(flag==0) {EA=0;P2=tab[6];a=0xfd;b=0x92;EA=1;} break;
case 0xbb:if(flag==0) {EA=0;P2=tab[7];a=0xfd;b=0xd0;EA=1;} break;
47、 case 0x7b:if(flag==0) {EA=0;P2=tab[8];a=0xfd;b=0xee;EA=1;} break;
case 0xe7:flag=~flag;m=0;break;
case 0xd7:if(flag==1) {m=0;qushu++;if(qushu==4)qushu=1;} break;
case 0xb7:if(flag==1) {m=0;qushu--;if(qushu==0)qushu=3;} break;
case 0x77:;break;//按鍵未定義
default:EA=0;speaker= 48、1;P2=tab[9];break;
}
while((P3&0x0f)!=0x0f);
EA=0;
if(flag==0)
P2=tab[9];
}
}
}
void play1()
{
uc c=1;
P2=tab[9];
while(flag)
{
EA=0;
if(qushu==1)
c=shengri_tone[m]; //取音符
else if(qushu==2)
c=laohu_tone[m];
else if(qu 49、shu==3)
c=yishan_tone[m];
if(c==0)
{
a=yinfu[16];
b=yinfu[17];
P2=tab[c];
delay(400);
EA=0;
}
else
{
a=yinfu[2*c-2];
b=yinfu[2*c-1];
EA=1;
P2=tab[c];
delay(400);
EA=0;
delay(30);
}
m++;
if(((m>=29)&&(qushu==1))||((m>=40)& 50、&(qushu==2))||((m>=54)&&(qushu==3)))
m=0;
check_key();
}
}
void main()
{
TMOD=0x01;
TH0=a;
TL0=b;
ET0=1;//打開定時器,但是未允許中斷
TR0=1;
P2=tab[9];
while(1)
{
check_key();
play1();
}
}
void time0() interrupt 1
{
TH0=a;
TL0=b;
speaker=~speaker;
}
裝 訂 線
共 頁 第 頁
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。