Design of Temperature Compensation System with MSP430 and MAX1452
摘 要:采用MSP430低功耗單片機(jī)和MAX1452智能芯片,設(shè)計(jì)一個(gè)溫度補(bǔ)償系統(tǒng),對(duì)由于溫度變化而引起的溫度漂移誤差進(jìn)行補(bǔ)償,達(dá)到設(shè)定的溫度值。
關(guān)鍵詞:MSP430;MAX1452;溫度補(bǔ)償。
在工業(yè)控制中,各種電子器件由于溫度變化,經(jīng)常會(huì)引起溫度漂移誤差,從而影響到電子器件的靈敏性和精確度,所以消除溫度漂移誤差就成為工業(yè)控制中的一個(gè)重要方面。本文采用MSP430單片機(jī)和MAX1452智能芯片,設(shè)計(jì)一個(gè)溫度補(bǔ)償電路系統(tǒng),達(dá)到消除溫度漂移的目的。
1 溫度補(bǔ)償系統(tǒng)的硬件設(shè)計(jì)
1.1 使用的主要器件
MSP430FE425低功耗單片機(jī)、MAX1452、MAX4051、74LVC4245A(雙電源的電平移位器)、字符型液晶顯示器LCD、32768Hz晶振等。
1.2 溫度補(bǔ)償系統(tǒng)的設(shè)計(jì)思想
針對(duì)電子器件由于溫度變化引起的溫度漂移誤差,通過(guò)MSP430低功耗單片機(jī)進(jìn)行調(diào)節(jié),補(bǔ)償溫度漂移誤差,達(dá)到預(yù)期狀態(tài)下的溫度。
1.3 溫度補(bǔ)償系統(tǒng)的工作原理
MAX1452芯片內(nèi)部有一個(gè)片內(nèi)溫度傳感器,這個(gè)傳感器測(cè)量MAX1452芯片在運(yùn)行環(huán)境下的溫度,MSP430低功耗單片機(jī)接受MAX1452芯片上的溫度數(shù)據(jù),根據(jù)已經(jīng)存儲(chǔ)在EEPROM內(nèi)的溫度數(shù)據(jù)進(jìn)行查找比較,找到相應(yīng)溫度下的溫度補(bǔ)償值,進(jìn)行粗調(diào)和細(xì)調(diào),確定用于補(bǔ)償溫度漂移誤差的精確值,然后傳送回MAX1452芯片中,使電子器件的溫度漂移誤差得到抵消,從而可以顯示理想條件下的溫度。其中,MAX4051芯片是選擇需要調(diào)節(jié)的MAX1452的編號(hào),74LVC4245芯片是選擇對(duì)應(yīng)MAX1452芯片的輸入/輸出方向。
1.4 溫度補(bǔ)償系統(tǒng)的原理圖
圖1 溫度補(bǔ)償系統(tǒng)原理框圖
1.5 溫度補(bǔ)償系統(tǒng)電路圖

