溫度是工業(yè)控制中主要的被控參數(shù)之一,,在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,因此研究溫度的測量方法和裝置具有重要的意義,。傳統(tǒng)方法多以熱電阻和熱電偶等為溫度傳感元件,,而這種模擬溫度傳感器輸出為模擬信號,,必須經(jīng)過A/D 轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機(jī)等微處理器接口,,使得硬件電路結(jié)構(gòu)比較復(fù)雜、抗干擾性差,、布線麻煩以及成本高等缺點(diǎn),。
針對上述問題,,該設(shè)計(jì)提出了基于Dallas 半導(dǎo)體公司的數(shù)字式溫度傳感器DS18B20[1-2]和ATMEL 公司AT89S52 單片機(jī)構(gòu)成的溫度測量系統(tǒng),,并可通過串口連接在PC 系統(tǒng)上進(jìn)行實(shí)時(shí)顯示,,該系統(tǒng)安裝簡易,可靠性高,,適用于惡劣環(huán)境的現(xiàn)場溫度測量,。
1 系統(tǒng)構(gòu)成
測溫系統(tǒng)由微控制器,、溫度采集,、串口通信,、LCD 顯示和上位機(jī)顯示等幾部分組成,如圖1 所示,。
圖1 系統(tǒng)組成
數(shù)據(jù)采集流程為:單片機(jī) AT89S52 獲取溫度傳感器DS18B20 采集的溫度值,經(jīng)處理后傳輸給LCD1602 現(xiàn)實(shí),,并且通過串口通信上傳給上位機(jī),,供上位機(jī)顯示,。
1.1 DS18B20 數(shù)字式溫度傳感器
DS18B20 溫度傳感器是美國DALLAS 半導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,,并且可根據(jù)實(shí)際要求通過簡單的編程讀取9~12 位數(shù)字溫度值,。DS18B20 的性能特點(diǎn)如下:
?、龠m應(yīng)電壓范圍更寬(3.0~5.5 V),,在寄生電源方式下可由數(shù)據(jù)線供電,;
?、讵?dú)特的單線接口方式,。與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)雙向通訊,;
?、跠S18B20 支持多點(diǎn)組網(wǎng)功能;
?、蹹S18B20 在使用中不需要任何外圍元件,,全部傳感元件及轉(zhuǎn)換電路集成在一只形如三極管的集成電路內(nèi);
?、轀胤秶?5℃~+125℃,,在-10~+85℃時(shí)精度為±0.5℃;
⑥可編程的分辨率為9~12 位,,對應(yīng)的分辨率分別為0.5℃、0.25℃,、0.125℃和0.062 5℃,,可實(shí)現(xiàn)高精度測溫,;
⑦轉(zhuǎn)換時(shí)間為93.75 ms(9 位)和750 ms(12 位),對于一般的實(shí)時(shí)測溫系統(tǒng)已經(jīng)足夠了,;
⑧測量結(jié)果直接輸出數(shù)字溫度信號,,以丹總線串行傳送給CPU,同時(shí)可傳送CRC 校驗(yàn)碼,,具有極強(qiáng)的抗干擾糾錯(cuò)能力,;
⑨負(fù)壓特性:電源極性接反時(shí),,芯片不會因發(fā)熱而燒毀,,但不能正常工作,。
1.2 RS_232 串口通信標(biāo)準(zhǔn)
RS_232C 是美國電子工業(yè)協(xié)會(EIA)制定的異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線,。該標(biāo)準(zhǔn)適用于數(shù)據(jù)傳輸速率在0~20Kbps 范圍內(nèi)的通信,,已成為數(shù)據(jù)終端設(shè)備DTE 與計(jì)算機(jī)和數(shù)據(jù)通信設(shè)備DCE 的接口標(biāo)準(zhǔn),是PC 機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口,。其工作電平規(guī)定如下:對于數(shù)據(jù)(邏輯“1”的電平低于-3V,;邏輯“0”的電平高于+3V)。對于控制信號(“信號有效”的電平高于+3V,,“信號無效”的電平低于-3V),。在實(shí)際工作中應(yīng)保證電平在±(3~15)V,。其串行口的9 根針腳功能有其固定的定義。該設(shè)計(jì)中,,只要用RXD 和TXD 兩條數(shù)據(jù)線即可,。
1.3 AT89S52
AT89S52 是一款低功耗、高性能CMOS 工藝8 位微控制器,,攜有8K 在系統(tǒng)可編程Flash 存儲器,。與80C51 產(chǎn)品指令和引腳完全兼容。使其能為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活,、超有效的解決方案,。AT89S52 還含有:256 字節(jié)RAM、32 位I/O 口線,、看門狗定時(shí)器,、2 個(gè)數(shù)據(jù)指針、三個(gè)16 位定時(shí)器/計(jì)數(shù)器,、一個(gè)6 向量2 級中斷結(jié)構(gòu),、全雙工串行口、片內(nèi)晶振及時(shí)鐘電路,。另外,,AT89S52 可降至0 Hz靜態(tài)邏輯操作,支持2 種軟件可選擇節(jié)電模式,??臻e模式下,CPU 停止工作,,允許RAM,、定時(shí)器/計(jì)數(shù)器、串口,、中斷繼續(xù)工作,。掉電保模式下,RAM 內(nèi)容被保存,,振蕩器被凍結(jié),,單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止,。
1.4 LCD1602 顯示模塊
液晶顯示模塊具有體積小、功耗低,、顯示內(nèi)容豐富,、超薄輕巧等優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用,。目前字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示期間,,LCD1602 液晶顯示模塊可以顯示兩行,,每行16 個(gè)字符,其字符發(fā)生器ROM 中自帶數(shù)字和英文字母及一些特殊符號的字符庫,,沒有漢字,。利用LCD1602可以建立8 個(gè)6×8 點(diǎn)陣自定義字庫的特點(diǎn)。它采用單+5V電源供電,,外圍電路配置簡單,,價(jià)格便宜,具有很高的性價(jià)比,。
LCD1602 的驅(qū)動方式有并口驅(qū)動和串口驅(qū)動兩種,,并口驅(qū)動須占用單片機(jī)大量寶貴的I/O 接口;而串口驅(qū)動須在單片機(jī)的UART 接口空閑的基礎(chǔ)上,。其主要功能如下:40 通道點(diǎn)陣LCD 驅(qū)動,、可選擇當(dāng)作行驅(qū)動或列驅(qū)動、輸入/輸出信號:輸出能產(chǎn)生20×2 個(gè)LCD 驅(qū)動波形,;輸入接受控制器送出的串行數(shù)據(jù)和控制信號,,偏壓(V1∽V6)、通過單片機(jī)控制將所測的頻率信號讀數(shù)顯示出來,。
2 硬件系統(tǒng)設(shè)計(jì)
2.1 溫度采集電路
在設(shè)計(jì)電路時(shí),,要想使DS18B20 能夠進(jìn)行精確的溫度轉(zhuǎn)換,I/0 線必須在轉(zhuǎn)換期間保證供電,。由于DS18B20 的工作電流達(dá)到了1 mA,,所以僅靠5 K 上拉電阻提供電源是不行的,當(dāng)幾只DS18B20 掛在同一根I/0 線上并同時(shí)想進(jìn)行溫度轉(zhuǎn)換時(shí),,這個(gè)問題變得更加尖銳,。考慮到本系統(tǒng)只進(jìn)行單點(diǎn)測量,,故采用從VDD 引腳接入一個(gè)外部電源的方法,。
2.2 主控電路及復(fù)位電路
AT89S52 具有多種封裝形式,該系統(tǒng)為便于焊接,,采用PDIP 封裝形式,。AT89S52 單片機(jī)內(nèi)資源豐富,為解決該系統(tǒng)的設(shè)計(jì)提供了多種多樣的方案設(shè)計(jì),,該系統(tǒng)占用AT89S52I/0 端口P1,、P2、P3 的部分資源,。
2.3 電平轉(zhuǎn)換電路
RS_232 是用正負(fù)電壓來表示邏輯狀態(tài),,與TTL 以高低電平表示邏輯狀態(tài)的規(guī)定不同,因此,,為了能夠同計(jì)算機(jī)接口或終端的TTL 器件連接,,必須在RS_232 與TTL 電路之間進(jìn)行電平和邏輯關(guān)系的變換,,實(shí)現(xiàn)這種變換的方法可用分立元件,也可以用集成電路芯片,??紤]到數(shù)據(jù)的雙向傳遞性,該系統(tǒng)采用MAX232 芯片,,可以完成TTL 到RS_232 雙向電平轉(zhuǎn)換,。
2.4 顯示電路
LCD1602 是常見的液晶顯示器,其特點(diǎn)是讀寫簡易,,顯示精度高,,與用動態(tài)數(shù)碼管顯示相比其占用資源較少,且顯示數(shù)據(jù)穩(wěn)定,,抗干擾能力強(qiáng),。
2.5 硬件構(gòu)成總電路圖
系統(tǒng)整體硬件電路包括溫度采集電路、主控制器電路,、電平轉(zhuǎn)換電路和顯示電路這四部分,,電路如圖2 所示。
圖2 系統(tǒng)硬件電路總圖
3 軟件系統(tǒng)設(shè)計(jì)
3.1 下位機(jī)軟件設(shè)計(jì)
下位機(jī)程序設(shè)計(jì)包含三部分:微控制器的初始化,、對DS18B20 的訪問和對LCD1620 的讀寫,。AT89S52 是該系統(tǒng)的核心部分,控制著溫度的轉(zhuǎn)換以及讀取溫度數(shù)值并轉(zhuǎn)化成十進(jìn)制數(shù)以及相應(yīng)的ASCII 值在1602 上進(jìn)行顯示,,通過RS232供PC 機(jī)讀取溫度值,。其主要工作流程為:初始化內(nèi)部部件以達(dá)到環(huán)境運(yùn)行要求、初始化DS18B20 以及LCD1602,;讀取溫度值并將采集到的數(shù)據(jù)進(jìn)行相應(yīng)的轉(zhuǎn)化傳送到1602 上進(jìn)行顯示,;當(dāng)遇到中斷時(shí),進(jìn)入中斷服務(wù)函數(shù),,檢查上位機(jī)是否向其請求發(fā)送數(shù)據(jù),。一旦檢測到正確的請求即將讀取的溫度數(shù)值按照一定的格式放到緩沖器中,直到數(shù)據(jù)發(fā)送結(jié)束,,返回中斷點(diǎn)繼續(xù)執(zhí)行原函數(shù),。流程圖如圖3(a)所示。
3.2 上位機(jī)軟件設(shè)計(jì)
為方便進(jìn)行遠(yuǎn)程控制可將采集到的溫度數(shù)據(jù)通過RS_232 口傳輸?shù)娇刂浦行牡碾娔X上,,以便實(shí)時(shí)監(jiān)測,。采用VB6.0[4]作為開發(fā)平臺,可高效快速地完成軟件的開發(fā)設(shè)計(jì),。
采用Viusal Basic 開發(fā)串口通信程序主要有兩種方法:①使用MSComm 串口控件,;②調(diào)用Window API 函數(shù)。
使用MSComm 串口控件實(shí)現(xiàn)通信的方法比調(diào)用API 動態(tài)鏈接庫函數(shù)的方法方便,、快捷,、而且用編寫代碼量少的有點(diǎn),可以大大地提高編程效率和系統(tǒng)設(shè)計(jì)的穩(wěn)定性,。該部分軟件完成窗體的設(shè)計(jì),,設(shè)置Timer 的間隔為300ms,完成MSComm控件的添加,,設(shè)置其相應(yīng)的屬性,,對所得的數(shù)據(jù)進(jìn)行分析計(jì)算并在窗口中顯示。流程圖如圖3(b)所示,。
圖3 測溫系統(tǒng)程序流程
4 結(jié)語
這里項(xiàng)目根據(jù)實(shí)際需要完成了測溫系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),。
包括:整體架構(gòu)設(shè)計(jì)、下位機(jī)底層硬件和軟件的具體實(shí)現(xiàn),、PC 串口上位機(jī)軟件設(shè)計(jì),,較好地達(dá)到了預(yù)期目的。系統(tǒng)實(shí)物圖如圖4 所示,,前后臺溫度顯示如圖5(a),、圖5(b)所示。
系統(tǒng)充分利用了DS18B20 微型化,、低功耗,、高性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn),,將溫度數(shù)據(jù)通過串口傳輸?shù)缴衔粰C(jī)進(jìn)行統(tǒng)一管理,,有利于溫度數(shù)據(jù)的保存和查詢,節(jié)省了人力成本,。
該系統(tǒng)可應(yīng)用于較多的測溫場合,。更高級的基于嵌入式系統(tǒng)和無線傳感網(wǎng)絡(luò)的測溫系統(tǒng)目前也是人們研究的熱點(diǎn)。下一步的工作將展開基于反饋控制的溫控系統(tǒng)設(shè)計(jì),。
圖4 系統(tǒng)實(shí)物
圖5 測溫結(jié)果顯示