1 引言
TI公司的MSP430單片機(jī)以獨(dú)特的低功耗和模塊化設(shè)計(jì)贏得了設(shè)計(jì)者的青睞。新型MSP430F247其性價(jià)比相當(dāng)高,該16位單片機(jī)處理速度快,超低功耗,能節(jié)省很多資源;MSP430F247內(nèi)置I2C模塊,方便了程序編寫,大大降低了程序的出錯(cuò)率。同時(shí)更多的I/O口可以級(jí)聯(lián)更多的外圍器件,而無需使用地址數(shù)據(jù)鎖存器件,既方便了程序的編寫,也簡(jiǎn)化了硬件電路的設(shè)計(jì)。
溫度傳感器TMP275可直接輸出數(shù)字信號(hào),而無需取樣、放大、濾波和模數(shù)信號(hào)的轉(zhuǎn)換,可以直接傳輸給單片機(jī)信號(hào)處理系統(tǒng);而且輸出信號(hào)分辨率可以達(dá)到0.0625,測(cè)溫精度±0.5℃,若使用MSP430F247做控制器,可直接與其自帶的I2C模塊相連,使用方便。
2.1 總體方案設(shè)計(jì)
該測(cè)溫儀的硬件結(jié)構(gòu)由溫度測(cè)量、核心控制電路、顯示電路和電源電路等4部分組成??傮w方案框圖如圖l所示。
2.2 單元模塊設(shè)計(jì)
2.2.1 核心控制電路
核心控制電路采用MSP4313F247完成數(shù)據(jù)的測(cè)量和處理,實(shí)現(xiàn)溫度測(cè)量和控制輸出顯示功能,電路如圖2所示,其中的P3.1.P3.2分別是MSP430F247自帶I2C模塊的SCL和SDA,可以直接連接TMP275,不用再模擬I2C口,應(yīng)注意接上拉電阻。
圖2 核心控制電路
2.2.2 溫度測(cè)量
測(cè)溫部件采用TI公司生產(chǎn)的溫度傳感器TMP275,以數(shù)字形式用I2C總線向CPU傳輸數(shù)據(jù),圖3給出溫度測(cè)量電路。
圖3 溫度測(cè)量電路
TMP275是一個(gè)I2C總線的溫度傳感器,測(cè)溫范圍一40℃~+125℃,在一20℃~+100℃之間最大誤差僅為±0.5℃。
TMP275內(nèi)部有指針寄存器、配置寄存器、溫度值寄存器、高溫和低溫限制寄存器等5個(gè)寄存器。
指針寄存器是通過P1,P0識(shí)別哪個(gè)寄存器來響應(yīng)讀寫命令。其格式字如表1所示,指針地址如表2所示。
配置寄存器是一個(gè)8位可讀寫的寄存器,用來存儲(chǔ)TMP275的工作模式控制字,詳細(xì)資料請(qǐng)參見參考文獻(xiàn)。
溫度寄存器是12位補(bǔ)碼只讀寄存器,用來存儲(chǔ)最近變換得到的數(shù)據(jù),存儲(chǔ)形式與TI公司的TMPl00和DALLAS公司的DSl8820相同。該寄存器通過2個(gè)字節(jié)讀寫數(shù)據(jù),如表3,表4所示,且先傳輸高8位再傳輸?shù)?位,其中第一個(gè)字節(jié)8位有效,第二個(gè)字節(jié)只有高4位有效。上電和復(fù)位后讀出的是0°。圖4和圖5分別是I2C數(shù)據(jù)寫、讀時(shí)序圖。
圖4 I2C數(shù)據(jù)寫時(shí)序
圖5 I2C數(shù)據(jù)讀時(shí)序
2.2.3 顯示電路
圖6給出顯示電路,顯示部分主要由3個(gè)共陰數(shù)碼管組成,以達(dá)林頓集成電路ULN2003和74LS06作為反向驅(qū)動(dòng)。
圖6 顯示電路
2.2.4 電源電路
該裝置的電源由兩部分組成:由三端穩(wěn)壓器LM7805提供的+5 V。主要給ULN2003,74LS06以及溫度傳感器TMP275供電:由TI公司專用電平轉(zhuǎn)換器TPS76033提供的3.3 V,主要提供MSP430F247單片機(jī)工作電源,如圖7所示。
圖7 電源電路
3 程序流程圖及部分核心程序代碼
3.1 主程序
程序開始頭文件加載、端口及各種寄存器初始化,然后進(jìn)入顯示測(cè)溫程序,如圖8所示。
圖8 主程序流程圖
3.2 測(cè)溫子程序
3.2.1 測(cè)溫初始化子程序
此部分程序分別對(duì)MSP430F247自帶的I2C模塊相關(guān)的寄存器進(jìn)行設(shè)置:①設(shè)P3.1、P3.2為外部管腳,使能SW Reset;②選擇I2C模塊操作模式為主機(jī),同步模式;③選擇時(shí)鐘,復(fù)位R/W;④設(shè)置從機(jī)地址,清除SW中斷標(biāo)志,使能Rx中斷;⑤設(shè)置接收字節(jié)計(jì)數(shù)器是2,目的是讀2個(gè)字節(jié)的溫度值;⑥發(fā)送I2C開始命令;⑦接收2個(gè)字節(jié)的溫度值;⑧發(fā)送I2C停止命令。
3.2.2讀溫度高、低字節(jié)數(shù)據(jù)子程序
3.2.3 溫度值處理子程序
圖9給出測(cè)溫子程序流程圖。
圖9 測(cè)溫子程序流程圖
4 結(jié)語
測(cè)溫儀設(shè)計(jì)系統(tǒng)中,對(duì)于數(shù)字溫度傳感器TMP275,采用了模塊化的設(shè)計(jì)理念,設(shè)計(jì)思路明朗,搭建系統(tǒng)框架比較容易,尤其是MSP430F247本身帶有I2C模塊,不必再用一般的2個(gè)端口來模擬I2C,程序編寫簡(jiǎn)單,在使用其他的I2C器件時(shí)也可以參考,移植使用。
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635407 -
溫度傳感器
+關(guān)注
關(guān)注
48文章
2940瀏覽量
156081 -
低功耗
+關(guān)注
關(guān)注
10文章
2403瀏覽量
103713
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論