陳偉軍 唐軍 李清
摘要:本文以DS18B20和MSP430單片機(jī)為核心,設(shè)計了溫度測量系統(tǒng),該系統(tǒng)采用LCD12864作為顯示設(shè)備。溫度傳感器DS18B20和MSP430之間通過One-Wire技術(shù)進(jìn)行數(shù)據(jù)傳輸,將其檢測到的溫度信息傳送給單片機(jī),單片機(jī)接收并處理信息后,將當(dāng)前溫度顯示在LCD12864上。
關(guān)鍵詞:溫度測量 MSP430 DS18B20
中圖分類號:TP274 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)08-0183-03
1 研究背景
物體的溫度是一個反應(yīng)物體基本屬性的一個物理量。在實際生產(chǎn)中,經(jīng)常遇到實時測量溫度的情況。在使用儀器對溫度進(jìn)行測量時候,總是選擇一種在一定溫度范圍內(nèi)隨溫度變化的物理量作為溫度的標(biāo)志,根據(jù)所依據(jù)的物理定律,由該物理量的數(shù)值顯示被測物體的溫度。電學(xué)溫度測量分為模擬量測量和數(shù)字量測量,常見的模擬量中有熱電偶測溫、電阻測溫和半導(dǎo)體熱敏電阻測溫,這一類模擬量直接測量與溫度相關(guān)的物質(zhì)屬性,再經(jīng)過電學(xué)轉(zhuǎn)換,將測得的模擬轉(zhuǎn)變?yōu)閿?shù)字量,進(jìn)而得到具體的溫度值,而另一類傳感器,經(jīng)過IC設(shè)計公司的設(shè)計,直接通過MCU與傳感器進(jìn)行數(shù)字通信,得到所測量的溫度。
2 系統(tǒng)設(shè)計
系統(tǒng)主要由LCD12864液晶顯示、MSP430單片機(jī)、DS1B820溫度傳感器構(gòu)成,溫度采集通過單線數(shù)字溫度傳感器DS18B20采集得到溫度數(shù)據(jù),MSP430F149作為MCU從溫度傳感器讀取數(shù)據(jù),將得到的數(shù)據(jù)進(jìn)行判斷然后做出相應(yīng)處理后,利用LCD12864完成液晶顯示,系統(tǒng)結(jié)構(gòu)圖如下圖1所示。
從圖1中可以看出,整個系統(tǒng)的設(shè)計分為四個部分:MSP430單片機(jī)小系統(tǒng)設(shè)計、DS18B20溫度傳感器設(shè)計、液晶LCD12864顯示設(shè)計和電源設(shè)計。
3 系統(tǒng)硬件設(shè)計
系統(tǒng)主要由單片機(jī)小系統(tǒng),溫度傳感器、LCD12864構(gòu)成,因此硬件設(shè)計也按上述幾個部分進(jìn)行設(shè)計。
3.1 MSP430小系統(tǒng)設(shè)計
MSP430小系統(tǒng)設(shè)計主要包括單片機(jī)MSP430F149時鐘電路與復(fù)位電路設(shè)計,時鐘部分是采用晶體振蕩器實現(xiàn)。單片機(jī)采用兩個時鐘的輸入,一個32KHz的時鐘信號,一個8MHz的時鐘信號。復(fù)位電路實現(xiàn)對系統(tǒng)復(fù)位的功能,單片機(jī)最小系統(tǒng)圖如圖2所示。
從圖2中可以看出,單片機(jī)電路作為整個系統(tǒng)的核心控制部分,主要完成與其他電路的接口,從而獲得數(shù)據(jù)進(jìn)行處理,將處理的結(jié)果傳送至液晶LCD12864進(jìn)行顯示。
3.2 溫度傳感器DS18B20設(shè)計
溫度傳感器采用美國DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器DS18B20來采集溫度數(shù)據(jù),該傳感器有很多優(yōu)點(diǎn),可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供微機(jī)處理。由于每片DS18B20含有唯一的硅串行數(shù),從DS18B20讀出的信息或?qū)懭隓S18B20的信息,僅需要一根線(單線接口)如圖3所示。
3.3 LCD12864設(shè)計
顯示系統(tǒng)采用LCD12864液晶屏顯示,傳輸方式有兩種:當(dāng)PSB接高電平時選用并口傳輸方式,接低電平時選用串口傳輸方式。本設(shè)計是采用的PSB接高電平并口方式顯示。D0-D7用來顯示數(shù)據(jù), RS/CS 、RW/SID和 E/CLK是用來控制選通狀態(tài)。這樣的方式既能滿足該系統(tǒng)的要求,也便于觀察當(dāng)前的溫度值。
4 軟件設(shè)計
4.1 溫度傳感器DS18B20軟件設(shè)計
系統(tǒng)通過DS18B20溫度傳感器采集溫度數(shù)據(jù),并對采集來的數(shù)據(jù)進(jìn)行處理和判斷后送給MSP430F149。系統(tǒng)先對DS18B20初始化,再進(jìn)行操作命令,在最后的存儲操作中,數(shù)據(jù)操作DS18B20的每一步都必須嚴(yán)格遵循工作時序和通信協(xié)議,MCU控制DS18B20完成溫度轉(zhuǎn)換這一過程,DS18B20 時序圖如圖4所示。
當(dāng)單片機(jī)把數(shù)據(jù)線從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙:寫1 時間隙和寫0 時間隙。所有寫時間隙必須最少持續(xù)60μs,包括兩個寫周期間至少1μs 的恢復(fù)時間。
I/O 線電平變低后,DS18B20 在一個15μs 到60μs 的窗口內(nèi)對I/O 線采樣。如果線上是高電平,就是寫“1”,如果線上是低電平,就是寫“0”,如圖5所示。
4.2 液晶LCD12864軟件設(shè)計
當(dāng)PSB腳(串/并口選擇)接高電平時,模塊將進(jìn)入并口模式,在并口模式下可由指令DL FLAG 來選擇8位或4位接口,主控制系統(tǒng)將配合( RS、RW、E、DB0..DB7 )來達(dá)成傳輸動作。
圖6圖7分別給出了MCU與LCD12864通信的讀、寫時序。
從上圖6圖7可以看出,MCU對LCD12864的讀、寫是通過R/W來確定的,R/W=1時,表示讀操作,R/W時,表示寫操作。E為使能信號,高電平有效,RS為0或者1則表示是對數(shù)據(jù)還是對指令進(jìn)行操作。
4.3 系統(tǒng)流程
主程序主要是將各個模塊進(jìn)行協(xié)調(diào)處理和實現(xiàn)數(shù)據(jù)交互。主程序首先完成初始化,初始化后進(jìn)入循環(huán)處理,在循環(huán)過程中主處理獲得采集模塊的數(shù)據(jù),井將數(shù)據(jù)進(jìn)行處理,處理后在LCD12864上顯示溫度值。主程序的設(shè)計包括各端口和時鐘的初始化操作,之后是While()循環(huán),此循環(huán)實現(xiàn)的是動態(tài)顯溫度值。
5 系統(tǒng)調(diào)試
按上述設(shè)計,我們設(shè)計了相應(yīng)的PCB,焊接好元件后,進(jìn)行了功能測試,實踐證明,上述設(shè)計是正確的,系統(tǒng)實物圖如圖8所示。