国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

用單片機(jī)驗(yàn)證音調(diào)高低與振動(dòng)頻率的關(guān)系

2019-10-25 06:24吝歡歡任新成王玉清
物理教學(xué)探討 2019年9期
關(guān)鍵詞:中音誤操作蜂鳴器

吝歡歡,任新成,王玉清

延安大學(xué)物理與電子信息學(xué)院,陜西延安716000

1引言

“音調(diào)”是物理8年級(jí)上冊(cè)《聲音的特性》一節(jié)中的重要概念。我們都知道,聲音的高低叫做音調(diào),在日常生活中,我們可以通過(guò)聽(tīng)覺(jué)的不同感受來(lái)辨別音調(diào)的高低。但是,由于對(duì)發(fā)聲體的振動(dòng)頻率我們無(wú)法直觀感知,更難以獲得準(zhǔn)確的數(shù)據(jù)。所以,“音調(diào)高低與振動(dòng)頻率的關(guān)系”就成為本節(jié)的教學(xué)難點(diǎn)。因此,如何讓學(xué)生更好地感受音調(diào)的高低、明確振動(dòng)頻率的大小,并進(jìn)一步得到兩者的相互關(guān)系就成為教學(xué)的關(guān)鍵所在[1]。

利用AT89C51單片機(jī)的定時(shí)器中斷功能,通過(guò)改變蜂鳴器的發(fā)聲頻率來(lái)控制音調(diào)高低,模擬簡(jiǎn)易電子琴的工作過(guò)程。能夠使學(xué)生更加直觀地感受物理現(xiàn)象,精確驗(yàn)證音調(diào)高低與發(fā)聲體振動(dòng)頻率的關(guān)系,總結(jié)物理規(guī)律。而且單片機(jī)操作系統(tǒng)成本低廉 (一般在二三十元不等),性價(jià)比高,為學(xué)習(xí)和應(yīng)用提供了便利條件。

2 實(shí)驗(yàn)基本原理介紹

2.1 AT89C51單片機(jī)簡(jiǎn)介

AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),內(nèi)含4KB可反復(fù)擦寫的只讀程序存儲(chǔ)器(ROM)和128KB隨機(jī)數(shù)據(jù)存儲(chǔ)器(RAM)。內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,并且兼容MCS-51指令系統(tǒng)。

圖1 AT89C51單片機(jī)控制蜂鳴器電路圖

2.2 AT89C51單片機(jī)控制發(fā)聲系統(tǒng)

AT89C51單片機(jī)控制發(fā)聲系統(tǒng)[2]如圖1所示,它是由單片機(jī)、時(shí)鐘電路、復(fù)位電路、按鍵電路和蜂鳴器電路組成。其中,時(shí)鐘電路由一個(gè)12 MHz的晶振和兩個(gè)33 pF的電容組成,它們決定了單片機(jī)的工作時(shí)間精度為1 μs。該系統(tǒng)采用按鍵手動(dòng)復(fù)位方式,即在單片機(jī)運(yùn)行期間,用手動(dòng)按鍵的方式使單片機(jī)初始化。系統(tǒng)利用P1口的P1.0-P1.7引腳設(shè)置了8個(gè)獨(dú)立按鍵,當(dāng)有鍵按下時(shí),P1口相應(yīng)的引腳置為低電平,單片機(jī)接收脈沖信號(hào)。在實(shí)驗(yàn)中,我們用其中P1.0-P1.6這7個(gè)引腳分別來(lái)控制C調(diào)中音的7個(gè)音調(diào)。蜂鳴器電路主要由蜂鳴器、PNP型三極管和一個(gè)電阻組成,低電平有效,即當(dāng)向電路輸入高電平(P3.0引腳置1)時(shí),蜂鳴器中無(wú)電流通過(guò),電路不發(fā)聲;當(dāng)向其輸入低電平(P3.0引腳置0)時(shí),蜂鳴器中有電流通過(guò),產(chǎn)生蜂鳴。我們可以通過(guò)控制高、低電平的持續(xù)時(shí)間來(lái)形成不同頻率的脈沖電壓,驅(qū)動(dòng)蜂鳴器發(fā)聲,從而實(shí)現(xiàn)對(duì)音調(diào)高低的控制。

2.3 音調(diào)控制原理

