單片機(jī)C語言應(yīng)用學(xué)習(xí)指南_第1頁
單片機(jī)C語言應(yīng)用學(xué)習(xí)指南_第2頁
單片機(jī)C語言應(yīng)用學(xué)習(xí)指南_第3頁
單片機(jī)C語言應(yīng)用學(xué)習(xí)指南_第4頁
單片機(jī)C語言應(yīng)用學(xué)習(xí)指南_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機(jī)C語言應(yīng)用

學(xué)習(xí)指南

目.錄

項目1開始學(xué)習(xí)單片機(jī)........................................................1

項目2炫彩流水燈...........................................................3

2.1發(fā)光LED燈...........................................................3

2.2閃爍LED燈...........................................................6

2.3模擬廣告流水燈.......................................................9

2.4炫彩流水燈...........................................................12

項目3球賽記分器...........................................................14

3.1音頻報警器...........................................................14

3.2實用鍵控LED燈......................................................17

3.3靜態(tài)顯示數(shù)碼管顯示器................................................20

3.4動態(tài)顯示數(shù)碼管顯示器................................................25

3.5球賽記分器的制作與調(diào)試..............................................27

項目4紅外線計數(shù)器........................................................30

項目5定時控制電源插座....................................................37

5.1數(shù)字鐘...............................................................37

5.2定時控制電源插座....................................................41

項目6PC遙控小車.........................................................49

項目7液晶顯示日歷........................................................54

7.1DS18B20數(shù)字溫度采集................................................54

7.2LCD1602液晶顯示器.................................................59

7.3DS1302時鐘芯片.....................................................63

7.4液晶顯示日歷.......................................................67

項目8單片機(jī)綜合項目研制..................................................69

項目1開始學(xué)習(xí)單片機(jī)

任務(wù)描述

-學(xué)會使用單片機(jī)實驗學(xué)習(xí)開發(fā)系統(tǒng),驅(qū)動發(fā)光二極管發(fā)光。

要求:

1、按照如圖所示硬伶電路,在單片機(jī)最小系統(tǒng)基礎(chǔ)上焊接制作發(fā)光二極管電路.

2、按要求輸入程序并編譯生成目標(biāo)文件,下載到單片機(jī)使PLO所接發(fā)光二極管亮。

目標(biāo):

1、學(xué)會使用KeilC5I編寫第一個C語言源程序,并編譯生成目標(biāo)文件。

2、學(xué)會使用AVREghtcr卜.載軟件將目標(biāo)文件下載到單片機(jī)中。

3、學(xué)會使用程序控制單片機(jī)引腳的高、低電平。

4、通過觀察程序執(zhí)行的結(jié)果,理解控制單片機(jī)引腳輸出高、低電平對外圍電路所起

到的作用。

電路制作

一、單片機(jī)驅(qū)動發(fā)光二極管發(fā)光硬件電路原理圖

MCS51

機(jī)

P1.7

P3.0

單片機(jī)控制LED燈

二、元器件清單如下,請補(bǔ)充各元件功能

三、工具與儀表:

四、電路制作

理解原理圖,識別各元件,熟悉封裝,并根據(jù)圖紙裝配元件,完成電路的焊接。

相關(guān)資訊

一、任務(wù)分析:

發(fā)光二極管具有單向?qū)щ娦浴?/p>

單片機(jī)的P1.0接到發(fā)光二極管D1的陰極,發(fā)光二極管D1的陽極通過排阻接上電源。

當(dāng)單片機(jī)的P1.0輸出低電平,發(fā)光二極管的陽極電位高于陰極電位,就會導(dǎo)通發(fā)亮;否則,

當(dāng)單片機(jī)的P1.0輸出高電平,發(fā)光二極管就會截止,不亮。

當(dāng)發(fā)光二極管導(dǎo)通時,發(fā)光二極管的管壓降為L8?2.2V咨詢,流過二極管的電流I

5-2

=3?IOmA,所以限流電阻—=3OOQo

10

由于單片機(jī)P1口的8個引腳可以同時輸出不同的電平,所以可以控制不同的發(fā)光二極管

