基于KL25溫濕度傳感器設(shè)計報告_第1頁
基于KL25溫濕度傳感器設(shè)計報告_第2頁
基于KL25溫濕度傳感器設(shè)計報告_第3頁
基于KL25溫濕度傳感器設(shè)計報告_第4頁
基于KL25溫濕度傳感器設(shè)計報告_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、北京科技大學(xué)天津?qū)W院信息工程系嵌入式系統(tǒng)及應(yīng)用報告嵌入式系統(tǒng)及應(yīng)用報告題目:DHT11溫濕度傳感器設(shè)計組員:齊亨班級:物聯(lián)1301學(xué)號:135161102016年07月15日摘要在工業(yè)生產(chǎn)中,電流、電壓、溫度、濕度和開關(guān)量都是常用的主要被控參數(shù)。其中,溫濕度控制也越來越重要。在工業(yè)生產(chǎn)的很多領(lǐng)域中,人們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進行檢測和控制。采用KL25芯片對溫濕度進行控制不僅具有控制方便、簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標,從而能夠大大的提高產(chǎn)品的質(zhì)量和數(shù)量。因此,KL25芯片對溫濕度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的控制問題。溫濕度控制

2、系統(tǒng)在國內(nèi)各行各業(yè)的應(yīng)用雖然己經(jīng)十分廣泛,但從國內(nèi)生產(chǎn)的溫度控制器來講,總體發(fā)展水平仍然不高,同日本、美國、德國等先進國家相比,仍然有著較大的差距。成熟的溫濕控產(chǎn)品主要以“點位”控制及常規(guī)的PID控制器為主,它們只能適應(yīng)一般溫度系統(tǒng)控制,而用于較高控制場合的智能化、自適應(yīng)控制儀表,國內(nèi)技術(shù)還不十分成熟,形成商品化并廣泛應(yīng)用的控制儀表較少.隨著我國經(jīng)濟的發(fā)展及加入WTO,我國政府及企業(yè)對此都非常重視,對相關(guān)企業(yè)資源進行了重組,相繼建立了一些國家,企業(yè)的研發(fā)中心,開展創(chuàng)新性研究,使我國儀表工業(yè)得到了迅速的發(fā)展。目前,溫濕度控制器產(chǎn)品從模擬、集成溫度控制器發(fā)展到智能數(shù)碼溫度控制器。智能溫控器(數(shù)字溫

3、控器)是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)的結(jié)合,特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種控制器,并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)控制功能的,其智能化程度也取決于軟件的開發(fā)水平,現(xiàn)階段正朝著高精度高質(zhì)量的方向發(fā)展,相信以我國的實力,溫濕控技術(shù)在不久的將來一定會為于世界前列!DHT11溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長期穩(wěn)定性。產(chǎn)品為4針單排引腳封裝,連接方便。關(guān)鍵詞:KL25芯片,DHT11溫濕度傳感器,溫濕控制技術(shù)2、 硬件設(shè)計:2.1 DHT11特點及電氣特性DHT11實

4、物圖DHT11產(chǎn)品概述DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式存在OTP內(nèi)存中,傳感器內(nèi)部在檢測型號的處理過程中要調(diào)用這些校準系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,使其成為給類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選擇。產(chǎn)品為

5、4針單排引腳封裝,連接方便。DHT11與單片機的接線圖引腳說明1pin:VDD 用于供電35.5VDC2pin: DATA 串行數(shù)據(jù),單總線3pin: NC 空腳,請懸空4pin: GND 接地,電源負極DHT11技術(shù)參數(shù)供電電壓: 3.35.5V DC輸 出: 單總線數(shù)字信號測量范圍: 濕度20-90%RH, 溫度050測量精度: 濕度+-5%RH, 溫度+-2分 辨 率: 濕度1%RH, 溫度1互 換 性: 可完全互換 ,長期穩(wěn)定性: <±1%RH/年電氣特性VDD=5V,T = 25,除非特殊標注參數(shù)條件mintypmax單位供電DC355.5V供電電流測量0.52.5m

6、A平均0.21mA待機100150uA采樣周期秒1次詳細參數(shù)參數(shù)條件MinTypMax單位濕度分辨率111%RH8Bit重復(fù)性±1%RH精度25±4%RH050±5%RH互換性可完全互換量程范圍03090%RH252090%RH502080%RH響應(yīng)時間1/e(63%)25,1m/s 空氣61015S遲滯±1%RH長期穩(wěn)定性典型值±1%RH/yr溫度分辨率111888Bit重復(fù)性±1精度±1±2量程范圍050響應(yīng)時間1/e(63%)630SDHT11主要優(yōu)點能夠進行相對濕度和溫度測量全部校準,數(shù)字輸出卓越的長期穩(wěn)定

