基于單片機的電子琴與音樂播放器設(shè)計說明_第1頁
基于單片機的電子琴與音樂播放器設(shè)計說明_第2頁
基于單片機的電子琴與音樂播放器設(shè)計說明_第3頁
基于單片機的電子琴與音樂播放器設(shè)計說明_第4頁
基于單片機的電子琴與音樂播放器設(shè)計說明_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE26 / NUMPAGES26基于單片機的電子琴與音樂播放器設(shè)計摘 要隨著電子技術(shù)的發(fā)展和計算機越來越普遍的使用,單片機作為這兩項技術(shù)的有機結(jié)合也得到了廣泛的應(yīng)用。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。此次設(shè)計依據(jù)單片機技術(shù)原理,通過硬件電路制作以與軟件編譯,設(shè)計制作出一個基于AT89C52系列單片機的電子琴與音樂播放器,以單片機作為主控核心,主要由按鍵電路、復(fù)位電路、模式轉(zhuǎn)換電路等組成。利用單片機與KeilC51編程軟件編程和PROTEU

2、S單片機仿真軟件和電子電工等方面知識,用KeilC51編程軟件編程,用PROTEUS單片機仿真軟件仿真。最后制作實物,將程序下載到單片機中,利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動喇叭,發(fā)出不同的音調(diào),從而演奏樂曲。本論文給出了系統(tǒng)方案的建立、硬件電路的詳細設(shè)計與軟件的程序?qū)崿F(xiàn)。并通過軟硬件的聯(lián)立調(diào)試,驗證了設(shè)計方案的可行性。通過基于單片機的音樂播放器的設(shè)計課題熟悉和理解單片機應(yīng)用和開發(fā)過程,培養(yǎng)我們理論聯(lián)系實際,實踐出真知的科學(xué)嚴謹求學(xué)的態(tài)度,提高實踐動手操作技能。關(guān)鍵詞:AT89C52單片機、電子琴、音樂播放器、仿真軟件 目錄TOC o 1-3 h u HYPERLINK l _Toc1388

3、4 摘 要 PAGEREF _Toc13884 1 HYPERLINK l _Toc25696 1 引 言 PAGEREF _Toc25696 3 HYPERLINK l _Toc28715 2 單片機基礎(chǔ)知識簡介 PAGEREF _Toc28715 4 HYPERLINK l _Toc9807 2.1 單片機介紹 PAGEREF _Toc9807 4 HYPERLINK l _Toc25289 2.1.1單片機概念 PAGEREF _Toc25289 4 HYPERLINK l _Toc3679 2.1.2 單片機的應(yīng)用 PAGEREF _Toc3679 4 HYPERLINK l _Toc

4、12157 2.1.3 單片機的發(fā)展趨勢 PAGEREF _Toc12157 5 HYPERLINK l _Toc19377 3 課程設(shè)計介紹 PAGEREF _Toc19377 6 HYPERLINK l _Toc30429 3.1 課程設(shè)計的目的 PAGEREF _Toc30429 6 HYPERLINK l _Toc15022 3.2 課程設(shè)計的要求 PAGEREF _Toc15022 6 HYPERLINK l _Toc4399 3.3 系統(tǒng)方案的擬定與選擇 PAGEREF _Toc4399 7 HYPERLINK l _Toc4607 3.3.1 初步方案的確定 PAGEREF _T

5、oc4607 7 HYPERLINK l _Toc1032 3.3.2方案的簡單說明 PAGEREF _Toc1032 7 HYPERLINK l _Toc3115 3.4課程設(shè)計的總體結(jié)構(gòu)框圖 PAGEREF _Toc3115 7 HYPERLINK l _Toc26103 3.5課程設(shè)計的意義 PAGEREF _Toc26103 8 HYPERLINK l _Toc6951 4 硬件設(shè)計 PAGEREF _Toc6951 8 HYPERLINK l _Toc10320 4.1 硬件電路的設(shè)計框圖 PAGEREF _Toc10320 8 HYPERLINK l _Toc23899 4.2 硬