D1?D8同時亮滅。

編程調(diào)試

1

一、經(jīng)過分析,程序?qū)?yīng)的流程圖和參考程序

(初始化?,>#include<reg51.h>〃包含庫函數(shù)文件

sbitLEDO=PIA();〃指定位地址

voidmain()〃主程序

LEDC'=0;

while(l);〃原地循環(huán)

原地循環(huán)

二、編程調(diào)試

1、使用KeiluVersion3軟件編寫程序。

(1)運(yùn)行KeiluVersion3,在c:\mydocumenl新建項目sludy.uv2

選擇Atmel公司的89S51芯片,點擊“否”取消加入庫文件Starlup.a51,

(2)新建C源程序文件proglT.c,并保存到c:\mydocument下面,將該C源文件加

入項目。

(3)編輯文件,輸入程序,并保存。

(4)通過單擊.四四,卷(一“Output”選項,選中“CreateHEXFile”選項,

使程序編譯后產(chǎn)生HEX代碼

(5)單擊學(xué)茴小4編譯全部文件,生成*.hex文件,study,hexo

(6)我們還可以通過單擊畫進(jìn)入軟件調(diào)試狀態(tài),使用復(fù)位、全速運(yùn)行、停止、單

步運(yùn)行等工具進(jìn)行軟件調(diào)試,如圖髓|其?料中:*}|。

2、使用下載軟件將程序編譯生成的HEX文件下載到51單片機(jī)

3、觀察程序運(yùn)行的效果,第一個發(fā)光二極管亮了嗎?

2

項目2炫彩流水燈

2.1發(fā)光LED燈

任務(wù)描述

使用單片機(jī)驅(qū)動發(fā)光二極管發(fā)光。

要求:

1、按照如圖所示硬件電路,在單片機(jī)最小系統(tǒng)基礎(chǔ)上焊接制作發(fā)光二極管電路。

2、按要求輸入程序并編譯生成目標(biāo)文件,下載到單片機(jī)使P1.0所接發(fā)光二極管亮。

目標(biāo):

1、學(xué)會使用KeilC5I編寫第一個C語言源程序,并編譯生成目標(biāo)文件。

2、學(xué)會使用AVRfighter下載軟件將目標(biāo)文件下載到單片機(jī)中。

3、學(xué)會使用程序控制單片機(jī)引腳的高、低電平。

4、通過觀察程序執(zhí)行的結(jié)果,理解控制單片機(jī)引腳輸出高、低電平對外圍電路所起

到的作用。

電路制作

一、單片機(jī)驅(qū)動發(fā)光二極管發(fā)光硬件電路原理圖

圖1.2

二、元器件清單如下,請補(bǔ)充各元件功能

元器件

序號名稱型號及參數(shù)功能

代號

1IC1單片機(jī)AT89S51

2XTAL晶振11.0592M

3C1I,C12瓷片電容33pF

4CIO電解電容10uF

5RI9電阻10k

6R20電阻200

7D1?D8發(fā)光二極管①3

3

8RP1排阻A471J

三、工具與儀表:

電烙鐵、斜口鉗、指針萬用表、數(shù)字萬用表等。

四、電路制作

理解原理圖,識別各元件,熟悉封裝,并根據(jù)圖紙裝配元件,完成電路的焊接。

相關(guān)資訊

二、相關(guān)知識介紹

1、庫函數(shù)文件reg5Lh可以幫助我們使用C51芯片內(nèi)部資源。

2、我們可以通過sbit定義位變量,表示單片機(jī)的一個位地址或者一個二進(jìn)制的位變

量,其值只能是0或者1,變量的標(biāo)識符命名時可以使用字母、數(shù)字和下劃線,對大小寫

的書寫嚴(yán)格區(qū)分,不能與關(guān)鍵詞同名,例如不能使用sbilPlAgPl.O。

3、C程序由函數(shù)構(gòu)成,其中main()為程序的主函數(shù),是每個程序執(zhí)行的起始點。

4、C語言程序的書寫格式:一行可以寫幾個語句,一個語句也可以寫在多行上;每

條語句的最后必須有一個分號表示語句的結(jié)束。

5、使用注釋可以提高程序可讀性,是編程人員的良好習(xí)慣。例如使用/**/進(jìn)行多行注

釋,或者使用〃對當(dāng)前行注釋。

6、在程序的書寫中,我們多用TAB鍵將每一部分的語句對齊,使編寫的程序呈現(xiàn)鋸

齒形,這樣可以幫助我們分清不同的程序體,便于調(diào)試.

7、while(l);為一個死循環(huán),可以理解為程序?qū)⒃诖颂庍M(jìn)入空閑和等待狀態(tài)。

