新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 基于ZigBee的無線溫度監(jiān)控系統(tǒng)的設(shè)計

基于ZigBee的無線溫度監(jiān)控系統(tǒng)的設(shè)計

作者: 時間:2013-01-24 來源:網(wǎng)絡(luò) 收藏

3 AVR單片機(jī)控制模塊
AVR單片機(jī)控制模塊由2部分組成:單片機(jī)最小系統(tǒng)以及DS18B20溫度采集模塊,如圖3中虛線框所示。其中,單片機(jī)系統(tǒng)的RX、TX兩個引腳和的TX、RX引腳相連,負(fù)責(zé)UART的通訊。單片機(jī)的PCI引腳與DS18B20的數(shù)據(jù)端相連,接收來自溫度傳感器的溫度數(shù)據(jù)。此外,單片機(jī)上的PA0和PA1兩個引腳分別引出,用來指示不同的溫度控制響應(yīng)。

本文引用地址:http://butianyuan.cn/article/153600.htm

e.JPG


3.1 溫度采集模塊
溫度采集模塊由溫度傳感器DS18B20構(gòu)成。由于DS18B20采用1-WIRE數(shù)據(jù)傳輸協(xié)議,僅使用1根數(shù)據(jù)線即可實現(xiàn)與單片機(jī)芯片的雙向通訊(包括傳輸溫度信息),接線方便,非常適用于農(nóng)業(yè)大棚、潔凈室、機(jī)房等多種非極限測溫場合。設(shè)計采用寄生電源供電方式,電路連接如圖4所示,由ATMega16的PCI采集溫度數(shù)據(jù)。

f.JPG


DS18B20的內(nèi)部有64位的ROM單元和9字節(jié)的RAM單元。64位的ROM包含了DS18B20唯一的序列號,因此DS18B20支持多點組網(wǎng)功能,多至階DS18B20可以同時存在一條總線上,實現(xiàn)多點測溫,由ROM讀取操作來判斷選擇某點的DS18B20溫度數(shù)據(jù)。在9字節(jié)RAM單元中,字節(jié)0-1是溫度寄存器,用來保存轉(zhuǎn)換好的溫度,共16bits。其中,bit0-bit7為LSB,分別保存權(quán)值為2-4至23的數(shù)據(jù);bit8-bit15為MSB,bit8-bit10保存權(quán)值為24至26的數(shù)據(jù),bit11-bit15為符號位,DS18B20的分辨率為0.0625,溫度計算公式為:temperature=(MSB+LSB)×256x0.062。DS18 B20內(nèi)部還有2個E2PROM字節(jié)TH和TL,用于配置溫度最高界限和溫度最低界限,用戶通過設(shè)置這2個寄存器的值可以設(shè)定溫度報警的上下限。
3.2 單片機(jī)控制系統(tǒng)
單片機(jī)控制系統(tǒng)使用Atmel公司的ATMega16L芯片作為主控芯片,實現(xiàn)溫度數(shù)據(jù)的采集、串行數(shù)據(jù)的發(fā)送與接收,以及根據(jù)上位機(jī)的設(shè)定溫度和當(dāng)前溫度比對結(jié)果做出加熱或降溫響應(yīng)。數(shù)據(jù)傳輸和溫度信號采集部分的主要程序如下。
1 UART數(shù)據(jù)接收模塊
h.JPG
利用單片機(jī)內(nèi)部自帶的接收中斷來完成數(shù)據(jù)接收模塊。在此之前,需要對UART寄存器進(jìn)行如下配置:異步模式、8位數(shù)據(jù)位、無校驗位、1位停止位。波特率設(shè)置函數(shù)為:UBRRL=(CRYSTAL/BAUD/16-1)%256和UBRRH=(CRYSTAL/BAUD/16-1)/256。
2 UART數(shù)據(jù)發(fā)送模塊
i.JPG
當(dāng)系統(tǒng)調(diào)用字符發(fā)送函數(shù)時,會先判斷發(fā)送寄存器是否為空,如果為空,則函數(shù)會向UART的I/O數(shù)據(jù)寄存器UDR寫入待發(fā)送的字符,格式為char型(8bits)。單片機(jī)接收到來自DS18B20的溫度數(shù)據(jù),分別取出溫度的整數(shù)位和小數(shù)位,添加小數(shù)點后,將所有的整數(shù)位和小數(shù)點后兩位數(shù)據(jù)發(fā)送給UART。溫度數(shù)據(jù)以字符數(shù)組的形式保存,因此發(fā)送時以字符串的形式發(fā)送數(shù)據(jù)。
3.DS18B20溫度數(shù)據(jù)接收模塊
j.JPG



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