當前位置:編程學習大全網 - 編程語言 - 如何確定單片機音樂播放的音律和節拍計算

如何確定單片機音樂播放的音律和節拍計算

網上有高人用單壹之IO口,實現對蜂鳴器的音樂產生,借用定時器產生不同的輸出頻率,以得到不同的音調效果:

音符頻率對應表

音符 頻率/HZ 半周期/us 音符 頻率/HZ 半周期/us

------------------------------------------

低1DO 262 1908 #4FA# 740 0676

#1DO# 277 1805 中5SO 784 0638

低2RE 294 1700 #5SO# 831 0602

#2RE# 311 1608 中6LA 880 0568

低3M 330 1516 #6LA# 932 0536

低4FA 349 1433 中7SI 988 0506

#4FA# 370 1350 高1DO 1046 0478

低5SO 392 1276 #DO# 1109 0451

#5SO# 415 1205 高2RE 1175 0426

低6LA 440 1136 #2RE# 1245 0402

#6LA# 466 1072 高3M 1318 0372

低7SI 494 1012 高4FA 1397 0358

中1DO 523 0956 #4FA# 1480 0338

#1DO# 554 0903 高5SO 1568 0319

中2RE 578 0842 #5S0# 1661 0292

#2RE# 622 0804 高6LA 1760 0284

中3M 659 0759 #6LA# 1865 0268

中4FA 698 0716 高7SI 1976 0253

------------------------------------------

("#"表示半音,用於上升或下降半個音)

不知是本人的實現方法不對,還是蜂鳴器本身的結構原因,我按照上列方法來控制產生的音樂效果總不如人意,感覺不夠悅耳;

後我又按高人指點,改動電路如附圖所示

用兩個IO配合起來使用,PORTA為電源控制端,用於產生余音;PORTB為音調控制端,產生某壹頻率的信號。工作的頻率(***8度音)如下:

1 2 3 4 5 6 7 i

1300Hz 1462.5Hz 1625Hz 1733Hz 1950Hz 2166.7Hz 2437.5Hz 2600Hz

采用附圖所示的處理方法,得到了較動聽的音調,感覺和普通的手機產生的合弦音不相上下,由於本人不通音脈,故而只做了少數的短音發音,如有高人可發揚光大,不過這些簡單的合弦音用在普通的家用電器,消費性電子產品上已綽綽有余了,自我陶醉中。。。。。。

  • 上一篇:數控對刀的方法?
  • 下一篇:做白領需要什麽學歷
  • copyright 2024編程學習大全網