1、求低音DO(26HZ),中音DO(523HZ),高音DO(1046HZ)的記數(shù)值。每個音符使用1個音節(jié),字節(jié)的高四位代表音符的高低,低四位代表音符的節(jié)拍。如果1拍為0.4秒,1/4拍為0.1秒,假設(shè)1/4拍為 DELAY,則1拍為4 DELAY。
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為豐澤等服務(wù)建站,豐澤等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為豐澤企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
2、實現(xiàn)原理就是一根IO接一個喇叭,然后從該IO送出各音符相應(yīng)頻率的脈沖,喇叭就會出對應(yīng)的聲音。
3、只有音樂發(fā)聲匯編程序,沒有加入LED燈,供參考。
4、單片機輸出的信號0,其大小,不可調(diào)。外接一個放大器,如果放大倍數(shù)可調(diào),樓主問題就解決了。
5、SONG_TONE[i]/3 產(chǎn)生一個短延時,延時的時間正好是音符的頻率 延時時間越短產(chǎn)生的頻率就越高,發(fā)出的聲音也越高 SONG_LONG[i]*20 是用于音符的持續(xù)時間。
極有可能是一首樂曲的音符頻率、和音符長度。
音樂按音階對應(yīng)著信號的頻率比如標準音:A 440HZ,哦,你搜440HZ就能找到很多信息,包括其它音階的頻率。所以你按照簡譜,根據(jù)音階——頻率的對照,寫出頻率和時長。再把頻率用你所使用的單片機和參數(shù)寫成定時器數(shù)值。
把簡譜中每個唱名對應(yīng)的頻率找出來,比如C調(diào)的1對應(yīng)264Hz左右。然后把這些頻率通過公式轉(zhuǎn)換成初值再換算成十六進制。
只有音樂發(fā)聲匯編程序,沒有加入LED燈,供參考。
首先你要知道你定時器的工作方式,單片機的晶振,這樣你才能計算出具體的需要頻率,因為音樂代碼的話主要還是通過定時器改變蜂鳴器的頻率,使得發(fā)出音樂。你這個18H,30H應(yīng)該是通過那個定時器頻率計算方法計算出來的。
1、通常不這樣,一般都是用C或者C++寫驅(qū)動,或者application。\x0d\x0a但是如果這個單片機已經(jīng)有jvm部署在系統(tǒng)里面,比如說freertos已經(jīng)集成了一個jvm,那么是可以的,事實上像寶馬公司的車載系統(tǒng)中就有java。
2、通常不這樣,一般都是用C或者C++寫驅(qū)動,或者application。但是如果這個單片機已經(jīng)有jvm部署在系統(tǒng)里面,比如說freertos已經(jīng)集成了一個jvm,那么是可以的,事實上像寶馬公司的車載系統(tǒng)中就有java。
3、為什么要用Java編寫單片機程序?是你非常熟練Java?如果就是專門寫單片機的 程序,不可行。原因很簡單,你寫的程序是在電腦上的,沒有一點用。