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