編程調(diào)試

一、經(jīng)過分析,程序?qū)?yīng)的流程圖和參考程序

#inchide<reg51.h>〃包含庫函數(shù)文件

SbitLEDO=P1N);〃指定位地址

voidmain()〃主程序

(

LED0=0;

while;1);〃原地循環(huán)

二、編程調(diào)試

1、使用KeiluVersion3軟件編寫程序。

2、下載程序到單片機(jī)

3、觀察程序運(yùn)行的效果

4、如果第一次不成功,試通過調(diào)試解決問題。

4

拓展訓(xùn)練

1、編寫程序使單片機(jī)Pl.2所接發(fā)光二極管D3亮。

提示:要使P1.2所接發(fā)光二極管亮,則P1.2輸出—電平?其他引腳輸出—電平?

編寫程序:

完成情況(打V表示):()

2、編寫程序使單片機(jī)PI所接所有發(fā)光二極管都亮,

提示:要使P1所接發(fā)光二極管亮,則P1全都輸出—電平,如果要一次性賦值,用

C語言程序如何實現(xiàn):?

完成情況:()

3、編寫程序使單片機(jī)P1所接發(fā)光二極管DI,D3,D5,D7一起亮。

提示:要使P1所接發(fā)光二極管D1D3D5D7同時亮,則輸出低電平,

P1的狀態(tài)用二進(jìn)制表示為:,用C語言程序如何實現(xiàn):?

完成情況:()

5

2.2閃爍LED燈

任務(wù)描述

~~使用單片機(jī)驅(qū)動發(fā)光二極管閃爍。

要求:

1、按要求輸入程序尹編譯生成目標(biāo)文件,下載到單片機(jī)使PI.0所接發(fā)光二極管DI

閃爍發(fā)光,每一秒閃爍一次。

2、完成拓展訓(xùn)練任務(wù),使P1口指定發(fā)光二極管閃爍發(fā)光,并通過修改程序,提高或

者降低發(fā)光二極管閃爍速度。

目標(biāo):

1、熟練使用KeilC5I編寫C語言源程序,并編譯生成目標(biāo)文件,學(xué)會使用KeilC51

調(diào)試程序。

2、熟練掌握AVRfighter下載軟件的使用及使用其自動更新功能提高效率。

3、學(xué)會編寫程序?qū)崿F(xiàn)延時和進(jìn)行延時長短控制。

電路制作

一、單片機(jī)驅(qū)動發(fā)光二極管閃爍硬件電路原理圖(同1.1)

二、元器件清單

(略,同1.2)

三、工具與儀表:

電烙鐵、斜口鉗、指針萬用表、數(shù)字萬用表、示波器等。

四、電路制作

(略)

相關(guān)資訊

一、任務(wù)分析:

單片機(jī)的指令的執(zhí)行的時間是很短,數(shù)量一般都是us級。當(dāng)我們要求發(fā)光二極管每

一秒閃爍1次,也就是發(fā)光二極管亮0.5s,滅0.5s,不斷循環(huán)。

實際操作中我們一般采取軟件延時的辦法。通過程序使發(fā)光二極管亮,然后延時0.5s;再

是發(fā)光二極管滅,再延時0.5s,然后不斷循環(huán)這個過程。

二、相關(guān)知識介紹

1、使用字符P1可以直接調(diào)用單片機(jī)特殊功能寄存器(SFR)的PI端口物理地址,

從而操作P1端口,對其賦值,就可以控制其每一個引腳輸出的電平高低。

