單片機(jī)課程設(shè)計(jì)基于89C51的電子琴的設(shè)計(jì)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)基于89C51的電子琴的設(shè)計(jì)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)基于89C51的電子琴的設(shè)計(jì)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)基于89C51的電子琴的設(shè)計(jì)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)基于89C51的電子琴的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)系統(tǒng)課程設(shè)計(jì)單片機(jī)系統(tǒng)課 程 設(shè) 計(jì)成績(jī)?cè)u(píng)定表設(shè)計(jì)課題 : 基于89c51的電子琴的設(shè)計(jì) 學(xué)院名稱 : 電氣工程學(xué)院 專業(yè)班級(jí) : 學(xué)生姓名 : 學(xué) 號(hào) : 指導(dǎo)教師 : 設(shè)計(jì)地點(diǎn) : 設(shè)計(jì)時(shí)間 : 指導(dǎo)教師意見:成績(jī): 簽名: 年 月 日 單片機(jī)系統(tǒng)課 程 設(shè) 計(jì)課程設(shè)計(jì)名稱: 基于89c51的電子琴的設(shè)計(jì) 專 業(yè) 班 級(jí) : 學(xué) 生 姓 名 : 學(xué) 號(hào) : 指 導(dǎo) 教 師 : 課程設(shè)計(jì)地點(diǎn): 課程設(shè)計(jì)時(shí)間: 單片機(jī)系統(tǒng) 課程設(shè)計(jì)任務(wù)書學(xué)生姓名專業(yè)班級(jí)學(xué)號(hào)題 目課題性質(zhì)工程設(shè)計(jì)課題來(lái)源自擬指導(dǎo)教師李攀峰主要內(nèi)容(參數(shù))1、利用89c51單片機(jī)設(shè)計(jì)一個(gè)簡(jiǎn)單的具有演奏功能的電子琴;2、通

2、過led數(shù)碼管顯示音階的高低;3、通過4*4按鍵演奏出從低so到高do等16個(gè)音,從而可以用來(lái)彈奏喜歡的樂曲。任務(wù)要求(進(jìn)度)第1-2天:熟悉課程設(shè)計(jì)任務(wù)及要求,查閱技術(shù)資料,確定設(shè)計(jì)方案。第3-4天:按照確定的方案設(shè)計(jì)單元電路。要求畫出單元電路圖,元件及元件參數(shù)選擇要有依據(jù),各單元電路的設(shè)計(jì)要有詳細(xì)論述。第5-6天:軟件設(shè)計(jì),編寫程序。第7-8天:實(shí)驗(yàn)室調(diào)試。第9-10天:撰寫課程設(shè)計(jì)報(bào)告。要求內(nèi)容完整、圖表清晰、文理流暢、格式規(guī)范、方案合理、設(shè)計(jì)正確,篇幅合理。主要參考資料1 張迎新單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)(第2版)m北京:國(guó)防工業(yè)出版社,20042偉福lab6000系列單片機(jī)仿

3、真實(shí)驗(yàn)系統(tǒng)使用說明書3 閻石數(shù)字電路技術(shù)基礎(chǔ)(第五版)北京:高等教育出版社,2006審查意見系(教研室)主任簽字: 年 月 日 目 錄1.緒論21.1電子琴概述21.2設(shè)計(jì)思想及基本功能32.總體方案設(shè)計(jì)32.1方案設(shè)計(jì)32.2方案設(shè)計(jì)要求32.3電子琴系統(tǒng)的組成42.4系統(tǒng)框圖43.硬件電路設(shè)計(jì)53.1單片機(jī)最小系統(tǒng)模塊設(shè)計(jì)53.1.1at89c51單片機(jī)53.1.2 單片機(jī)最小系統(tǒng)模塊硬件設(shè)計(jì)93.2按鍵控制模塊設(shè)計(jì)103.3音頻輸出模塊設(shè)計(jì)103.3.1lm386音頻放大器103.3.2 音頻輸出模塊硬件接線設(shè)計(jì)113.4 led數(shù)碼管顯示模塊設(shè)計(jì)114.系統(tǒng)軟件設(shè)計(jì)124.1 軟件設(shè)計(jì)

