(2.6.1)-1-5使蜂鳴器鳴叫_第1頁
(2.6.1)-1-5使蜂鳴器鳴叫_第2頁
(2.6.1)-1-5使蜂鳴器鳴叫_第3頁
(2.6.1)-1-5使蜂鳴器鳴叫_第4頁
(2.6.1)-1-5使蜂鳴器鳴叫_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

使蜂鳴器鳴叫BuzzerControlCONTENTS01.認(rèn)識蜂鳴器03.認(rèn)識變量02.設(shè)計蜂鳴器驅(qū)動電路04.認(rèn)識運算符與表達(dá)式05.認(rèn)識程序設(shè)計結(jié)構(gòu)及流程圖繪制06.認(rèn)識分支結(jié)構(gòu)01.認(rèn)識蜂鳴器蜂鳴器廣泛應(yīng)用于各種電子產(chǎn)品的一種發(fā)聲元器件,它用于提示、報警、音樂等許多應(yīng)用場合。一般蜂鳴器只有兩個引腳,其中一個引腳用來接地,另外一個引腳則用來接驅(qū)動信號。通常蜂鳴器是連接至控制芯片的輸出器件,控制芯片通過輸出高、低或者脈沖信號控制蜂鳴器的發(fā)聲。01.認(rèn)識蜂鳴器蜂鳴器電磁式蜂鳴器無源蜂鳴器:交流信號通過繞在支架上的線包在支架的芯柱上產(chǎn)生一交變的磁通,交變的磁通和磁環(huán)恒定磁通進(jìn)行疊加,使膜片以給定的交流信號頻率振動并配合共振腔發(fā)聲有源蜂鳴器:由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲壓電式蜂鳴器在壓電陶瓷上通過一定頻率的電流,就會引起壓電陶瓷微小形變,這一形變帶動空氣發(fā)生振動,如果頻率適當(dāng),就可以被人耳所聽見,也就是產(chǎn)生了蜂鳴聲01.認(rèn)識蜂鳴器名稱有源蜂鳴器無源蜂鳴器驅(qū)動信號01.認(rèn)識蜂鳴器參數(shù)說明工作電壓電磁式:1.5V-24V;壓電式:3V-220V;消耗電流電磁式蜂鳴器的消耗電流可以從幾十到上百毫安。對于壓電式,幾毫安就可以正常的動作,且在蜂鳴器啟動時,瞬間需消耗約三倍的電流。驅(qū)動方式對于有源蜂鳴器的,只要接上直流電(DC)即可發(fā)聲。對于無源蜂鳴器則必須設(shè)定特定的驅(qū)動頻率,使用方波信號驅(qū)動。尺寸蜂鳴器的尺寸會影響到音量的大小,頻率的高低。電磁式的最小從7mm到最大的25mm壓電式的從12mm到50mm甚至更大連接方式一般常見的有插針(DIP),焊線(Wire),貼片(SMD),壓電式還有以鎖螺絲方式的封裝音壓蜂鳴器常以10cm的距離作為測試的標(biāo)準(zhǔn),距離增加一倍,大概會衰減6dB,反之距離縮短一倍則會增加6dB。電磁式蜂鳴器大概能達(dá)到85dB/10cm的水平,壓電式可以做到很大聲,常見的警報器大都是以壓電蜂鳴器制成02.設(shè)計蜂鳴器驅(qū)動電路端口拉電流端口灌電流NPN三極管驅(qū)動PNP三極管驅(qū)動有源:低電平無源:脈沖有源:低電平無源:脈沖有源:高電平無源:脈沖需要端口有恰當(dāng)?shù)睦娏饔性矗焊唠娖綗o源:脈沖依賴端口拉電流的最大值依賴端口灌電流的最大值能提供較大的蜂鳴器工作電流驅(qū)動方式端口要求工作電流03.認(rèn)識變量基本概念概念作用用法計算機語言中是一段有名字的連續(xù)存儲空間,在程序運行過程中,其值會發(fā)生變化通過定義變量來申請并命名這樣的存儲空間,并通過變量的名字來使用這段存儲空間每個變量在使用前必須進(jìn)行定義03.認(rèn)識變量定義[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表;

//[內(nèi)容]為非必需內(nèi)容自動(auto)、外部(extern)、靜態(tài)(static)、存儲器(register)后續(xù)章節(jié)介紹,,默認(rèn)為自動變量有些單片機在變量定義時需要說明變量存儲在內(nèi)存具體分區(qū)可以定義單個變量,也可同時定義同一類型的多個變量,多個變量同時定義是要用“,”分割,一句變量定義的語句結(jié)束要使用“;”,可以為變量賦予初始值03.認(rèn)識變量定義[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表;

//[內(nèi)容]為非必需內(nèi)容unsignedcharV1;//定義一個unsignedchar類型的變量,沒有賦初始值unsignedcharV2=1,V3;//定義兩個unsignedchar類型的變量,其中一個賦了初始值unsignedintV4=5;//定義一個unsignedint類型的變量,賦予初始值03.認(rèn)識變量內(nèi)涵unsignedcharV1;//定義一個unsignedchar類型的變量,沒有賦初始值unsignedcharV2=1,V3;//定義兩個unsignedchar類型的變量,其中一個賦了初始值unsignedintV4=5;//定義一個unsignedint類型的變量,賦予初始值內(nèi)存地址空間名稱內(nèi)存內(nèi)容(每個空間為一個字節(jié))0x80V10x81V20x010x82V3

0x83V40x000x840x050x85000001010000000000000001123變量定義:按照數(shù)據(jù)類型在RAM區(qū)申請?zhí)囟ǖ膬?nèi)存空間為存儲空間命名并用初始值填充空間03.認(rèn)識變量使用V1=25;V4=V1+V2;變量定義后在程序中通過賦值語句修改變量的值03.認(rèn)識變量注意每個變量必須有一個名字,變量名是標(biāo)識符變量名不能是關(guān)鍵字變量必須先定義再使用,在一個程序段中,變量定義一定要放在執(zhí)行語句之前變量不能重復(fù)定義變量賦值時數(shù)值范圍超出了數(shù)據(jù)類型的規(guī)定,則可能丟失數(shù)據(jù)變量的初始化不能使用連等,如以下表示不正確unsignedchara=b=c=3;變量是有作用范圍(Scope)的,也即作用域03.認(rèn)識變量注意AB在程序中,變量一定會被定義在某一對大括號中,該大括號所包含的代碼區(qū)便是這個變量的作用域變量也可以定義在主函數(shù)之前,則變量在該.c文件全程有效變量的作用域03.認(rèn)識變量注意03.認(rèn)識變量注意變量的數(shù)據(jù)類型與其數(shù)值范圍二者要匹配如果數(shù)值范圍超出了數(shù)據(jù)類型的規(guī)定,則可能丟失數(shù)據(jù)03.認(rèn)識變量注意變量的數(shù)據(jù)類型與其數(shù)值范圍二者要匹配如果數(shù)值范圍超出了數(shù)據(jù)類型的規(guī)定,則可能丟失數(shù)據(jù)unsignedchara=258;03.認(rèn)識變量注意變量的數(shù)據(jù)類型與其數(shù)值范圍二者要匹配如果數(shù)值范圍超出了數(shù)據(jù)類型的規(guī)定,則可能丟失數(shù)據(jù)unsignedchara=258;03.認(rèn)識變量注意變量的數(shù)據(jù)類型與其數(shù)值范圍二者要匹配如果數(shù)值范圍超出了數(shù)據(jù)類型的規(guī)定,則可能丟失數(shù)據(jù)unsignedchara=258;000000101204.認(rèn)識運算符與表達(dá)式基本概念5Tmp=AD_Value+5a=(2+b/3)/5最簡單的表達(dá)式即一個單獨的操作數(shù),以此作為基礎(chǔ)可以建立復(fù)雜的表達(dá)式表達(dá)式(expression)是由運算符和操作數(shù)組合構(gòu)成的,操作數(shù)是運算符操作的對象語句(statement)是組成C的基本單位,并且大多數(shù)語句由表達(dá)式構(gòu)成04.認(rèn)識運算符與表達(dá)式基本概念每個表達(dá)式都有一個值,按照運算符優(yōu)先級描述的順序來完成運算0102若表達(dá)式中有“=”的賦值操作,則表達(dá)式的值為“=”左邊變量的值?!癿=2*5”1004.認(rèn)識運算符與表達(dá)式基本概念單目運算符i++;雙目運算符 Tmp=AD_Value+5;三目運算符 C=(a>b)?a:b;04.認(rèn)識運算符與表達(dá)式基本概念共分為15級,1級最高,15級最低優(yōu)先級即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)結(jié)合性04.認(rèn)識運算符與表達(dá)式運算符其功能是把表達(dá)式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表示的類型(類型說明符)(表達(dá)式)(unsignedchar)a把a轉(zhuǎn)換為字節(jié)型強制類型轉(zhuǎn)換運算符04.認(rèn)識運算符與表達(dá)式運算符算術(shù)運算符加法運算符“+” 雙目運算,即應(yīng)有兩個量參與加法運算。如a+b,4+8等。具有右結(jié)合性。減法運算符“-” 雙目運算。但“-”也可作負(fù)值運算符,此時為單目運算,如-x,-5等具有左結(jié)合性。乘法運算符“*”雙目運算,具有左結(jié)合性。除法運算符“/”雙目運算,具有左結(jié)合性。參與運算量均為整型時,結(jié)果也為整型,舍去小數(shù)。求余運算符模運算符“%”雙目運算,具有左結(jié)合性。要求參與運算的量均為整型。求余運算的結(jié)果等于兩數(shù)相除后的余數(shù)。自增、自減運算符“++”,“--”單目運算,自增或者自減104.認(rèn)識運算符與表達(dá)式運算符算術(shù)運算符加法運算符“+” 雙目運算,即應(yīng)有兩個量參與加法運算。如a+b,4+8等。具有右結(jié)合性。減法運算符“-” 雙目運算。但“-”也可作負(fù)值運算符,此時為單目運算,如-x,-5等具有左結(jié)合性。乘法運算符“*”雙目運算,具有左結(jié)合性。除法運算符“/”雙目運算,具有左結(jié)合性。參與運算量均為整型時,結(jié)果也為整型,舍去小數(shù)。求余運算符模運算符“%”雙目運算,具有左結(jié)合性。要求參與運算的量均為整型。求余運算的結(jié)果等于兩數(shù)相除后的余數(shù)。自增、自減運算符“++”,“--”單目運算,自增或者自減1++ii自增1后再參與其它運算。--ii自減1后再參與其它運算。i++i參與運算后,再自增1。i--i參與運算后,再自減1。04.認(rèn)識運算符與表達(dá)式運算符算術(shù)運算符加法運算符“+” 雙目運算,即應(yīng)有兩個量參與加法運算。如a+b,4+8等。具有右結(jié)合性。減法運算符“-” 雙目運算。但“-”也可作負(fù)值運算符,此時為單目運算,如-x,-5等具有左結(jié)合性。乘法運算符“*”雙目運算,具有左結(jié)合性。除法運算符“/”雙目運算,具有左結(jié)合性。參與運算量均為整型時,結(jié)果也為整型,舍去小數(shù)。求余運算符模運算符“%”雙目運算,具有左結(jié)合性。要求參與運算的量均為整型。求余運算的結(jié)果等于兩數(shù)相除后的余數(shù)。自增、自減運算符“++”,“--”單目運算,自增或者自減1++ii自增1后再參與其它運算。--ii自減1后再參與其它運算。i++i參與運算后,再自增1。i--i參與運算后,再自減1。unsignedchari=3,j;j=i++;j=3;i=404.認(rèn)識運算符與表達(dá)式運算符<小于<=小于或等于>大于>=大于或等于==等于!=不等于“0”