2、KeilC51程序是由函數(shù)構(gòu)成,任何函數(shù)必須先定義,再使用。

3、我們可以使用unsignedint*定義一個無符號整型變量,表示一個I6bi【的二進(jìn)制

數(shù),其數(shù)值范圍為。?65535,其命名遵循標(biāo)識符命名原則。

同理,使用unsignedchar定義一個無符號字符型變量,表示一個8bit的二進(jìn)制數(shù),

其數(shù)值范圍為0~255。

變量如果定義在函數(shù)的外面,成為全局變量;變量如果定義在函數(shù)體內(nèi),則只能在函

數(shù)內(nèi)部使用。

4、while(表達(dá)式){循環(huán)體},表示當(dāng)表達(dá)式的值為真(非0)時,就執(zhí)行循環(huán)體,表達(dá)

式為真就一直執(zhí)行循環(huán)體,其特點是先判斷,再確定是否執(zhí)行。

6

while(l){),表示程序?qū)⒀h(huán)執(zhí)行{}中的語句體。

類似的語句體還有do{循環(huán)體}while(表達(dá)式),其特點是先執(zhí)行循環(huán)體,再判斷表達(dá)式

是否為真,以確定是否繼續(xù)執(zhí)行循環(huán)體。

5、for(表達(dá)式A;表達(dá)式B;表達(dá)式C)(循環(huán)體),該語句的執(zhí)行過程為:

(1)求解表達(dá)式A;(2)判斷表達(dá)式B,其值為假時退出該語句;其值為真時執(zhí)行

循環(huán)體,然后繼續(xù)執(zhí)行第(3)步。(3)求解表達(dá)式C;(4)返回第(2)步

6、延時程序可以用一個子函數(shù)來表示,可以是一個固定延時時間的函數(shù),例如delay

();或者是一個通過參數(shù)控制延時時間的函數(shù),例如dclay(unsigncdintm)

通常單片機(jī)使用的石英品振振蕩頻率為12MHz,其對應(yīng)的機(jī)器周期為lus,通過分析

和驗證,unsignedintn=0;for(n=0;n〈124;n++);語句將會執(zhí)行約1ms。

{語句};這條語句將把{}內(nèi)的語句循環(huán)執(zhí)行m次。

編程調(diào)試

一、經(jīng)過分析,程序?qū)?yīng)的流程圖和參考程序

#include<reg5l.h>

sbitLED0=PIA0;

voiddclayfunsigncdintt)

