利用MAXQ3210產(chǎn)生壓電信號
可以縮小這一例子需要的代碼空間。只使用子程序(而不是解開的代碼宏)和查找表就可以產(chǎn)生音符值。其基本原理相同。
定時器驅(qū)動的音樂合成器
上面的代碼雖然非常簡單,但是要求微控制器犧牲其所有時間來產(chǎn)生音調(diào)。對于音樂賀卡等簡單應(yīng)用,這樣簡單地使用微控制器是可以的。然而,對于更復(fù)雜的應(yīng)用,需要在后臺播放音樂,而微控制器去完成其他工作。為完成這種雙重角色,微控制器必須從周期性地開關(guān)端口引腳以產(chǎn)生某一音符這類工作中解放出來。
MAXQ3210集成了計數(shù)器/定時器功能。在一種模式下,定時器可以在端口引腳上產(chǎn)生某一頻率的輸出波形。利用這種模式,將定時器輸出引腳連接至反饋輸入,微控制器在音符開始時啟動定時器,在音符結(jié)束時關(guān)掉它。
定時器還可以用于控制音符本身的持續(xù)時間。MAXQ3210含有另一個長周期定時器,非常適合完成這一任務(wù)。通過在每一音符間隔開始產(chǎn)生一個中斷,定時器查找預(yù)編碼的音符查找表,以更少的空間來編碼時間更長的音樂。
結(jié)論
壓電音發(fā)生功能被用于大量的應(yīng)用中,以產(chǎn)生音樂、報警等其他聲音效果。采用集成了MAXQ3210等壓電揚聲器驅(qū)動器的微控制器,只需要很少的硬件和軟件開銷就能夠產(chǎn)生壓電音。集成的可編程定時器使得大部分音調(diào)發(fā)生功能都可以在后臺完成,而微控制器能夠集中處理主要任務(wù)。
評論