假非“0”

真運算得出的“真”用“1”表示結(jié)果是“真(1)”和“假(0)”雙目運算符關(guān)系運算符左結(jié)合比較兩個量的大小關(guān)系04.認(rèn)識運算符與表達(dá)式運算符結(jié)果是“真(1)”和“假(0)”雙目運算符關(guān)系運算符左結(jié)合比較兩個量的大小關(guān)系5>0(a=3)>(b=5)1004.認(rèn)識運算符與表達(dá)式運算符結(jié)果是“真(1)”和“假(0)”雙目運算符邏輯運算符左結(jié)合計算邏輯關(guān)系與運算&&1參與運算的兩個量都為真時,結(jié)果才為真,否則為假。5>0&&4>21或運算||2參與運算的兩個量只要有一個為真,結(jié)果就為真5>0||5>81非運算!3參與運算量為真時,結(jié)果為假;參與運算量為假時,結(jié)果為真。!(5>0)004.認(rèn)識運算符與表達(dá)式運算符雙目運算符(&、^、|)

單目(~、>>、<<)位運算符左結(jié)合按位二進(jìn)制邏輯運算04.認(rèn)識運算符與表達(dá)式運算符雙目運算符(&、^、|)

單目(~、>>、<<)位運算符左結(jié)合每位二進(jìn)制邏輯運算按位與