(

unsignedinti.j;

for(i=0;i<t;i++)〃延時l個1ms

for(j=0;j<l12J++);〃延時約1ms

voidmain()

(

while⑴

(

LED0=0;//DI亮

delay(500);〃延時0.5s

LEDO=1;//DI滅

delay(5OO);〃延時0.5s

二、編程調(diào)試

1、使用KeiluVersion3軟件編寫程序。

2、使用AVRfighter軟件下載程序到單片機(jī)AT89S51

3、觀察程序運(yùn)行的效果,第一個發(fā)光二極管閃爍了嗎?()

如果發(fā)光二極管正常閃爍,測試:

發(fā)光二極管陽極和陰極之間的電壓Ud=

流過發(fā)光二極管的電流Id=

這個結(jié)果和1.2測得的結(jié)果一致嗎,為什么?

7

4、如果第一次不成功,試通過調(diào)試解決問題。

調(diào)試成功后,分析故障的原因是:

拓展訓(xùn)練

1、編寫程序使P1口所接所有發(fā)光二極管每1秒閃爍2次。

提示:要實現(xiàn)要求,則P1所接發(fā)光二極管每秒就要閃爍一次,即亮滅

一次。則P1輸出低電平秒,再輸出高電平秒,如此循環(huán)。這

時候,P1輸出的是一個波形,其頻率是Hzo

完成情況:()

2、編寫程序使P1口所接所有發(fā)光二極管1357和2468,交替閃爍,每1秒閃爍4次。

提示:要實現(xiàn)要求,則發(fā)光二極管DID3D5D7同時亮,亮秒,然后發(fā)

光二極管D2D4D6D8同時亮,亮秒。

編寫程序:

完成情況:()

3、編寫程序使P1口所接所有發(fā)光二極管D1每1秒閃爍1次,同時D2每1秒閃爍2

次。

提示:根據(jù)要求畫出D1和D2對應(yīng)的PI口引腳輸出的波形圖,再轉(zhuǎn)化為程序。

完成情況:()

4、使用本任務(wù)案例程序,PL0輸出1Hz的方波,其周期應(yīng)該是秒,我們用示

波器觀測實際波形,結(jié)果得到的實際周期是秒,通過調(diào)節(jié)程序中延時1ms語句中

的n值,即語句(for(n=0;n<124;n++);),使P1.0輸出相對更為精確的的z方波,這時候n

的溢出值由124變?yōu)?這是為什么?

完成情況:()

5、編寫程序使P1口所接所有發(fā)光二極管一個一個輪流亮,每I秒亮一遍。

提示:要實現(xiàn)功能,每一個發(fā)光二極管要亮秒,如此循環(huán)。

完成情況:()

8

2.3模擬廣告流水燈

任務(wù)描述

使用單片機(jī)驅(qū)動8個發(fā)光二極管模擬廣告流水燈效果。

要求:

1、編寫程序使P1口的發(fā)光二極管實現(xiàn)單燈流水顯示,每一個燈亮200ms。

2、完成拓展訓(xùn)練任務(wù),使P1口發(fā)光二極管實現(xiàn)其池廣告燈效果。

目標(biāo):

1、使用循環(huán)移位函數(shù)實現(xiàn)流水燈效果。

2、使用數(shù)組和查表方式實現(xiàn)各種廣告彩燈效果。

電路制作

一、單片機(jī)驅(qū)動8個發(fā)光二極管模擬廣告流水燈硬件電路原理圖(同1.1)

二、元器件清單

(略,同1.2)

三、工具與儀表:

電烙鐵、斜口鉗、指針萬用表、數(shù)字萬用表、示波器等。

四、電路制作

(略)

相關(guān)資訊

一、任務(wù)分析:

要使P1口的發(fā)光二極管實現(xiàn)單燈流水顯示,可以采用P1口送Oxfc先亮第一個燈,延

時200ms后,將P1口值循環(huán)左移1位再送P1口,使第2個燈亮,再延時200ms,依次類

推,循環(huán)下去。

或者把每一種亮燈模式對應(yīng)的PI口值存到一個表格中,每次都調(diào)用一個值送P1口并延時,

一直到表格結(jié)束再重新開始循環(huán),這種方法適用性更廣,能實現(xiàn)各種不同的彩燈效果,在實

際工程中應(yīng)用較多。

二、相關(guān)知識介紹

1、KeilC51提供了豐富的庫函數(shù),供我們調(diào)用和使用。

專用寄存器reg51.h,包括了所有8()51的SFR及其位定義,我們一般都必須在文件開

頭使用#inckidevreg5l.h>包含該頭文件。

math.h,數(shù)學(xué)運(yùn)算頭文件。

stdio.h,輸入輸出流函數(shù)頭文件。

2、循環(huán)移位函數(shù)

在頭文件intrins.h中有循環(huán)移位函數(shù),_crol_(a,b)表示將一個無符號字符型變量a循環(huán)

左移b次,_cror_(a,b)表示將一個無符號字符型變量a循環(huán)右移b次,另外還有無符號的整

型變量循環(huán)移位函數(shù)。

3、數(shù)組一種具有固定數(shù)FI和相同類型成分的的有序集合,常用來表示一些固定表格、

數(shù)據(jù)等。unsignedchartable[8J={0xfe,0xfd,()xfb,0xf7,()xef,0xdf,0xbf,0x7f},表示一個無

符號整數(shù)型數(shù)組,一共有8個元素,分別用table[0],table⑴,……table⑺來表示,我們可

以使用tabled來使用這個數(shù)組里的數(shù),其中i=0?7。

9

4、KeilC自帶有一個位左移和位右移運(yùn)算符(<<和>>),其功能是將一個數(shù)的二進(jìn)制

代碼全部同時左移或者右移若干位,移出的數(shù)據(jù)丟失,空白的地方補(bǔ)“0”。

位左移運(yùn)算格式為a?n,表示把a(bǔ)的值左移n位,高位丟失n位,低位自動補(bǔ)上n個0:例

如Pl=(Pl?2);表示把PI的值左移2位,右邊補(bǔ)上2個“0”,然后再賦給P1,如果P1

原來的值為0x5c=01011100B,左移2位后P1=01110000B=0x70。

編程調(diào)試

一、經(jīng)過分析,程序?qū)?yīng)的流程圖和參考程序

〃使用循環(huán)移位函數(shù)實現(xiàn)單燈流水效果

(開始)

P1左移1位顯示

延時0.2s

〃使用數(shù)組和查表方式實現(xiàn)各種廣告彩燈效果〃使用循環(huán)移位函數(shù)實現(xiàn)單燈流水效果

#inckide<reg51.h>#inckide<reg51.h>

unsignedcharcode#include〈intrins.h>〃包含_crol_函數(shù)所在

table[l={0xfe,0xfd.0xfb,0xf7,0xef.0xdf,0xbf,0x7f};的頭文件

voiddclay(unsigncdintt)voiddclay(unsigncdintt)

{{

unsignedinti.j;unsignedinti,j;

for(i=0;i<t;i++)〃延時1個【msfor(i=0;i<t;i++)〃延時t個

for(j=0:j<112;j++);//延時約1ms1ms

)for(j=0;j<112;j++);〃延時約1ms

voidmain()I

{voidmain。

unsignedchari;〃定義無符號整型變量{

while(l)unsignedchari=0xfe;〃定義變量

(while(l)

for(i=0;i<8;i++)

i=crol(i,l);//i循環(huán)左移

10

Pl=table[i];Pl=i;//Pl顯示

delay(200);delay(200);

)}

})

I

二、編程調(diào)試

1、使用KeiluVersion3軟件編寫程序。

2、使用AVRfighter軟件下載程序到單片機(jī)AT89S5I

3、觀察程序運(yùn)行的效果.

使用循環(huán)移位函數(shù)實現(xiàn)單燈流水效果?()

使用數(shù)組和查表方式實現(xiàn)各種廣告彩燈效果?()

4、如果第一次不成功,試通過調(diào)試解決問題。

調(diào)試成功后,分析故障的原因是:

拓展訓(xùn)練

1、編寫程序使P1口所接所有發(fā)光二極管實現(xiàn)兩個相鄰的發(fā)光二極管雙燈流水,每次

亮0.5so

分析:

編寫程序:

完成情況:()

2、用KeilC自帶々位左移和位右移運(yùn)算符(<<和>>)能否實現(xiàn)單燈流水效果。

分析:

完成情況:()

3、編寫程序使8個發(fā)光管演示出開幕式、閉幕式效果。

分析:

完成情況:()

4、編寫程序使8個發(fā)光二極管演示單燈流水效果,同時其速度是變化的,逐漸加快,

或者逐漸漸慢。

提示:如果每次調(diào)用延時程序的參數(shù)是變化的,其延時時間不同,就會出現(xiàn)速度變化

的效果。

完成情況:()

II

2.4炫彩流水燈

任務(wù)描述

制作心形流水燈硬件實物,并編寫程序驅(qū)動流水燈呈現(xiàn)絢麗漂亮的效果。

電路制作

一、電路原理圖

RI8

RI9

-----------

R20

-4----------3-----------1gB

R2I

-----------

R22

二、,

■<----------1-----------

H---------->―

K24

Y)-----------

R25

4)——

