基于MSP430單片機和DS18B20的數(shù)字溫度計
3.2 DS1SB20與單片機之間的通信命令和時序
DS18B20工作過程中的協(xié)議如下:
1)初始化;
2)ROM操作命令;
3)存儲器操作命令;
4)時序。
主機使用時間隙(time slots)讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。
由于DS18B20采用單總線協(xié)議方式,即在1根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對MSP430F1121A單片機來說,硬件上并不支持單總線協(xié)議,因此,必須采用軟件方法模擬單總線的協(xié)議時序,完成對DS18B20的訪問。
DS18B20在1根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。
該協(xié)議定義了初始化時序、讀時序、寫時序。
3.3 溫度數(shù)據(jù)的計算處理方法
從DS18B20讀取出的二進制值必須先轉(zhuǎn)換成十進制值,才能用于字符的顯示。因為DS18B20的轉(zhuǎn)換精度為9~12位可選的,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時,溫度寄存器里的值是以0.062 5為步進的,即溫度值為寄存器里的二進制值乘以0.062 5,就是實際的十進制溫度值。一個十進制值和二進制值之間有很明顯的關(guān)系,就是把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個字節(jié),這個字節(jié)的二進制值化為十進制值后,就是溫度值的小數(shù)部分。小數(shù)部分因為是半個字節(jié),所以二進制值范圍是0~F,轉(zhuǎn)換成了十進制小數(shù)值就是0.062 5的倍數(shù)(0~15倍),這樣需要4位的數(shù)碼管來顯示小數(shù)部分,實際應(yīng)用可以采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1℃。
4 系統(tǒng)調(diào)試
4.1 硬件檢測和調(diào)試
硬件調(diào)試比較簡單,在系統(tǒng)設(shè)計的過程中,由于主控制器(MSP430F1121A單片機)部分是集成在利爾達單片機技術(shù)有限公司MSP430仿真器FET上的。因此主要是對DS18B20測溫模塊以及LED數(shù)字顯示模塊進行硬件檢測和調(diào)試。
4.2 軟件調(diào)試
本程序采用單片機MSP430的語言編寫,用IAR system公司開發(fā)的IAR Embedded Workbench for MSP430 Kickstart編譯器編程調(diào)試。進入IAR Embedded Workbench集成環(huán)境,然后在該環(huán)境下建立一個項目,進入源程序編輯界面。在這里進行源程序的編輯,編譯結(jié)束后,源文件編譯通過之后,將生成目標(biāo)代碼。最后進入CSFY調(diào)試環(huán)境,如圖6所示。本文引用地址:http://m.butianyuan.cn/article/172996.htm
在CSPY環(huán)境中,分別進行主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序、顯示數(shù)據(jù)刷新等子程序的編程及調(diào)試,通過觀察寄存器的窗口來判斷從DS18B20數(shù)字溫度計讀取的效據(jù)是否準(zhǔn)確。由于該數(shù)字溫度測試儀的時序要求比較嚴,把握讀寫時隙才能準(zhǔn)確地測量出溫度數(shù)值。因此在CSPY工作環(huán)境下,通過觀察程序運行的結(jié)果來斷定程序的正確以及準(zhǔn)確度。在出現(xiàn)錯誤時返回IAR Embedded Workb-ench工作界面,重新對程序進行編寫和修改。
4.3 整體調(diào)試
通過硬件和軟件的調(diào)試后,連接各個模塊。由于主控制器模塊采用MSP430仿真調(diào)試器FET,其集成有MSP430F1121A單片機以及與其相關(guān)的外圍模塊,通過計算機串口連接并由計算機的串口供電(實際工作電壓為2.5 V),進入相關(guān)的調(diào)試控制程序后對單片機進行管理和操作。
溫度測量以及顯示模塊焊接在同一塊電路板上,由直流穩(wěn)壓電源提供3 V的電壓。通過數(shù)據(jù)線將3個主要模塊連接,DS18B20數(shù)字溫度計的數(shù)據(jù)端與MSP430F1121A單片機的散據(jù)端連接。為了保證溫度數(shù)據(jù)的正常讀取,必須將二者的接地端短接,以保證其電勢相等。接通電源后,由計算機進入MSP430調(diào)試環(huán)境,運行程序,這時LED數(shù)碼管開始顯示“00”(程序的開始復(fù)位信號),然后顯示由DS18B20檢測的溫度數(shù)值。整體的調(diào)試過程必須一直調(diào)試到能正常的顯示溫度值,而且在有溫度變化時顯示溫度能改變就基本完成。
5 結(jié)論
在基于MSP430單片機的溫度測試儀的設(shè)計中。在低功耗設(shè)計方面,首先是選擇低功耗元件,從單片機、傳感器和LED顯示器及其驅(qū)動電路,都盡量選擇市場上功耗最低的產(chǎn)品;其次在硬件電路設(shè)計方面,降低系統(tǒng)工作電壓;再次,是軟件設(shè)計融入低功耗思想,核心的方法就是在最短的時間內(nèi)把需要的工作完成,然后立即進入休息狀態(tài),不論在工作還是休息狀態(tài),立即關(guān)閉不必要的模塊,以最大限度地降低功耗,例如,采樣間歇狀態(tài)時,關(guān)閉單片機內(nèi)部除看門狗定時器之外的所有模塊,切斷傳感器和放大器的供電,將外部存儲器置于休眠狀態(tài),只有顯示器處于活動狀態(tài),最大限度地降低了功耗。這些低功耗的措施起到了良好的效果,成功地控制了MSP430單片機的溫度測試儀的功耗,使用MSP430為核心構(gòu)成的便攜式系統(tǒng),MSP430單片機的溫度測試儀電池的使用壽命可以比基于一般CPU的系統(tǒng)延長3~5倍。在降低成本的措施方面,滿足性能的前提下,盡量選擇低成本元件,顯示部分采用了CD4511進行驅(qū)動顯示,溫度測量采用DS18B20數(shù)字溫度傳感器,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),在一根通信線上可以掛多個數(shù)字溫度測試儀,十分方便。相比其他的溫度傳感器,該系統(tǒng)設(shè)計具有結(jié)構(gòu)簡單、分辨率高、可調(diào)節(jié)的特點,且無需硬件同步時鐘控制。
評論