李健,陳銀
(巢湖學院 電子工程學院,安徽合肥,238000)
隨著我國經濟快速發展,人民的生活質量逐步提高,娛樂產品走入千家萬戶。電子琴等電子產品的誕生,豐富了業余生活,讓人民的生活多姿多彩[1]。電子琴是現代電子技術應用于音樂而制作的電子樂器[2]。單片機高具有強大的控制及邏輯運算功能,以單片機為核心的電器設備已融入人們的日常生活中,如電視機、電冰箱、洗衣機、DVD、汽車音響等[2]。本文利用一款性價比高的單片機STC89C52作為核心控制器,設計制作一種帶有21鍵,且能顯示音符、指示高中低音的電子琴。該電子琴系統具有電路結構簡單、音符種類較多、易操作、成本低等優點,可以作為低齡兒童培養音樂興趣的玩具來用。
電子琴整體方案框圖如圖1所示,系統以STC89C52單片機為核心,外圍配置了3×7矩陣鍵盤電路、數碼管音符顯示電路、LED高中低音指示電路和揚聲器發聲電路等,主要工作流程為:有按鍵按下,單片機識別后通過揚聲器發出與該按鍵對應的音符的聲音,同時有一個數碼管顯示當前音符,還有對應的LED指示當前發出的是高音、中音還是低音。
系統設計過程采用了Proteus軟件繪制仿真電路,采用Keil軟件編寫代碼,在計算機上仿真通過后,再設計制作了實物電路加以調試驗證。
系統采用了性價比高的單片機STC89C52作為核心控制器,圖2為單片機最小系統組成,是單片機正常工作需要配置的,包括晶體振蕩器構成的時鐘電路、按鍵復位電路,還有P0口接了上拉排阻,此外還要提供電源,但Proteus軟件中單片機默認供給了電源,所以圖中無需畫出(圖中選用的AT89C51單片機與實際采用的STC89C52是兼容的)。
電子琴必然少不了按鍵電路,按鍵用于彈奏出各種不同的音調。本系統中設計了3×7的矩陣鍵盤電路,如圖3所示,第一行7個按鍵代表低音的do~si,第二行7個按鍵代表中音的do~si,第三行7個按鍵代表高音的do~si。
矩陣鍵盤的三行分別接至單片機的P2.5~P2.7引腳,七列分別接至單片機的P1.0~P1.6引腳。
音符顯示與音調高低指示電路如圖4所示,當某個按鍵按下時,通過一個共陽型數碼管顯示對應的音調符號,上電顯示0,當按鍵按下時,顯示的1~7分別對應音調的do~si。同時為了顯示音調的高低,采用三個不同顏色的LED進行指示,綠色代表低音,藍色代表中音,紅色代表高音。
七段數碼管按順序接至單片機的P0.0~P0.6,三個LED接至P3.0、P3.4和P3.5。
按鍵按下后,單片機通過控制三極管通斷,驅動揚聲器發出對應的音調,如圖5所示,NPN三極管的基極接至單片機的P3.7引腳。
設計好各個模塊電路后,將之組合成的整個電子琴系統的仿真電路如圖6所示。
本系統所需的程序采用C語言在Keil軟件中編程實現。系統產生不同音調的原理是:單片機在12 MHz的時鐘頻率下工作,利用它的定時器T0中斷、工作方式1(16位定時器工作模式),通過改變定時器TH0、TL0的計數初值,產生不同頻率的脈沖信號來模擬實際各種不同的音調,各種音符音調的頻率和計數初值如表1所示。

表1 各種音符的頻率及其對應的定時初值
系統程序主要包括按鍵的識別、定時器初值的修改和定時、數碼管音符數字的顯示和LED的亮滅、利用定時器產生的不同頻率的脈沖控制三極管通斷來驅動揚聲器發出不同頻率的聲音等幾部分。系統程序流程圖如圖7所示。
按照前面的電路設計,在Proteus軟件中搭建好仿真電路,且編寫好代碼后運行,經過反復調試得到正確的結果如圖8所示:按下低音3(mi)鍵,數碼管顯示數字3,低音的綠色LED點亮,同時揚聲器發出對應的聲音。
系統仿真通過后,在此基礎上設計實際的電路原理圖如圖9所示,與仿真電路基本一致,部分位置做了一定的修改以達到更好的效果;再焊接制作實際電路,并經過調試得到運行后的實物如圖10所示(圖中按鍵3按下后已松手,數碼管顯示的數字不變,但音調指示LED不再亮,同時停止發出聲音)。
本文介紹了一款帶有21個按鍵,以數碼管顯示音符、LED指示音調高低,通過揚聲器發出常規樂曲聲音的電子琴設計過程,其以51單片機為核心,整體電路結構簡單、功能較為齊全、性價比高,經過軟硬件設計和反復調試,最終實現了預期的效果,能彈奏出各種音調的聲音。