6、件電路設(shè)計模塊的選定 PAGEREF _Toc23899 8 HYPERLINK l _Toc16537 4.2.1 中心模塊 PAGEREF _Toc16537 8 HYPERLINK l _Toc2032 4.2.2 播放模塊 PAGEREF _Toc2032 9 HYPERLINK l _Toc13869 4.2.3按鍵模塊 PAGEREF _Toc13869 10 HYPERLINK l _Toc22620 5 軟件設(shè)計 PAGEREF _Toc22620 12 HYPERLINK l _Toc32264 5.1軟件系統(tǒng)介紹 PAGEREF _Toc32264 12 HYPERLINK

7、 l _Toc28556 5.2編程軟件KeilC51 PAGEREF _Toc28556 12 HYPERLINK l _Toc7640 5.2.1 Keil C51概述 PAGEREF _Toc7640 12 HYPERLINK l _Toc19227 5.2.2 Keil C51 的整體結(jié)構(gòu) PAGEREF _Toc19227 13 HYPERLINK l _Toc6350 5.2.3 采用Keil C51 開發(fā)的 AT89C51 單片機應(yīng)用程序步驟 PAGEREF _Toc6350 13 HYPERLINK l _Toc30064 5.3 繪圖軟件 Proteus PAGEREF _T

8、oc30064 13 HYPERLINK l _Toc31685 5.3.1 Proteus 概述 PAGEREF _Toc31685 13 HYPERLINK l _Toc3015 5.3.2 proteus 的操作步驟 PAGEREF _Toc3015 14 HYPERLINK l _Toc19375 5.4 單片機的發(fā)聲原理 PAGEREF _Toc19375 14 HYPERLINK l _Toc29027 5.5 系統(tǒng)程序設(shè)計 PAGEREF _Toc29027 15 HYPERLINK l _Toc28782 5.5.1 主程序流程圖設(shè)計 PAGEREF _Toc28782 15

9、HYPERLINK l _Toc389 5.5.2 1ms延時程序設(shè)計 PAGEREF _Toc389 17 HYPERLINK l _Toc18313 5.5.3函數(shù)初始化子程序設(shè)計 PAGEREF _Toc18313 18 HYPERLINK l _Toc24021 6 設(shè)計心得體會 PAGEREF _Toc24021 18 HYPERLINK l _Toc9555 8 附錄 PAGEREF _Toc9555 20 HYPERLINK l _Toc9573 8.1 附錄一 硬件原理圖 PAGEREF _Toc9573 20 HYPERLINK l _Toc127 8.2 附錄二 實物圖 P

10、AGEREF _Toc127 20 HYPERLINK l _Toc115 8.3 附錄三 元器件清單 PAGEREF _Toc115 21 HYPERLINK l _Toc9023 8.4 附錄四 軟件主程序 PAGEREF _Toc9023 211 引 言二十一世紀,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。在信息家電和行業(yè)應(yīng)用手持信息設(shè)備等信息終端類產(chǎn)品中,具備音樂播放功能已成為此類產(chǎn)品的發(fā)展趨勢之一?;陔娮忧俚闹T多優(yōu)點和廣泛使用,是我

11、們大家日常生活中較為熟悉的一種電子產(chǎn)品。為培養(yǎng)我們大學(xué)生的思考、理解身邊電子產(chǎn)品的習慣和提高自己的實際動手能力,我選擇了設(shè)計一款以AT89C52單片機為核心的音樂播放器作為自己的單片機課程設(shè)計。本次設(shè)計由硬件電路設(shè)計和軟件程序設(shè)計兩大部分組成,是應(yīng)用MCS-51單片機原理和控制理論設(shè)計音樂演奏控制器的硬件電路,并利用匯編語言進行程序設(shè)計。整個硬件電路是由中心控制、播放和按鍵等模塊組成,中心控制模塊采用AT89C52單片機,播放模塊是由8050 NPN三極管和喇叭組成,電子琴設(shè)有8個按鍵,實現(xiàn)用戶自彈作曲。一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的

