唐求陽(yáng) 衡陽(yáng)技師學(xué)院
?
基于單片機(jī)的微型電子琴研究與實(shí)現(xiàn)分析
唐求陽(yáng) 衡陽(yáng)技師學(xué)院
摘 要:?jiǎn)纹瑱C(jī)是集成電路快速發(fā)展的產(chǎn)物,穩(wěn)定可靠、價(jià)格低廉、高速度、高性能是其典型特征。當(dāng)前單片機(jī)的開發(fā)應(yīng)用已經(jīng)成為時(shí)代發(fā)展的必然產(chǎn)物。微型電子琴實(shí)際上是電子技術(shù)同音樂(lè)緊密結(jié)合的產(chǎn)物,利用單片機(jī)來(lái)實(shí)現(xiàn)電子琴是當(dāng)前可取的措施,單片機(jī)作為電子琴的核心控制元件,在其中能夠發(fā)揮非常重要地作用。
關(guān)鍵詞:?jiǎn)纹瑱C(jī) 電子琴 彈奏
電子琴在我國(guó)還處在一種初期普及階段,但是由于其具有功能強(qiáng)大、音色豐富、彈奏簡(jiǎn)單等特點(diǎn)因而得到了人們的喜愛,尤其是在音樂(lè)教學(xué)中得到了迅速推廣。學(xué)習(xí)并掌握電子琴逐漸成為了人們一種非常重要的技能。從當(dāng)前電子琴自身設(shè)計(jì)情況來(lái)看,還存在著一定不足,在微型電子琴設(shè)計(jì)方面還是比較薄弱的。為了能夠提升微型電子琴設(shè)計(jì)水平,本文將以單片機(jī)為主來(lái)進(jìn)行科學(xué)設(shè)計(jì)。
在具體設(shè)計(jì)過(guò)程中首先是要明確系統(tǒng)總體框架,這是設(shè)計(jì)的首要步驟。本文主要是以單片機(jī)來(lái)實(shí)現(xiàn)微型電子琴沿軸功能。對(duì)于單片機(jī)而言主要工作是要利用定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生不同頻率脈沖信號(hào),用戶演奏過(guò)程中按下鍵盤演奏樂(lè)曲,此時(shí)單片機(jī)則應(yīng)該根據(jù)用戶案件來(lái)查到頻率,從而發(fā)出正確樂(lè)音,通過(guò)這樣一種形式把音樂(lè)通過(guò)揚(yáng)聲器發(fā)出。
在具體設(shè)計(jì)過(guò)程中,對(duì)于節(jié)拍主要是由用戶來(lái)控制的。之所以進(jìn)行這樣的設(shè)計(jì)是因?yàn)閱纹瑱C(jī)本身是沒有足夠驅(qū)動(dòng)能力的,因而不能夠通過(guò)音頻脈沖直接驅(qū)動(dòng)揚(yáng)聲器輸出,此時(shí)為了滿足需要就應(yīng)該采用音頻功率放大電路。從實(shí)際出發(fā),本文選擇LM386低壓音頻功率放大器。
(一)硬件設(shè)計(jì)。在具體設(shè)計(jì)過(guò)程中硬件設(shè)計(jì)主要指的是各種模塊電路設(shè)計(jì),對(duì)于這些模塊電路進(jìn)行設(shè)計(jì)是保證微型電子琴正常運(yùn)行的重要前提。具體模塊電路設(shè)計(jì)主要是表現(xiàn)在以下幾個(gè)方面:
鍵盤掃描電路。對(duì)于鍵盤掃描電路的掃描往往是通過(guò)線反轉(zhuǎn)法和行掃描法兩種方式來(lái)實(shí)現(xiàn),在實(shí)際設(shè)計(jì)過(guò)程中本文主要采用的是行掃描法。先是在P20到P23循環(huán)送出掃描信號(hào),而后是在P24到P27上的輸入按鍵上輸入高低電平信息傳送給單片機(jī)。最后就是根據(jù)行列信號(hào)來(lái)判斷哪個(gè)按鍵被按下,確定之后在發(fā)送給主程序從而來(lái)實(shí)現(xiàn)不同功能。在鍵盤掃描電路設(shè)計(jì)過(guò)程中經(jīng)常是會(huì)出現(xiàn)毛刺現(xiàn)象的,為了能夠有效消除毛刺通常是要采用延時(shí)重復(fù)掃描法。這種方法實(shí)際上在操作過(guò)程中就是當(dāng)有按鍵被單片機(jī)檢測(cè)到動(dòng)靜之后就應(yīng)該延時(shí)10ms-20ms之后再來(lái)看電平能否保持原來(lái)的狀態(tài),如果能就說(shuō)明是有效的,相反則是無(wú)效的。
AT89S52電路設(shè)計(jì)。這是非常關(guān)鍵的設(shè)計(jì)內(nèi)容,對(duì)于單片機(jī)模塊電路的設(shè)計(jì)要高度重視,這一電路設(shè)計(jì)水平將直接影響到具體設(shè)計(jì)效果。當(dāng)用戶按下鍵盤之后,單片機(jī)主程序會(huì)讀取鍵盤掃描程序返回的鍵盤碼,通過(guò)根據(jù)該碼就能夠查到樂(lè)音-音頻對(duì)應(yīng)表,進(jìn)而能夠得到樂(lè)音定時(shí)器初始值以及數(shù)碼管顯示編碼,在輸出之后將能夠得到相應(yīng)控制單元,最終將會(huì)產(chǎn)生不同振動(dòng)頻率。
音頻處理電路。在對(duì)音符信號(hào)處理的過(guò)程中之所以要加設(shè)功率放大裝置,主要是因?yàn)閱纹瑱C(jī)驅(qū)動(dòng)不夠。低功耗、高增益、低功耗輸出是LM386的基本特征,這些特征也符合單片機(jī)要求。因此要加設(shè)可靠的音頻信號(hào)放大器。
晶振電路。單片機(jī)定時(shí)控制主要是利用內(nèi)部時(shí)鐘和外部時(shí)鐘兩種方式來(lái)實(shí)現(xiàn),本文選取的是內(nèi)部時(shí)鐘方式。從實(shí)際情況來(lái)看XTAL1、XTAL2是單片機(jī)內(nèi)部反相放大器輸入及輸出端,在外面還設(shè)置有定時(shí)反饋元件,這樣就能夠組成振蕩器。單片機(jī)控制器的控制節(jié)拍同時(shí)鐘頻率是成正比的。
時(shí)鐘頻率。單片機(jī)內(nèi)部有時(shí)鐘振蕩電路。單片機(jī)工作主要是由時(shí)鐘頻率來(lái)驅(qū)動(dòng)的,可見時(shí)鐘頻率在其中扮演著非常重要地角色。對(duì)此必須要進(jìn)行科學(xué)設(shè)計(jì)。在具體設(shè)計(jì)過(guò)程中通過(guò)外接振蕩源,那些位于單片機(jī)內(nèi)部的各個(gè)單元就能夠受到時(shí)鐘信號(hào),它的振蕩頻率決定了單片機(jī)工作速度。通常情況下是要選擇石英晶體振蕩器來(lái)作為外部振蕩源電路的。此時(shí)往往是電路在通電時(shí)延遲10ms之后,振蕩器才能夠起振。
(二)軟件設(shè)計(jì)。軟件設(shè)計(jì)實(shí)際上就是要對(duì)電子琴各種程序來(lái)進(jìn)行科學(xué)設(shè)計(jì),通過(guò)對(duì)這些程序進(jìn)行設(shè)計(jì)來(lái)最終實(shí)現(xiàn)對(duì)電子琴的有效控制。
為了能夠真正使得微型電子琴能夠科學(xué)運(yùn)轉(zhuǎn),在工作中還應(yīng)該科學(xué)實(shí)現(xiàn)系統(tǒng)各項(xiàng)內(nèi)容,具體而言主要是包含以下方面:
音樂(lè)節(jié)拍的實(shí)現(xiàn)。在系統(tǒng)中音高主要是取決于發(fā)音物體振動(dòng)頻率高低,通常情況下頻率低音高就低,頻率高音高就高。在具體實(shí)現(xiàn)音的過(guò)程中主要是利用定時(shí)器來(lái)實(shí)現(xiàn)。系統(tǒng)中的定時(shí)器0處在工作模式0狀態(tài)時(shí),記時(shí)時(shí)長(zhǎng)通常是要根據(jù)發(fā)音頻率來(lái)確定的,對(duì)于定時(shí)器計(jì)數(shù)初值通常是通過(guò)頻率值來(lái)推算出來(lái)的。節(jié)拍控制是實(shí)際控制的重要內(nèi)容,節(jié)拍主要是利用單片機(jī)延時(shí)功能來(lái)實(shí)現(xiàn)。在播放音樂(lè)的時(shí)候,節(jié)拍設(shè)置在程序設(shè)計(jì)過(guò)程中就應(yīng)該充分考慮。
鍵盤掃描按鍵程序的實(shí)現(xiàn)。在具體工作中要觀察琴鍵是否被按下,當(dāng)有被按下的情況是就應(yīng)該記錄鍵值同時(shí)還應(yīng)該跳轉(zhuǎn)到功能轉(zhuǎn)移程序,沒有的時(shí)候就應(yīng)該繼續(xù)監(jiān)測(cè)琴鍵。對(duì)于那些被檢測(cè)到的琴鍵值還應(yīng)該進(jìn)行準(zhǔn)確判斷處理,如果判斷它是琴鍵,此時(shí)就應(yīng)該跳轉(zhuǎn)到琴鍵處理系統(tǒng)程序。當(dāng)檢查過(guò)程中發(fā)現(xiàn)是功能鍵的時(shí)候就應(yīng)該跳轉(zhuǎn)到相應(yīng)功能處理程序上。這樣做是非常重要的。
音樂(lè)處理模塊實(shí)現(xiàn)。對(duì)于音樂(lè)處理模塊而言,在具體設(shè)計(jì)過(guò)程中主要是利用定時(shí)/計(jì)數(shù)器T0,工作模式則采用的是1.通常情況下在改變TL0和TH0的計(jì)數(shù)值之后就能夠生成不同頻率的脈沖信號(hào)。在啟動(dòng)脈沖分配子程序之后,首先要做的就是要初始化程序。
微型電子琴的研究與實(shí)現(xiàn)是一項(xiàng)專業(yè)工作,為了能夠真正做好這項(xiàng)工作就應(yīng)該進(jìn)一步加強(qiáng)對(duì)單片機(jī)的研究,通過(guò)對(duì)單片機(jī)性能的分析是進(jìn)一步提升微型電子琴性能的重要手段。本文重點(diǎn)是分析了基于單片機(jī)的微型電子琴的設(shè)計(jì)與實(shí)現(xiàn),為了能夠?qū)崿F(xiàn)上述功能,在具體設(shè)計(jì)過(guò)程中就應(yīng)該進(jìn)行科學(xué)設(shè)計(jì)。
參考文獻(xiàn):
[1]周琛暉.基于AT89S51單片機(jī)的電子琴設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2009(9)
[2]施眾.Protues在單片機(jī)學(xué)習(xí)領(lǐng)域教學(xué)中的應(yīng)用[J].漳州職業(yè)技術(shù)學(xué)院學(xué)報(bào),2010 (10)
[3]張世正,王維.電子琴控制芯片設(shè)計(jì)方法的研究[J].上海師范大學(xué)學(xué)報(bào),2014(5)