環(huán)境溫度監(jiān)測(cè)系統(tǒng)_第1頁(yè)
環(huán)境溫度監(jiān)測(cè)系統(tǒng)_第2頁(yè)
環(huán)境溫度監(jiān)測(cè)系統(tǒng)_第3頁(yè)
環(huán)境溫度監(jiān)測(cè)系統(tǒng)_第4頁(yè)
環(huán)境溫度監(jiān)測(cè)系統(tǒng)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余16頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、環(huán)境溫度監(jiān)測(cè)系統(tǒng)課題三、環(huán)境溫度監(jiān)測(cè)系統(tǒng)一、設(shè)計(jì)要求環(huán)境溫度監(jiān)測(cè)系統(tǒng)廣泛地用于住宅小區(qū)、樓 宇建筑和設(shè)備內(nèi)部等。其主要功能和指標(biāo)如下:1、可以監(jiān)測(cè) 8 點(diǎn)環(huán)境溫度信號(hào),可以擴(kuò)充;2、測(cè)量范圍為 0.00 C99.9 C,可以擴(kuò)充 到一55C+ 125 C,精度為土 0.5 C;3、用 4位數(shù)碼管進(jìn)行循環(huán)顯示, 其中最高位 顯示通道提示符 AH,低 3 位顯示實(shí)際溫度值, 每秒切換一個(gè)通道進(jìn)行輪流顯示;4、 可以隨時(shí)查看指定通道的溫度值(擴(kuò)充 功能)。二、設(shè)計(jì)指導(dǎo)1、方案選擇該系統(tǒng)主要由溫度檢測(cè)和數(shù)據(jù)采集兩部分組成。下面列舉兩種實(shí)現(xiàn)方案:方案一:溫度檢測(cè)可以使用低溫?zé)崤蓟蜚K電 阻,數(shù)據(jù)采集部分則

2、使用帶有 A/D 通道的單片機(jī)。考慮到一般的 A/D 輸入通道都只能接收大信號(hào), 所以還應(yīng)設(shè)計(jì)相應(yīng)的放大電路。此方案的軟件簡(jiǎn) 單,但硬件復(fù)雜,且檢測(cè)點(diǎn)數(shù)追加時(shí),成本會(huì)有 較大增長(zhǎng)幅度。方案二:使用單片機(jī)和單總線溫度傳感器構(gòu) 成。單總線溫度傳感器可以采用 DALLAS司生產(chǎn) 的DS18B20 系列,這類溫度傳感器直接輸出數(shù)字 信號(hào),且多路溫度傳感器可以掛在1 條總線上,共同占用單片機(jī)的 1 條 I/O 線即可實(shí)現(xiàn)接口。在 提升單片機(jī) I/O 線驅(qū)動(dòng)能力的前提下,理論上可 以任意擴(kuò)充檢測(cè)的溫度點(diǎn)數(shù)。比較兩個(gè)方案后可以發(fā)現(xiàn),方案二更適合于 用作本系統(tǒng)的實(shí)施方案。盡管方案二不需要A/D,但考慮到系統(tǒng)擴(kuò)

3、充等因素,單片機(jī)可以選用 ADuc812以便于在需要的時(shí)候擴(kuò)充參數(shù)存儲(chǔ)、 D/A 輸出、溫度控制等功能。2、硬件設(shè)計(jì)采用方案二的硬件設(shè)計(jì)比較簡(jiǎn)單,系統(tǒng)構(gòu)成 如圖1 所示,原理圖如圖 5 所示。單片機(jī)的 P0 口 用作 4 位數(shù)碼管的段碼線,P3.4P3.7 用作 4 位數(shù)碼管的位選線(ADuc812 的 P3 有允許 8mA 的灌 電流,可以不加驅(qū)動(dòng))。P2.4 用作 DS18B20 的數(shù)據(jù)輸入/輸出 線。DS18B20的引腳定義和封裝形式之一如圖 2 所示。 DQ 為數(shù) 字信號(hào)輸入/輸出端;GND 為電源地;VDD 為外接 電源。DS18B20 的光刻 ROM 中存有 64 位序列號(hào),它可以