4、思想124.2音樂知識(shí)以及播放原理124.3軟件設(shè)計(jì)流程圖145.總結(jié)16參考文獻(xiàn):17附錄18附錄一 系統(tǒng)原理圖18附錄二 程序代碼191.緒論 1.1電子琴概述 隨著社會(huì)的發(fā)展進(jìn)步,音樂是人們生活中不可或缺的元素,音樂可以使人放松心情,陶冶情操,要演奏出好的音樂需要好的樂器,而且伴隨著電子技術(shù)的快速發(fā)展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生活、工作。基于當(dāng)前市場(chǎng)上的玩具市場(chǎng)需求量大,其中電子琴就是一個(gè)很好的應(yīng)用方面。單片機(jī)技術(shù)使我們可以利用軟硬件實(shí)現(xiàn)電子琴的功能,從而實(shí)現(xiàn)電子琴的微型化,可以用作玩具琴、音樂轉(zhuǎn)盤以及音樂童車等等,并且可以進(jìn)行一定的功能擴(kuò)展。鑒于傳統(tǒng)電子琴可以用鍵盤上的“k0

5、”到“k16”鍵演奏從低so到高do等16個(gè)音,從而可以用來(lái)彈奏喜歡的樂曲。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器,它在現(xiàn)代音樂中扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,他已經(jīng)融入了讓人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用at89c51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。1.2設(shè)計(jì)思想及基本功能本設(shè)計(jì)采用51系列單片機(jī)at89c51為主控制器,附有一個(gè)4*4按鍵矩陣鍵盤、led數(shù)碼顯示管和揚(yáng)聲器,系統(tǒng)完成顯示輸入信息、播放相應(yīng)音符等基本功

6、能。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。按下矩陣鍵盤中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的音符。鑒于傳統(tǒng)電子琴可以用鍵盤上的“k0”到“k16”鍵演奏從低so到高do等16個(gè)音,從而可以用來(lái)彈奏喜歡的樂曲。本設(shè)計(jì)可實(shí)現(xiàn)的功能為:通過4*4矩陣鍵盤的按鍵,當(dāng)按下其中某一個(gè)按鍵時(shí),揚(yáng)聲器可發(fā)出對(duì)應(yīng)的音階,并且led數(shù)碼管可以顯示出當(dāng)前的音階大小,從而可以彈奏出美妙的樂曲。2.總體方案設(shè)計(jì)2.1方案設(shè)計(jì)方案一:用可控硅制作電子琴。將220v交流電經(jīng)變壓器降壓,再經(jīng)過整流、濾波,獲得+13.5v直流電壓。將單向可控硅scr和電阻、電容組成馳張振蕩器電路。

7、但該設(shè)計(jì)方案制作成本高且復(fù)雜。方案二:采用at89s51單片機(jī)進(jìn)行控制,由于其性價(jià)比高,完全滿足了本設(shè)計(jì)智能化的要求,它的內(nèi)部程序存儲(chǔ)空間為4k,完全滿足了本設(shè)計(jì)的需要,并且使用方便,抗干擾性能高。鑒于上述兩個(gè)方案的優(yōu)略比較和分析,本設(shè)計(jì)采用第二種方案。2.2方案設(shè)計(jì)要求關(guān)于電子琴的設(shè)計(jì),具體要求如下:1. 音階高低的處理,利用定時(shí)器來(lái)控制頻率,而每個(gè)音符的符號(hào)只是存在我自己定義的要求達(dá)到電子琴的基本功能,可以演奏出簡(jiǎn)單的樂曲。2. 用鍵盤做出電子琴的按鍵,每一個(gè)鍵代表一個(gè)音符。3. 各音符按一定的順序排列,必須符合電子琴的按鍵排列順序。2.3電子琴系統(tǒng)的組成單片機(jī)因體積小、功能強(qiáng)、價(jià)格低廉而

8、得到廣泛的應(yīng)用。通過在市面上的多種單片機(jī)的比較,at89c51在性能上基本符合本系統(tǒng)的要求,并且價(jià)格比較便宜,而且對(duì)我們來(lái)說比較熟悉,所以采用該單片機(jī)。本設(shè)計(jì)是以at89c51為核心控件,外部擴(kuò)展一組矩陣鍵盤,接一個(gè)發(fā)光二極管來(lái)指示電子琴的工作狀態(tài),加一個(gè)led數(shù)碼管顯示當(dāng)前所按的音階。本系統(tǒng)分為兩個(gè)部分:一個(gè)是音頻放大器,另一個(gè)就是電子琴的鍵盤。音樂播放部分:樂音實(shí)際上是有固定的周期信號(hào),本系統(tǒng)采用at89c51的兩個(gè)定時(shí)器(t0,t1)控制,在p1.0腳上輸出方波周期信號(hào),產(chǎn)生樂音,通過矩陣鍵盤按鍵產(chǎn)生不同的音符,由此操作人員可以隨心所欲的彈奏自己所喜愛的樂曲。由于一首音樂是由許多不同的音

