版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
給你這個電路吧。電路加個555外部振蕩,但軟件簡單。且喇叭通過電容隔離直流電,很安全,不會燒壞。只要Px.y置1喇叭就叫了,Px.y清0喇叭就停了,修改100K電阻可改變音調(diào)。loop:setbp1.7;喇叭叫l(wèi)calldelay;叫的時間clrp1.7;喇叭停止發(fā)聲lcalldelay;停的時間lljmploopdelay:movr7,#20h;修改這個20h,可以修改響和停的時間,擴(kuò)大1倍時間就增加1倍movr6,#0movr5,#0djnzr5,$djnzr6,$-4djnzr7,$-8
retret這種蜂鳴器放大電路很簡單,加一只三極管就行了,如圖1,這樣接的原因是開機(jī)復(fù)位期部P3.6為高電平,三極管是不導(dǎo)通的。這種情況下用揚(yáng)聲器,揚(yáng)聲器發(fā)聲的音調(diào)即頻率可以編程控制,可以演奏音樂。另外現(xiàn)在市場上有一種體積很小5V的蜂鳴器,加上5V電壓就能自鳴,但音調(diào)固定,體積小,可以直接焊在電路板上。如圖2所示。因音調(diào)較高,適合于用蜂鳴器報警。開機(jī)復(fù)位期間蜂鳴器是不響的,在P3.6加低電平就響了。
vccYP36 £.10Kvcc:\9012GNI)vccYP36 £.10Kvcc:\9012在簡易自動報警器中,常常采用蜂鳴器發(fā)聲或發(fā)光二極管發(fā)光產(chǎn)生示警信號。由于小型蜂鳴器驅(qū)動電流不大,簡化了電路設(shè)計。驅(qū)動蜂鳴器的三極管開關(guān)電路見圖7。HA為聲響指示器,采用低電壓(3V)蜂鳴器,其工作電流僅需十幾個毫安。VT選用9013,hfe=200,偏置電阻器R為15kQ,VT的基極電流IB約0.1mA,集電極電流IC約為10mA,此時VT已經(jīng)飽和導(dǎo)通,其集電極一發(fā)射極之間電壓VCE僅為0.05V。將圖7電路中的控制開關(guān)S換成干簧管開關(guān),就改造成磁控聲響電路。將圖7電路中的R減小到10kQ,控制開關(guān)S換成光敏電阻器或光敏二極管,就成為光控聲響電路。這些電路有什么作用呢?是否可以做為保險柜防盜報警,在打開柜門時,由于磁鐵離開干簧管或者保險柜外光線照射而報警。必要時可以將磁控元件、光敏元件接到下偏置,以滿足反相的控制效果。
HAhk;VT+GBF3V這個實驗本來應(yīng)該是我們學(xué)習(xí)AVR單片一時疏忽,忘記了,現(xiàn)在補(bǔ)的第一個實例程序,但是由于一、電路實現(xiàn)如下是驅(qū)動蜂鳴器發(fā)聲的電路原理圖\CCSPEAKERHAhk;VT+GBF3V這個實驗本來應(yīng)該是我們學(xué)習(xí)AVR單片一時疏忽,忘記了,現(xiàn)在補(bǔ)的第一個實例程序,但是由于一、電路實現(xiàn)如下是驅(qū)動蜂鳴器發(fā)聲的電路原理圖\CCSPEAKERLSI_/IPE5陛10KQICK5501、蜂鳴器是一種電子電路中常用的發(fā)聲器件,蜂鳴器分為有源蜂鳴器和無源蜂鳴器兩種。從外觀上看這兩種蜂鳴器區(qū)別不大,但是在細(xì)節(jié)上還是稍有差別的,首先一般的有源蜂鳴器在其正面貼有一片膠紙,而無源蜂鳴器則沒有。再觀察有引腳的那一面,有源蜂鳴器的兩個引腳一高一低,而無源蜂鳴器的兩個引腳的高度一樣。另外有源蜂鳴器除了引腳露出外,其余部分都是封閉的,而無源蜂鳴器的引腳面可以看到有綠色的電路板。使用電源來判別蜂鳴器的有源和無源:找個5V左右的穩(wěn)壓電源,將電源正極連接到蜂鳴器標(biāo)有“+”符號的引腳上,用電源的負(fù)極以一定頻率不斷地碰觸蜂鳴器的負(fù)極引腳,發(fā)出“咔咔”聲的是無源蜂鳴器,發(fā)出“嘀嘀”聲的是有源蜂鳴器。使用數(shù)字表判別蜂鳴器的有源和無源:用數(shù)字表的1K以下的歐姆檔測量蜂鳴器兩腳間的電阻,如果電阻只有幾十歐,并且顛倒數(shù)字表的表筆測量出來的電阻一樣,那么可以判斷為無源蜂鳴器,如果兩腳間電阻大于1K,那么可以判斷是有源蜂鳴器。有源蜂鳴器直接接上額定電源就可連續(xù)發(fā)聲;而無源蜂鳴器則和電磁揚(yáng)聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。有源蜂鳴器和無源蜂鳴器的區(qū)別就是有源蜂鳴器直接加上額定電壓就能一直發(fā)聲(當(dāng)然要同時滿足電流要求),而無源蜂鳴器需要加上脈沖電壓才能持續(xù)發(fā)聲。在電子設(shè)計中,常用有源蜂鳴器進(jìn)行各種各樣的報警提示。而用無源蜂鳴器來產(chǎn)生各式各樣的音頻信號(比如用來演奏簡單的樂曲)。2、蜂鳴器的驅(qū)動電路上面的圖中給出了本實例中使用的蜂鳴器電路,電路中使用單片機(jī)的PE5口控制三極管8550的通斷來使蜂鳴器發(fā)聲。為什么要使用三極管?三極管在這里的作用有二:開關(guān)作用,控制蜂鳴器電源電路的通斷;提供
蜂鳴器發(fā)聲所需的較高電流,單片機(jī)的I/O口驅(qū)動能力有限,而我們知道三極管有電流放大的作用,在這里就是利用三極管放大電流來使蜂鳴器獲得足夠的驅(qū)動電流。下圖是一種比較安全的蜂鳴器驅(qū)動電路圖中在蜂鳴器兩端并聯(lián)了一個二極管,這個二極管稱為續(xù)流二極管,蜂鳴器本質(zhì)上是一個感性元件,其電流不能瞬變,因此必須有一個續(xù)流二極管提供續(xù)流。否則,在蜂鳴器兩端會產(chǎn)生幾十伏的尖峰電壓,可能損壞驅(qū)動三極管,并干擾整個電路系統(tǒng)的其它部分。濾波電容C1的作用是濾波,濾除蜂鳴器電流對其它部分的影響,也可改善電源的交流阻抗,如果可能,最好是再并聯(lián)一個220uF的電解電容。二、程序?qū)崿F(xiàn)完整程序如下所示,本程序?qū)崿F(xiàn)單片機(jī)系統(tǒng)上電后蜂鳴器發(fā)出約500ms的聲音。#include<avr/io.h> //io端口寄存器配置文件,必須包含#include<util/delay.h> //GCC中的延時函數(shù)頭文件//函數(shù)聲明voidDelayus(unsignedintlus);//us延時函數(shù)voidDelayms(unsignedintlms);//ms延時函數(shù)intmain(void) //GCC中main文件必須為返回整形值的函數(shù),沒有參數(shù){unsignedchari;PORTE|=(1<<PE5);//DDRE|=(1<<PE5);//Delayms(500);PORTE&=~(1<<PE5);//Delayms(500);PORTE|=(1<<PE5);//while(1){}}//us級別的延時函數(shù)voidDelayus(unsignedintlus){while(lus--){_delay_loop_2(4); //_delay_loop_2(1)是延時4個時鐘周期,參數(shù)為4則延時16〃個時鐘周期,本實驗用16M晶體,則16個時鐘周期為16/16=1us}}//ms級別的延時函數(shù)voidDelayms(unsignedintlms){while(lms--){Delayus(1000); //延時1ms}}三、程序講解在本實例中我們自己定義了兩個延時函數(shù):微秒級的延時函數(shù)、毫秒級的延時函數(shù)其中在微秒級的延時函數(shù)中我們使用了這樣一條語句_delay_loop_2(3); 這條語句是GCC編譯環(huán)境下delay.h頭文件中定義的一個延時函數(shù),_delay_loop_2(1)實現(xiàn)4個時鐘周期的延時,為什么我們要自己編寫延時函數(shù),而不使用delay.h中定義好的延時函數(shù)?這是因為delay.h中定義的延時函數(shù)是按照內(nèi)部1MHz時鐘頻率編寫的,而我們實際使用的始終是外部16MHz,所以如果仍舊使用這些延時函數(shù),會造成延時的不精確。在程序中我們還是用了如下的語句:PORTE|=(1<<PE5);PORTE&=~(1<<PE5);它們是什么樣的語句?實現(xiàn)什么樣的功能?這些語句實現(xiàn)給端口寄存器的某些固定位賦值,其中使用了移位,相或,取反等操作。在單片機(jī)的C語言程序中我們經(jīng)常會碰到給一些寄存器的特定位賦值的操作,這是單片機(jī)C語言和標(biāo)準(zhǔn)C語言的一個明顯差異。在下一講中我們將詳細(xì)討論單片機(jī)中位操作的實現(xiàn)。用單片機(jī)驅(qū)動蜂鳴器唱歌蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型,他廣泛應(yīng)用于計算機(jī)、打印機(jī)、復(fù)印機(jī)、報警器、電話機(jī)等電子產(chǎn)品中作發(fā)聲器件。單片機(jī)上面使用的蜂鳴器一般都是無源電磁式的蜂鳴器(如下圖所示)。它由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。單片機(jī)與蜂鳴器連接如圖二所示。525圖中,蜂鳴器的正極接到VCC(+5V)電源上面,蜂鳴器的負(fù)極接到三極管的發(fā)射極E,三極管的基級B經(jīng)過限流電阻R1后由單片機(jī)的P3.7引腳控制,當(dāng)P3.7輸出高電平時,三極管T1截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)P3.7輸出低電平時,三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制P3.7腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。程序中改變單片機(jī)P3.7引腳輸出波形的頻率,就可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色、音調(diào)的聲音。另外,改變P3.7輸出電平的高低電平占空比,則可以控制蜂鳴器的聲音大小,這些我們都可以通過編程實驗來驗證。下面就是一個能夠發(fā)出音樂的單片機(jī)程序,示例中所播放的音樂是《兩只老虎》。SPKEQUP3.7;位定義ORG0000H;偽指令,指定程序從0000H開始存放LJMPSTART;程序跳轉(zhuǎn)至START處執(zhí)行ORG0030H;偽指令,指定程序從0030H開始存放START:MOV SP,#60H;堆棧初始化MOVR3,#00H;給R3賦值NEXT:MOVA,R3MOVDPTR,#TABLE;查歌曲表MOVCA,@A+DPTRJZSTART;為00則循環(huán)播放此歌MOVR7,A;R7/R2保存連續(xù)相鄰的表數(shù)據(jù)INCR3MOVA,R3MOVCA,@A+DPTRMOVR2,AACALLSONGINCR3SJMPNEXT7;=========歌曲播放子程序==========7SONG:MOVA,R2;取出節(jié)拍RLAJNZKEEP;A不等于零則跳MOVA,#01H;A等于零則賦值為1KEEP:MOV R2,AREPEAT:ACALLDJNZRETEIGHTHR2,REPEAT
;調(diào)用1/8拍延時程序EIGHTH:MOVA,R7MOVDPTR,#DELAY_TMOVCA,@A+DPTRMOVR4,AMOVA,R7R5MOVDPTR,#S_PARAMOVCA,@A+DPTRMOVR5,ANEXTCYC:ACALLSOUNDDJNZR5,NEXTCYCRET;===========發(fā)聲子程序===========產(chǎn)生1/8拍延時子程序;查表取出延時參數(shù),保存到R4;查表取出1/8拍周期數(shù),保存到SOUND:SETBSPKACALLSDELAYCLRSPKACALLSDELAYRET7;===========延時子程序===========;延時值在;延時值在R4內(nèi)SDELAY:MOVMOVXL2:MOVDL1:NOPDJNZDJNZRET
A,R4R0,AR1,#03HR1,DL1R0,XL2;===========1/8拍周期表==========7S_PARA:DS1DHDB15H,16H,00DB19H,00H,1CH,00H,1FH,21H,00H,25HDB00H,29H,2CH,00H,31H,34H,37H,00HDB3EH,41H,00H,49H,00H,52H,57H,00HDB62H===========延時參數(shù)表===========DELAY_T:DS1DHDB7EH,77H,00HDB6AH,00H,5EH,00H,54H,4FH,00H,46HDB00H,3FH,3BH,00H,35H,32H,2FH,00HDB2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB1AH============歌曲表=============TABLE:DW2504H,2704H,2904H,2504HDW2504H,2704H,2904H,2504HDW2904H,2A04H,2C08HDW2904H,2A04H,2C08HDW2C02H,2E02H,2C02H,2A02H,2904H,2504HDW2C02H,2E02H,2C02H,2A02H,2904H,2504HDW2904H,2004H,2508HDW2904H,2004H,2508HDW0000HEND童鞋們可能發(fā)現(xiàn)了,數(shù)據(jù)表TABLE里面的數(shù)據(jù)才是歌曲數(shù)據(jù)。也就是說,只要我們改變TABLE表里面的數(shù)據(jù),就可以播放不同的歌曲了。比如下面這一首《蘭花草》:;============歌曲表=============7TABLE:DW2202H,2902H,2902H,2902H,2906H,2702H ;我從山中來DW2502H,2702H,2502H,2402H,2208H ;帶著蘭花草
DW2E02H,2E02H,2E02H,2E02H,2E06H,2C02H;種在小園中DW2902H,2C02H,2D02H,2A02H,2908H;祈禱花開早DW2902H,2E02H,2E02H,2C02H,2906H,2702H;一日看三回DW2502H,2702H,2502H,2402H,2206H,1D02H;看得花時過DW1D02H,2502H,2502H,2402H,2206H,2902H;蘭花卻依然DW2702H,2502H,2402H,2002H,2208H;苞也無一個DW0000HEND在TABLE表里面的數(shù)據(jù)都是字類型的,也就是說可以拆分成2個DB數(shù)據(jù)。前一個DB數(shù)據(jù),我們用來存放音色,也就是“dao.rai.mi.fa.sao.la.xi”;后一個DB我們用來存放音長,就是每個音的長度。對于音色,可以查下面的表,數(shù)值越大,頻率越高,音色也就越高X.的意思是低音)。而對于音長,數(shù)值越大,響的越持久。125H1.19H227H2.1BH329H3.1DH42AH4.1FH52CH5.20H62EH6.22H730H7.24H如果寫出來的歌曲不是很像,多調(diào)試一下就可以了。rsiALUi39—|{T~ClIWF291必31?-XTALIXTAL2RSTPOXVADO旳】rsiALUi39—|{T~ClIWF291必31?-XTALIXTAL2RSTPOXVADO旳】/ADIFOUADSP04AD4PO.5/AD5P0.&AD6P07/AD7P2.0/AD6P3l/AI?Pl2^AD!0PSENP23/AD1!ALEP24/AD12P2.貝心3P16/ADMM7/ADI5P1.0P3.t)/RXDPl.1P3.I/TXDPI.2P32^N^PI3P3.5^JjfTPI.4F3沖/TOPI.5P3.5/T1Pl6P3,6WRPl7P37/H5ATE9C5I"-[>-134[#--^-10-咅-2軟件設(shè)計
2.1播放原理聲音的頻譜范圍通常約為幾十到幾千赫茲,通過程序控制單片機(jī)的I/O口可輸出
不同頻率的矩形波。當(dāng)該矩形波的頻率位于聲音頻譜范圍內(nèi)時,在單片機(jī)的I/O口接
上喇叭就能發(fā)出聲音。然后利用延時程序控制矩形波的高、低電平持續(xù)時間,即改變矩
形波的頻率,即可產(chǎn)生不同的音調(diào),從而發(fā)出不同的聲音,再讓矩形波輸出的長短對應(yīng)
節(jié)拍,就可以實現(xiàn)單片機(jī)對音樂的演奏。2.2音調(diào)和節(jié)拍編碼單片機(jī)奏樂只需弄清楚兩個概念,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符
唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。由于各個音調(diào)對應(yīng)的頻率是已知的,因此,播放音樂時,應(yīng)對樂曲中出現(xiàn)的音調(diào)進(jìn)行編碼,并找出單片機(jī)播放這些音調(diào)所對應(yīng)的定時初值。表1所列是音調(diào)編碼與定時器的初值表,其中頻率是已知的,編碼可以自己設(shè)置,而定時初值是怎樣得來的呢?下面以“低6”為例進(jìn)行說明?!暗?”的頻率f為440Hz,其對應(yīng)的周期為:T=1/f=1/440=272》s。單片機(jī)上對應(yīng)蜂鳴器的\/O口來回取反的時間應(yīng)為:t=T/2=2272/2=1136Ms。單片機(jī)奏樂時,其定時器為工作方式1,若以振蕩器的十二分頻信號為計數(shù)脈沖,如果單片機(jī)晶振為12MHz,則1Ms計數(shù)一次。所以,對于“低6”,其定時器的初值應(yīng)該是:216-1136=64400。對節(jié)拍的控制可通過延時程序來實現(xiàn)。表2所列是節(jié)拍編碼表。若以1拍的時長為400ms為例,1/2拍的時長為200ms,1/4拍的時長為100ms。首先,這樣,確定一個基本時長的延時程序,比如以100ms為基本延時時間,那么,1/4拍可以調(diào)用一次延時程序,1/2拍需調(diào)用二次延時程序,1拍需調(diào)用四次延時程序,依次類推。2.3編程音調(diào)和節(jié)拍都進(jìn)行過編碼后,那么,一首樂曲就可以用若干個8位的簡碼表示。比如“生日快樂歌”的第一個簡碼是“82H”,由表1可知,其高四位“8”表示音調(diào)“中5”,對應(yīng)的頻率是784Hz,對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司租車協(xié)議書正規(guī)模板5篇
- 高原紅病因介紹
- 關(guān)于技術(shù)轉(zhuǎn)讓的協(xié)議
- 雀斑樣痣病因介紹
- 中考政治復(fù)習(xí)知識專題八七下第四單元做學(xué)法尊法守法的人
- 2023年順酐項目融資計劃書
- 《MLCC制程介紹》課件
- 機(jī)械制圖測試題含答案
- 養(yǎng)老院老人生活娛樂活動組織人員職業(yè)發(fā)展規(guī)劃制度
- 養(yǎng)老院老人健康監(jiān)測報告制度
- GB/T 36652-2018TFT混合液晶材料規(guī)范
- 國際商務(wù)談判 袁其剛課件 第四章-國際商務(wù)談判的結(jié)構(gòu)和過程
- 國際商法教案(20092新版)
- 江蘇開放大學(xué)漢語作為第二語言教學(xué)概論期末復(fù)習(xí)題
- 貨物質(zhì)量保證措施
- 工作簡化方法改善與流程分析課件
- 國家開放大學(xué)《管理學(xué)基礎(chǔ)》形考任務(wù)1-4參考答案
- 道德與法治《健康看電視》優(yōu)秀課件
- 急性胰腺炎完整版課件
- 雙絞線鏈路測試報告
- 《建筑工程類別劃分標(biāo)準(zhǔn)》-全
評論
0/150
提交評論