楊 彬
(新疆焦煤集團(tuán)1930煤礦)
淺談井下語(yǔ)音設(shè)備利用單片機(jī)發(fā)聲的原因
楊 彬①
(新疆焦煤集團(tuán)1930煤礦)
井下語(yǔ)音設(shè)備發(fā)聲主要利用AT89C51單片機(jī)制作的發(fā)音電路,介紹了AT89C51單片機(jī)產(chǎn)生音樂(lè)的要素,由AT89C51單片機(jī)制作的發(fā)音電路和通過(guò)匯編好的語(yǔ)言程序而實(shí)現(xiàn)的蜂鳴器,以及單片機(jī)演奏音樂(lè)的原理。
井下語(yǔ)音設(shè)備;單片機(jī);定時(shí)器中斷;延時(shí);音調(diào);節(jié)拍;發(fā)音電路;原理
隨著科學(xué)技術(shù)的發(fā)展,井下的語(yǔ)音設(shè)備越來(lái)越多,功能各一,有的傳遞信息,有的放音樂(lè)為井下工人消除疲勞等等,語(yǔ)音設(shè)備是怎樣發(fā)出聲音的,現(xiàn)在介紹井下語(yǔ)音設(shè)備發(fā)聲原理。
當(dāng)物體振動(dòng)時(shí),能夠發(fā)出聲音。振動(dòng)的頻率高則音高,頻率低則音低。音頻的范圍為20~200 Hz,人類的耳朵比較容易辨別的聲音是200 Hz~20 kHz。一般音響電路是以正弦波信號(hào)驅(qū)動(dòng)喇叭,產(chǎn)生悅耳的音樂(lè),在數(shù)字電路里,則是以脈沖信號(hào)驅(qū)動(dòng)喇叭以產(chǎn)生聲音,同樣的頻率,脈沖信號(hào)或正弦波信號(hào)產(chǎn)生的音效,對(duì)于人類的耳朵來(lái)說(shuō)很難區(qū)別。
一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此,單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。
在音樂(lè)中所謂“音調(diào)”,其實(shí)就是常說(shuō)的“音高”。以C調(diào)音階為例,包括3個(gè)音階(低音、中音與高音),每個(gè)音階為8音度,其中細(xì)分為12個(gè)半音(即DO、DO#、RE、RE#、Mi、Fa、Fa#、So、So#、La、La#、Si),而每個(gè)音階之間的頻率相差一倍,例如高音Do的頻率(1 046 Hz)剛好是中音Do的頻率(523 Hz)的一倍、中音Do的頻率(523 Hz)剛好是低音Do的頻率(266 Hz)的一倍;同樣,高音Re(1 109 Hz)剛好是中音Re的頻率(554 Hz)的一倍、中音Re的頻率(554 Hz)剛好是低音Do的頻率(277 Hz)的一倍,依此類推。因此,兩個(gè)半音之間的頻率比為1.059,以中音為例,Do的頻率為523 Hz,所以Do#的頻率為523×1.059,約為554 Hz、Re的頻率為554×1.059,約為587 Hz……依此類推。
音符的節(jié)拍可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,經(jīng)常會(huì)看到這樣的表達(dá)式,如等等,這里1=C,1=G表示樂(lè)譜的曲調(diào),和前面所談的音調(diào)有很大的關(guān)聯(lián)就是用來(lái)表示節(jié)拍的。以為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:
其中,1、2為一拍,3、4、5為一拍,6為一拍,共三拍。1、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400~500 ms。以一拍的時(shí)長(zhǎng)為400 ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400 ms,八分音符的時(shí)長(zhǎng)就為200 ms,十六分音符的時(shí)長(zhǎng)就為100 ms。
若要AT89C51單片機(jī)產(chǎn)生聲音,可利用程序產(chǎn)生音頻脈沖,只要算出某一音頻的周期,然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)或利用延時(shí)程序計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,就可以在I/O端上得到此脈沖。
2.1 定時(shí)器中斷
利用89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。例如,頻率為523 Hz,其周期T=1/523 =1 912μs,因此,只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs= 956,在每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523 Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系如下:
式中:
N—計(jì)數(shù)值;
Fi—內(nèi)部計(jì)時(shí)一次為1μs,故其頻率為1 MHz;
Fr—要產(chǎn)生的頻率;
以標(biāo)準(zhǔn)音高A為例:
A的頻率f=440 Hz,其對(duì)應(yīng)的周期為:
脈沖時(shí)間周期示意圖見圖1。
由圖1可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:
t=T/2=2 272/2=1 136μs
時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作
圖1 脈沖時(shí)間周期示意圖
方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的預(yù)置初值由下式來(lái)確定:
式中:
TALL=216=65 536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為:
將t=1 136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12 MHz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為:
T H440Hz=(65 536-1 136×12/12)/256=FBH TL440Hz=(65 536-1 136×12/12)%256=90 H
根據(jù)上面的求解方法,結(jié)合音階頻率對(duì)應(yīng)表(見表1),可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。
表1 音階頻率對(duì)應(yīng)表
2.2 利用延時(shí)子程序
首先編寫一個(gè)基本的延時(shí)子程序(10μs),即T_
DELA Y子程序,如下:
只要在調(diào)用T_DELA Y子程序之前,先賦值A(chǔ)CC則:
t=10×ACC+2
與預(yù)期的半周期相差不多就可以了。
節(jié)拍有快有慢,拍子越短節(jié)奏越快,拍子越長(zhǎng)節(jié)奏越慢,而控制節(jié)拍的方法同樣是調(diào)用延時(shí)子程序或采用定時(shí)器中斷兩種方式。
3.1 延時(shí)子程序
首先整理出整首音樂(lè)曲目中拍子的種類,找出其中最短的拍子,例如整首樂(lè)曲中,包含1/4拍、1/2拍、3/4拍、1拍及2拍,則以1/4拍為基準(zhǔn),然后寫一段1/4拍長(zhǎng)度的DELA Y程序,若要產(chǎn)生1/4拍的長(zhǎng)度,則執(zhí)行1次該子程序;若要產(chǎn)生1/2拍的長(zhǎng)度,則執(zhí)行2次該子程序;若要產(chǎn)生3/4拍的長(zhǎng)度,則執(zhí)行3次該子程序;若要產(chǎn)生1拍的長(zhǎng)度,則執(zhí)行4次該子程序;若要產(chǎn)生2拍的長(zhǎng)度,則執(zhí)行8次該子程序……依次類推。
3.2 定時(shí)器中斷
同樣,找出整首音樂(lè)曲目中拍子的種類,找出其中最短的拍子,例如整首樂(lè)曲中,最短的是1/4拍,若1/4拍的時(shí)間是0.125μs,則以1/4拍為基準(zhǔn),然后設(shè)定每0.125μs產(chǎn)生一次中斷,其定時(shí)器值為125 000,超過(guò)任何一個(gè)定時(shí)器模式的定時(shí)值。若采用mode1,而定時(shí)值設(shè)定為62 500,則只要執(zhí)行2次中斷,即可產(chǎn)生1/4拍的時(shí)間長(zhǎng)度,同時(shí),若要產(chǎn)生1/2拍的長(zhǎng)度,則執(zhí)行4次中斷;若要產(chǎn)生3/4拍的長(zhǎng)度,則執(zhí)行6次中斷……依次類推。
若要89C51產(chǎn)生聲音,可利用程序產(chǎn)生頻率,送到輸入/輸出口(一位即可),例如P1.0,再?gòu)脑擖c(diǎn)連接到喇叭的驅(qū)動(dòng)電路,即可驅(qū)動(dòng)喇叭。
井下所用的語(yǔ)音設(shè)備很多,但它們主要是利用單片機(jī)制作發(fā)音電路,本文介紹了單片機(jī)產(chǎn)生音樂(lè)的要素,由AT89C51單片機(jī)制作發(fā)音電路,并通過(guò)匯編語(yǔ)言程序?qū)崿F(xiàn)蜂鳴器,以及單片機(jī)演奏音樂(lè)的原理。
[1] 張義和,陳敵北.例說(shuō)89C51[M].北京:人民郵電出版社,2002:85-102.
[2] 付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M].北京:化學(xué)工業(yè)出版社,1999:123-160.
[3] 胡漢才.單片機(jī)原理及其接口技術(shù)[M].北京:清華大學(xué)出版社,2004:96-125.
Discussion on Sound Production Reason of Underground Pronunciation Equipment by Using SCM
Yang Bin
Pronounced device in the underground can be sent out pronunciation which mainly use the pronounced circuit to sound by AT89C51 SCM,now mainly introduce the element of music produced by the AT89C51 SCM,the pronounced circuit made by AT89C51 SCM and the buzzer achieved by the assembled language and the principle of performed music by SCM.
Underground pronunciation equipment;SCM;The timer interruption;Timelag;Tone;Beat; Pronunciation circuit;Principle
book=4,ebook=138
TD679
A
1672-0652(2010)04-0026-03
2010-03-21
楊 彬 男 1979年出生 2003年畢業(yè)于新疆工業(yè)高等專科學(xué)校 助理工程師 烏魯木齊 830025