7、性無需額外部件超長的信號傳輸距離超低能耗4引腳安裝完全互換DHT11工作原理FRDM-KL25Z開發(fā)板相關(guān)介紹和資料FRDM-KL25Z開發(fā)板是一款超低成本開發(fā)平臺,由基于ARM® Cortex-M0+處理器的Kinetis L 系列 KL1x和KL2xMCU組成。特點包括易于訪問MCU I/O、配備電池管理功能、低功率運行和標準外形規(guī)格(可搭配擴展板使用),內(nèi)置的調(diào)試接口可進行閃存編程和運行控制。FRDM-KL25Z受到眾多飛思卡爾和第三方開發(fā)軟件的支持??蛻艨梢悦赓M使用,訪問所有在線SDK、工具、可重用代碼(無需下載、安裝或許可)以及一個活躍的開發(fā)者網(wǎng)絡(luò)社區(qū)。&#

8、160;特性· MKL25Z128VLK4 MCU 48 MHz、128 KB閃存、16 KB SRAM、USB OTG (FS)、80LQFP· 電容滑動觸摸感應(yīng)板,MMA8451Q加速度傳感器,三色LED· 易于訪問MCU I/O· 成熟的OpenSDA調(diào)試接口· 大容量存儲設(shè)備閃存編程接口(默認) 無需安裝任何工具即可評估演示 app· P&E Multilink接口具有運行控制調(diào)試功能并兼容IDE工具· 開源數(shù)據(jù)記錄應(yīng)用范例向您展示客戶、合作伙伴和愛好者如何共同在OpenSDA電路上進行開發(fā)。· 支

9、持mbed2. 2 設(shè)計方案將KL25Z芯片通過面包板和導(dǎo)線與DHT11鏈接在一起,并且通過顯示屏顯示。2. 2.1 LED顯示模塊本課題的LED顯示模塊是由一個四聯(lián)共陽七段數(shù)碼管組成。七段數(shù)碼管是由若干發(fā)光二極管組合而成的,一般的“8”字形顯示塊由“a、b、c、d、e、f、g、h”8發(fā)光二極管組成。四個七段數(shù)碼管分別與P0口相連,通過對單片機輸入程序達到控制顯示輸出的目的(如圖)。四個七段數(shù)碼管由單片機的P2.0P2.3控制亮滅,P2.0P2.3分別對應(yīng)Q2Q5,當P2.0P2.3其中之一置高電平,對應(yīng)的三級管導(dǎo)通,段碼管亮,置低電平,對應(yīng)的三級管截止,段碼管滅。2.2.2系統(tǒng)框架設(shè)計如下圖

10、所示:溫濕度測量模塊我們采用DHT11傳感器1.下圖為溫濕度測量的原理圖:2.2.3 控制器模塊本課題的控制器模塊式采用KL25芯片作為MCU,如圖。KL25的 P0.0P0.7作為四聯(lián)七段數(shù)碼管總線;P2.4作為連接DS18B20的I/O口;P1.7作為升溫電路的控制端;P2.0P2.3控制四個七段數(shù)碼管的亮滅。2.2. 4電源電路給系統(tǒng)電路輸入一個穩(wěn)定的+5V的電源(如圖)。 3 軟件設(shè)計3.1 DHT11數(shù)據(jù)的部分程序代碼為:#include "ioCC2430.h"  /包含頭文件,相應(yīng)的板子以及傳感器一些信息#include "hal.h&qu

11、ot;#include <math.h>/#include <intrins.h>#include <stdio.h>typedef union    /定義聯(lián)合體,unsigned int i;float f; value;      /定義聯(lián)合體類型名稱為value#define noACK 0#define ACK 1#define STATUS_REG_W 0x06    /0x06 = 0000 0110#define STATUS_REG_R 0x07    

12、;/0x07 = 0000 0111#define MEASURE_TEMP 0x03    /0x03 = 0000 0011#define MEASURE_HUMI 0x05    /0x05 = 0000 0101#define RESET 0x1e           /0x1e = 0001 1110#define SDA P1_6             /定義SDA代表的是P1_6腳#define SCL P1_7#define b