9、階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0(或t1)來(lái)產(chǎn)生這樣的方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。樂曲中,每一個(gè)音符對(duì)應(yīng)著確定的頻率,我們將每一個(gè)音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏。2.4系統(tǒng)框圖 該系統(tǒng)通過電子琴按鍵隨意鍵入所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音,通

10、過這樣可以不斷的彈奏音樂。本設(shè)計(jì)主要模塊由四個(gè)部分組成:按鍵模塊、主控模塊、音頻模塊、led顯示模塊。如圖2-1所示:圖2-1系統(tǒng)框圖 圖2-1為此次設(shè)計(jì)中的電子琴的硬件結(jié)構(gòu)圖,我們運(yùn)用單片機(jī)的最小系統(tǒng),用p3口的高四位和p3口的低四位座4*4矩陣式鍵盤的接口,用p0口作數(shù)碼管的接口,用p1.0作信號(hào)輸出口。整個(gè)系統(tǒng)分為四個(gè)模塊,at89c51單片機(jī)作為核心控制模塊,矩陣鍵盤式輸入模塊,音頻放大器和數(shù)碼管顯示是輸出模塊。3.硬件電路設(shè)計(jì)硬件電路包括單片機(jī)最小系統(tǒng)、按鍵控制電路、音頻輸出和數(shù)碼管顯示電路四大模塊。3.1單片機(jī)最小系統(tǒng)模塊設(shè)計(jì) 3.1.1at89c51單片機(jī) at89c51是一個(gè)低

11、功耗高性能cmos 8位單片機(jī)片內(nèi)含4k bytes isp(in-system programmable)的可反復(fù)擦寫1000次的flash只讀程序存儲(chǔ)器器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)制造兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及80c51引腳結(jié)構(gòu)芯片內(nèi)集成了通用8位中央處理器和isp flash存儲(chǔ)單元功能強(qiáng)大的微型計(jì)算機(jī)的at89c51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。 at89c51具有如下特點(diǎn):40個(gè)引腳(引腳圖如圖3-1所示),4k bytes flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器ram,32個(gè)外部雙向輸入/輸出i/o口,5個(gè)中斷優(yōu)

12、先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,片內(nèi)時(shí)鐘振蕩器。此外at89c51設(shè)計(jì)和配置了振蕩頻率可為0hz并可通過軟件設(shè)置省電模式??臻e模式下cpu暫停工作而ram定時(shí)計(jì)數(shù)器串行口外中斷系統(tǒng)可繼續(xù)工作掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù)停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有pdip、tqfp和plcc等三種封裝形式以適應(yīng)不同產(chǎn)品的需求。 其主要特性如下: 與mcs-51 兼容 4k字節(jié)可編程flash存儲(chǔ)器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時(shí)間:10年 全靜態(tài)工作:0hz-24mhz 三級(jí)程序存儲(chǔ)器鎖定 1288位內(nèi)部ram 32可編程i/o

13、線 兩個(gè)16位定時(shí)器/計(jì)數(shù)器 5個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 圖3-1at89c51引腳排列圖 vcc:供電電壓。 gnd:接地。 p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收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外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用

14、作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 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)行存取時(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í)接收高八位地

15、址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如表3-1所示:表3-1 p3口管腳特殊功能p3口管腳特殊功能p3.0 rxd串行輸入口p3.1 txd串行輸出口p3.2 /int0外部中斷0p3.3 /int1外部中斷1p3.4 t0記時(shí)器0外部輸入p3.5 t1記時(shí)器1外部輸入p3.6 /wr外部數(shù)據(jù)存儲(chǔ)器寫選通p3.7 /rd外部數(shù)據(jù)存儲(chǔ)器讀選通p3口同

16、時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 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í)行movxmovc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale

17、禁止,置位無(wú)效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset,當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來(lái)自反向振蕩器的輸出。 振蕩器特性: xtal1和xtal2分別為反向放大

18、器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件xtal2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。3.1.2 單片機(jī)最小系統(tǒng)模塊硬件設(shè)計(jì) 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元決定單片機(jī)的工作速度。外部振蕩源電路一般選用石英晶體振蕩器,此電路在加點(diǎn)大約延遲10ms后振蕩器起振,在xtal2引腳產(chǎn)生幅度為3v左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。