12、組合,構(gòu)成我們想演奏的那首曲目。當然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣的方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系編寫正確就可以達到我們想要的曲目。本文主要對使用單片機設(shè)計簡易電子琴進行了分析,并介紹了基于單片機電子琴硬件的組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏要表達的音符。并且分別從原理圖,主要芯片,個模塊原理與各模塊的程序的調(diào)試來詳細闡述。2 單片機基礎(chǔ)知識簡介2.1 單片機介紹2.1.1單片機概念 單片機(SCM)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是將中央處理單元(CPU)、存儲器(

13、RAM,ROM)、輸入/輸出接口電路等微型計算機的基本功能部件集成在一塊集成電路芯片上,構(gòu)成一個具有存儲、運算、輸入輸出功能的微型計算機。 MCS-51單片機是美國INTEL公司于1980年推出的產(chǎn)品,與MCS- 48單片機相比,它的結(jié)構(gòu)更先進,功能更強,在原來的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達111條,MCS-51單片機可以算是相當成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機仍是應(yīng)用的主流產(chǎn)品,各高校與專業(yè)學(xué)校的培訓(xùn)教材仍與MSC-51單片機作為代表進行理論基礎(chǔ)學(xué)習。 MCS-51系列單片機主要包括8031、8051和8751等通用產(chǎn)品。DP-51S單片機仿真實驗儀是由

14、致遠電子設(shè)計的DP系列單片機仿真實驗儀之一,是一種功能強大的單片機應(yīng)用技術(shù)學(xué)習、調(diào)試。2.1.2 單片機的應(yīng)用單片機的應(yīng)用提高了機電產(chǎn)品的技術(shù)水平和自動化程度,對各行各業(yè)的技術(shù)改造和產(chǎn)品更新起到了重要的推動作用。其應(yīng)用領(lǐng)域已從工業(yè)控制、儀器儀表、機電一體化設(shè)備等迅速發(fā)展到家用電器、辦公自動化、汽車電子等廣大領(lǐng)域。一、在智能儀器儀表的應(yīng)用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、

15、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。二、在家用電器中的應(yīng)用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯煲、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。三、在工業(yè)控制中的應(yīng)用 用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。四、在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基

16、本上都實現(xiàn)了單片機智能控制,從手機、機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動,集群移動通信,無線電對講機等。五、單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機在醫(yī)用設(shè)備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備與病床呼叫系統(tǒng)等等。 此外,單片機在工商、金融、科研、教育、國防航空等領(lǐng)域都有著十分廣泛的用途。2.1.3 單片機的發(fā)展趨勢 單片機現(xiàn)在可以說是百花齊放,百家爭鳴的時期,世界上各大芯片制造公司都推出了自己的單片機,從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片

17、機的應(yīng)用提供了廣闊的天地。縱觀單片機的發(fā)展過程,可以預(yù)示單片機的發(fā)展趨勢,大致有: (1)微型單片化 現(xiàn)在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機芯片。 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機除了功能強和

