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