7.1 任務(wù)7.1 火焰強度的測量_第1頁
7.1 任務(wù)7.1 火焰強度的測量_第2頁
7.1 任務(wù)7.1 火焰強度的測量_第3頁
7.1 任務(wù)7.1 火焰強度的測量_第4頁
7.1 任務(wù)7.1 火焰強度的測量_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機應(yīng)用技術(shù)項目七簡易火焰報警器的設(shè)計與實現(xiàn)任務(wù)7.1火焰強度的測量任務(wù)要求

使用CC2530單片機的ADC模塊,周期性采集火焰?zhèn)鞲衅鲾?shù)據(jù),并將其轉(zhuǎn)換成數(shù)字量形式,通過串口將數(shù)據(jù)發(fā)送給PC。在PC端,通過串口調(diào)試助手來查看火焰?zhèn)鞲衅鲾?shù)據(jù)。1基礎(chǔ)知識2相關(guān)寄存器3任務(wù)分析4電路分析5任務(wù)實現(xiàn)一、基礎(chǔ)知識

信號信號是信息的載體,是運載信息的工具,信號可以是光信號、聲音信號、電信號等模擬信號是指用連續(xù)變化的物理量所表示的信息,如溫度、濕度、壓力、長度、電流、電壓等,通常把模擬信號稱為連續(xù)信號,它在一定的時間范圍內(nèi)可以有無限多個不同的取值數(shù)字信號是指自變量是離散的、因變量也是離散的信號,這種信號的自變量用整數(shù)表示,因變量用有限數(shù)字中的一個數(shù)字來表示,在計算機中,數(shù)字信號的數(shù)值常用有限位的二進制數(shù)表示。一、基礎(chǔ)知識

模擬信號數(shù)字信號時間連續(xù)性時間上是連續(xù)的時間上不是連續(xù)的幅度變化幅度的取值是連續(xù)的(幅值可由無限個數(shù)值表示)幅度的取值是離散的,幅值表示被限制在有限個數(shù)值之內(nèi)信號傳輸方式用模擬量的電壓或電流來表示通過0和1的數(shù)字串所構(gòu)成的數(shù)字流來表示一、基礎(chǔ)知識

分辨率分辨率是ADC對輸入模擬信號的最小變化的度量,是ADC的一個重要的性能指標。理論上,一個n位輸出的ADC能區(qū)分2n個不同等級的輸入模擬電壓,能區(qū)分輸入電壓的最小值為滿量程輸入的1/(2n-1)。在最大輸入電壓一定時,輸出位數(shù)越多,分辨率越高。一、基礎(chǔ)知識

火焰?zhèn)鞲衅饔糜跈z測是否有火源的傳感器。火焰?zhèn)鞲衅骼眉t外線對火焰非常敏感的特點,使用特制的紅外線接收管來檢測火焰,然后把火焰的亮度轉(zhuǎn)化為高低變化的電平信號。外界紅外光越強,數(shù)值越小;紅外光越弱,數(shù)值越大。一、基礎(chǔ)知識

ADC,即信號的模擬形式與數(shù)字形式的轉(zhuǎn)換。最高14位,12位有效數(shù)據(jù)8個獨立輸入通道轉(zhuǎn)換結(jié)束產(chǎn)生中斷請求轉(zhuǎn)換結(jié)果通過DMA寫入存儲器,具有多種運行方式一、基礎(chǔ)知識

對于CC2530的ADC模塊,端口P0引腳可以配置為ADC輸入端,依次為AIN0~AIN7。位置P0端口P0_7P0_6P0_5P0_4P0_3P0_2P0_1P0_0ADCAIN7AIN6AIN5AIN4AIN3AIN2AIN1AIN0一、基礎(chǔ)知識

單端電壓輸入,依次為AIN0~AIN7,以通道號碼0~7表示;通道號碼8~11表示差分輸入,分別是AIN0-AIN1、

AIN2-AIN3、AIN4-AIN5、AIN6-AIN7??蛇M行序列轉(zhuǎn)換,或單通道轉(zhuǎn)換片內(nèi)溫度傳感器的輸出和AVDD5/3的電壓作為一個ADC輸入。通道號碼12~15分別用于GND(12)、預(yù)留通道(13)、片內(nèi)溫度傳感器(14)和AVDD5/3(15)。二、相關(guān)寄存器

APCFG寄存器位名稱復(fù)位操作描述7APCFG[7]0R/W選擇P0_7引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能6APCFG[6]0R/W選擇P0_6引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能5APCFG[5]0R/W選擇P0_5引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能4APCFG[4]0R/W選擇P0_4引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能3APCFG[3]0R/W選擇P0_3引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能2APCFG[2]0R/W選擇P0_2引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能1APCFG[1]0R/W選擇P0_1引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能0APCFG[0]0R/W選擇P0_0引腳作為模擬外設(shè)I/O引腳。0:模擬外設(shè)I/O禁用。1:模擬外設(shè)I/O使能二、相關(guān)寄存器

ADCL,ADC數(shù)據(jù)低位寄存器ADCH,ADC數(shù)據(jù)高位寄存器位名稱復(fù)位操作描述7:2ADC[5:0]000000RADC轉(zhuǎn)換結(jié)果的低位部分1:0-00R0沒有使用。讀出來一直是0位名稱復(fù)位操作描述7:0ADC[13:6]0x00RADC轉(zhuǎn)換結(jié)果的高位部分這兩個寄存器用來保存ADC結(jié)果,ADCL使用了高6位,ADCH使用了8位,共14位。ADCH的最高位是符號位,ADCL最低兩位沒用,一直是0,最大數(shù)值是111111111111100,轉(zhuǎn)換成十進制是32764。ADCHADCL符號111111111111100二、相關(guān)寄存器