&9&5

按位或

|9|5按位異

^9^5求反

~255

左移

<<3<<4右移

>>15>>200001001(9的二進(jìn)制碼)&00000101(5的二進(jìn)制碼)00000001(1的二進(jìn)制碼)04.認(rèn)識運算符與表達(dá)式運算符雙目運算符(&、^、|)

單目(~、>>、<<)位運算符左結(jié)合每位二進(jìn)制邏輯運算按位與

&9&51按位或

|9|513按位異

^9^512求反

~2550左移

<<3<<448右移

>>15>>2304.認(rèn)識運算符與表達(dá)式運算符unsignedchara=2;unsignedcharc=3;unsignedcharb=(a>c)?a:c;3先求表達(dá)式1的值,如果為真,則執(zhí)行表達(dá)式2,并返回表達(dá)式2的結(jié)果;如果表達(dá)式1的值為假,則執(zhí)行表達(dá)式3,并返回表達(dá)式3的結(jié)果<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>三目運算符條件運算符04.認(rèn)識運算符與表達(dá)式運算符unsignedchara1,a2,b=2,c=7,d=5;a1=(++b,c--,d+3);整個表達(dá)式的值是最后一個表達(dá)式的值多個表達(dá)式可以用逗號分開,其中用逗號分開的表達(dá)式的值分別結(jié)算逗號運算符804.認(rèn)識運算符與表達(dá)式運算符優(yōu)先級運算符名稱或含義使用形式結(jié)合方向1