圖2 溫度補(bǔ)償系統(tǒng)電路圖
2 溫度補(bǔ)償系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)主要分為5個(gè)模塊:初始化模塊、顯示模塊、中斷模塊、調(diào)節(jié)模塊和通信模塊。
2.1 初始化模塊
初始化模塊主要包含兩個(gè)子功能模塊:補(bǔ)償模塊和恢復(fù)模塊。
補(bǔ)償模塊:在上電時(shí),從主計(jì)算機(jī)下載在不同溫度下的溫度漂移誤差補(bǔ)償?shù)臄?shù)據(jù)。
恢復(fù)模塊:在復(fù)位時(shí),恢復(fù)MSP430斷電時(shí)的數(shù)據(jù)。
2.2 顯示模塊
本模塊主要包含6個(gè)子功能模塊:初始化數(shù)據(jù)模塊、拆分?jǐn)?shù)據(jù)模塊、組合數(shù)據(jù)模塊、顯示初始化模塊、功能顯示模塊、溫度顯示模塊。
初始化數(shù)據(jù)模塊:主要功能是對(duì)顯示模塊中使用的中間變量進(jìn)行初始化(即全部清零),防止上電或者數(shù)據(jù)改變后,存儲(chǔ)異常的數(shù)據(jù),從而在顯示時(shí)出現(xiàn)異常。
拆分?jǐn)?shù)據(jù)模塊:液晶顯示器LCD的顯示是逐字符顯示的,所以對(duì)于多位數(shù)據(jù)的顯示,在顯示之前必須對(duì)多位數(shù)據(jù)進(jìn)行拆分,把一個(gè)多位數(shù)據(jù)拆成幾個(gè)個(gè)位數(shù)據(jù),然后根據(jù)MSP430中液晶顯示器LCD的顯示規(guī)則進(jìn)行顯示。
組合數(shù)據(jù)模塊:在液晶顯示器LCD的某位數(shù)據(jù)發(fā)生改變后,需要將改變后的數(shù)據(jù)保存并傳送到MAX1452,進(jìn)行溫度漂移誤差補(bǔ)償。本模塊即完成對(duì)多個(gè)個(gè)位數(shù)據(jù)組合成一個(gè)多位數(shù)的功能。
顯示初始化模塊:為了防止在顯示時(shí),液晶顯示器LCD顯示異常數(shù)字或者代碼,需要對(duì)液晶顯示器LCD進(jìn)行清屏,這樣可以保證液晶顯示器LCD顯示的正確性。
功能顯示模塊:在液晶顯示器LCD的第6~4位字符顯示功能部分的數(shù)字代碼。其中,第6位字符顯示選擇的MAX1452的編號(hào)(0~8),第5位字符顯示選擇補(bǔ)償溫度偏移誤差的位置(零點(diǎn)或滿(mǎn)偏),第4位字符顯示選擇所顯示溫度的狀態(tài)(顯示狀態(tài)或修改狀態(tài))。
溫度顯示模塊:在液晶顯示器LCD的第2~0位字符顯示溫度部分的數(shù)字代碼。其中,第2位字符表示符號(hào)(只有在0°C以下才顯示“-”)。第1~0位字符顯示溫度的數(shù)值。
2.3 中斷模塊
本模塊主要包含3個(gè)子功能模塊:中斷初始化模塊、中斷狀態(tài)判別模塊、中斷狀態(tài)設(shè)置模塊。由于在MSP430單片機(jī)中,中斷是嵌套調(diào)用的,所以在各個(gè)子模塊之間沒(méi)有明確層次先后順序,僅按照出現(xiàn)的先后順序確定其之間的相互調(diào)用關(guān)系。
2.3.1 狀態(tài)轉(zhuǎn)換圖

圖3 中斷狀態(tài)轉(zhuǎn)換圖
2.3.2 中斷初始化模塊
本模塊的主要功能是在上電或者復(fù)位時(shí),清除此前的所有中斷向量和中斷標(biāo)志位,防止程序在運(yùn)行過(guò)程中造成異常。
2.3.3 中斷狀態(tài)判別模塊
在此模塊中,要對(duì)中斷進(jìn)行判斷,并且做出相應(yīng)的響應(yīng)。在“顯示狀態(tài)”下,允許“功能”中斷;在“功能調(diào)整狀態(tài)”下,允許“移位”中斷、“循環(huán)加1”中斷、“確定”中斷和“取消”中斷;在“溫度調(diào)整狀態(tài)”下,允許的中斷與“功能調(diào)整狀態(tài)”相同。對(duì)于“復(fù)位”中斷,在三個(gè)工作狀態(tài)下都允許。
2.3.4 中斷狀態(tài)設(shè)置模塊
本模塊的主要功能是在“顯示狀態(tài)”、“功能調(diào)整狀態(tài)”和“溫度調(diào)整狀態(tài)”之間改變時(shí),對(duì)溫度補(bǔ)償系統(tǒng)所正在運(yùn)行的狀態(tài)做出相應(yīng)的標(biāo)識(shí),以便在程序運(yùn)行過(guò)程中,檢測(cè)到相應(yīng)的狀態(tài),做出相應(yīng)的判斷和響應(yīng)。





