51單片機用于溫度采集與控制系統(tǒng)的設(shè)計
1 引言
針對傳統(tǒng)測溫元件(熱電偶、熱電阻)組成的溫度測量電路復(fù)雜,軟件調(diào)試繁瑣等缺點,設(shè)計基于MSC-51單片機及ADC0809的溫度采集控制系統(tǒng)。該系統(tǒng)利用單片機中空余的I/O接口,以中斷的方式實現(xiàn)溫度的實時采集與控制,充分利用CPU的資源空間,簡化了測量電路以及程序調(diào)試的復(fù)雜過程,方便了技術(shù)人員在實際中的開發(fā)和應(yīng)用。
2 硬件電路設(shè)計
2.1 系統(tǒng)組成
圖1為系統(tǒng)硬件組成框圖。外部傳感器將與溫度相對應(yīng)的電信號傳至A/D轉(zhuǎn)換器,進行模數(shù)轉(zhuǎn)換,完成后將數(shù)據(jù)傳送至單片機,單片機進行數(shù)據(jù)處理后將數(shù)據(jù)送至譯碼器,最后在數(shù)碼管上顯示。當(dāng)有鍵盤輸入控制溫度時,單片機內(nèi)部比較此時得到的A/D轉(zhuǎn)換數(shù)據(jù)與控制設(shè)定溫度,若低于設(shè)定溫度,外部裝置加熱,LED單色燈亮;反之,則不加熱,LED單色燈熄滅。
2.2 系統(tǒng)模塊設(shè)計
(1)主控制模塊 選用單片機MSC-51的最小系統(tǒng)作為主控制器件,且采用MSC-51單片機的最小主控制模塊,由于程序控制簡單,器件內(nèi)部空間足夠存儲程序,無需外擴存儲器,選用P0、P1口作為輸出接口,P2口作為輸入接口。
(2)溫度采集模塊溫度采集模塊由外部傳感器、電熱器以及ADC0809器件組成。傳感器的測量范同是0℃~50℃。在理想情況下,A/D轉(zhuǎn)換器輸出的數(shù)值D與輸入的電壓信號V之間有以下關(guān)系式成立
式中,Vmax為連接在器件Vref+引腳的“高基準(zhǔn)電壓值”;Vmin為連接在器件Vref-引腳的“低基準(zhǔn)電壓值”。DMAx為當(dāng)輸入電壓為Vmax時,接口輸出的轉(zhuǎn)換數(shù)值。Dmin為當(dāng)輸入電壓為Vmin時,接口輸出的轉(zhuǎn)換數(shù)值。
(3)溫度顯示模塊 溫度顯示模塊由8279器件與數(shù)碼管組成,8279內(nèi)部的OUTA0~OUTA3、OUTB0~OUTB3與譯碼器74LS138連接,控制七段數(shù)碼管的顯示。
(4)溫度控制模塊溫度控制模塊由鍵盤、MSC-51器件、電熱器、A/D轉(zhuǎn)換器等組成。鍵盤數(shù)值的輸入也由8279器件通過行列掃描控制,再通過MSC-51的內(nèi)部數(shù)值比較,電熱器控制溫度,進而達到保溫的目的。
2.3 系統(tǒng)硬件連接
系統(tǒng)選用MSC-51單片機作為主控制器件,進行數(shù)據(jù)的處理與傳輸。設(shè)計中將74LS273的引腳P0.4與外部電熱器的開關(guān)相連接,控制加熱。同時將 LED單色燈與74LS273的引腳P0.4口連接.以顯示外部電熱器的狀態(tài)。A/D轉(zhuǎn)換器ADC0809的引腳CS與編號為“8300H”的譯碼器輸出端連接,EOC信號接MSC-51的引腳P1.7,IN1與溫度傳感器相連接。數(shù)碼顯示控制器件8279的引腳CS與編號為“8700H”的譯碼器輸出端連接。圖2為鍵盤及數(shù)碼管顯示電路,圖3為A/D轉(zhuǎn)換電路。
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。為避免程序的存儲位置與單片機預(yù)設(shè)的存儲位置發(fā)生沖突,在各個入口地址中只放置跳轉(zhuǎn)指令。主程序的存放地址從0500H開始。
主程序以“START”開始,經(jīng)設(shè)置堆棧棧底以及各接口器件的初始化程序后.啟動定時器1開始計時,當(dāng)計數(shù)時間為50 ms時,定時器1產(chǎn)生中斷,轉(zhuǎn)入中斷子程序運行。主程序流程如圖4所示。
主程序部分代碼如下:
3.2 系統(tǒng)中斷子程序流程
圖5是中斷子程序流程,其程序步驟如下:單片機響應(yīng)定時器1的中斷,進入中斷子程序“FRESH”,設(shè)置50 ms的定時時間循環(huán)100次后,得到5 s的刷新時間,當(dāng)?shù)竭_5 s定時,隨即進人A/D轉(zhuǎn)換器的讀取數(shù)據(jù)。將A/D轉(zhuǎn)換器得到的數(shù)值與預(yù)設(shè)溫度值相比較。測量值低于預(yù)設(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)的整體性能。
評論