產(chǎn)

R27

-4----------?-----------

R28

:11^

----------?-----------

R29

:!

-----------

>i*

KM

.;11,

R52

二、元器件清單(略)

三、工具與儀表(略

四、電路制作

相關(guān)資訊

單片機(jī)有4個8bit的10口,每個10驅(qū)動1個LED燈,可以驅(qū)動32個LED燈,將LED

布局為1個心形,并通過控制4個IO口輸出高低電平來實現(xiàn)不同的效果。

編程調(diào)試

一、經(jīng)過分析,程序?qū)?yīng)的流程圖和參考程序

參考流程圖程序自編

12

C開始)

閃爍流水燈1

1

奇偶流水燈2

1

左移流水燈3

5干閉幕j流水燈,1

...

:------------

二、編程調(diào)試

拓展訓(xùn)練

1、在有流水燈的情況下,加入聲控。

2、在有流水燈的情況下,或者音樂播放。

13

項目3球賽記分器

3.1音頻報警器

任務(wù)描述

~~使用單片機(jī)驅(qū)動蜂鳴器或者音頻放大電路發(fā)出報警聲。

要求:

1、單片機(jī)P1.1驅(qū)動芍源蜂鳴器發(fā)出報警聲。

2、單片機(jī)P1.1輸出IKHz方波作為報警信號驅(qū)動無源蜂鳴器或者音頻放大電路發(fā)出