13、egin P2_0unsigned char d1,d2,d3,d4,d5,d6,d7; /定義無符號字符型變量void Wait(unsigned int ms)   /定義wait函數(shù),主要用于軟件循環(huán),延時作用unsigned char g,k;while(ms)for(g = 0;g <= 167; g+)for(k = 0;k <= 48; k+);ms-;void QWait() /1us的延時asm("NOP");  /加入?yún)R編操作語句,空操作,主要用于機器周期執(zhí)行asm("NOP");asm("N

14、OP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");void initUART(void)     /初始化串口IO_PER_LOC_USART0_AT_PORT0_PIN2345();  /具體函數(shù)的定義與用法,你得參考頭文件中的程序代碼了IO_DIR_PORT_

15、PIN(1, 6, IO_OUT);IO_DIR_PORT_PIN(1, 7, IO_OUT);/IO_IMODE_PORT_PIN(1, 6, IO_IMODE_TRI);/IO_IMODE_PORT_PIN(1, 7, IO_IMODE_TRI);IO_DIR_PORT_PIN(2, 0, IO_OUT);IO_FUNC_PORT_PIN(2, 0, IO_FUNC_GIO);/SET_MAIN_CLOCK_SOURCE(RC);SET_MAIN_CLOCK_SOURCE(CRYSTAL);UART_SETUP(0, 115200, HIGH_STOP);  /設(shè)置傳輸數(shù)據(jù)的波特

16、率115200UTX0IF = 1;U0CSR |= 0XC7;     /U0CSR = U0CSR | 0x1010 0111  (進行位或操作)IEN0 |= 0x84;SDA = 1;SCL = 0;int putchar (int c)    /定義輸入字符函數(shù),給的參數(shù)是一個整型的數(shù)if (c = 'n')      /判斷參數(shù)c的值是否和'n'的值相等while (!UTX0IF);    /執(zhí)行的時候UTX0IF的值是0,此處不是很理解?UTX0I

17、F = 0;         /給UTX0IF賦0U0DBUF = 0x0d;      /U0DBUF賦值0x0d = 0000 1011while (!UTX0IF);UTX0IF = 0;return (U0DBUF = c);    /如果c的值不是'n'也就是換行符的時候,將c的值傳遞到U0DBUF寄存器中char s_write_byte(unsigned char value)   /定義寫字節(jié)函數(shù)(8位)unsigned char i,error = 0;for

18、(i = 0x80;i > 0;i /= 2)   /i 賦初始值0x80 = 128, 執(zhí)行判斷是i > 0,執(zhí)行語句是i = i / 2; 即i = 128,64,32,16,8,4,2,1,0.5(0),8位if (i & value)SDA = 1;elseSDA = 0;SCL = 1;      /此時SCL端口處,也就是p1_7引腳處是高電平QWait();      /因為寫入需要時間,所以程序之中加入下面幾條語句QWait();QWait();QWait();QWait();SCL =

19、0;      /使能p1_7眼角處低電平,使的數(shù)據(jù)寫入(具體需要看單片機控制芯片的手冊asm("NOP");asm("NOP");SDA = 1;SCL = 1;asm("NOP");error = SDA;QWait();QWait();QWait();SDA = 1;SCL = 0;return error;char s_read_byte(unsigned char ack)   /讀取數(shù)據(jù),按照字節(jié)位的順序讀?。?位)128 = 1000 0000 ,64 = 0100 0000, 3

20、2 = 0010 0000 ,16 = 0001 0000, 8 = 0000 1000, 4 = 0000 0100 , 2 = 0000 0010, 1 = 0000 0001unsigned char i,val = 0;SDA= 1;for(i = 0x80;i > 0;i /= 2)   /同上SCL = 1;if (SDA)      /判斷SDA處是否有高電平val = (val | i);      /進行或操作elseval = (val | 0x00);SCL = 0;QWait();QWait()

21、;QWait();QWait();QWait();SDA = !ack;SCL = 1;QWait();QWait();QWait();QWait();QWait();SCL = 0;SDA = 1;return val;   /返回讀取到的數(shù)據(jù),一個字節(jié),八位void s_transstart(void)  /傳輸使能函數(shù),就是給控制器引腳處相應(yīng)電平,使對應(yīng)模塊工作SDA = 1;SCL = 0;QWait();QWait();SCL = 1;QWait();QWait();SDA = 0;QWait();QWait();SCL = 0;QWait();QWait();Q

22、Wait();QWait();QWait();SCL = 1;QWait();QWait();SDA = 1;QWait();QWait();SCL = 0;QWait();QWait();void s_connectionreset(void)   /復(fù)位操作函數(shù)unsigned char i;SDA = 1;SCL = 0;for(i = 0;i < 9; i+)SCL = 1;QWait();QWait();SCL = 0;QWait();QWait();s_transstart();   /調(diào)用開始函數(shù)char s_measure(unsigned char

23、*p_value, unsigned char *p_checksum, unsigned char mode) /函數(shù),主要統(tǒng)計傳輸?shù)臄?shù)據(jù)個數(shù)unsigned er = 0;unsigned int i,j;s_transstart();switch(mode)case 3 :er += s_write_byte(3);break;case 5 :er += s_write_byte(5);break;default :break;for(i = 0;i < 65535;i+)for(j = 0;j < 65535;j+)if(SDA = 0)break;if(SDA = 0)b

