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