由于高新技術(shù)的不斷發(fā)展,儀器儀表的微型化,數(shù)字化已得到實現(xiàn)。90年代高精確度、高性能、多功能儀器儀表都已經(jīng)采用微處理器件。而作為工業(yè)控制和自動化領(lǐng)域的各種新技術(shù)、新方法、新產(chǎn)品的發(fā)展趨勢和顯著標(biāo)志智能化是自動化技術(shù)當(dāng)前和今后發(fā)展的動向之一。本文采用AT89C52單片機(jī)開發(fā)了鍵盤、液晶顯示器、多路溫度檢測來實現(xiàn)溫度的采集、溫度的文字顯示和圖形顯示三個系統(tǒng)。實驗證明,采用AT89C52開發(fā)的系統(tǒng)性能可靠、成本較低、軟件設(shè)計靈活簡單、硬件接口功能豐富,具有擴(kuò)展性好、通用性強(qiáng)等優(yōu)點(diǎn)。
1 元器件的選擇
1.1 核心芯片的選擇
AT89C52單片機(jī)價格低廉,輸入輸出口豐富,無需再另外擴(kuò)展,簡化了外圍電路。256 B內(nèi)部RAM,8 kB內(nèi)部ROM,程序存儲空間大,防止由于字模過多而造成存儲空間不夠。另外由于前期開發(fā)需要多次的寫入、擦除,而89C52可以完成1 000次寫/擦,故滿足要求。
1.2 模數(shù)轉(zhuǎn)換芯片的選擇
ADC0809是8位的A/D轉(zhuǎn)換芯片,為逐次逼近型。由單一的+5 V電源供電,片內(nèi)帶有所存功能的8路模擬多路開關(guān),可對8路0~5 V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換,完成一次轉(zhuǎn)換約需100μs;片內(nèi)的地址譯碼和鎖存電路,將單片機(jī)的三條地址信號譯碼生成選擇八路模擬通道。輸出具有TTL三態(tài)鎖存緩沖器,可以直接接到單片機(jī)的數(shù)據(jù)線上。
1.3 溫度傳感器的選擇
溫度傳感器類型很多,目前出現(xiàn)的石英體溫度傳感器如AD590具有很高的穩(wěn)定性、準(zhǔn)確度和良好的線性,抗干擾能力強(qiáng)。單總線數(shù)字型的溫度傳感器DS18B20直接產(chǎn)生溫度數(shù)字信號,不需要A/D轉(zhuǎn)換,準(zhǔn)確度、穩(wěn)定性都相當(dāng)高,但這些傳感器的適用范圍不廣,不利于以后其他功能的擴(kuò)展。所以本次采用TREND公司的鉑熱電阻溫度傳感器T/PI/HT,傳感器的工作電壓為24 V,輸出電流為4~20 mA,外接250 Ω精確電阻用于提取電壓時進(jìn)行A/D轉(zhuǎn)換,ADC0809的輸入電壓在1~5 V范圍內(nèi)對應(yīng)的測量溫度范圍為-10~+160℃。
2 AT89C52的設(shè)計應(yīng)用
2.1 硬件設(shè)計
根據(jù)設(shè)計儀表的功能要求,本設(shè)計要完成以下功能:
(1)數(shù)字化測量,顯示及報警裝置;
(2)顯示指定位置溫度的數(shù)值及其動態(tài)曲線圖;
(3)多路模擬數(shù)據(jù)的采集、處理;
(4)溫度值字體的放縮。
系統(tǒng)結(jié)構(gòu)圖如圖1所示。
2.2 軟件設(shè)計
用C語言進(jìn)行單片機(jī)程序設(shè)計,采用結(jié)構(gòu)化程序設(shè)計思想:在總體設(shè)計中采用“自頂而下”(TOP-DOWN)的方法,在程序設(shè)計中采用模塊化編程。把整體任務(wù)分成一個個子任務(wù),子任務(wù)再分子任務(wù),逐層細(xì)分,每個子程序都完成其規(guī)定的功能,明確輸入輸出。將這些程序連接起來就構(gòu)成整體流程圖。模塊化編程,每個模塊結(jié)構(gòu)完整,相互獨(dú)立的程序段。如液晶模塊的寫控制指令、寫顯示數(shù)據(jù)、清屏;數(shù)據(jù)處理中的工程量轉(zhuǎn)換,均值濾波等。這些程序可以任意調(diào)用、修改,使整個程序結(jié)構(gòu)清晰,組合靈活,維護(hù)調(diào)試方便。
2.2.1 主流程圖
主流程圖如圖2所示。主要包括程序初始化部分,主要完成的任務(wù)是初始化液晶顯示屏,初始化單片機(jī)各口狀態(tài)和設(shè)初始閾值,檢測位置為第一路;按確定鍵后系統(tǒng)開始工作,顯示第一路位置的溫度及其動態(tài)顯示圖的主頁面;當(dāng)按下設(shè)置鍵時,液晶屏幕顯示一個選擇界面,可選擇設(shè)置檢測位置,檢測位置閾值;通過上下鍵可進(jìn)行選擇,選擇界面的箭頭指向設(shè)置位置時,按確定就可進(jìn)入位置的設(shè)置,設(shè)置完畢后,確定健返回;直接再按確定鍵可顯示放大的溫度字體。
2.2.2 測溫流程圖和曲線顯示流程
啟動ADC0809時需根據(jù)啟動的檢測位置不同查表選用不同的通道地址表;設(shè)定ADC0809轉(zhuǎn)換時間,采用延時等待后,再讀取它的轉(zhuǎn)換數(shù)據(jù);根據(jù)溫度傳感器的量程得出轉(zhuǎn)換公式;為了便于顯示,需要把各位數(shù)分離,分離出了百位數(shù)、十位、個位、十分位和百分位;建立一個0~9的數(shù)字字模表,取模顯示。溫度顯示和曲線顯示流程圖分別如圖3和圖4所示。
2.2.3 閾值設(shè)置流程圖
閾值溫度ft為外部變量,在整個程序中都有效,每按一次“上”鍵ft=ft+1,按“下”鍵時ft=ft-1,檢測位置的設(shè)定與其相似。閾值設(shè)置流程圖如圖5所示。
3 結(jié)語
本文對AT89c52單片機(jī)在智能溫度檢測中的應(yīng)用進(jìn)行了設(shè)計研究,該系統(tǒng)還可方便接人其他模擬量傳感器,功能擴(kuò)展性好。液晶模塊顯示和鍵盤操作設(shè)置系統(tǒng)參數(shù),人機(jī)交互界面好。檢測數(shù)據(jù)準(zhǔn)確可靠,線性度好,降低了系統(tǒng)成本,增強(qiáng)了系統(tǒng)的通用性。軟件設(shè)計采用C語言,可移植性好,結(jié)構(gòu)嚴(yán)謹(jǐn),開發(fā)速度快,大大減少了軟件開發(fā)的時間,具有一定的實用價值。