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