ADCCON3寄存器,ADC控制3寄存器位名稱復(fù)位操作描述7:6SREF[1:0]00R/W選擇用于單通道轉(zhuǎn)換的參考電壓。00:內(nèi)部參考電壓。01:AIN7引腳上的外部參考電壓。10:AVDD5引腳,參考電壓3.3V。11:AIN6-AIN7差分輸入外部參考電壓5:4SDIV[1:0]01R/W為單通道ADC轉(zhuǎn)換設(shè)置抽取率。抽取率也決定完成轉(zhuǎn)換需要的時間和分辨率00:64抽取率(7位有效數(shù)字)。

01:128抽取率(9位有效數(shù)字)。10:256抽取率(10位有效數(shù)字)。11:512抽取率(12位有效數(shù)字)3:0SCH[3:0]0000R/W單個通道選擇。選擇寫ADCCON3觸發(fā)的單個轉(zhuǎn)換所在的通道號碼。當單個轉(zhuǎn)換完成,該位自動清除。0000:AIN0。

0001:AIN1。

0010:AIN2。

0011:AIN3。0100:AIN4。0101:AIN5。

0110:AIN6。

0111:AIN7。

1000:AIN0-AIN1。1001:AIN2-AIN3。

1010:AIN4-AIN5。

1011:AIN6-AIN7。1100:GND。

1110:片內(nèi)溫度傳感器。

1111:AVDD5/3二、相關(guān)寄存器

ADCCON3寄存器,ADC控制3寄存器4、5兩位用來設(shè)置抽取率。例如,這兩位值為11,則抽取率為512,即12位有效數(shù)字。12位有效數(shù)字的分布是,ADCH寄存器7位,ADCL寄存器的高5位,除了ADCL最低2位外,其他位仍然有值,只不過值不準確,不是有效數(shù)字。ADCHADCL符號有效有效有效有效有效有效有效有效有效有效有效有效無效00三、任務(wù)分析

通過CC2530單片機的ADC模塊轉(zhuǎn)換采集火焰強度數(shù)值,并轉(zhuǎn)換成電壓值,然后通過串口發(fā)送給PC。具體任務(wù)要求如下。1.上電,D3熄滅。2.定時2秒鐘后,D3點亮,采集火焰強度,并轉(zhuǎn)換成電壓值。3.通過USART0向PC發(fā)送表示火焰強度的電壓值,然后熄滅D3。4.返回步驟2,重復(fù)執(zhí)行。四、電路圖分析

CC2530開發(fā)板插進傳感器的接口電路如上圖U5A所示。單片機采用ADC0接口來獲取傳感器數(shù)據(jù)。五、任務(wù)實現(xiàn)

ADC初始化void

adc_init()

{

APCFG

|=

1;

P0SEL

|=

0x01;

P0DIR

&=~

0x01;

ADCIE

=

1;

}使用ADC0,即P0_0引腳要設(shè)置外設(shè)I/O。使能ADC中斷五、任務(wù)實現(xiàn)

ADCCON3寄存器設(shè)置ADCCON3

=

0x80;

采用基準電壓AVDD5(3.3V),7位有效數(shù)字,通道0五、任務(wù)實現(xiàn)

ADC中斷服務(wù)函數(shù)#pragma

vector

=

ADC_VECTOR

__interrupt

void

adc_ISR(void)

{

ADCIF

=

0;

//清除ADC標志位

uint32

value;

value

=

ADCH;

value

=

value<<8;

//高位數(shù)據(jù)左移8位

value

|=

ADCL;

value

=

(value*330);

//得到分辨率為0.01V的數(shù)值

value

=

value>>15;

//除以32768

s[0]=value/100+'0';

//取百位,并轉(zhuǎn)換為字符格式

s[1]='.';

s[2]=value/10%10+'0';

//取十位,并轉(zhuǎn)換為字符格式

s[3]=value%10+'0';

//取個位,并轉(zhuǎn)換為字符格式

s[4]='V';

s[5]='\n';

s[6]='\0';

USART0_send_data("火焰?zhèn)鞲衅麟妷褐?");

USART0_send_data(s);

D3

=

0;

}五、任務(wù)實現(xiàn)

ADC中斷服務(wù)函數(shù)

uint32

value;

value

=

ADCH;

value

=

value<<8;

//高位數(shù)據(jù)左移8位

value

|=

ADCL;

value

=

(value*330);

//得到分辨率為0.01V的數(shù)值

value

=

value>>15;

//除以32768

ADCH寄存器的最高位是符號位,剩余的7位是數(shù)據(jù)位,ADCL寄存器的最低兩位是0。所以模數(shù)轉(zhuǎn)換結(jié)果的最大值是32764。采用基準電壓3.3V,測得電壓值value與ADCH、ADCL寄存器值的計算公式如下。 value=(ADCH×256+ADCL)×330/32764雖然基準電壓是3.3V,但上式中使用330,故計算出的value值的單位為0.01V。觀察上式,value值應(yīng)除以32764。在單片機編程中,常常采用右移的方式進行除法運算,value右移15位,即將value的值除以32768,準確地講,應(yīng)該除以32764。但是這里通過右移形式實現(xiàn)數(shù)據(jù)除法運算,不能實現(xiàn)除以32764,而32764接近32768,故這里采用32768。最終計算得到的火焰強

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論