4、 看作是該 DS18B2 啲地址序 列碼。64位光刻 ROM 勺排列 是:開(kāi)始 8位 (28H) 是產(chǎn) 品類型標(biāo)號(hào), 接著的 48 位是該 DS18B20自身的序 列號(hào), 最后 8 位是前面 56 位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1。光刻 ROM 勺作用是使每一個(gè) DS18B20 擁有惟一的地址序列碼,以確保在一 根總線上掛接多個(gè) DS18B20DS18B2C 內(nèi)部集成了暫存寄存器(或稱為暫 存1數(shù)ADuc812叫DQ按說(shuō)DS18B20DSJ8B20DS18B20DALLAS18B20123圖 2 DS18B20 引腳與封裝圖 i 溫度監(jiān)測(cè)系統(tǒng)組成框圖(BOT1ON1VH1W)R

5、AM 和 EEPRO 兩類存儲(chǔ)器。暫存 RAM 為 9 個(gè) 字節(jié),其地址分配及其相關(guān)說(shuō)明如表 1 所示。單片機(jī)通過(guò)命令實(shí)現(xiàn)對(duì) DS18B20 的控制,其 支持的主要命令如表 2 所示。DS18B20 的復(fù)位操 作、讀寫(xiě)操作都必須遵從嚴(yán)格的時(shí)序,其復(fù)位時(shí) 序、讀寫(xiě)時(shí)序分別如圖 3 和圖 4 所示。關(guān)于 DS18B20 的詳細(xì)介紹和使用方法可以參考其數(shù)據(jù)手冊(cè)。表 1 DS18B20 暫存 RAM 地址分配及其說(shuō)明寄存器名稱地址說(shuō)明溫度低字節(jié)溫度測(cè)量值的低 8 位,即 b7 b60 b5 b4 b3 b2 bl b0溫度高字節(jié)溫度測(cè)量值的高3 位及符號(hào)1位,即 S S S S S b10 b9 b8

6、溫度高限溫度報(bào)警上限,也可以用作自 定義字節(jié)溫度高3溫度報(bào)警下限,也可以用作自限定義字節(jié)配置寄存器格式為 0 R1 R0 1 1 1 1 1,R1 和 R0 為 00、01、10、11 對(duì)應(yīng)的 4分辨率分別為 9、 10、 11 和 12 位 (包 括符號(hào)位)保留5 未定義保留6 未定義保留7 未定義校驗(yàn)碼按 X8+ X5+ X4+ 1 對(duì)前 8 個(gè)字節(jié)8進(jìn)行 CRC 校驗(yàn)表 2 DS18B20 主要命令及其功能說(shuō)明命令功能說(shuō)明命令碼功能說(shuō)明碼33H3讀 ROM中的 64位地址序列碼EEH賣 9 字節(jié)暫存寄存器5H只有地址碼匹配的 DS18B2 才能接受后續(xù)的命令4EH寫(xiě)入溫度上/下 限,緊隨

7、其后是 2字節(jié)數(shù)據(jù),對(duì) 應(yīng)上限和下限值1OH鎖定總線上DS18B20 的個(gè)數(shù) 和識(shí)別其 ROM 中 的64 位地址序列 碼48H將 9 字節(jié)暫存寄 存器的第 3 和 4 字節(jié)復(fù)制到EEPRO 中1CH只有溫度超過(guò)上 三限或下限的DS18B20 才做出響應(yīng)E8H將 EEPROM 的內(nèi)容恢復(fù)到暫存寄存器的第 3 和 4 字節(jié)44H1 啟動(dòng) DS18B20 進(jìn)行溫度轉(zhuǎn)換,結(jié)E4H; 讀供電模式, 寄 生供電時(shí)果存入 9 字節(jié)的 暫存寄存器DS18B2C 發(fā)送 0,外接電源時(shí)DS18B20 發(fā)送 1CH忽略地址序列C碼,適合單片DS18B20LINE TYPE LEGEND (Figure 2 and

8、 Figure 3BUBmaster pulling InwDS 18x2D/DS 1B22 pulling low- Resistor pullup圖 3 DS18B20 復(fù)位時(shí)序DS15x2051322 SamplesSTARTOF SLOTSTARTOF S-LOTHpu .i“_i.1-WIRE BUSGNDWRITE V SLOTWRITEUT,SSLOT 11tis TjcDGNDDGNDXTAL15TTAL2P卅/23P35/24P3fi/PJ7/mI負(fù)DSISE-ZO-IDgjgB20-2JIrSISE20_3EPGNDDQVPDSNDDQTODNDDQTODGND gTODG

9、wgQVD:DGhTDDQVDDESET/VppJSEITCOOl.I con2oom3CCBfrf12 P349P35GhTDDQVWTGNDDQVDL-時(shí)器 T1(p 3.5)中斷函 數(shù)每隔 50ms 中斷 1 次,每中斷20 次(1 秒)即 讀取 1 路 DS18B20 的溫度代碼,轉(zhuǎn)換為溫度值, 再拆分成單個(gè)數(shù)碼后送入顯示緩沖區(qū)。DS18B20 接口程序主要由復(fù)位函數(shù)、讀位函數(shù)、讀字節(jié)函 數(shù)、寫(xiě)位函數(shù)、寫(xiě)字節(jié)函數(shù)、讀溫度函數(shù)等組成。2、參考程序#include #include vintrinshsbit led0=P3A4;P3.4P3.7用作4位LED的位選線sbit led仁P3

10、A5;sbit led2=P3A6;sbit led3=P3A7;sbit DQ = P2A4;P2.4用作DS18B20的數(shù)據(jù)線DQfloat data TMP2=0,0;讀取后的2個(gè)溫度值,將其除以2即可得出實(shí)際溫度;??unsigned char data f2=0,0; /結(jié) 果是否 為負(fù)溫,0為正溫,1為負(fù)溫。unsigned char data disp_buf4=0,0,0,0;410位數(shù)碼管對(duì)應(yīng)的值放入該緩沖區(qū)unsigned char data dot_position=0;unsigned char data chno=0; /對(duì) 應(yīng)某路DS18B20存各路DS18B20的

11、地址序列號(hào),為便于調(diào) 試,只設(shè)計(jì)了2路,可以擴(kuò)充到8路或更多unsigned char code SN28=16,62,148,60,0,0,0, 247,16,229,146,60,0,0,0, 87 ;/數(shù)字09和通道提示符AH的段碼unsignedcharcodeseg_table =0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d ,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x6f,0 x76;unsignedcharcodeCH =10,11,12,13,14,15,16,17;

12、/通道 提示符 的段碼偏移量 將0.00999之間的浮點(diǎn)數(shù)轉(zhuǎn)為單個(gè)數(shù)碼, 并送顯示緩沖區(qū)和返回小數(shù)點(diǎn)的位置void ftochar(float valp)iiif(valp=10.0)&(valp=100.0)&(valp1000.0)dot_position=3;disp_buf1=(int)valp/100;disp_buf2=(int)valp%100)/10;disp_buf3=(int)valp%100)%10;延時(shí)15微妙的函數(shù)void delay(unsigned char n)12do_nop_();_nop_();_nop_();_nop_();_nop_()

