南江萍 鄭凱 謝國(guó)坤 賈亞娟 鄭建波
【摘 要】本文主要研究的是基于STC89C51單片機(jī)的電子琴,設(shè)計(jì)了系統(tǒng)的主要電路模塊,并應(yīng)用Proteus仿真軟件和Keil軟件編程軟件,使用單片機(jī)C語(yǔ)言對(duì)單片機(jī)進(jìn)行編程,實(shí)現(xiàn)了使電子琴能夠彈奏簡(jiǎn)單歌曲和自動(dòng)播放歌曲的功能。
【關(guān)鍵詞】STC89C51單片機(jī);電子琴;Protues;Keil
近年來(lái),電子樂(lè)器的出現(xiàn),幫助流行音樂(lè)迅速席卷全球各地,同時(shí)也促進(jìn)了電子樂(lè)器的發(fā)展,走進(jìn)了越來(lái)越多的家庭。電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。
本文設(shè)計(jì)了一個(gè)由單片機(jī)作為控制元件的電子琴的制作,主要介紹的是電子琴硬件系統(tǒng)的組成并對(duì)相關(guān)的軟件完成編寫(xiě)與調(diào)試。整個(gè)電子琴工作的過(guò)程首先是需要單片機(jī)主控軟件處理信息,其次主控軟件發(fā)出的電脈沖能。信號(hào)經(jīng)過(guò)各個(gè)模塊,最后各個(gè)模塊發(fā)揮出對(duì)應(yīng)的功能,進(jìn)而實(shí)現(xiàn)電子琴的基本功能。
一、總體設(shè)計(jì)框架
本文中的電子琴需要能夠控制播放一首或者是多首歌曲,并能實(shí)現(xiàn)簡(jiǎn)單的彈奏功能,具體要求如表1.1所示。最基本的要求便是電子琴可以產(chǎn)生音符和音拍,來(lái)達(dá)到彈奏音樂(lè)的目的,需要系統(tǒng)能夠控制音樂(lè)的播放,同時(shí)也需要具備錄制音樂(lè)的功能。電子琴的三個(gè)具體功能需求為鍵盤(pán)功能需求、音樂(lè)存儲(chǔ)功能需求、音樂(lè)播放功能需求。
表1.1 電子琴功能要求表
電子琴設(shè)計(jì)總框架如圖1.1所示。
圖1.1 電子設(shè)計(jì)總框架
本文所設(shè)計(jì)的電子琴,以STC89C51單片機(jī)為系統(tǒng)的主控芯片,系統(tǒng)還包括了復(fù)位電路模塊、晶振電路模塊、鍵盤(pán)電路模塊、顯示電路模塊以及音樂(lè)播放電路模塊五大部分。
二、系統(tǒng)各模塊設(shè)計(jì)
(一)音樂(lè)播放電路模塊
音樂(lè)播放功能能夠通過(guò)以下兩種方案發(fā)出相應(yīng)的音符,并能夠播放一首或多首歌曲。
1.LM386音頻功率放大器:LM386是一種音頻集成功放,其電壓可通過(guò)在1腳與8腳之間增加電阻、電容達(dá)到電壓增益的目的,使得LM386的電壓增益穩(wěn)定在20-200之間。因此LM386廣泛應(yīng)用于低壓電器,如收音機(jī)、錄音機(jī)等。其具有外圍元件少,功耗低等優(yōu)點(diǎn)。
2.蜂鳴器是一種采用直流電壓的一體化結(jié)構(gòu)的電子訊響器,因此更適合于使用電池供電的電子琴。蜂鳴器有電壓式與電磁式蜂鳴器兩種,主要區(qū)別在3.6有詳細(xì)講述。文章主要采取的是電磁式蜂鳴器。
這兩種方案中,都適用于低電壓電路,在價(jià)格上,LM386功放芯片的價(jià)格高于電磁式蜂鳴器,其外圍元件雖少,但與蜂鳴器相比較多;同時(shí),LM386功放芯片的電路較為復(fù)雜,電壓增益的優(yōu)點(diǎn)對(duì)于本文所制作的電子琴意義不大,不需要多次改變電壓增益。此外,方案2)中還可以通過(guò)與主控軟件的結(jié)合,使得系統(tǒng)更加簡(jiǎn)便。電子琴中的單片機(jī)可以通過(guò)自身所攜帶的I/O口驅(qū)動(dòng)的蜂鳴器鳴叫,只需要對(duì)該I/O口的電平進(jìn)行翻轉(zhuǎn)就可以達(dá)到這種目的。因此,本文采取電磁式蜂鳴器作為電子琴的揚(yáng)聲器部分。
(二)顯示電路模塊
本設(shè)計(jì)中顯示電路部分用LED八段數(shù)碼管,其具有壽命長(zhǎng)、耗電低等優(yōu)點(diǎn),有公共陽(yáng)極和公共陰極的區(qū)分。在日常生活中,LED數(shù)碼管的兩種驅(qū)動(dòng)方式:靜態(tài)顯示和動(dòng)態(tài)顯示,兩種方式都被廣泛應(yīng)用于單片機(jī)中。而對(duì)于本文所制造的電子琴來(lái)說(shuō),因?yàn)槠渲骺剀浖荂51系列的單片機(jī),所以能夠使LED數(shù)碼管在硬件中得到最好的應(yīng)用。與其他顯示硬件相比,LED數(shù)碼管還具備了規(guī)格眾多;能夠在低電壓環(huán)境下工作;性能優(yōu)越等因素。因此,文章采用共陰極LED八段數(shù)碼管作為顯示電路模塊,其公共端接地線P0口連接到1K上拉電阻,由于不使用小數(shù)點(diǎn)顯示,因此將DP引腳懸空。
數(shù)碼管與單片機(jī)引腳連接圖如圖2.1所示。
圖2.1 數(shù)碼管所接引腳圖
(三)鍵盤(pán)電路模塊
常用的按鍵有三種:機(jī)械觸點(diǎn)式按鍵、導(dǎo)電橡膠式和柔性按鍵(又稱(chēng)薄膜按鍵)。
從經(jīng)濟(jì)效益和性?xún)r(jià)比層次考慮,選擇了機(jī)械按鍵作為鍵盤(pán)模塊的硬件設(shè)備。機(jī)械觸點(diǎn)式按鍵的基本原理跟平時(shí)所使用的鍵盤(pán)一樣,是通過(guò)鍵位的彈性來(lái)是按鍵復(fù)位。與電腦鍵盤(pán)具有的優(yōu)點(diǎn)類(lèi)似,其具有感覺(jué)明顯、連接電路簡(jiǎn)單,易于操作等優(yōu)點(diǎn)。但本系統(tǒng)采取的按鍵較少,不能實(shí)現(xiàn)緊密排除,因此長(zhǎng)時(shí)間使用后,在焊接點(diǎn)容易進(jìn)入灰塵、頭發(fā)絲等異物,導(dǎo)致焊接點(diǎn)接觸不良的問(wèn)題發(fā)生并影響整個(gè)系統(tǒng)的功能。同時(shí)機(jī)械觸點(diǎn)式按鍵的按鍵面積比較大,會(huì)給焊接過(guò)程帶來(lái)一定的麻煩。
按鍵電路圖如圖2.2所示。
鍵盤(pán)模塊的軟件編程過(guò)程中,系統(tǒng)需要解決的最重要的問(wèn)題是如何去抖動(dòng),本文是通過(guò)軟件編程來(lái)去鍵盤(pán)抖動(dòng)的。在檢測(cè)到按鍵按下后,通過(guò)軟件編程語(yǔ)言使系統(tǒng)先執(zhí)行程序,隨后在對(duì)按鍵進(jìn)行檢測(cè),第二次檢測(cè)結(jié)果確定后,才能決定按鍵是否是被按下,是否可以傳輸信息。
三、軟件系統(tǒng)設(shè)計(jì)
(一)系統(tǒng)軟件設(shè)計(jì)
根據(jù)系統(tǒng)的軟硬件需求,為硬件設(shè)計(jì)匹配相符合的軟件設(shè)施,在軟件設(shè)計(jì)的一開(kāi)始,對(duì)程序的總框圖進(jìn)行了設(shè)計(jì)。圖3.1是系統(tǒng)的總設(shè)計(jì)流程圖。
(二)按鍵電路模塊軟件設(shè)計(jì)
根據(jù)硬件設(shè)計(jì)中的鍵盤(pán)需求,對(duì)每一個(gè)鍵位對(duì)應(yīng)分配一個(gè)發(fā)音,達(dá)到電子琴?gòu)椬嗟哪康?,程序流程圖如圖3.2所示。
(三)去抖模塊
按鍵去抖通常的按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)。因而在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵去抖。
去抖是為了避免在按鍵按下或是抬起時(shí)電平劇烈抖動(dòng)帶來(lái)的影響。按鍵的消抖,可用硬件或軟件兩種方法。常用軟件方法去抖,即檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms~10ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。
四、結(jié)論
本系統(tǒng)仿真是在Proteus軟件上進(jìn)行,該軟件不僅可以仿真目前市面上51系列、ARM等主流的單片機(jī),還可以仿真它們的外圍電路。在使用Proteus軟件進(jìn)行仿真之前,首先要在Keil軟件來(lái)進(jìn)行系統(tǒng)軟件的調(diào)試。目的檢測(cè)軟件程序是否能夠流暢、準(zhǔn)確的運(yùn)行,各個(gè)子程序的運(yùn)行順序是否正確,各子程序之間的銜接是否順暢。系統(tǒng)程序調(diào)試結(jié)果能夠?qū)崿F(xiàn)系統(tǒng)設(shè)計(jì)要求。
通過(guò)本系統(tǒng)的軟硬件設(shè)計(jì),簡(jiǎn)易電子琴系統(tǒng)功能能夠達(dá)到預(yù)計(jì)性能要求,不僅實(shí)現(xiàn)了基本的琴鍵功能,并且實(shí)現(xiàn)了自動(dòng)播放生日快樂(lè)歌以及演奏簡(jiǎn)單樂(lè)曲的功能,還實(shí)現(xiàn)了通過(guò)按鍵達(dá)到控制音樂(lè)播放的功能。
【參考文獻(xiàn)】
[1]周琛暉.基于AT89S51單片機(jī)的電子琴設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2009,5(27):7679-7681.
[2]徐江維,李菲.基于51單片機(jī)的電子琴設(shè)計(jì)[J].電子世界,2017(09):125.
[3]杜平.基于51單片機(jī)的聲光電子琴設(shè)計(jì)[J].數(shù)碼設(shè)計(jì),2017,6(08):48-49.
[4]和麗花,張海龍.基于Proteus的單片機(jī)電子琴的設(shè)計(jì)[J].中國(guó)新技術(shù)新產(chǎn)品,2014(11):91.
[5]錢(qián)學(xué)斌.AT89S52單片機(jī)的電子琴設(shè)計(jì)[J].民營(yíng)科技,2013(12):124.
[6]王爽.趣味電子制作在嵌入式電路基礎(chǔ)課程中的應(yīng)用[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2013,16(20):215+217.