您的位置:網站首頁 > 電器維修資料網 > 正文 >
淺談單片機唱歌匯編程序
來源: 日期:2013-11-5 23:27:18 人氣:標簽:
一、單片機演奏音樂的方法
1.單片機發聲原理
聲音的頻譜范圍大約在幾十赫茲到幾千赫茲.若用程序控制單片機的i/o口,使其輸出一定頻率的的矩形波,經放大電路放大,就可以驅動喇叭或蜂鳴器發出一定頻率的聲音。具體地說要產生音頻脈沖,只要知道某一音頻的頻率,就可以算出其周期f頻率的倒數),除以2得到半周期。利用單片機的定時器計時這半個周期的時間,計時到后將脈沖倒相后從i/o口輸出,然后重復計時此半個周期時間,再對i/o倒相,就可以在i/o口上得到此頻率的脈沖。51單片機內部定肘,計數器計數,工作于模式1. 大計數次數為65536.所以要選擇模式1.改變t值.在i/o腳得到不同頻率的脈沖。
2.t值計算方法如下:
t=65536-fi÷2÷fr注:fi:因單片機晶振,頻率為12mhz,計時一次為lus,所以fi=1000000hz;若單片機晶振為6mhz,計時一次為2us,所以fi為500000hz;fr為要產生的頻率:例如單片機晶振為12mhz,c調的低音l頻率為262hz,根據上述t值的計算公式可求得t=63628,轉換為16進制是f88ch。
3.如何得到不同音調下音符的t值
根據音樂知識知道,十二平均律以八度為一個倍頻程,在一個八度中分出十二個等程半音,鋼琴鍵盤的大字組音調從低到高依次是c、#c(bd調與#c調音高相同,就是bd調與#c調的相同音符頻率相同,下周)、d、#d(bd調與*d調音高相同)、e、f、#f(bg調與#f調音高相同)、g、#g(ba調與#g調音高相同)、a、#a(bb調與#a調音高相同)、b.每個等程半音的音程是2的12次方=1.0593631.即相鄰兩個音調的相同音符的頻率關系是:音調高的是低的2的12次方倍。這個規律適用于鋼琴的所有鍵盤,即適合所有音調。鋼琴鍵盤(88個)自左向右(頻率逐漸升高)依次是!
大字二組:a2、#a2、b2;大字一組:,排列規律同大字組.從ci到b1共12位;大字組:c、#c、d、#d、e、f、#f、g、#g、a、#a、b:小字組:排列規律同大字組,從c到b共12位:小字一組:排列規律同大字組,從cl到bl共12位:小字二組:排列規律同大字組,從c2到b2共12位:小字三組:排列規雄同大字組,從c3到b3共12位:小字四組:排列規律同大字組,從c4到b4共12位;小字五組:只有c5。
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: 何謂”點屏“
- 下一篇: 幾款常用的電源相序測試法