()圓括號(表達(dá)式)/函數(shù)名(形參表)

.成員選擇(對象)對象.成員名

->成員選擇(指針)對象指針->成員名

2

-負(fù)號運算符-表達(dá)式右到左(類型)強制類型轉(zhuǎn)換(數(shù)據(jù)類型)表達(dá)式

++自增運算符++變量名/變量名++

--自減運算符--變量名/變量名--

*取值運算符*指針表達(dá)式

&取地址運算符&左值表達(dá)式

!邏輯非運算符!表達(dá)式

~按位取反運算符~表達(dá)式

3

/除表達(dá)式/表達(dá)式左到右*乘表達(dá)式*表達(dá)式

%余數(shù)(取模)整型表達(dá)式%整型表達(dá)式

4+加表達(dá)式+表達(dá)式左到右-減表達(dá)式-表達(dá)式

5<<左移表達(dá)式<<表達(dá)式左到右>>右移表達(dá)式>>表達(dá)式

6>大于表達(dá)式>表達(dá)式左到右>=大于等于表達(dá)式>=表達(dá)式

<小于表達(dá)式<表達(dá)式

<=小于等于表達(dá)式<=表達(dá)式

優(yōu)先級運算符名稱或含義使用形式結(jié)合方向7

==等于表達(dá)式==表達(dá)式左到右!=不等于表達(dá)式!=表達(dá)式

8&按位與整型表達(dá)式&整型表達(dá)式左到右9^按位異或整型表達(dá)式^整型表達(dá)式左到右10|按位或整型表達(dá)式|整型表達(dá)式左到右11&&邏輯與表達(dá)式&&表達(dá)式左到右12||邏輯或表達(dá)式||表達(dá)式左到右13?:條件運算符表達(dá)式1?表達(dá)式2:表達(dá)式3右到左14

=賦值運算符變量=表達(dá)式右到左/=除后賦值變量/=表達(dá)式

*=乘后賦值變量*=表達(dá)式

