發布日期:2022-10-09 點擊率:769
溫濕度傳感器:單片機常用溫度傳感器 第1張" title="單片機溫濕度傳感器:單片機常用溫度傳感器 第1張-傳感器知識網"/>
溫度傳感器DS18B20
1、DS18B20簡介2、DS18B20的溫度轉換規則3、ROM & RAM操作指令(1)ROM指令表(2)RAM指令表
4、通過單線總線端口訪問DS18B20過程(1)初始化(2)ROM操作指令(3)RAM操作指令(4)DS18b20的位寫時序(5)DS18b20的位讀時序
5、ds18b20.h + ds18b20.c
1、DS18B20簡介
DS18B20本身就是一個溫度傳感器,只需要將DS18B20的數據引腳和單片機的一個I/O口接上,單片機通過與DS18B20進行通信,讀出溫度。
CT107D開發板相關模塊電路圖如下:
2、DS18B20的溫度轉換規則
DS18B20可以直接讀出數字的溫度數值。溫度傳感器的精度為用戶可編程的9、10、11或12位,分別以0.5℃,0.25℃,0.125℃和0.0625℃增量遞增。在上電狀態下默認精度為12位。也就是。轉換的精度由配置寄存器決定,如下:(R1R0出廠默認11)
DS18B20啟動后保持低功耗等待狀態,當需要執行溫度測量和AD轉換時,總線控制器必須發出[44h]命令,啟動溫度轉換,即。轉換完以后,產生的溫度數據以兩個字節的形式被存儲到 高速暫存器 的溫度寄存器中(),DS18b20繼續保持等待狀態。
DS18B20的溫度數據格式如下,轉化后得到12位數據,存儲在DS18B20的兩個8位的RAM中。MSB里面存儲的是高字節,LSB里面存儲的是低字節。 高字節的前5位是符號位,如果測得的溫度大于0,這5位為‘0’,只要將測到的數值乘以0.0625即可得到實際溫度;如果溫度小于0,這5位為‘1’,測到的數值需要先減1再取反再乘以0.0625即可得到實際溫度。
溫度/數據關系轉換表如下:
3、ROM & RAM操作指令
(1)ROM指令表
指令約定代碼功能Read ROM33H讀DS18B20溫度傳感器ROM的編碼,即64位地址Match ROM55H后跟64位ROM序列,讓總線控制器在多點總線上匹配某一特定的DS18B20。匹配后的從機才能響應后續命令,其余不匹配的從機等待復位脈沖??偩€上有單個或多個器件時都可使用該命令。Skip ROMCCH當只有一個從機時,忽略64位ROM地址,直接向DS18B20發出溫度轉換命令。Search ROMF0H用于確定掛在同一總線上DS18B20的個數和識別64位ROM地址,為操作各器件做準備。Alarm ROMECH執行后,溫度超過上限或下限的片子做出響應。
當我們只掛了一個DS18B20時,只需要寫一條關于ROM的指令,即。
(2)RAM指令表
指令約定代碼功能啟動溫度轉換(Convert T)44H啟動DS18B20進行溫度轉換,從轉換到獲取溫度的時間取決于DS18B20的精度,12位轉換最長750ms,結果存入9字節RAM。讀暫存器BEH讀9字節RAM的內容寫暫存器4EH發出向內部RAM的3、4字節寫上、下限溫度數據命令,后面緊跟著傳送兩字節數據復制暫存器48H將RAM中第3、4字節的內容復制到EEPROM中重調E2PROMB8H將EEPROM內容恢復到RAM中的3、4字節讀供電方式B4H讀DS18B20的供電模式,寄生供電時DS18B20發送“0”,外接電源供電時DS18B20發送“1”。
4、通過單線總線端口訪問DS18B20過程
(1)初始化
類似于I2C的尋址,1-Wire總線開始也需要檢測這條總線上是否存在DS18B20這個器件。如果存在,總線會根據時序要求返回一個低電平;如果不存在,則不返回,即總線保持高電平。該過程稱為檢測存在脈沖。
獲取存在脈沖有兩個作用:①檢測是否存在DS18B20 ②通過這個過程通知DS18B20做準備,單片機要對它進行操作。
檢測存在脈沖的時序圖如下:
整個過程描述如下:①單片機拉低這個引腳,持續480~960us (以持續500us為例) ②單片機釋放總線,即拉高電平。 ③15 ~60us后,如果DS18B20這個器件存在,就會主動拉低這個引腳,返回一個低脈沖(為了確保讀到這個脈沖,選擇延時60us,但不能超過75us)④持續60 ~240us后,DS18B20釋放總線,I0端口被上拉電阻拉高。
對應的程序如下:
注:需要說明的是,DS18B20對時序的要求非常嚴格,所以在開始對某一位操作前要先關閉中斷,防止中途受到干擾。但是位與位之間的間隔是可以無窮大的,完全可以在完成一位的操作之后,去干別的事情,結束之后再回來操作下一位。
(2)ROM操作指令
先只學習一條總線上只接一個器件的情況,此時只需要直接跳過ROM,不進行ROM檢測。用到的語句如下:
(3)RAM操作指令
常用到的兩條如下:
(4)DS18b20的位寫時序
DS18b20的位寫入時序:
過程描述如下:在給DS18b20寫數據之前,單片機要先把引腳拉低,持續一段時間(程序中是兩個_nop_),而后DS18b20會在60秒之內讀完這位數據。然后釋放總線(拉高引腳)
代碼如下:
(5)DS18b20的位讀時序
DS18b20的位讀時序圖如下:
過程描述如下:在讀取DS18B20數據之前,單片機首先要拉低這個引腳,并且至少保持1us。而后釋放這個引腳(拉高電平),盡快讀取。從拉低這個引腳到讀取不能超過15us。再延時60us,確保讀取完畢。
代碼如下:
5、ds18b20.h + ds18b20.c
ds18b20.h
ds18b20.c
前一篇: 單片機學習(11)——實時時鐘DS1302
下一篇: 【藍橋杯】單片機學習(13)——AD模數轉換及PCF8591
1 #include "reg52.h"
2 #include
基于單片機的溫濕度檢測系統的設計
摘要:本文設計了基于AT89C51 單片機,溫濕度傳感器 SHT11,液晶 LCD1602,串
口MAX232 通訊以及Visual Basic 編寫的上位機軟件的溫濕度檢測控制系統。實現了對
環境溫濕度的實時數據進行采集和顯示,存儲并記錄,鍵盤輸入溫濕度的上下限值和預置值,
環境溫濕度超過上下限值蜂鳴器報警,指示燈提示,并且可以通過上位機遠程設置上下限值,
查詢各時間段的溫濕度情況等功能。
0.引言
隨著現代工業的逐步發展,溫度、壓力、流量和液位是4 種最常見的過程變量。例如:
在冶金工業、化工工業、電力工業、機械加工和食品加工等許多領域,都需要對各種加熱爐,
反應爐和鍋爐的溫濕度進行控制,然而用常規的控制方法潛力有限,難以滿足較高的性能要
求。采用單片機來對它們進行控制不僅具有控制方便、簡單和靈活性大的優點,而且還可以
大幅度提高被測溫濕度的技術指標,從而能大大提高產品的數量和質量。
該設計主要作用是實時采集和顯示環境中溫濕度值,當環境溫濕度超過設定值系統發出
聲光報警,可以通過按鍵和上位機調節上下限值,上位機實時顯示溫濕度值并保存,可以查
詢各個時間段溫濕度情況。
1. 系統的硬件設計
此設計以AT89C51 基本系統為核心的一套檢測控制系統,其中包括溫濕度采集模塊、液
晶顯示模塊、按鍵設置模塊、串口通訊模塊等部分的設計。系統總體方框圖如圖1.1。
晶振電路 LCD1602 顯示
復位電路 溫濕度SHT11
AT89C51
按鍵檢測 串口通訊MAX232
蜂鳴器報警 LED 報警
圖1.1 系統總體方框圖
1
本設計由信號采集,信號分析處理、信號顯示以及與上位機通訊四個部分組成:
(1).信號采集:由溫濕度傳感器SHT11 完成;
(2 ).信號分析處理:由單片機完成;
(3 ).信號顯示:由液晶LCD1602,LED 和報警電路完成;
(4 ).與上位機通訊:由MAX232 完成;
1.1 溫濕度采集模塊:
1.1.1SHT11 工作原理:
SHT11 的濕度檢測運用電容式結構,并采用具有不同保護的“微型結構”檢測電極系統與
聚合物覆蓋層來組成傳感器芯片的電容,除保持電容式濕敏器件的原有特性外,還可抵御來
自外界的影響。由于它將溫度傳感器與濕度傳感器結合在一起而構成了一個單一的個體,因
而測量精度較高且可精確得出露點,同時不會產生由于溫度與濕度傳感器之間隨溫度梯度變
化引起的誤差。CMOSensTM 技術不僅將溫濕度傳感器結合在一起,而且還將信號放大器、
模/數轉換器、校準數據存儲器、標準I2C 總線等電路全部集成在一個芯片內。
SHT11 的每一個傳感器都是在極為精確的濕度室中校準的。SHT11 傳感器的校準系數預
先存在OTP 內存中。經校準的相對濕度和溫度傳感器與一個14 位的A/D 轉換器相連,可
將轉換后的數字溫濕度值送給二線I2C 總線器件,從而將數字信號轉換為符合I2C 總線協議
的串行數字信號。
1.1.2SHT11 與單片機連接圖:
如圖1.2:
圖1.2 SHT11 與單片機連接圖
液晶顯示模塊:
LCD1602 介紹:
1602LCD 主要技術參數:
顯示容量:16×2 個字符;芯片工作電壓:4.5—5.5V;工作電流:2.0mA(5.0V);模塊最佳工
作電壓:5.0V;字符尺寸:2.95×4.35(W×H)mm;
溫濕度傳感器:單片機常用溫度傳感器 第3張" title="單片機溫濕度傳感器:單片機常用溫度傳感器 第3張-傳感器知識網"/>
基于STC89C51單片機的溫濕度檢測系統
摘 要:設計一種計算機教室溫度、濕度檢測系統,用于控制機房的溫、濕度。整個系統采用STC89C51微處理器作為主控系統,硬件電路主要包括51單片機、DHT11溫濕度傳感器、顯示器模塊、警報器以及控制設備等5部分。通過給定的溫濕度的上下限值并由1602 LCD顯示器顯示,傳感器測量的信號由LCD顯示出來,LCD顯示實時的溫、濕度值。當溫、濕度超過限定值時,蜂鳴器鳴叫報警。
關鍵詞:單片機;溫濕度傳感器;LCD顯示器
0 引 言
當計算機教室溫度過高,會導致機器的散熱功能無法正常運行,影響電路穩定運行。為了確保機房的設備正常運轉,機器的溫度最好保持在18-25℃。如果室內的空氣濕度過大,會導致設備金屬部件產生銹蝕,電路板的絕緣性能降低,從而影響設備的穩定運行。為防止靜電產生,保證設備的安全系數不受影響,機房的空氣也不能過于干燥。因此,機房的溫度、濕度要控制在穩定狀態,避免意外發生[1]。
一、整個作品采用STC89C51微處理器作為MCU(Microcontroller Unit),硬件電路主要包括51單片機、溫濕度傳感器、顯示模塊、報警器以及控制設備等5部分。其中由DHT11溫濕度傳感器及1602 LCD液晶顯示器構成系統的顯示模塊。系統程序給定溫濕度上下限值并通過1602 LCD顯示器顯示,傳感器測量的信號由LCD顯示出來,LCD顯示實時的溫、濕度值。當室內的溫濕度超過限定值,蜂鳴器鳴叫報警。
二、溫濕度的檢測和控制是研究的主要內容。當環境中的溫濕度發生變化時,DHT11溫濕度傳感器隨著溫度、濕度的變化而變化,然后將變化的電阻通過轉換電路和轉換信號檢測為相對應變化的電壓,然后把模擬電壓信號由A/D轉換器轉換為數字信號并送入到單片機中。單片機對采集到的信號進行濾波處理并通過查表得到實際測量的濕度值。
三、該系統通過按鈕設定最適宜的溫度和濕度,傳感器向最小系統輸送監控信號,若超過預設值,蜂鳴器就會報警提醒,控制溫、濕度的設備即可做出調整,使室內的溫、濕度回到正常范圍。
四、根據各種不同的計算機教室最適溫度進行溫度調節,若低于下限溫度則采取升溫措施,通常采取電熱增溫和空調增溫。若高于上限溫度則采取降溫措施,通常通過空調降溫和風扇降溫;為滿足機房不同種類計算機對濕度的要求,我們可以隨時對溫、濕度進行調節,對于不利情況能夠及時的顯示,并采取相應的措施提醒用戶進行調整,以達到最適宜的溫濕度。
1 整體方案結構
1.1 總體設計方案及其論證
本設計要實現的功能是:實時顯示當前環境的溫、濕度,允許用戶設定溫、濕度的上下限值,當環境溫濕度超過或低于限定值時,系統會以蜂鳴器鳴叫的方式進行報警,并且使控溫設備啟動。待室內達到正常范圍時,蜂鳴器停止鳴叫,控溫設備停止運行,系統正常工作。
(1)溫度檢測:對溫室溫度進行測量并反映在顯示器上。
(2)濕度檢測:對溫室濕度進行測量并反映在顯示器上。
(3)顯 示:1602 LCD顯示器顯示實時溫度、濕度值。
依據功能設定,本系統主要分為以下三個模塊:
(1)溫濕度采集模塊
(2)數據處理模塊
(3)用戶交互模塊
其中溫濕度采集模塊使用的是DHT11數字溫濕度傳感器,它使用單總線方式,接口簡單,而且無需另外校準。分辨率為8bit,能夠滿足日常環境溫濕度的檢測要求。
數據處理模塊使用的是STC89C51單片機作為最小系統,其完成溫濕度數據的采集、運算和控制設備運行的功能。
用戶交互模塊主要由按鍵、1602液晶顯示器、蜂鳴器和控制設備構成。其中按鍵用于用戶設定溫濕度的限定值,1602 LCD用于顯示數據,蜂鳴器用于提示用戶,控制設備用于調節和控制不符合要求的溫、濕度。
1.2 系統設計簡圖
C51單片機作為主控制器,負責處理由DHT11傳輸的數據,并把處理好的數據送向顯示器模塊,DHT11溫濕度傳感器主要用來采集周圍的環境參數,并把采集得到的數據送向單片機。按鍵電路主要是用來完成單片機的復位操作和溫濕度限定值的設定。蜂鳴器電路是用三極管來實現的,用來提示周圍的溫度或者濕度是否超出設定數值,控制設備等候指令,當蜂鳴器響起且溫、濕度不在標準范圍內,控制設備自行啟動,直到溫、濕度正常。顯示電路主要用來顯示當前的溫濕度。
圖1-2-1 溫濕度監控系統原理圖
2 系統硬件設計
2.1 器件選定
將單片機用作測控系統時,總要有被測信號輸入通道,由計算機拾取必要的輸入信息。對于測量系統而言,其核心任務是怎么樣獲得準確的被測信號;而對測控系統來說,不可缺少的環節是對條件的監測和對被控對象狀態的測試,傳感器是實現測量與控制的第一環節,是測控系統的關鍵部分,一切準確的測量和控制都將在傳感器對原始信號的準確可靠的轉換和捕捉,工業生產過程的自動化測量和控制,基本主要依賴各種傳感器來控制和檢測生產過程中的各種量,使系統和設備在最佳狀態正常運行,從而保證生產的高質量和高效率[2]。
2.1.1 DHT11溫濕度傳感器
DHT11是一款有已校準數字信號輸出的溫濕度傳感器。 其精度濕度±5%RH, 溫度±2℃,量程濕度20-90%RH,溫度0~50℃。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比高等優點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準,校準系數以程序的形式存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數,采用單線制串行接口[5],使系統集成變得簡易快捷。
圖2-1-1 封裝信息
2.1.2 1602LCD顯示器
液晶顯示器(Liquid Crystal
Display, LCD)是一種被動式發光的低功耗顯示器件。由于液晶這種物質本身不發光,它只是在外加電場的作用下使液晶內部的分子有序排列,從而改變通過這些液晶分子的光線方向,光線再經過底板的反射、散射最終進入人們的視野中。液晶顯示器具有重量輕、體積小、功耗低、抗擾能力強等優點,廣泛應用于人們的生活中、儀器儀表、控制系統等領域[3]。
本設計將采用點陣字符型1602液晶顯示模塊。
基本操作時序
(1)讀狀態;輸入:RS=L,R/W=H,E=H;輸出:D0~D7為狀態字。
(2)讀數據;輸入:RS=H,R/W=H,E=H;輸出:無。
(3)寫指令;輸入:RS=L,R/W=L,E=H,D0D7為指令碼;輸出:D0D7為數據。
(4)寫數據;輸入:RS=H,R/W=L,E=H,D0~D7為數據;輸出:無。
圖 2-1-2 外形尺寸
圖2-1-3 點陣字符型1602液晶顯示器的顯示地址映射圖
控制器內部帶有80B的RAM緩沖區,對應關系如圖2-1-2所示。
在圖中的00H0FH、40H4FH地址中的任意處寫顯示數據時,液晶都可以立即顯示出來,但寫入到10H27H或50H67H地址處時,必須通過移屏指令將他們移入可顯示區域才能正常顯示[4]。
2.2 主控系統電路和各硬件模塊
2.2.1
STC89C51單片機簡介
STC89C51單片機是宏晶科技推出的新一代高速、低功耗、超強抗干擾的單片機,指令代碼完全兼容傳統8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。
其主要特性如下:
工作電壓:5.5V~3.3V(5V單片機)/3.8V~2.0V(3V單片機)
工作頻率范圍:0~40MHz,相當于普通8051的0~80MHz,實際工作頻率可達48MHz
用戶應用程序空間為12K/10K/8K/6K/4K/2K字節
片上集成512字節RAM
通用I/O口(32個),復位后為:P1/P2/P3/P4是準雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。
ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器,可通過串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,數秒即可完成一片
具有EEPROM功能
具有看門狗功能
共3個16位定時器/計數器。即定時器T0、T1、T2
外部中斷4路,下降沿中斷或低電平觸發電路,Power Down模式可由外部中斷低電平觸發中斷方式喚醒
通用異步串行口(UART),還可用定時器軟件實現多個UART
工作溫度范圍:-40~+85℃(工業級)/0~75℃(商業級)
PDIP封裝
2.2.2 單片機最小系統
圖2-2-2 最小系統原理圖
2.2.3 復位電路與晶振電路
檢測系統采用上電復位,當RST引腳上出現了兩個周期以上的高電平就會觸發內部復位,這里的EA端與復位電路無關,由于數據都放在了內部存儲器,所以EA端直接上拉高電平。
晶振通常與鎖相環電路配合使用,以提供系統所需的時鐘頻率,可以用于同一個晶振項鏈的不同鎖相環來提供的。單片機STC89C51的晶振電路采用無源晶振,微調電容取30pF。
圖2-2-3 復位電路、晶振電路
2.2.4 蜂鳴器警報模塊
本設計采用蜂鳴器報警電路,如圖所示。當蜂鳴器額定電流≤30mA,而對于STC89C51單片機,P3.2口的灌電流為15mA,僅靠單片機的P3.2口電流是不能驅動蜂鳴器的,必須使用晶體管放大電流。通常使用PNP型晶體管,當外部環境的溫度或者濕度超過預設值的時候,基級變為低電平,蜂鳴器導通鳴叫,實現報警。
圖2-2-4 蜂鳴器警報模塊
2.2.5 溫濕度按鍵模塊
圖2-2-5 按鍵模塊
2.2.6 系統顯示模塊
顯示模塊選用1602點陣字符型液晶顯示器,它是目前工控系統中使用最廣泛的液晶屏之一。它的顯示的質量高,驅動方便,經過編程后顯示的內容豐富多樣。
DHT11是數字型溫濕度傳感器,可直接以數字的方式傳輸所采集到當前環境的溫、濕度,DHT11采用的是單總線通信,因此只需將單片機的一個I/O端口與DHT11的通信接口連接就可以實現數據的采集和傳送。
圖2-2-6 1602LCD與DHT11原理圖
2.3 硬件實施控制與實物成品
操作說明:
S1:復位鍵 S2:設置/保存 S3:數值加 S4:數值減
1、系統上電后,LCD1602顯示當前環境的溫濕度值,按下S2設置鍵,依次進入預設溫度上限、濕度上限、濕度下限、溫度下限的調節模式。
2、按S3數值加鍵,預設值加。
3、按S4數值減鍵,預設值減。
4、設置成功后,再按S2設置鍵退出,返回到正常監測模式。
圖2-3-1 硬件實物圖1
圖2-3-2 硬件實物圖2
3 系統軟件設計
系統軟件設計采用分部模塊化設計,其中包括主程序、溫度檢測子程序、濕度檢測子程序、數據儲存、子程序讀取、LCD顯示子程序。軟件設計時溫濕度監測系統的核心部分,將采用循環的方式來完成數據的收集,并進行數據對比。系統上電后正常運轉,并進行溫、濕度的檢測與處理。
圖3-1 軟件設計流程圖
4 結 語
本文設計的是計算機教室的溫濕度檢測、報警、控制系統。由高性價比單片機STC89C51對傳感器數據進行處理,通過溫濕度傳感器,實現對溫、濕度數據的采集,并對數據進行處理, 1602
LCD顯示器顯示即時溫、濕度值。當測出數值超出設定的溫、濕度值時,由單片機驅動蜂鳴器模塊,實現報警功能,控制設備自行啟動,調節室內的溫度、濕度,使其恢復到正常范圍。綜合上述的功能,就可以構造一個以DHT11傳感器和C51單片機為基礎的系統,實現穩定和簡便的溫、濕度環境數據監測功能。
資料鏈接:
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原