溫度采集與控制系統(tǒng)的設(shè)計
3 軟件設(shè)計
軟件采用MSC-51的單片機匯編語言編寫,運用單片機內(nèi)部定時器的中斷實現(xiàn)中斷程序的調(diào)用以及5 s刷新數(shù)據(jù)的功能,從而大大節(jié)約CPU的資源,提高了工作效率。
3.1 主程序流程
在主程序開始之前設(shè)置偽指令,方便程序編寫時查找各個器件地址及初始化命令。主程序中設(shè)置定時器1的中斷程序,其定時產(chǎn)生中斷并進入中斷子程序。主程序入口地址是0000H,中斷入口地址是001BH。為避免程序的存儲位置與單片機預設(shè)的存儲位置發(fā)生沖突,在各個入口地址中只放置跳轉(zhuǎn)指令。主程序的存放地址從0500H開始。
主程序以“START”開始,經(jīng)設(shè)置堆棧棧底以及各接口器件的初始化程序后.啟動定時器1開始計時,當計數(shù)時間為50 ms時,定時器1產(chǎn)生中斷,轉(zhuǎn)入中斷子程序運行。主程序流程如圖4所示。
主程序部分代碼如下:
3.2 系統(tǒng)中斷子程序流程
圖5是中斷子程序流程,其程序步驟如下:單片機響應定時器1的中斷,進入中斷子程序“FRESH”,設(shè)置50 ms的定時時間循環(huán)100次后,得到5 s的刷新時間,當?shù)竭_5 s定時,隨即進人A/D轉(zhuǎn)換器的讀取數(shù)據(jù)。將A/D轉(zhuǎn)換器得到的數(shù)值與預設(shè)溫度值相比較。測量值低于預設(shè)溫度則啟動電熱器,L=ED亮;反之,繼續(xù)下一步。數(shù)碼管初始化,并將A/D轉(zhuǎn)換后的十六進制數(shù)值轉(zhuǎn)換為十進制數(shù)值并顯示輸出。
4 結(jié)束語
該方案具有節(jié)約接口資源,CPU利用率高,執(zhí)行速度快,簡單易行等特點,具有推廣價值。但基于系統(tǒng)本身及器件轉(zhuǎn)換中存在誤差的缺點,該設(shè)計還需進一步提高控制精度,減小誤差,從而提高系統(tǒng)的整體性能。
評論