基于51單片機溫度采集及無(wú)線(xiàn)發(fā)送
0 引言
隨著(zhù)數字化腳步的加快,越來(lái)越多的數字化產(chǎn)品取代了原有的機械式儀表,從而大大提高了數據的準確率。然而,多數情況下,溫度的采集過(guò)程只在現場(chǎng)實(shí)時(shí)顯示,在增加了工作量的同時(shí),也可能會(huì )造成很多不便,如進(jìn)入危險區域。因此,將無(wú)線(xiàn)網(wǎng)絡(luò )應用在工業(yè)生產(chǎn)中,不僅能大大提高工作效率,同時(shí)也在一定程度上降低了勞動(dòng)強度。
本設計基于以上兩點(diǎn),將工業(yè)生產(chǎn)中常用到的溫度進(jìn)行數字化,并通過(guò)無(wú)線(xiàn)模塊將數據發(fā)送出去,在接收方利用無(wú)線(xiàn)接收設備接收實(shí)時(shí)的數據,從而大大降低勞動(dòng)強度。
1 系統組成
系統由單片機、溫度傳感器、串口通信模塊和無(wú)線(xiàn)傳輸模塊等幾部分組成。測溫系統將測得的溫度通過(guò)單片機在數碼管上實(shí)時(shí)顯示,同時(shí),通過(guò)串口通信部分和無(wú)線(xiàn)模塊將數據發(fā)送給上位機。系統結構如圖1所示。
該設計以Atmel公司生產(chǎn)的單片機AT89C51為核心,以數字溫度傳感器DS18B20作為溫度采集,以SRWF-1無(wú)線(xiàn)模塊作為無(wú)線(xiàn)數據傳輸,從而構成整體系統。
1.1 單片機系統
系統采用AT89C51作為核心控制,配備4位共陰極數碼管顯示電路。AT89C51是Atmel公司推出的一種低功耗、高性能CMOS 8位微處理器,具有8 KB系統可編程FLASH存儲器;256 B RAM;32個(gè)I/O引腳,分為4個(gè)8位控制端口;看門(mén)狗定時(shí)器;2個(gè)數據指針;3個(gè)16位定時(shí)器/計數器;兩級中斷優(yōu)先等級;可編程全雙工串行傳輸端口;片內晶振及時(shí)鐘電路;8個(gè)中斷源。其性能完全能夠滿(mǎn)足系統要求。數碼顯示采用Ytt-410391K四位7段8線(xiàn)數碼管,作為溫度顯示部分,并用最末一位顯示小數。
1.2 數字溫度傳感器DS18B20
DS18B20是美國Dallas公司生產(chǎn)的一款可編程1-Wire數字溫度計。具有精度高,全數字化,連線(xiàn)少等諸多優(yōu)點(diǎn)。其可直接將采集到的溫度轉換成數字信號,通過(guò)單條數據線(xiàn)串行發(fā)送出去,只要嚴格遵循規定時(shí)序邏輯和脈沖間隔,就能舍去同步時(shí)鐘信號線(xiàn),做到通信期間引腳最少化,達到溫度采集目的。
1.2.1 內部結構及外部管腳
數字式溫度傳感器DS18B20的內部結構如圖2所示,其主要由四部分組成:64位ROM和單總線(xiàn)接口、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。
DS18B20 64位閃存ROM的開(kāi)始8位是產(chǎn)品類(lèi)型的編號,接著(zhù)的48位為每個(gè)器件的惟一序號,最后8位是CRC校驗碼。用于存儲用戶(hù)設定溫度上下限值的非易失性溫度報警觸發(fā)器TH和TL,使用時(shí)可通過(guò)軟件寫(xiě)入、設定報警上下限值。DS18B20內部配有一個(gè)電可擦除的E2PROM,用于存儲TH、TL值,數據先寫(xiě)入內部的高速暫存RAM,經(jīng)校驗后在傳給E2PROM。RAM中的第5個(gè)字節為配置寄存器,用于確定溫度值的數字轉化分辨率。工作時(shí)按此寄存器中的分辨率將溫度轉化為相應精度的溫度值。
DS18B20具有三引腳To-92小體積封裝形式,如圖3所示;溫度測量范圍為-55~+125℃,其工作電源既可在遠端引入,也可使用寄生電源方式產(chǎn)生;CPU只需一根端口線(xiàn)就能與諸多DS18B20通信,由于其占用微處理器的端口較少,因此可節省大量的引線(xiàn)和邏輯電路。
DSB18B20各引腳介紹如下:GND為地;DQ為數據輸入/輸出端;VDD為外接供電電源輸入端(在寄生電源接線(xiàn)方式時(shí)接地);NC為SOIC封裝的,NC為空引腳。
1.2.2 工作原理
DS18B20內部的低溫度系數振蕩器能產(chǎn)生穩定的頻率信號f0,而高溫度系數振蕩器則將被測溫度轉化成頻率信號f。當計數器打開(kāi)時(shí),DS 18B20則對f0計數,計數器開(kāi)通時(shí)間由高溫度系數振蕩器決定。芯片內部還有斜率累加器,可對頻率的非線(xiàn)性給予補償。其測量的結果將暫存在溫度寄存器中,可使單片機方便的將溫度讀出。
DS18B20的核心是一個(gè)直接的數字化溫度傳感器,可將溫度值按9 b,10 b,11 b,12 b分辨率進(jìn)行量化,默認分辨率為12 b,對應的溫度最小增量分別為0.5℃,0.25℃,0.125℃和0.062 5℃。當主機向DS18B20發(fā)出溫度轉化命令后,開(kāi)始溫度轉換,檢測的溫度結果將存放在兩個(gè)字節中,最低位LSB在前,最高位MSB為符號位。其數據格式如下:
其中,高位字節M(mǎn)SB的高5位為溫度的符號位,當溫度為正時(shí),該5位為0,溫度為負時(shí),統一為1。高位字節M(mǎn)SB的低3位和低位字節LSB的高4位共同組成溫度值的整數部分,低位字節LSB的低4位為小數位,采用二進(jìn)制補碼方式存儲溫度數據。例如,當溫度為+125℃時(shí),輸出溫度為07D0h;當溫度為+85℃時(shí),輸出溫度為0550h;當溫度為+25.062 5℃時(shí),輸出溫度為0191h;當溫度為-10.125℃時(shí),輸出溫度為FF5Eh;當溫度為-55℃時(shí),輸出溫度為FC90h。
評論