1 引言 TI公司的MSP430單片機以獨特的低功耗和模塊化設計贏得了設計者的青睞。新型MSP430F247其性價比相當高,該16位單片機處理速度快,超低功耗,能節省很多資源;MSP430F247內置I2C模塊,方便了程序編寫,大大降低了程序的出錯率。同時更多的I/O口可以級聯更多的外圍器件,而無需使用地址數據鎖存器件,既方便了程序的編寫,也簡化了硬件電路的設計。 溫度傳感器TMP275可直接輸出數字信號,而無需取樣、放大、濾波和模數信號的轉換,可以直接傳輸給單片機信號處理系統;而且輸出信號分辨率可以達到0.062 5,測溫精度±O.5℃,若使用MSP430F247做控制器,可直接與其自帶的I2C模塊相連,使用方便。 2 電路設計 2.1 總體方案設計 該測溫儀的硬件結構由溫度測量、核心控制電路、顯示電路和電源電路等4部分組成。總體方案框圖如圖l所示。 2.2 單元模塊設計 2.2.1 核心控制電路 核心控制電路采用MSP4313F247完成數據的測量和處理,實現溫度測量和控制輸出顯示功能,電路如圖2所示,其中的P3.1.P3.2分別是MSP430F247自帶I2C模塊的SCL和SDA,可以直接連接TMP275,不用再模擬I2C口,應注意接上拉電阻。 2.2.2 溫度測量 測溫部件采用TI公司生產的溫度傳感器TMP275,以數字形式用I2C總線向CPU傳輸數據,圖3給出溫度測量電路。 TMP275是一個I2C總線的溫度傳感器,測溫范圍一40℃"+125℃,在一20℃"+100℃之間最大誤差僅為±0.5℃。 TMP275內部有指針寄存器、配置寄存器、溫度值寄存器、高溫和低溫限制寄存器等5個寄存器。 指針寄存器是通過P1,P0識別哪個寄存器來響應讀寫命令。其格式字如表1所示,指針地址如表2所示。 配置寄存器是一個8位可讀寫的寄存器,用來存儲TMP275的工作模式控制字,詳細資料請參見參考文獻。 溫度寄存器是12位補碼只讀寄存器,用來存儲最近變換得到的數據,存儲形式與TI公司的TMPl00和DALLAS公司的DSl8820相同。該寄存器通過2個字節讀寫數據,如表3,表4所示,且先傳輸高8位再傳輸低8位,其中第一個字節8位有效,第二個字節只有高4位有效。上電和復位后讀出的是0°。圖4和圖5分別是I℃數據寫、讀時序圖。 2.2.3 顯示電路 圖6給出顯示電路,顯示部分主要由3個共陰數碼管組成,以達林頓集成電路ULN2003和74LS06作為反向驅動。 2.2.4 電源電路 該裝置的電源由兩部分組成:由三端穩壓器LM7805提供的+5 V。主要給ULN2003,74LS06以及溫度傳感器TMP275供電:由TI公司專用電平轉換器TPS76033提供的3.3 V,主要提供MSP430F247單片機工作電源,如圖7所示。 3 程序流程圖及部分核心程序代碼 3.1 主程序 程序開始頭文件加載、端口及各種寄存器初始化,然后進入顯示測溫程序,如圖8所示。 3.2 測溫子程序 3.2.1 測溫初始化子程序 此部分程序分別對MSP430F247自帶的I2C模塊相關的寄存器進行設置:①設P3.1、P3.2為外部管腳,使能SW Reset;②選擇I2C模塊操作模式為主機,同步模式;③選擇時鐘,復位R/W;④設置從機地址,清除SW中斷標志,使能Rx中斷;⑤設置接收字節計數器是2,目的是讀2個字節的溫度值;⑥發送I2C開始命令;⑦接收2個字節的溫度值;⑧發送I2C停止命令。 |