18、功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。(2)低功耗CMOS化MCS-51系列的8031推出時的功耗達630mW,而現(xiàn)在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各 個單片機制造商基本都采用了CMOS(互補金屬氧化物半導(dǎo)體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于要求低功耗像電池供

19、電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。 (3)主流與多品種共存 現(xiàn)在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國的Winbond系列單片機。所以80C51占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集合(RISC)也有著強勁的發(fā)展勢頭,中國的HOLTEX公司近年的單片機產(chǎn)量與日俱增,與其底價質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場份額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機。在一定的時期,這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走

20、的是依存互補、相輔相成、共同發(fā)展的道路。 九十年代以后,單片機在結(jié)構(gòu)上采用雙CPU或部流水線,CPU位數(shù)有8位、16位、32位,時鐘頻率高達20MHZ,片帶有PWM輸出、監(jiān)視定時器WDT、可編程計數(shù)器陣列PCA、DMA傳輸、調(diào)制解調(diào)器等。芯片向高度集成化、低功耗方向的發(fā)展,使得單片機在大量數(shù)據(jù)的實時處理、高級通信系統(tǒng)、數(shù)字信號處理、復(fù)雜工業(yè)過程控制、高級機器人以與局域網(wǎng)等方面得到大量應(yīng)用。這類單片機有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。3 課程設(shè)計介紹3.1 課程設(shè)計的目的 以AT89C52單片機、喇叭、按鈕等元器件,并利用單

21、片機的原理組成一個電子琴音樂播放器。3.2 課程設(shè)計的要求(1)用Proteus畫圖軟件畫出音樂播放器的硬件原理圖。(2)畫出軟件流程圖,采用單片機C語言根據(jù)音樂播放器要實現(xiàn)的功能進行編程。(3)用Keil編程軟件調(diào)試所編的C程序,并將其生成*.hex文件,首先將其載入硬件原理圖的單片機中,完成硬件與軟件調(diào)試綜合調(diào)試,實現(xiàn)預(yù)定功能。(4)根據(jù)所設(shè)計的硬件原理圖進行實物焊接,將生成的*.hex文件燒入芯片中,實現(xiàn)設(shè)計要求。(5)寫出課程實習報告3.3 系統(tǒng)方案的擬定與選擇3.3.1 初步方案的確定在課程設(shè)計實習開始之前,我們在圖書館與電子閱覽室進行了大量資料的收集,通過我們組成員的探討,初步確定

22、了設(shè)計方案,基于單片機的電子琴與音樂播放器設(shè)計。3.3.2方案的簡單說明主要實現(xiàn)的是7個按鍵實現(xiàn)彈奏功能,1個按鍵能夠?qū)崿F(xiàn)音樂播放??刂奇I盤,將8個按鍵依次接在P2口上,使其一旦有按鍵按下就會對應(yīng)播放一個對應(yīng)的音符。停止按鍵可以使用復(fù)位電路來實現(xiàn)。各音調(diào)對應(yīng)的定時器初始裝載表也以數(shù)組的形式按升調(diào)順序存儲,并按前面所述將各歌曲的對應(yīng)音調(diào)和節(jié)拍存儲在數(shù)組中,有按鍵按下時,將歌曲的數(shù)組首地址傳給全局指針,利用相應(yīng)的處理函數(shù)調(diào)出音調(diào)對應(yīng)的定時器裝載值表,給定時器裝載初值并啟動,產(chǎn)生控制揚聲器的方波,根據(jù)低半字節(jié)控制延時時間,即音調(diào)的發(fā)音長短。3.4課程設(shè)計的總體結(jié)構(gòu)框圖單片機接+5V電源供電,晶振電路

23、產(chǎn)生單片機所需時鐘信號,通過功能鍵產(chǎn)生外部中斷,再由I/O接口輸出控制揚聲器發(fā)聲。另外,復(fù)位電路在于營造一個程序運行的初始狀態(tài),在程序運行過程中或有出錯時,重新啟動單片機工作。課程設(shè)計總體框圖如下圖所示:電源電路 復(fù)位電路 放大電路 晶振電路 按鍵電路揚聲器 AT89C52 單片機圖3.4 課程設(shè)計總體框圖3.5課程設(shè)計的意義從最開始的選擇課題、設(shè)計方案,到軟件與硬件的設(shè)計,自己動手畫硬件電路圖,進行排版焊接,軟件調(diào)試,使得我們更好地熟悉和掌握單片機的原理、基本功能和編程,深入了解51單片機的實際應(yīng)用,更深的理解、吸收課堂上所學(xué)知識,將理論與實際聯(lián)系在一起,更好地提高動手能力,與發(fā)現(xiàn)問題、分析

24、問題、解決問題的能力。此外,還加強了組員間的合作意識。4 硬件設(shè)計4.1 硬件電路的設(shè)計框圖硬件電路由控制模塊、按鍵模塊、揚聲器播放模塊、放大模塊組成。硬件總體框圖如下圖所示:圖4.1 硬件總體框圖按鍵模塊共由8個按鍵組成,實現(xiàn)音樂的自行彈奏和播放已存入的歌曲。揚聲器塊由三極管與喇叭組成,通過控制模塊的控制對當前音樂進行播放。8個鍵作為音符的輸入或音樂的播放選擇。4.2 硬件電路設(shè)計模塊的選定4.2.1 中心模塊AT89C52是51系列單片機的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52是一個低電壓,高性能CMOS 8位單片機,片含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和

25、256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C52

26、有PDIP、PQFP/TQFP與PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。 主要功能特性:(1)兼容MCS51指令系統(tǒng):8k可反復(fù)擦寫(1000次)Flash ROM。(2)32個雙向I/O口: 256x8bit部RAM。(3)3個16位可編程定時/計數(shù)器中斷:時鐘頻率0-24MHz。(4)2個串行中斷:可編程UART串行通道。(5)2個外部中斷源: 共6個中斷源。(6)2個讀寫中斷口線: 3級加密位。(7)低功耗空閑和掉電模式 :軟件設(shè)置睡眠和喚醒功能。從本系統(tǒng)設(shè)計的功能需求與成本考慮,51單片機性價比更高,AT89C52是擁有2個外部中斷,2個16位定時器,2個可編程串行UART的單片