24、reak;if(SDA)er += 1;*(p_value) = s_read_byte(ACK);*(p_value + 1) = s_read_byte(ACK);*p_checksum = s_read_byte(noACK);d6 = *(p_value);d7=*(p_value + 1);return er;void calc_sth11(float *p_humidity ,float *p_temperature)/計算溫度值const float C1 =- 4.0;const float C2 =+ 0.0405;const float C3 =- 0.0000028;co

25、nst float T1 =+ 0.01;const float T2 =+ 0.00008;float rh =* p_humidity;float t =* p_temperature;float rh_lin;float rh_true;float t_C;t_C = t * 0.01 - 44.0 ;rh_lin = C3 * rh * rh + C2 * rh + C1;rh_true = (t * 0.01 - 40.0 - 25) * (T1 + T2 * rh) + rh_lin;if(rh_true > 100)rh_true = 100;if(rh_true <

26、 0.1)rh_true = 0.1;*p_temperature = t_C;*p_humidity = rh_true;void main()  /主函數(shù)value humi_val,temp_val;  /聲明兩個聯(lián)合體變量unsigned char error,checksum;  /聲明兩個無符號的字符型變量initUART();    /初始化串口P1INP |= 0xC0;   /初始化P1引腳 , 0xC0 = 1010 0000 ,使P1_7和P1_5引腳為1begin = 0;s_connectionreset()

27、;while(1)  /無限循環(huán)操作error = 0;error += s_measure(unsigned char*) &humi_val.i,&checksum,5);  /讀入串口的數(shù)據(jù)進行溫度的計算d1 = d6;d2 = d7;error += s_measure(unsigned char*) &temp_val.i,&checksum,3);d3 = d6;d4 = d7;if(error != 0)s_connectionreset();elsehumi_val.f = (float)humi_val.i;temp_val

28、.f = (float)temp_val.i;humi_val.f = d1 * 256 + d2;temp_val.f = d3 * 256 + d4;calc_sth11(&humi_val.f,&temp_val.f);printf("temp:%5.1fC humi:%5.1f%n",temp_val.f,humi_val.f);/ printf("t1:%x h1:%xn",d1,d2);/printf("t2:%x h2:%xn",d3,d4);Wait(150);四、設(shè)計調(diào)試和心得體會 系統(tǒng)軟件的主程序是

29、調(diào)用子程序的,它是所有子程序在功能上的匯總,是整個程序的“首腦”,是從從主程序開始讀程序的,所以主程序的設(shè)計尤為重要。這個系統(tǒng)軟件的主程序主要完成溫度在位段的數(shù)碼管上顯示溫度的功能。4.1功能實現(xiàn)分析該硬件電路在最后測試中實現(xiàn)了準確的溫濕度采集、能夠傳給KL25芯片發(fā)送采集到得參數(shù)?;緦崿F(xiàn)了設(shè)計任務(wù),并可根據(jù)外界運用需要更換和外擴其他功能傳感器。4.2 心得體會經(jīng)過一個禮拜設(shè)計,調(diào)試和實踐,我們已經(jīng)在電路板上成功仿真運行了顯示模塊和溫濕度測試模塊。仿真運行結(jié)果符合最初的實驗設(shè)計要求。 唯有實踐方能出真知,這次做的產(chǎn)品給我們上了一次很生動的課??偟膩碚f這次實踐,我們學(xué)到許多,不僅僅是書本或者是網(wǎng)上的資料給我們的知識,更重要的是動手實踐后的體會,感悟。 由于時間的原因在設(shè)計過程中不能很好的做出我們設(shè)計所要達到的要求,對

溫馨提示

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

評論

0/150

提交評論