當(dāng)單片機(jī)[3]內(nèi)部定時(shí)器/計(jì)數(shù)器T0工作在計(jì)數(shù)器模式1時(shí),寄存器TH0和TL0是以全部16位參與工作,計(jì)數(shù)長(zhǎng)度為216=65 536。我們就可以通過(guò)改變計(jì)數(shù)初值TH0、TL0來(lái)產(chǎn)生不同的頻率。 例如,C 調(diào)中音 1(do)的音頻 f=523 Hz,周期s=1912 μs,定時(shí)器的定時(shí)時(shí)間為μs=956 μs,即每經(jīng)過(guò) 956 μs,使輸出口改變一次脈沖電壓。定時(shí)器的計(jì)數(shù)值=956,則裝入T0計(jì)數(shù)器初值65 536-956=64 580,即啟動(dòng)T0工作后,每計(jì)數(shù)956次時(shí)將產(chǎn)生溢出中斷,進(jìn)入中斷服務(wù)后將P3.0(RXD)引腳輸出電平取反就可得到中音do的音符頻率,如圖2所示。

圖2 音符脈沖波形圖

同理,C調(diào)中音各音符的頻率與計(jì)數(shù)初值如表1所示。

表1 C調(diào)中音各音符的頻率與計(jì)數(shù)初值對(duì)照表

3 實(shí)驗(yàn)過(guò)程

我們使用Keil C51軟件的C語(yǔ)言編寫程序來(lái)實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康摹?/p>

3.1 準(zhǔn)備工作

首先,啟動(dòng)Keil C51軟件進(jìn)入編輯界面,單擊“Project”菜單,在彈出的下拉子菜單中選擇“New Project”選項(xiàng)建立新工程,選擇文件保存路徑,輸入工程文件名后點(diǎn)擊保存,在彈出的對(duì)話框中選擇相應(yīng)的單片機(jī)型號(hào),即Atmel公司的AT89C51型單片機(jī),點(diǎn)擊確定按鈕。然后,在編輯界面“File”菜單的下拉子菜單中單擊“New”選項(xiàng)新建文件。 再單擊“File”菜單下的“Save As”選項(xiàng)保存該文件,在彈出的對(duì)話框中“文件名”欄內(nèi)輸入文件名及對(duì)應(yīng)的擴(kuò)展名,如“test.c”。單擊“保存”按鈕后回到編輯界面,單擊“Target 1”前面的“+”號(hào),在“Source Group 1”上單擊右鍵后再單擊“Add Files to Group‘Source Group 1’”。 最后,在彈出的對(duì)話框中選中文件test.c,單擊 “Add”按鈕,如圖3所示。

圖3 Keil C51編輯界面

3.2 輸入程序和編譯

在KeilC51的編輯界面輸入如下C語(yǔ)言源程序:

#include<reg51.h> //包含51單片機(jī)寄存器定義的頭文件

sbit key1=P1^0; //將key1位定義為P1.0引腳

sbit key2=P1^1; //將key2位定義為P1.1引腳

sbit key3=P1^2; //將key3位定義為P1.2引腳

sbit key4=P1^3; //將key4位定義為P1.3引腳

sbit key5=P1^4; //將key5位定義為P1.4引腳

sbit key6=P1^5; //將key6位定義為P1.5引腳

sbit key7=P1^6; //將key7位定義為P1.6引腳

sbit sound=P3^0; //將sound位定義為P3.0

unsigned int C; //定義全局變量,儲(chǔ)存定時(shí)器的定時(shí)常數(shù)

unsigned long n; //定義無(wú)符號(hào)數(shù)n

//以下是C調(diào)中音的音頻宏定義

#define do 64580 //將“do”宏定義為中音“1”的初值64580

#define re 64687 //將“re”宏定義為中音“2”的初值64687

#define mi 64780 //將“mi”宏定義為中音“3”的初值64780

#define fa 64822 //將“fa”宏定義為中音“4”的初值64822

#define sol 64900 //將“sol”宏定義為中音“5”的初值64900

#define la 64969 //將“l(fā)a”宏定義為中音“6”的初值64969

#define si 65031 //將“si”宏定義為中音“7”的初值65031

timer0()interrupt 1 //函數(shù)功能:產(chǎn)生中斷,改變脈沖電壓

{TH0=C/256; //對(duì)16位計(jì)數(shù)器高8位TH0賦值

TL0=C%256; //對(duì)16位計(jì)數(shù)器低8位TL0賦值

sound=~sound;} //取反形成脈沖電壓,輸出音頻

void main(void) //函數(shù)功能:主函數(shù)