%=取模后賦值變量%=表達(dá)式

+=加后賦值變量+=表達(dá)式

-=減后賦值變量-=表達(dá)式

<<=左移后賦值變量<<=表達(dá)式

>>=右移后賦值變量>>=表達(dá)式

&=按位與后賦值變量&=表達(dá)式

^=按位異或后賦值變量^=表達(dá)式

|=按位或后賦值變量|=表達(dá)式

15,逗號運算符表達(dá)式,表達(dá)式,…左到右05.認(rèn)識程序設(shè)計結(jié)構(gòu)及流程圖繪制程序結(jié)構(gòu)順序結(jié)構(gòu)1完成一條語句進(jìn)行下一條語句,是最簡單的程序設(shè)計方式分支判斷結(jié)構(gòu)2依據(jù)判斷條件選擇不同的分支結(jié)構(gòu)執(zhí)行程序采用if語句和switch語句實現(xiàn)循環(huán)結(jié)構(gòu)3滿足循環(huán)執(zhí)行的條件時,反復(fù)執(zhí)行同一段代碼(循環(huán)體),直到條件不滿足采用for語句、while語句、dowhile語句05.認(rèn)識程序設(shè)計結(jié)構(gòu)及流程圖繪制流程圖順序結(jié)構(gòu)06.認(rèn)識分支結(jié)構(gòu)if語句根據(jù)給定的條件進(jìn)行判斷,以決定是否執(zhí)行某個分支程序段單分支結(jié)構(gòu)多分支結(jié)構(gòu)雙分支結(jié)構(gòu)06.認(rèn)識分支結(jié)構(gòu)if語句單分支結(jié)構(gòu)形式:if(表達(dá)式)語句語義:如果表達(dá)式的值為真,則執(zhí)行其后的語句,否則不執(zhí)行該語句unsignedchara=2,b=1;if(a>5)b=a;b=106.認(rèn)識分支結(jié)構(gòu)if語句雙分支結(jié)構(gòu)形式:if(表達(dá)式)

語句1;else

語句2;語義:如果表達(dá)式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2if(a>b)c=a;elsec=b;c取a、b中最大者06.認(rèn)識分支結(jié)構(gòu)if語句多分支結(jié)構(gòu)形式:

if(表達(dá)式1)語句1;elseif(表達(dá)式2)語句2;elseif(表達(dá)式3)語句3;elseif(表達(dá)式4)語句4;else

語句5;語義:如果表達(dá)式的值為真,則執(zhí)行語句1,否則執(zhí)行語句2多段控制程序y按照x數(shù)值范圍取不同數(shù)值/***************//y=1x<3//y=23<=x<10//y=310<=x<20//y=4x>=20***************/if(x<3)y=1;elseif(x<10)y=2;elseif(x<20)y=3;elsey=4;06.認(rèn)識分支結(jié)構(gòu)if語句注意事項if(a>b){a++;b++;}else{a=0;b=10;}常見邏輯錯誤初學(xué)者在進(jìn)行關(guān)系判斷時容易誤寫語句(if(a==5)寫為if(a=5)),導(dǎo)致判斷恒真if(表達(dá)式)后加“;”,如if(a==5);b=3;語義變?yōu)閍為5時執(zhí)行空語句,無論條件是否成立b=3都將執(zhí)行PART.1當(dāng)if語句中的執(zhí)行語句又是if語句時,則構(gòu)成了if語句嵌套的情形,else總是與它前面最近的if配對PART.3養(yǎng)成良好的編程習(xí)慣,用{}括起執(zhí)行語句段,避免不必要錯誤PART.4如果要想在滿足條件時執(zhí)行一組(多個)語句,則必須把這一組語句用{}括起來組成一個復(fù)合語句。但要注意的是在}之后不能再加分號PART.2if(a>b) {if(a>c)d=a;elsea=c;} else{if(b>c)d=b;elsed=c;}if(a>b) if(a>c)d=a;elsea=c;elseif(b>c)d=b;elsed=c;06.認(rèn)識分支結(jié)構(gòu)switch語句switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;…case常量表達(dá)式n:語句n;default:語句n+1;}計算表達(dá)式的值。并逐個與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時,即執(zhí)行其后的

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論