27、機。中心控制模塊采用AT89C52單片機已完全滿足設(shè)計需要,實現(xiàn)整個系統(tǒng)控制。AT89C52的引腳圖如下:圖4.1 AT89C52引腳圖4.2.2 播放模塊播放模塊是由8050 NPN三極管和喇叭組成。AT89S52輸出高電平控制信號,啟動8050 NPN三極管使信號放大,從而啟動喇叭。但由于所需驅(qū)動功率較小,驅(qū)動器件要求不高,并能降低設(shè)計成本。因此,必須選用8050 NPN三極管和喇叭則能滿足系統(tǒng)要求。播放模塊如下圖所示:圖4.2 播放模塊4.2.3按鍵模塊按鍵模塊有9個按鍵,其中7個按鍵,即為電子琴模塊,7個按鍵分別代表7個音符,作為音符輸入,實現(xiàn)用戶自彈作曲。另外1個按鍵可以進行播放模式

28、與自行彈奏模式的轉(zhuǎn)換。還有一個按鍵,為復(fù)位按鍵,復(fù)位電路在于營造一個程序運行的初始狀態(tài),在程序運行過程中或有出錯時,重新啟動單片機工作。通過軟硬件設(shè)計,在電子琴模式時,通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對應(yīng)的程序人口,實現(xiàn)自編歌曲。模式轉(zhuǎn)換按鍵觸發(fā)外部中斷1,中斷使程序跳轉(zhuǎn),實現(xiàn)模式轉(zhuǎn)換,啟動音樂播放功能。當需要取消音樂播放功能時,按下復(fù)位按鍵即可退出音樂播放功能而返回到原來電子琴功能處。各模塊如下圖所示:圖4.3 電子琴按鍵模塊圖4.4 復(fù)位按鍵模塊5 軟件設(shè)計5.1軟件系統(tǒng)介紹 一個系統(tǒng)的正常運行不僅需要硬件系統(tǒng)的支持,而且需要軟件系統(tǒng)的支持。如果把硬件比作軀體,那軟件

29、就是靈魂,硬件系統(tǒng)和軟件系統(tǒng)相互間密切的配合才構(gòu)建了能夠“思考”和“判斷”的整體系統(tǒng)。借助軟件的可編程性,可以精簡硬件系統(tǒng)的組成;憑借軟件的靈活性,可以不用對硬件系統(tǒng)進行修改而實現(xiàn)系統(tǒng)功能的修改。軟件系統(tǒng)與硬件系統(tǒng)是密切相聯(lián)的,軟件系統(tǒng)建立在硬件系統(tǒng)之上,離開了硬件系統(tǒng),軟件將無法實現(xiàn)任何功能。軟件的設(shè)計有一定的針對性,對于不同的硬件系統(tǒng),需要編寫不同的軟件。與硬件系統(tǒng)一樣,軟件系統(tǒng)的好壞,直接影響到系統(tǒng)的工作效率和可靠性。5.2編程軟件KeilC515.2.1 Keil C51概述單片機的開發(fā)軟件在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件。 Keil提供了包括C編譯

30、器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的。本次課程設(shè)計正是使用Keil C51編程軟件Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開

31、發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。C51工具包的整體結(jié)構(gòu),其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51與A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用

32、進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。5.2.2 Keil C51 的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu)中,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51與A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dSc

33、ope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。5.2.3 采用Keil C51 開發(fā)的 AT89C51 單片機應(yīng)用程序步驟(1)在uVision 集成開發(fā)環(huán)境中創(chuàng)建新項目(Project),擴展文件名為.UV2,并為該項目選定合適的單片機CPU器件。(2)用uVision 的文本編輯器編寫源文件,可以是匯編文件(.ASM),也可以使C語言文件(擴展名.C)本設(shè)計是 *.C 文件,并將該文件添加到項目中去。一個項目文件可以包含多個文件,除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。(3)通過uVision