19、如圖3-2時(shí)鐘電路所示,電路中兩個(gè)電容c1,c2用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。c1,c2的典型值為30pf。 單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生的周期或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期,稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),通常用fosc表示。如時(shí)鐘頻率為12mhz即fosc12mhz則時(shí)鐘周期為1/12s。圖3-2 單片機(jī)時(shí)鐘電路 3.2按鍵控制模塊設(shè)計(jì) 在鍵盤中按鍵數(shù)量較多時(shí),為了減少i/o口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如p3口)就可以構(gòu)成4

20、*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤是合理的。 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,圖3-3中,行線所接的單片機(jī)的i/o口作為輸出端,而列線所接的i/o口則作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無(wú)鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會(huì)被拉低。這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。圖3-3 矩陣鍵盤連線設(shè)計(jì)3.3音頻輸出模塊設(shè)計(jì)3.3.1lm386音頻放大器lm3

21、86是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。lm386是一種音頻集成功放具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn)廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。lm386特性如下: 靜態(tài)功耗低,約為4ma,可用于電池供電。 工作電壓范圍寬,4v-12v或5v-18v。外圍元件少。 電壓增益可調(diào),20-200。 低失真度。 3.3.2 音頻輸出模塊硬件接線設(shè)計(jì)音頻放大器的接線比較簡(jiǎn)單,具體接線如圖3-4所示,后接揚(yáng)聲器即可。圖3-4 音頻放大電路接線圖3.4 led數(shù)碼管顯示模塊設(shè)計(jì) 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多

22、一個(gè)發(fā)光二極管單元,多一個(gè)小數(shù)點(diǎn)顯示,按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管,按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(com)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。 在本設(shè)計(jì)中,由于只需要顯示音階對(duì)應(yīng)的數(shù)字,所以我

23、們選用7段數(shù)碼管。7段數(shù)碼管如圖3-5所示:圖3-5 led數(shù)碼管顯示電路圖4.系統(tǒng)軟件設(shè)計(jì)4.1 軟件設(shè)計(jì)思想 本系統(tǒng)主要采用at89c51單片機(jī)為核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模板,利用定時(shí)器可以發(fā)出不同頻率的脈沖,不同頻率的脈沖經(jīng)喇叭驅(qū)動(dòng)電路放大濾波后可以發(fā)出不同的音調(diào)。操作的時(shí)候,通過不同的按鍵發(fā)出不同的音調(diào)從而實(shí)現(xiàn)編曲。 系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時(shí)計(jì)數(shù)中斷程序、時(shí)間調(diào)整或定鬧設(shè)置程序三大模塊。在程序設(shè)計(jì)過程中加強(qiáng)了部分軟件抗干擾措施. 4.2音樂知識(shí)以及播放原理 一首音樂是許多不懂的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)

24、成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將p1.0反相然后重復(fù)計(jì)時(shí)再反相。就可以在p1.0引腳上得到此頻率的脈沖。 利用at89c51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(mode1)下,改變計(jì)數(shù)值th0及tl0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523hz,其周期t=1/523=1912s,因此只要令計(jì)數(shù)器計(jì)時(shí)956s/1s