13、;_nop_();_nop_()的頭文件為intrins h_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();n-;while(n);/DS18B20復(fù)位函數(shù),按復(fù)位時(shí)序進(jìn)行設(shè)計(jì)voidow_reset(void)DQ = 0;/ DQ置為低電平delay(36); /保持480卩sDQ = 1;/ DQ置為高電平delay(24); /延時(shí),等DS18B20輸出低 電平/DS18B20讀位函數(shù),按讀位時(shí)序進(jìn)行設(shè)計(jì)unsigned char read_bit(void)unsigned char i;13DQ = 0;/ DQ置為低

14、電平DQ = 1;/ DQ置為高電平for (i=0; i5; i+);/延時(shí)15卩sreturn(DQ);/返回DQ線的電平狀態(tài)/ DS18B20寫(xiě)位函數(shù),按寫(xiě)位時(shí)序進(jìn)行設(shè)計(jì)void write_bit(char bitval)DQ = 0;/ DQ置為低電平if(bitval=1) DQ =1;/如果寫(xiě)1則DQ置為高電平delay(6); /延時(shí)以維持電平狀態(tài)DQ = 1;/ DQ置為高電平/從DS18B20讀取字節(jié)的函數(shù)unsigned charread_byte(void) unsigned char i;unsigned char value = 0;14for (i=0;i8;i+

15、)if(read_bit() value|=0 x01vi; II調(diào)用讀位 函數(shù),讀出的8個(gè)位移位成1個(gè)字節(jié)delay(11);延時(shí)以讀余下的位return(value);II寫(xiě)字節(jié)到DS18B20的函數(shù)void write_byte(char val)unsigned char i;unsigned char temp;for (i=0; i8; i+)/每次寫(xiě)1位,1個(gè)字節(jié)分8次完成temp = vali;temp &= 0 x01;write_bit(temp);/調(diào)用寫(xiě)位函數(shù)delay(10);/延時(shí)15/從DS18B20讀物溫度代碼void read_temp ()unsigned char i,j;unsigned char a,b;int mr;for(j=0;j2;j+)為便于調(diào)試,僅以2路為例,改循環(huán)次數(shù)即可擴(kuò)充到8路或更多,ow_reset();/調(diào)用復(fù)位函數(shù)delay(20);write_byte (0 x55);發(fā)送ROM匹配命令for(i=0;i=20) /中斷20次即為1秒count=0;ftochar(TMPchno); /當(dāng)前通道對(duì)應(yīng)的溫度 值轉(zhuǎn)換為單個(gè)數(shù)碼送顯示緩沖區(qū)disp_buf0=CHchno; /當(dāng)前通道的提示符 的段碼偏移量送顯示緩沖區(qū)首地址chno+;if(chno= =2) chno=0; /修改此判斷對(duì)應(yīng)的數(shù)值,即

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論