馬巍
摘 要:電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。本文設(shè)計(jì)的單片機(jī)電子琴,利用單片機(jī)強(qiáng)大的控制和靈活的編程功能,產(chǎn)生不同頻率,獲得所需要的音階,可演奏出美妙的音樂。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);電子琴;音階
本文設(shè)計(jì)的產(chǎn)品為簡(jiǎn)易電子琴,基本要求為能夠發(fā)出中音Do、Re、Mi、Fa、So、La、Si和高音Do八個(gè)音階皆可。
一、硬件電路
本設(shè)計(jì)要用的元器件有芯片AT89C51、音頻集成功放LM386、蜂鳴器(喇叭)和按鍵。如圖所示:
■
單片機(jī)P2口為接口,接有一組共8個(gè)按鍵。這8個(gè)按鍵是S1∽S8,通過排阻,分別按順序與單片機(jī)的P2口P2.0∽P2.7相接,按鍵另一端接地,若按下S1,則發(fā)中音Do,若按下S2,則發(fā)中音Re,以此類推。
LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),被廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。電路中由P1.0口控制一個(gè)LM386功率放大器,經(jīng)功率放大器控制發(fā)聲器件蜂鳴器(喇叭)。當(dāng)P1.0口輸出為低電平時(shí),功率放大器導(dǎo)通,蜂鳴器(喇叭)通電;當(dāng)P1.0口輸出為高電平時(shí),功率放大器截止,蜂鳴器(喇叭)斷電。通過連續(xù)不斷周期性地改變P1.0口的高、低電平,就會(huì)產(chǎn)生一定頻率的矩形波,蜂鳴器(喇叭)就能發(fā)出一定頻率的聲音。
單片機(jī)內(nèi)部由大量的時(shí)序電路構(gòu)成,沒有時(shí)鐘脈沖即“脈搏”的跳動(dòng),單片機(jī)的各個(gè)部分將無法工作。所以在單片機(jī)的內(nèi)部集成有振蕩電路,只需將晶振和電容接到單片機(jī)的18(XTAL2)、19(XTAL2)腳,一個(gè)完整的振蕩器即“心臟”就構(gòu)成了,只要接通電源,這個(gè)心臟的脈搏就會(huì)按固定頻率開始跳動(dòng)。晶振的頻率決定了單片機(jī)的快慢,本次設(shè)計(jì)中晶振的頻率是12MHz。
單片機(jī)9腳RST端口接入一個(gè)復(fù)位電路,當(dāng)此引腳連接高電平超過2個(gè)機(jī)器周期(1個(gè)機(jī)器周期包含12個(gè)時(shí)鐘脈沖),即可產(chǎn)生復(fù)位的動(dòng)作。以12MHz的時(shí)鐘脈沖為例,每個(gè)時(shí)鐘脈沖為1/12μs,2個(gè)機(jī)器周期為2μs,因此,我們可在第9腳上連接一個(gè)可讓該引腳上產(chǎn)生一個(gè)2μs以上的高電平脈沖,即可產(chǎn)生復(fù)位的動(dòng)作。
本次設(shè)計(jì)中我們可以預(yù)留一個(gè)口作為擴(kuò)展功能,如播放一段音樂。
二、音階的產(chǎn)生
音階就是人們通常唱出的Do、Re、Mi、Fa、So、La、Si,它是7個(gè)頻率之間滿足某種數(shù)學(xué)關(guān)系由低到高排列的自然音,一旦確定某一個(gè)音比如Do的頻率,其他音的頻率也就確定了。音調(diào)是指聲音的高低,由聲音的頻率來決定,確定某一個(gè)音Do的頻率,就確定了音調(diào)。通過改變單片機(jī)輸出脈沖高低電平的保持時(shí)間和頻率,就可以得到音階和調(diào)節(jié)不同的音調(diào)。本次設(shè)計(jì)中單片機(jī)的晶振為12MHz,則機(jī)器周期T為1μs,選擇工作方式1,利用公式(216-X)T=定時(shí)時(shí)間(X為TH0,TL0的定時(shí)初值)。例如:頻率為523Hz,其周期T=1/523=1912μs,因此只要令定數(shù)器定時(shí)1912μs/2=956μs,每到定時(shí)956μs時(shí)就將I/O反相,就可得到中音DO(523Hz)。那么,可以根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)算初值。如下表:
電子琴音符與單片機(jī)頻率的關(guān)系
■
三、軟件設(shè)計(jì)思路
在主程序中,首先定時(shí)器T0初始化,然后關(guān)閉定時(shí)器T0,通過掃描鍵盤進(jìn)行按鍵的識(shí)別。讀P2口的狀態(tài),若有按鍵按下,則延時(shí)10ms去抖動(dòng),再讀P2口的狀態(tài)判斷是幾號(hào)按鍵按下,并跳轉(zhuǎn)到相應(yīng)的程序,查表得相應(yīng)按鍵的定時(shí)初值,啟動(dòng)定時(shí)器T0將不同按鍵所對(duì)應(yīng)的頻率信號(hào)發(fā)送到集成運(yùn)放中放大,最后送給喇叭發(fā)出對(duì)應(yīng)的音階的聲音。程序隨后繼續(xù)掃描按鍵,若按鍵保持按下狀態(tài),則定時(shí)器T0繼續(xù)保持工作狀態(tài),直到按鍵松開,定時(shí)器T0停止工作,返回初始狀態(tài),等待下一次的掃描按鍵結(jié)果。當(dāng)程序中斷時(shí),程序保存現(xiàn)場(chǎng),并重裝TH0、TL0的初值,然后將P1.0口取反,重新送入P1.0,最后中斷返回。按照此方法將設(shè)計(jì)的電子琴做成實(shí)物,能夠?qū)崿F(xiàn)彈奏音樂的功能。
摘 要:電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。本文設(shè)計(jì)的單片機(jī)電子琴,利用單片機(jī)強(qiáng)大的控制和靈活的編程功能,產(chǎn)生不同頻率,獲得所需要的音階,可演奏出美妙的音樂。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);電子琴;音階
本文設(shè)計(jì)的產(chǎn)品為簡(jiǎn)易電子琴,基本要求為能夠發(fā)出中音Do、Re、Mi、Fa、So、La、Si和高音Do八個(gè)音階皆可。
一、硬件電路
本設(shè)計(jì)要用的元器件有芯片AT89C51、音頻集成功放LM386、蜂鳴器(喇叭)和按鍵。如圖所示:
■
單片機(jī)P2口為接口,接有一組共8個(gè)按鍵。這8個(gè)按鍵是S1∽S8,通過排阻,分別按順序與單片機(jī)的P2口P2.0∽P2.7相接,按鍵另一端接地,若按下S1,則發(fā)中音Do,若按下S2,則發(fā)中音Re,以此類推。
LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),被廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。電路中由P1.0口控制一個(gè)LM386功率放大器,經(jīng)功率放大器控制發(fā)聲器件蜂鳴器(喇叭)。當(dāng)P1.0口輸出為低電平時(shí),功率放大器導(dǎo)通,蜂鳴器(喇叭)通電;當(dāng)P1.0口輸出為高電平時(shí),功率放大器截止,蜂鳴器(喇叭)斷電。通過連續(xù)不斷周期性地改變P1.0口的高、低電平,就會(huì)產(chǎn)生一定頻率的矩形波,蜂鳴器(喇叭)就能發(fā)出一定頻率的聲音。
單片機(jī)內(nèi)部由大量的時(shí)序電路構(gòu)成,沒有時(shí)鐘脈沖即“脈搏”的跳動(dòng),單片機(jī)的各個(gè)部分將無法工作。所以在單片機(jī)的內(nèi)部集成有振蕩電路,只需將晶振和電容接到單片機(jī)的18(XTAL2)、19(XTAL2)腳,一個(gè)完整的振蕩器即“心臟”就構(gòu)成了,只要接通電源,這個(gè)心臟的脈搏就會(huì)按固定頻率開始跳動(dòng)。晶振的頻率決定了單片機(jī)的快慢,本次設(shè)計(jì)中晶振的頻率是12MHz。
單片機(jī)9腳RST端口接入一個(gè)復(fù)位電路,當(dāng)此引腳連接高電平超過2個(gè)機(jī)器周期(1個(gè)機(jī)器周期包含12個(gè)時(shí)鐘脈沖),即可產(chǎn)生復(fù)位的動(dòng)作。以12MHz的時(shí)鐘脈沖為例,每個(gè)時(shí)鐘脈沖為1/12μs,2個(gè)機(jī)器周期為2μs,因此,我們可在第9腳上連接一個(gè)可讓該引腳上產(chǎn)生一個(gè)2μs以上的高電平脈沖,即可產(chǎn)生復(fù)位的動(dòng)作。
本次設(shè)計(jì)中我們可以預(yù)留一個(gè)口作為擴(kuò)展功能,如播放一段音樂。
二、音階的產(chǎn)生
音階就是人們通常唱出的Do、Re、Mi、Fa、So、La、Si,它是7個(gè)頻率之間滿足某種數(shù)學(xué)關(guān)系由低到高排列的自然音,一旦確定某一個(gè)音比如Do的頻率,其他音的頻率也就確定了。音調(diào)是指聲音的高低,由聲音的頻率來決定,確定某一個(gè)音Do的頻率,就確定了音調(diào)。通過改變單片機(jī)輸出脈沖高低電平的保持時(shí)間和頻率,就可以得到音階和調(diào)節(jié)不同的音調(diào)。本次設(shè)計(jì)中單片機(jī)的晶振為12MHz,則機(jī)器周期T為1μs,選擇工作方式1,利用公式(216-X)T=定時(shí)時(shí)間(X為TH0,TL0的定時(shí)初值)。例如:頻率為523Hz,其周期T=1/523=1912μs,因此只要令定數(shù)器定時(shí)1912μs/2=956μs,每到定時(shí)956μs時(shí)就將I/O反相,就可得到中音DO(523Hz)。那么,可以根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)算初值。如下表:
電子琴音符與單片機(jī)頻率的關(guān)系
■
三、軟件設(shè)計(jì)思路
在主程序中,首先定時(shí)器T0初始化,然后關(guān)閉定時(shí)器T0,通過掃描鍵盤進(jìn)行按鍵的識(shí)別。讀P2口的狀態(tài),若有按鍵按下,則延時(shí)10ms去抖動(dòng),再讀P2口的狀態(tài)判斷是幾號(hào)按鍵按下,并跳轉(zhuǎn)到相應(yīng)的程序,查表得相應(yīng)按鍵的定時(shí)初值,啟動(dòng)定時(shí)器T0將不同按鍵所對(duì)應(yīng)的頻率信號(hào)發(fā)送到集成運(yùn)放中放大,最后送給喇叭發(fā)出對(duì)應(yīng)的音階的聲音。程序隨后繼續(xù)掃描按鍵,若按鍵保持按下狀態(tài),則定時(shí)器T0繼續(xù)保持工作狀態(tài),直到按鍵松開,定時(shí)器T0停止工作,返回初始狀態(tài),等待下一次的掃描按鍵結(jié)果。當(dāng)程序中斷時(shí),程序保存現(xiàn)場(chǎng),并重裝TH0、TL0的初值,然后將P1.0口取反,重新送入P1.0,最后中斷返回。按照此方法將設(shè)計(jì)的電子琴做成實(shí)物,能夠?qū)崿F(xiàn)彈奏音樂的功能。
摘 要:電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。本文設(shè)計(jì)的單片機(jī)電子琴,利用單片機(jī)強(qiáng)大的控制和靈活的編程功能,產(chǎn)生不同頻率,獲得所需要的音階,可演奏出美妙的音樂。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);電子琴;音階
本文設(shè)計(jì)的產(chǎn)品為簡(jiǎn)易電子琴,基本要求為能夠發(fā)出中音Do、Re、Mi、Fa、So、La、Si和高音Do八個(gè)音階皆可。
一、硬件電路
本設(shè)計(jì)要用的元器件有芯片AT89C51、音頻集成功放LM386、蜂鳴器(喇叭)和按鍵。如圖所示:
■
單片機(jī)P2口為接口,接有一組共8個(gè)按鍵。這8個(gè)按鍵是S1∽S8,通過排阻,分別按順序與單片機(jī)的P2口P2.0∽P2.7相接,按鍵另一端接地,若按下S1,則發(fā)中音Do,若按下S2,則發(fā)中音Re,以此類推。
LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),被廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。電路中由P1.0口控制一個(gè)LM386功率放大器,經(jīng)功率放大器控制發(fā)聲器件蜂鳴器(喇叭)。當(dāng)P1.0口輸出為低電平時(shí),功率放大器導(dǎo)通,蜂鳴器(喇叭)通電;當(dāng)P1.0口輸出為高電平時(shí),功率放大器截止,蜂鳴器(喇叭)斷電。通過連續(xù)不斷周期性地改變P1.0口的高、低電平,就會(huì)產(chǎn)生一定頻率的矩形波,蜂鳴器(喇叭)就能發(fā)出一定頻率的聲音。
單片機(jī)內(nèi)部由大量的時(shí)序電路構(gòu)成,沒有時(shí)鐘脈沖即“脈搏”的跳動(dòng),單片機(jī)的各個(gè)部分將無法工作。所以在單片機(jī)的內(nèi)部集成有振蕩電路,只需將晶振和電容接到單片機(jī)的18(XTAL2)、19(XTAL2)腳,一個(gè)完整的振蕩器即“心臟”就構(gòu)成了,只要接通電源,這個(gè)心臟的脈搏就會(huì)按固定頻率開始跳動(dòng)。晶振的頻率決定了單片機(jī)的快慢,本次設(shè)計(jì)中晶振的頻率是12MHz。
單片機(jī)9腳RST端口接入一個(gè)復(fù)位電路,當(dāng)此引腳連接高電平超過2個(gè)機(jī)器周期(1個(gè)機(jī)器周期包含12個(gè)時(shí)鐘脈沖),即可產(chǎn)生復(fù)位的動(dòng)作。以12MHz的時(shí)鐘脈沖為例,每個(gè)時(shí)鐘脈沖為1/12μs,2個(gè)機(jī)器周期為2μs,因此,我們可在第9腳上連接一個(gè)可讓該引腳上產(chǎn)生一個(gè)2μs以上的高電平脈沖,即可產(chǎn)生復(fù)位的動(dòng)作。
本次設(shè)計(jì)中我們可以預(yù)留一個(gè)口作為擴(kuò)展功能,如播放一段音樂。
二、音階的產(chǎn)生
音階就是人們通常唱出的Do、Re、Mi、Fa、So、La、Si,它是7個(gè)頻率之間滿足某種數(shù)學(xué)關(guān)系由低到高排列的自然音,一旦確定某一個(gè)音比如Do的頻率,其他音的頻率也就確定了。音調(diào)是指聲音的高低,由聲音的頻率來決定,確定某一個(gè)音Do的頻率,就確定了音調(diào)。通過改變單片機(jī)輸出脈沖高低電平的保持時(shí)間和頻率,就可以得到音階和調(diào)節(jié)不同的音調(diào)。本次設(shè)計(jì)中單片機(jī)的晶振為12MHz,則機(jī)器周期T為1μs,選擇工作方式1,利用公式(216-X)T=定時(shí)時(shí)間(X為TH0,TL0的定時(shí)初值)。例如:頻率為523Hz,其周期T=1/523=1912μs,因此只要令定數(shù)器定時(shí)1912μs/2=956μs,每到定時(shí)956μs時(shí)就將I/O反相,就可得到中音DO(523Hz)。那么,可以根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)算初值。如下表:
電子琴音符與單片機(jī)頻率的關(guān)系
■
三、軟件設(shè)計(jì)思路
在主程序中,首先定時(shí)器T0初始化,然后關(guān)閉定時(shí)器T0,通過掃描鍵盤進(jìn)行按鍵的識(shí)別。讀P2口的狀態(tài),若有按鍵按下,則延時(shí)10ms去抖動(dòng),再讀P2口的狀態(tài)判斷是幾號(hào)按鍵按下,并跳轉(zhuǎn)到相應(yīng)的程序,查表得相應(yīng)按鍵的定時(shí)初值,啟動(dòng)定時(shí)器T0將不同按鍵所對(duì)應(yīng)的頻率信號(hào)發(fā)送到集成運(yùn)放中放大,最后送給喇叭發(fā)出對(duì)應(yīng)的音階的聲音。程序隨后繼續(xù)掃描按鍵,若按鍵保持按下狀態(tài),則定時(shí)器T0繼續(xù)保持工作狀態(tài),直到按鍵松開,定時(shí)器T0停止工作,返回初始狀態(tài),等待下一次的掃描按鍵結(jié)果。當(dāng)程序中斷時(shí),程序保存現(xiàn)場(chǎng),并重裝TH0、TL0的初值,然后將P1.0口取反,重新送入P1.0,最后中斷返回。按照此方法將設(shè)計(jì)的電子琴做成實(shí)物,能夠?qū)崿F(xiàn)彈奏音樂的功能。