34、 4 的相關(guān)選擇項,配置編譯環(huán)境、連接定位器以與Debug調(diào)試器的功能。(4)對項目中的源文件進行編譯連接,生成絕對目標代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯誤則返回到(2),修改源文件中的錯誤后重構(gòu)整個項目。(5)對沒有語法錯誤的程序進行仿真調(diào)試,調(diào)試成功后將 *.hex文件寫入到單片機應(yīng)用系統(tǒng)的ROM中。5.3 繪圖軟件 Proteus5.3.1 Proteus 概述 Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機與外圍器件,是目前最好的仿真單片機與外圍器件的工具。雖然目前國推廣剛起步,

35、但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器

36、。 Proteus軟件具有如下功能:(1)原理布圖。(2)PCB自動或人工布線。 (3)SPICE電路仿真。5.3.2 proteus 的操作步驟(1) 硬件電路圖的接法操作 放置選擇(刪除)元器件 = 2 * GB3 移動元器件 = 3 * GB3 縮放視圖 = 4 * GB3 連接導(dǎo)線 = 5 * GB3 仿真,調(diào)試(2)單片機系統(tǒng)PROTEUS設(shè)計與仿真過程Proteus強大的單片機系統(tǒng)設(shè)計與仿真功能,使它可成為單片機系統(tǒng)應(yīng)用開發(fā)和改進手段之一。全部過程都是在計算機上通過Proteus來完成的。其過程一般也可分為三步:在ISIS平臺上進行單片機系統(tǒng)電路設(shè)計、選擇元器件、接插件、連接電路和

37、電氣檢測等。簡稱Proteus電路設(shè)計。Keil平臺上進行單片機系統(tǒng)程序設(shè)計、編輯、匯編編譯、代碼級調(diào)試,最后生成目標代碼文件(*.hex)。簡稱Proteus源程序設(shè)計和生成目標代碼文件。在ISIS平臺上將目標代碼文件加載到單片機系統(tǒng)中,并實現(xiàn)單片機系統(tǒng)的實時交互、協(xié)同仿真。它在相當程度上反映了實際單片機系統(tǒng)的運行情況。在 Proteus 繪制好原理圖后,調(diào)入已編譯好的目標代碼文件:*.hex,可以在 Proteus 的原理圖中看到模擬的實物運行狀態(tài)和過程。5.4 單片機的發(fā)聲原理聲音的頻譜圍約在幾十到幾千赫茲,若能利用程序來控制單處片機某個口線的“高”電平或“低電平”,則在該口上就能產(chǎn)生一

38、定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。播放一段音樂需要的是兩個元素,一個是音調(diào),另一個是音符。首先要了解對應(yīng)的音調(diào),音調(diào)主要由聲音的頻率決定,同時也與聲音強度有關(guān)。對一定強度的純音,音調(diào)隨頻率的升降而升降;對一定頻率的純音、低頻純音的音調(diào)隨聲強增加而下降,高頻純音的音調(diào)卻隨強度增加而上升。另外,音符的頻率有所不同。音符的節(jié)拍我們可以用定時器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時時間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。但是,由于T0的最大定時時間只能為131毫秒,因此不可能直接用

39、改變T0的時間初值來實現(xiàn)不同節(jié)拍。我們可以用T0來產(chǎn)生10毫秒的時間基準,然后設(shè)置一個中斷計數(shù)器,通過判別中斷計數(shù)器的值來控制節(jié)拍時間的長短。例如對1/4拍音符,定時時間為0.16秒,相應(yīng)的時間常數(shù)為16(即10H);對3拍音符,定時時間為1.92秒,相應(yīng)時間長數(shù)為192(即C0H)。我們將每一音符的時間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實現(xiàn)演奏效果。此外,結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某

40、些音符(例如兩個一樣音符)音插入一個時間單位的頻率略有不同的音符。5.5 系統(tǒng)程序設(shè)計5.5.1 主程序流程圖設(shè)計本設(shè)計中采用的獨立式鍵盤,按鍵的閉合與否直接反應(yīng)在口線的電平上,即口線的電平是呈現(xiàn)的高電平還是低電平。因此可以通過口線的電平高、低狀態(tài)檢測,來確認按鍵是否按下。但如果在觸點抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯,即按鍵一次按下或釋放被錯誤的認為是多次操作,為克服按鍵點機械抖動所致的檢測錯誤,確保CPU對一次按鍵動作只確認一次按鍵,必須采取去抖動的措施。系統(tǒng)流程圖如下所示:圖5.1 系統(tǒng)總流程圖圖5.2 放歌流程圖一般把按鍵掃描程序設(shè)計成子程序,以便其他程序調(diào)用。按鍵掃描子程

