基于MSP430單片機(jī)的智能溫度檢測系統(tǒng)設(shè)計(jì)
MSP430系列是一種具有集成度高、功能豐富、功耗低等技術(shù)特點(diǎn)的16位單片機(jī), 它采用c語言完成程序設(shè)計(jì), 大大提高了開發(fā)調(diào)試的工作效率; 同時(shí)用c語言所產(chǎn)生的文檔資料也容易理解, 便于移植。
3. 1 下位機(jī)編程
系統(tǒng)程序設(shè)計(jì)包括主程序, 復(fù)位子程序, 報(bào)警和分辨率設(shè)置子程序, 溫度轉(zhuǎn)換子程序, 讀溫度子程序, 計(jì)算溫度和顯示溫度子程序等等。MSP430F149對DS18B20的訪問流程是: 先對DS18B20初始化,再進(jìn)行ROM 操作命令, 最后才能對存儲器RAM 操作。程序流程圖如圖4 所示。下面就簡要介紹MSP430系列單片機(jī)C 語言的幾個(gè)主要子程序。
圖4 程序流程圖
3. 1. 1 復(fù)位子程序
該程序的主要功能是負(fù)責(zé)DS18B20的復(fù)位, 以方便進(jìn)行以后的操作。復(fù)位要求主CPU 將數(shù)據(jù)線下拉500微秒, 然后釋放, DS18B20收到信號后等待16~ 60微秒左右, 后發(fā)出60 ~ 240微秒的存在低脈沖, 主CPU 收到此信號表示復(fù)位成功。
bit ResetDS18B20( )
{ unsigned char ;i
bit flag;
DS18B20= 0:
for( i= 0; i 200; i+ + ) ; / /保持低電平500微秒
DS18B20= 1:
for( i= O; i 30; i+ + ) ; / /等60微秒
flag= DS18B20; / /取DS18B20狀態(tài)
for( i= 0; i 100; i+ + ) ; / /等300微秒
return flag; / / flag= 0復(fù)位成功, flag= 1, 復(fù)位不成功
}
評論