{TMOD=0x01; //使用定時(shí)器0的工作模式1

ET0=1; //定時(shí)器T0中斷允許

EA=1; //開總中斷

while(1) //無(wú)限循環(huán),按鍵掃描

{if(key1==0) //檢測(cè)key1鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key1) //如果key1鍵按下,循環(huán)指令

{C=do; //將中音do的初值賦給C

TR0=1;}} //開定時(shí)器T0

if(key2==0) //檢測(cè)key2鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key2) //如果key2鍵按下,循環(huán)指令

{C=re; //將中音re的初值賦給C

TR0=1;}} //開定時(shí)器T0

if(key3==0) //檢測(cè)key3鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key3) //如果key3鍵按下,循環(huán)指令

{C=mi; //將中音mi的初值賦給C

TR0=1;}} //開定時(shí)器T0

if(key4==0) //檢測(cè)key4鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key4) //如果key4鍵按下,循環(huán)指令

{C=fa; //將中音fa的初值賦給C

TR0=1;}} //開定時(shí)器T0

if(key5==0) //檢測(cè)key5鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key5) //如果key5鍵按下,循環(huán)指令

{C=sol; //將中音sol的初值賦給C

TR0=1;}} //開定時(shí)器T0

if(key6==0) //檢測(cè)key6鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key6) //如果key6鍵按下,循環(huán)指令

{C=la; //將中音la的初值賦給C

TR0=1;}} //開定時(shí)器T0

if(key7==0) //檢測(cè)key7鍵按下

{for(n=0;n<5000;n++); //延時(shí) 5ms,按鍵消抖,防止誤操作

while(!key7) //如果key7鍵按下,循環(huán)指令

{C=si; //將中音si的初值賦給C

TR0=1;}} //開定時(shí)器T0

TR0=0; //關(guān)定時(shí)器

sound=1;}} //關(guān)蜂鳴器

程序輸入完畢后,單擊“Project”菜單下的“Built Target”選項(xiàng),確認(rèn)編譯無(wú)誤,如圖4所示。

圖4 Keil C51程序編譯界面

3.3 調(diào)試和下載

依次單擊 “Debug”菜單下的“Start/Stop Debug Session”和“Go”選項(xiàng)調(diào)試運(yùn)行,然后再依次單擊 “Stop Running” 和 “Start/Stop Debug Session”選項(xiàng)停止運(yùn)行。選擇“Project”菜單下的“Options for Target ‘Target 1’”選項(xiàng) ,在彈出的對(duì)話框中將“Target”選項(xiàng)卡的Xtal(MHz)一欄輸入 12,選擇“Output”選 項(xiàng) 卡中的“Create HEX File”選項(xiàng),點(diǎn)擊確定按鈕,使程序編譯后產(chǎn)生HEX代碼,最后用燒錄軟件(STC-ISP)將程序下載至AT89C51單片機(jī)中即可,如圖5所示。

圖5 程序下載界面

4 實(shí)驗(yàn)小結(jié)

利用AT89C51單片機(jī)的基本操作功能,可以用實(shí)驗(yàn)的方法精確驗(yàn)證音調(diào)高低與發(fā)聲體振動(dòng)頻率的關(guān)系,使學(xué)生更加清晰、直觀地感受物理現(xiàn)象,自主總結(jié)物理規(guī)律,同時(shí)寓教于樂(lè),通過(guò)模擬電子琴的工作流程,激發(fā)了學(xué)生強(qiáng)烈的好奇心和求知欲望,而且了解了有關(guān)編程方面的知識(shí)和方法,訓(xùn)練了學(xué)生的邏輯思維。

猜你喜歡
中音誤操作蜂鳴器
電動(dòng)自行車產(chǎn)品車速提示音檢測(cè)現(xiàn)狀和整改技術(shù)研究(2)
次中音號(hào)在小樂(lè)隊(duì)中的運(yùn)用策略研究
掌控板制作簡(jiǎn)易鋼琴
單片機(jī)驅(qū)動(dòng)蜂鳴器的程序設(shè)計(jì)
變電運(yùn)行倒閘誤操作的原因及預(yù)防
中音號(hào)的基本吹奏法分析
對(duì)一起誤操作事故的幾點(diǎn)看法
豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
音樂(lè)史分期問(wèn)題評(píng)述——兼談中音史教學(xué)中分期介紹的必要
淺談變電運(yùn)維誤操作事故預(yù)控措施