報警聲,并用示波器精確調(diào)整頻率。

目標(biāo):

1、學(xué)會使用單片機(jī)控制有源蜂鳴器發(fā)聲。

2、學(xué)會使用單片機(jī)的延時程序輸出指定頻率的音頻信號。

3、學(xué)會裝配LM386功率放大電路及調(diào)試。

電路制作

一、單片機(jī)驅(qū)動蜂鳴器發(fā)聲硬件電路原理圖

二、元器件清單

元器件

序號名稱型號及參數(shù)功能

代號

1SPEAKER有源/無源蜂鳴器

2Q9三極管PNP8550

3R30電阻5.1k

4J4跳線sip3

(注:單片機(jī)最小系統(tǒng)元件略)

三、工具與儀表:

電烙鐵、斜口鉗、指針萬用表、數(shù)字萬用表、示波器等。

四、電路制作

理解原理圖,識別各元件,熟悉封裝,并根據(jù)圖紙裝配元件,完成電路的焊接。

相關(guān)資訊

一、任務(wù)分析:

如果是驅(qū)動有源蜂鳴器發(fā)聲,單片機(jī)只要輸出低電平,Q9就會飽和導(dǎo)通,蜂鳴器流

14

過直流電流就會發(fā)出固定頻率的聲音。

如果是驅(qū)動無源蜂鳴器,則單片機(jī)必須輸出固定頻率的方波信號。要得到1kHz的方

波,則其周期為1ms,單片機(jī)控制引腳輸出高電平和低電平各0.5ms。

二、相關(guān)知識介紹

1、蜂鳴器是一種一體化結(jié)構(gòu)的電子發(fā)聲器件,采用直流電壓供電,分為有源和無源

兩種。有源蜂鳴器直接通以額定直流電壓就可連續(xù)發(fā)聲,內(nèi)部發(fā)聲頻率固定;而無源蜂鳴

器則和電磁揚(yáng)聲器一樣,需要提供一個固定頻率的方波功率驅(qū)動它發(fā)出固定頻率的聲音。

編程調(diào)試

一、經(jīng)過分析,程序?qū)?yīng)的流程圖和參考程序

P1.1輸出IKHz方波驅(qū)動無源蜂鳴器發(fā)

〃P1.1輸出IKHz方波作為報警信號驅(qū)動無源蜂

鳴器發(fā)出報警聲音

#include<reg51.h>

sbitbeep=P1A1;

voidmain()

{unsignedcharn;

whilc(l)

{for(n=0;n〈150;n++);〃延時0.5ms

beep二?beep;

二、編程調(diào)試

1、編程驅(qū)動有源蜂嗚器發(fā)聲1S。

2、編程使P1.1輸出IKHz方波作為報警信號驅(qū)動無源蜂鳴器發(fā)出報警聲音。使用示

波器進(jìn)行精確調(diào)整。

拓展訓(xùn)練

1、單片機(jī)引腳輸出指定頻率音頻信號,通過功放電路驅(qū)動揚(yáng)聲器發(fā)聲,編寫程序用

//IKHz方波0.1S報警子程序

sbitheep=PIA1;

voidheeplOOmsiO

溫馨提示

  • 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

提交評論