基于單片機(jī)的溫度控制系統(tǒng)設(shè)計與實(shí)現(xiàn)
1 項目要求此系統(tǒng)的主要功能:
● 可以測量一定攝氏度內(nèi)的溫度;
● 用液晶顯示溫度,精確到小數(shù)點(diǎn)后兩位;
● 利用溫度傳感器(DS18B20)測量某一點(diǎn)環(huán)境溫度;
● 至少有高、低兩路限溫控制輸出接口控制外部電路。
● 高、低兩路限溫控制點(diǎn)可在一定范圍內(nèi)獨(dú)立設(shè)置,通過發(fā)光二極管模擬顯示其控制狀態(tài)輸出。
● 當(dāng)溫度達(dá)到高、低限溫控制點(diǎn)發(fā)光報警;
● 提高溫度測量精度,使分辨率不低于0.10C;
● 可以通過按鍵設(shè)置高、低兩路限溫控制點(diǎn)。
2項目分析和系統(tǒng)設(shè)計此數(shù)字溫度控制系統(tǒng)硬件部分利用了MSP430G2553芯片內(nèi)部的ADC10功能配置,結(jié)合DS18B20溫度傳感器來測量環(huán)境中的溫度,將所測數(shù)值在LCD1602串行顯示;軟件部分利用CCS軟件來進(jìn)行編譯,并且根據(jù)實(shí)際需要來完成各模塊程序的編寫,再進(jìn)行復(fù)雜的調(diào)試。
3 硬件設(shè)計該溫度控制系統(tǒng)在MSP430G2553芯片的功能配置和協(xié)調(diào)下,與其他模塊搭建來完成。由MSP430控制溫度傳感器DS18B20實(shí)時測量環(huán)境中的溫度,然后在LCD5110顯示出來,當(dāng)該溫度超過了設(shè)定的最大或者最小溫度值時,LED開始報警。
圖3.1系統(tǒng)結(jié)構(gòu)框圖
3.1單片機(jī)選型模塊基于名為Launch Pad,MSP-EXP430G2低成本實(shí)驗板是一款適用于TI最新MSP430G2XXX犀利產(chǎn)品的完整開發(fā)解決方案。基于USB的集成型仿真器可提供全系列MSP430G2XX器件開發(fā)應(yīng)用所必備的所有軟件、硬件。Lunch Pad具有集成的DIP目標(biāo)插座,可支持多達(dá)20個引腳,從而使MSP430Value Line器件能夠輕松插入LaunchPad實(shí)驗板電路。
圖3.2單片機(jī)選型模塊圖
3.2溫度測量模塊溫度測量傳感器采用DALLAS公司DS18B20的單總線數(shù)字化溫度傳感器,測溫范圍為-55℃~125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率達(dá)到0.0625℃,采用寄生電源工作方式,CPU只需一根口線便能與DS18B20通信,占用CPU口線少,可節(jié)省大量引線和邏輯電路。接口電路如圖3.3所示。
圖3.3 DS18B20測量電路圖
3.3 LCD液晶顯示模塊LCD液晶顯示模塊采用LCD1602型號,性價比高,LCD1602可以顯示32個字符,口相對簡單。1602共16個管腳,但是編程用到的主要管腳不過三個,分別為:RS(數(shù)據(jù)命令選擇端),R/W(讀寫選擇端),E(使能信號);以后編程便主要圍繞這三個管腳展開進(jìn)行初始化,寫命令,寫數(shù)據(jù)。
以下具體闡述這三個管腳:
RS為寄存器選擇,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器。
R/W為讀寫選擇,高電平進(jìn)行讀操作,低電平進(jìn)行寫操作。
E端為使能端,后面和時序聯(lián)系在一起。
除此外,D0~D7分別為8位雙向數(shù)據(jù)線。
其接線如圖3.4所示
圖3.4 LCD顯示電路
3.4系統(tǒng)電源整個電路采用USB電源,為所有的USB 外設(shè)提供了單一的易于使用的標(biāo)準(zhǔn)的連接類型,簡化了USB 外設(shè)的設(shè)計。整個的USB 的系統(tǒng)只有一個端口和一個中斷節(jié)省了系統(tǒng)資源。
4 軟件設(shè)計4.1主程序本系統(tǒng)整體工作主要由單片機(jī)程序控制實(shí)現(xiàn),其工作過程為:由MSP430控制溫度傳感器DS18B20實(shí)時測量環(huán)境中的溫度,然后在LCD1602顯示出來,當(dāng)該溫度超過了設(shè)定的最大或者最小溫度值時,LED開始報警。
程序流程圖如下:
圖4.2 溫度測量子程序圖
5 系統(tǒng)調(diào)試5.1硬件調(diào)試主要根據(jù)系統(tǒng)框圖和硬件原理設(shè)計進(jìn)行原理的繪制、各參數(shù)的設(shè)置、電路板的制作,以及元器件的焊接等。具體如下:
5.1.1 各單元電路,確認(rèn)各單元電路鏈接無誤,尤其是關(guān)鍵元器件,一定要接保護(hù)電阻。
(1)在樣機(jī)加電之前,首先用萬用表等工具,根據(jù)硬件電器原理圖和裝配圖仔細(xì)檢查樣機(jī)線路的正確性,并核對元器件的型號、規(guī)格和安裝是否符合要求。應(yīng)特別注意電源的走線,防止電源之間的短路和極性錯誤,電源連接是否正確測試LCD顯示屏是否有輸出,LCD顯示屏上的溫度的顯示是否符合;
(2)運(yùn)用MSP430單片機(jī)中簡單的I/O口功能,優(yōu)異在檢查硬件是否正常工作時先檢測單片機(jī)本身的I/O口設(shè)置,可以先不連接外部電路,使用單片機(jī)本身I/O口,測試程序是否正確,以免在軟件調(diào)試中引起不必要的麻煩。
5.1.2 PCB設(shè)計注意事項:
在進(jìn)行PCB設(shè)計時,必須遵守PCB設(shè)計的一般原則,并注意其要求。
(1)此系統(tǒng)采用的電阻和電容較多,注意在畫PCB時注意各器件的封裝,對照使用的實(shí)物選取封裝,保證焊接硬件的正確性。
(2)此系統(tǒng)采用光敏電阻及較大的極性電容,介于成本的原因,采用的封裝是是直插式的,在PCB設(shè)計時特別注意
(3)根據(jù)電路的模塊布局,這樣便于在出現(xiàn)問題時進(jìn)行檢查,尤其注意MSP430單片機(jī)系統(tǒng)中I/O口是否設(shè)置正確。
5.2程序調(diào)試此程序設(shè)計中僅使用了MSP430單片機(jī)系統(tǒng)中I/O口資源,調(diào)試過程中,主要使用寄存器窗口,以及設(shè)置斷點(diǎn),觀察系統(tǒng)程序主要實(shí)現(xiàn)對采集來的模擬信號進(jìn)行模數(shù)轉(zhuǎn)換,并對數(shù)字信號進(jìn)行液晶顯示,所以程序有采集模擬信號、DA轉(zhuǎn)換和液晶顯示三部分;在中斷子程序設(shè)置斷點(diǎn),判斷運(yùn)行是否正確。在調(diào)試過程中,由局部到整體,判斷程序可能出現(xiàn)的問題,認(rèn)真分析邏輯,實(shí)現(xiàn)要求的功能,在簡化程序。
5.2.1 CCSV5的打開步驟
- 右鍵Code Composer Studio v5快捷方式,左鍵打開。會出現(xiàn)如圖5.2所示界面:
圖5.1 Code Composer Studio v5軟件加載界面
(2)加載完畢之后會有如圖5.3所示界面出現(xiàn):
圖5.2 Code Composer Studio v5軟件打開界面
(3)選擇Project->Import Existing CCS Eclipse Project,導(dǎo)入程序文件夾中的工程;具體操作如圖5.4:
圖5.3 Code Composer Studio v5程序?qū)氩襟E圖
5.2.2CCSV5的使用步驟
(1)CCS新建工程:
①首先打開CCS并確定工作區(qū)間,然后選擇project-->New CCS Project
彈出圖5.5對話框。,在簡化程序。
圖5.4創(chuàng)建新工程主界面
②在project name中輸入新建工程名稱turang。
③在Device部分中,Variant中選擇MSP430G××× Family,芯片選擇MSP430G2553,其余選擇默認(rèn)。
④選擇空工程,然后單擊Finish,完成新工程的創(chuàng)建。
⑤創(chuàng)建工程如圖5.6所示:
圖5.5ProjectExplorer界面
⑥然后選擇File-->New-->Source File,新建一個C文件,并且命名為turang.C,并在工程名上右擊選擇Add Files,創(chuàng)建工程如圖5.7:
圖5.6 新建工程界面
(2)CCS調(diào)試:
①調(diào)試之前,先確定目標(biāo)配置文件是否已經(jīng)創(chuàng)建并且配置正確。
②首先進(jìn)行工程編譯:選擇Project-->Build Project,編譯目標(biāo)工程。編譯結(jié)果如圖5.8所示,表示沒有錯誤,可以進(jìn)行下載調(diào)試,如果有錯誤,知道調(diào)試到?jīng)]錯誤為止。
圖5.7工程調(diào)試結(jié)果
③單擊運(yùn)行圖標(biāo)

運(yùn)行程序,可以觀察顯示的結(jié)果。在程序調(diào)試的過程中,也可通過設(shè)置斷點(diǎn)來調(diào)試程序,選擇需要設(shè)置斷點(diǎn)的位置,右擊鼠標(biāo)選擇Breakpoints-->Breakpoint,斷點(diǎn)設(shè)置成功后顯示圖標(biāo)可以通過雙擊該圖標(biāo)來取消該斷點(diǎn)。程序運(yùn)行的過程中還可以通過單步調(diào)試按鈕進(jìn)行調(diào)試。
5.3聯(lián)合調(diào)試整個系統(tǒng)的軟硬件都完成后,需要進(jìn)行聯(lián)合調(diào)試,主要是針對系統(tǒng)設(shè)定的功能能否完成和完善進(jìn)行調(diào)試。將電路線連接好,接入3V電源,LCD顯示屏亮,且測得當(dāng)前溫度,如果當(dāng)前溫度超過給定的量程范圍內(nèi)LED等就會亮,此時就是發(fā)出警報,提示當(dāng)前溫度已超出給定溫度范圍。超出給定的溫度(35°)LED燈就會亮,否則LED燈就會滅,如下圖。
圖5.8聯(lián)合調(diào)試圖
1