25、=956,每計(jì)數(shù)956次時(shí)將i/o反相,就可得到中音do(523hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系式(如式4-1所示)是: n=fi2fr 4-1 式中:n表示計(jì)數(shù)值; fi表示機(jī)器頻率(晶體振蕩器為12mhz時(shí),其頻率為1mhz); fr表示想要產(chǎn)生的頻率。 其計(jì)數(shù)初值t的求法如下(如式4-2): t=65536-n=65536-fi2fr 4-2 例如:設(shè)k=65536,fi=1mhz,求低音do(261hz)、中音do(523hz)、高音do(1046hz)的計(jì)數(shù)值。 t=65536-n=65536-fi2fr=65536-10000002fr=65536-500000/fr 即:低音do

26、的t=65536-500000/262=63627 中音do的t=65536-500000/523=64580 高音do的t=65536-500000/1046=65059 本單片機(jī)采用的是12mhz晶振,高中低音符與計(jì)數(shù)t0相關(guān)的計(jì)數(shù)值如表4-1所示: 表4.1 高低音符與單片機(jī)計(jì)數(shù)t0相關(guān)計(jì)數(shù)值表音符頻率(hz)簡(jiǎn)譜碼(t值)音符頻率(hz)簡(jiǎn)譜碼(t值)低1 do26263628# 4 fa74064860#1 do#27763731中 5 so78464898低2 re29463835# 5 so#83164934#2 re#31163928中 6la88064968低3 m33064

27、021# 693264994低4 fa34964103中 7 si98865030#4 fa37064185高 1 do104665058低5 so39264260# 1 do#110965085#5 so#41564331高 2 re117565110低6 la44064400# 2 re#124565134#646664463高 3 m131865157低7 si49464524高 4 fa139765178中 1 do52364580# 4 fa#148065198#1 do#55464633高 5 so156865217中 2 re58764684# 5 so#166165235#2

28、re#62264732高6la176065252中 3 m65964777# 6186565268中 4 fa69864820高 7si196764283 音樂的音拍,以一個(gè)節(jié)拍為單位(c調(diào)),如表4-2所示:表4-2 曲調(diào)值表曲調(diào)值delay曲調(diào)值delay調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms 對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。 琴鍵處理程序,根據(jù)檢測(cè)到得按鍵值,查詢音律表,給計(jì)時(shí)器賦值,發(fā)出相應(yīng)頻率的聲音。對(duì)音調(diào)的控制,根據(jù)不同的按鍵,對(duì)定時(shí)器t1送入不同的初值,調(diào)節(jié)t1的溢出時(shí)間,這樣就可以輸

29、出不同音調(diào)頻率的方波,不同音調(diào)下各個(gè)音階的定時(shí)器,可以用t0用來(lái)產(chǎn)生音符頻率,t1用來(lái)產(chǎn)生音拍。4.3軟件設(shè)計(jì)流程圖 主程序流程圖和t0中斷服務(wù)流程圖如圖4-1所示: 圖4-1整體程序處理流程圖 音樂發(fā)聲程序流程如圖4-2所示 :圖4-2 音樂發(fā)聲流程圖 鍵盤掃描程序流程如圖4-3所示: 1. 44矩陣鍵盤識(shí)別處理,每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和cpu通信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關(guān)的一端(列線)通過電阻接vcc,而接地是通過程序輸出數(shù)字“0”實(shí)現(xiàn)的。 2.鍵盤處理程序的任務(wù)是,確定有無(wú)鍵按下,判斷

30、哪一個(gè)鍵按下,鍵的功能是什么,還要消除按鍵在閉合或斷開時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過軟件查表,查出該鍵的功能。圖4-3 鍵盤掃描流程圖5.總結(jié) 本設(shè)計(jì)是利用at89c51單片機(jī)設(shè)計(jì)的電子琴,硬件電路簡(jiǎn)單,如果對(duì)象是更為復(fù)雜的電子琴系統(tǒng),其實(shí)際原理與方法與本設(shè)計(jì)基本相同。另外,實(shí)例所設(shè)計(jì)的的計(jì)算器是用led數(shù)碼管顯示的,當(dāng)然也可以用其他的器件顯示,如lcd液晶顯示屏,這樣就可以顯示出更加豐富的字符,在此基礎(chǔ)上,還可以編寫更加完善的程序來(lái)實(shí)現(xiàn)更多的功能。 經(jīng)過這次的課程設(shè)計(jì),不僅鞏固了書本上所

31、學(xué)的知識(shí),而且對(duì)單片機(jī)有了更進(jìn)一步的了解。通過查閱資料,不斷地修改程序,在老師和同學(xué)的幫助下解決了一個(gè)又一個(gè)困難,最終得以設(shè)計(jì)成功。這次課程設(shè)計(jì),擴(kuò)充給了我的知識(shí)面,讓我學(xué)到了更多的有關(guān)于單片機(jī)的知識(shí),為了將來(lái)的工作打下了堅(jiān)實(shí)的基礎(chǔ)。參考文獻(xiàn):1 張迎新單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)(第2版)m北京:國(guó)防工業(yè)出版社,20042偉福lab6000系列單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)使用說明書3 閻石數(shù)字電路技術(shù)基礎(chǔ)(第五版)北京:高等教育出版社,20064夏路易,石宗義。電路原理圖與電路板設(shè)計(jì)教程protel 99se.北京:北京希望電子出版社,20025康華光。模擬電路技術(shù)基礎(chǔ)(第五版)。北京:高等教育出版社,2005附錄附錄一 系統(tǒng)原理圖附錄二 程序代碼 org 0000h ;初始位置00h jmp staret ;跳到主程序 org 000bh ;定時(shí)器0中斷起始單元 jmp time0 ;跳到中斷程序 staret: mov tmod,#00000001b;設(shè)定工作方式為1 mov ie, #10000010b ;開中斷允許 setb tr0l1: call key ;調(diào)用鍵盤掃描程序 clr ea ;關(guān)中斷總允許 jb f0,l1 ;查詢鍵盤按下標(biāo)志 mov a,22h ;將鍵盤碼送單元a mov dptr,#table1 movc a,a+dptr ;將查詢

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論