41、序流程圖如下: 開 始是否有鍵按下有否鍵按下延時去抖返回計算并保存鍵值按鍵是否釋放恢復(fù)鍵值Y NNYYN圖5.3 按鍵掃描流程圖5.5.2 1ms延時程序設(shè)計延時程序一般是通過一層或多層循環(huán)實現(xiàn),整個過程延時的時間是程序執(zhí)行的指令總條數(shù)乘以執(zhí)行每條指令所用的時間。由于該系統(tǒng)的晶振選用的是12M,所以執(zhí)行每條指令所所用時間為2us。程序執(zhí)行流程如下圖所示: 圖5.4 延時子程序流程圖5.5.3函數(shù)初始化子程序設(shè)計函數(shù)初始化程序即把在主函數(shù)對某些參數(shù)和標記位賦初值編寫成一個函數(shù),這樣使程序更具有條理化,清晰易懂。由于整個程序要用到定時器0和定時器1,所以初始化程序主要是對定時器相關(guān)容作說明。參考文

42、獻:1 杜洋.愛上單片機,人民郵電. 2011.11. 2 風強,蘭嬸麗.單片機語言C51應(yīng)用實戰(zhàn)集錦M,電子工業(yè).2005.5. 3 柴鈺.單片機原理與應(yīng)用M,電子科技大學(xué).2009.6設(shè)計心得體會月姣:這次單片機實習,總體來說還算順利。我們小組的單片機課程設(shè)計題目是:電子琴與音樂播放器的設(shè)計。在這次課程設(shè)計中,我學(xué)到很多很多的東西,不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識,可以進行一些簡單的編程,還能夠熟練的焊接電路,并學(xué)會如何找到電路中問題,如何利用KEIL編程軟件對源程序進行編程并調(diào)試。首先,在我們小組討論后確定了電路圖后,準備開始用PROTEUS仿真軟件仿

43、真,但是由于仿真軟件之前沒有用過不太熟練,在畫完電路圖之后仿真看不出來效果,所以就直接開始了焊接工作,在硬件焊接時,因為之前大二的實習有過經(jīng)驗,所以焊接時還是很容易上手的,幾個小時就焊接完成。下來就是最頭疼的調(diào)程序。由于是在網(wǎng)上下載的程序錯誤特別多,我們就一點一點的按照所要達到的要求修改程序。搜集到的程序有C語言的有匯編語言的。因為我們之前沒有接觸過51C語言的編程,所以我搜集了各種教程資料,學(xué)習了C語言的基本編程,想先做到能把資料上的程序看懂,進一步修改調(diào)試。但是在經(jīng)過了周二一下午到晚上還是沒有成功調(diào)試出程序,于是換了方向改用匯編語言進行編程,畢竟在學(xué)習單片機課程時一直在學(xué)習匯編。經(jīng)過研究利

44、用單片機發(fā)音的原理以與放歌時歌曲的音調(diào)與音色的表,我弄清楚了程序的主思路。第一次燒進去程序后,喇叭只有很小的雜音,放在耳朵邊才能聽見。這讓我們很懊惱,不知道是硬件的問題還是軟件的問題,在經(jīng)過了多次調(diào)試之后,又用萬用表反復(fù)測試電路各處電壓之后,發(fā)現(xiàn)是將三極管燒壞了。軟件也有問題,在咨詢了老師之后,我們才恍然大悟,原來是程序中給點時間太短,輸出的方波的高電平還沒有來得與將喇叭點響就變成了低電平,所以才會有很小的雜音。之后又將放歌程序嵌入到主程序中,成功實現(xiàn)了之前預(yù)期的功能。在聽到按按鍵之后發(fā)出的清脆的歌聲時,我們都很興奮。在星期四早上我們又給自動放歌中加了一首歌,并且嘗試用一個4*4鍵盤來代替之前

