溫度采集與控制系統(tǒng)的設(shè)計(jì)
1 引言
針對(duì)傳統(tǒng)測(cè)溫元件(熱電偶、熱電阻)組成的溫度測(cè)量電路復(fù)雜,軟件調(diào)試繁瑣等缺點(diǎn),設(shè)計(jì)基于MSC-51單片機(jī)及ADC0809的溫度采集控制系統(tǒng)。該系統(tǒng)利用單片機(jī)中空余的I/O接口,以中斷的方式實(shí)現(xiàn)溫度的實(shí)時(shí)采集與控制,充分利用CPU的資源空間,簡(jiǎn)化了測(cè)量電路以及程序調(diào)試的復(fù)雜過程,方便了技術(shù)人員在實(shí)際中的開發(fā)和應(yīng)用。
2 硬件電路設(shè)計(jì)
2.1 系統(tǒng)組成
圖1為系統(tǒng)硬件組成框圖。外部傳感器將與溫度相對(duì)應(yīng)的電信號(hào)傳至A/D轉(zhuǎn)換器,進(jìn)行模數(shù)轉(zhuǎn)換,完成后將數(shù)據(jù)傳送至單片機(jī),單片機(jī)進(jìn)行數(shù)據(jù)處理后將數(shù)據(jù)送至譯碼器,最后在數(shù)碼管上顯示。當(dāng)有鍵盤輸入控制溫度時(shí),單片機(jī)內(nèi)部比較此時(shí)得到的A/D轉(zhuǎn)換數(shù)據(jù)與控制設(shè)定溫度,若低于設(shè)定溫度,外部裝置加熱,LED單色燈亮;反之,則不加熱,LED單色燈熄滅。
2.2 系統(tǒng)模塊設(shè)計(jì)
(1)主控制模塊 選用單片機(jī)MSC-51的最小系統(tǒng)作為主控制器件,且采用MSC-51單片機(jī)的最小主控制模塊,由于程序控制簡(jiǎn)單,器件內(nèi)部空間足夠存儲(chǔ)程序,無需外擴(kuò)存儲(chǔ)器,選用P0、P1口作為輸出接口,P2口作為輸入接口。
(2)溫度采集模塊溫度采集模塊由外部傳感器、電熱器以及ADC0809器件組成。傳感器的測(cè)量范同是0℃~50℃。在理想情況下,A/D轉(zhuǎn)換器輸出的數(shù)值D與輸入的電壓信號(hào)V之間有以下關(guān)系式成立
式中,Vmax為連接在器件Vref+引腳的“高基準(zhǔn)電壓值”;Vmin為連接在器件Vref-引腳的“低基準(zhǔn)電壓值”。Dmax為當(dāng)輸入電壓為Vmax時(shí),接口輸出的轉(zhuǎn)換數(shù)值。Dmin為當(dāng)輸入電壓為Vmin時(shí),接口輸出的轉(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ù)值比較,電熱器控制溫度,進(jìn)而達(dá)到保溫的目的。
2.3 系統(tǒng)硬件連接
系統(tǒng)選用MSC-51單片機(jī)作為主控制器件,進(jìn)行數(shù)據(jù)的處理與傳輸。設(shè)計(jì)中將74LS273的引腳P0.4與外部電熱器的開關(guān)相連接,控制加熱。同時(shí)將LED單色燈與74LS273的引腳P0.4口連接.以顯示外部電熱器的狀態(tài)。A/D轉(zhuǎn)換器ADC0809的引腳CS與編號(hào)為“8300H”的譯碼器輸出端連接,EOC信號(hào)接MSC-51的引腳P1.7,IN1與溫度傳感器相連接。數(shù)碼顯示控制器件8279的引腳CS與編號(hào)為“8700H”的譯碼器輸出端連接。圖2為鍵盤及數(shù)碼管顯示電路,圖3為A/D轉(zhuǎn)換電路。
3 軟件設(shè)計(jì)
軟件采用MSC-51的單片機(jī)匯編語言編寫,運(yùn)用單片機(jī)內(nèi)部定時(shí)器的中斷實(shí)現(xiàn)中斷程序的調(diào)用以及5 s刷新數(shù)據(jù)的功能,從而大大節(jié)約CPU的資源,提高了工作效率。
3.1 主程序流程
在主程序開始之前設(shè)置偽指令,方便程序編寫時(shí)查找各個(gè)器件地址及初始化命令。主程序中設(shè)置定時(shí)器1的中斷程序,其定時(shí)產(chǎn)生中斷并進(jìn)入中斷子程序。主程序入口地址是0000H,中斷入口地址是001BH。為避免程序的存儲(chǔ)位置與單片機(jī)預(yù)設(shè)的存儲(chǔ)位置發(fā)生沖突,在各個(gè)入口地址中只放置跳轉(zhuǎn)指令。主程序的存放地址從0500H開始。
主程序以“START”開始,經(jīng)設(shè)置堆棧棧底以及各接口器件的初始化程序后.啟動(dòng)定時(shí)器1開始計(jì)時(shí),當(dāng)計(jì)數(shù)時(shí)間為50 ms時(shí),定時(shí)器1產(chǎn)生中斷,轉(zhuǎn)入中斷子程序運(yùn)行。主程序流程如圖4所示。
主程序部分代碼如下:
3.2 系統(tǒng)中斷子程序流程
圖5是中斷子程序流程,其程序步驟如下:?jiǎn)纹瑱C(jī)響應(yīng)定時(shí)器1的中斷,進(jìn)入中斷子程序“FRESH”,設(shè)置50 ms的定時(shí)時(shí)間循環(huán)100次后,得到5 s的刷新時(shí)間,當(dāng)?shù)竭_(dá)5 s定時(shí),隨即進(jìn)人A/D轉(zhuǎn)換器的讀取數(shù)據(jù)。將A/D轉(zhuǎn)換器得到的數(shù)值與預(yù)設(shè)溫度值相比較。測(cè)量值低于預(yù)設(shè)溫度則啟動(dòng)電熱器,L=ED亮;反之,繼續(xù)下一步。數(shù)碼管初始化,并將A/D轉(zhuǎn)換后的十六進(jìn)制數(shù)值轉(zhuǎn)換為十進(jìn)制數(shù)值并顯示輸出。
4 結(jié)束語
該方案具有節(jié)約接口資源,CPU利用率高,執(zhí)行速度快,簡(jiǎn)單易行等特點(diǎn),具有推廣價(jià)值。但基于系統(tǒng)本身及器件轉(zhuǎn)換中存在誤差的缺點(diǎn),該設(shè)計(jì)還需進(jìn)一步提高控制精度,減小誤差,從而提高系統(tǒng)的整體性能。