45、的八個按鍵,因為按鍵多了可以發(fā)高低調(diào)的音。但是因為程序又要有很大的變動,在調(diào)試程序后一直沒有出來。在實習過程中,我感覺每一次問題的發(fā)現(xiàn)和解決都讓我學(xué)到了很多東西。雖然最后還是沒有達到理想中的效果。但是我堅信 “失敗是成功之母“。我一定會成功。如果我的時間再長一點,我們一定會成交上一個更完美的作品。最后真的很感王老師,耐心的幫助我們解決問題,在我們很迷茫的時候點播思路。這次實習是一個起點,它對我以后的學(xué)習和未來的工作將會有很大的幫助。呂元杰: 個人覺得本次的單片機還是非常有意義的,第一能讓我們把實際的與理論的知識做一個結(jié)合,第二,讓我們對單片機這一個應(yīng)用學(xué)科,學(xué)習的更“生動”,具體的感覺,了解操

46、作,而不是在書本上念文字。 這次的課程設(shè)計,我們做的是一個電子琴音樂播放器,原本的心中理想作品是帶有彈琴,放歌(多首),顯示,多音節(jié)的電子琴音樂播放器。但由于時間不是很充足,而且碰到的問題略多,進度緩慢,最終作品的要求改為,帶按鍵彈琴,帶音樂播放(2首)。前期準備的時候搜集了很多東西,并對可以借鑒的文檔進行了分析,然后綜合了多個文檔確定了我們這次的方案。然后根據(jù)這些資料利用proteus軟件進行了繪制,并進行前期的仿真。開始硬件的焊裝時,我們對按鍵模塊進行了選擇。原先的方案是4*4矩陣按鍵,最后發(fā)現(xiàn)按鍵過多,只做一個音階的話可以只用一排8個鍵就夠,而且4*4矩陣鍵盤掃描程序麻煩的很,最終就放棄

47、了4*4矩陣鍵盤。在做放大電路時我們選用的是NPN三極管,因為覺得三極管的能力就已經(jīng)能達到要求,不需要放大器。做揚聲器的時候我們本來選用了蜂鳴器和喇叭,最后蜂鳴器對音調(diào)的區(qū)分不明顯達不到效果,所以放棄,改用功率略大的喇叭。做好硬件,開始調(diào)試,首先編輯一個簡單的方波信號來檢測揚聲器的好壞,經(jīng)過多次調(diào)試和改件最終能工作,然后利用匯編語言編寫了一個按鍵的發(fā)音,經(jīng)過調(diào)試成功后,開始加寫多個按鍵的發(fā)音。同時我的搭檔編寫自動放音程序,然后調(diào)試。最后我們都把自己的子程序?qū)懞?,調(diào)試成功,然后組合成一個總程序,達到作品要求。在組合的時候也出現(xiàn)過程序問題,因為我們有的部分使用了同一個工作寄存器,還有定時器。在碰到

48、問題的時候有時候一天都調(diào)不出來,有時候團隊之間有很多的分歧,但是最后在老師的幫助分析錯誤原因,最后都解決了。所以要老師和搭檔的幫助。 這次的課程設(shè)計對自己真的有所提高,以后會多多做些練手的東西,從實際中學(xué)到書本上學(xué)不到的知識。實踐出真知。8 附錄8.1 附錄一 硬件原理圖8.2 附錄二 實物圖8.3 附錄三 元器件清單表一 元器件清單AT89C52芯片1個按鈕8個瓷片電容3個晶振12MHZ1個電阻10K8個電阻2001個NPN 80501個喇叭1個8.4 附錄四 軟件主程序 ORG 0000H LJMP START ORG 000BH LJMP INT_T0 ORG 001BH LJMP T1

49、_SEVSTART: MOV P1,#0FFH MOV TMOD,#01H SETB ET0 SETB EAST:MOV R3,P1CJNE R3,#0FFH,KEY1 CLR TR0 SJMP ST KEY1: CJNE R3,#0FEH,KEY2 MOV 30H,#0FBHMOV 31H,#0E9HLJMP SET_TIMERKEY2: CJNE R3,#0FDH,KEY3MOV 30H,#0FCHMOV 31H,#5CHLJMP SET_TIMERKEY3: CJNE R3,#0FBH,KEY4MOV 30H,#0FCHMOV 31H,#0C1HLJMP SET_TIMERKEY4: CJNE R3,#0F7H,KE

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論