陳 偉
(江蘇海洋大學 電子工程學院,江蘇 連云港 222005)
裝置采用STC89C52RC單片機實現溫度的采集和控制,用DS18B20溫度傳感器進行溫度數據采集,并將其輸入到AT89S52中,通過液晶顯示器(Liquid Crystal Display,LCD)顯示溫度數據。
采用STC89C52RC作為核心,利用常見的ADC0832實現信號的模數變換,控制電阻器進行加熱,調節水閥控制水位。該方法具有操作簡單、實用以及設備費用低等優點。然而,該方案的硬件開銷較大,易受外部因素影響,工作不穩定。該系統采用STC89C52RC單片機,實現多種控制算法和邏輯控制,具有很大的靈活性。
系統使用STC89C52RC,高性能CMOS8位單片機,具有8K可編程Flash存儲器,在原有MCS-51內核的基礎上進行大量優化,具備51MCS-51不具備的諸多性能優勢,使得整個控制系統應用更加靈活[1]。
DS18B20溫度傳感器采用1種獨特的單總線技術,具有線路簡單、節省輸入/輸出(Input/Output,I/O)端口、模數(Analog-to-Digital,A/D)變換以及與單片機直接相連等優勢[2]。此外,它的溫度測量范圍為-125~-55 ℃。DS18B20與傳統的溫度采集電路相比,只進行1組溫度采集即可獲得溫度,并用程序將溫度數據轉化為9~12位的信號,省去了溫度采集、信號放大、濾波以及A/D轉換等煩瑣的程序,降低了因器件數量過多造成的不良影響。此外,DS18B20使用1種數字式溫度計,只使用1根導線即可進行數據傳輸,大大簡化了測量過程,提高了測量精度。
采用LCD1602顯示模塊,電路簡單,顯示的內容更加清楚且直觀,易于連接,節約I/O端口[3]。LCD顯示器構造如圖1所示。

圖1 LCD顯示器
STC89C52RC是CMOS 8位微控制器,采用Flash ROM技術,性能優良,功率消耗小。STC89C52RC是Atmel公司采用高密度和非揮發性存儲技術設計的1款單片機,適用于MCS-51,工作電壓為3 V,晶體振蕩頻率為24 MHz[4]。片上Flash可將程序存儲器和編程應用到系統中。因其8位中央處理器(Central Processing Unit,CPU)和可編程Flash的靈活性,在大多數嵌入式系統中得到了廣泛應用[5]。
3.1.1 復位模塊
重置回路的核心是電解電容器C3。在電容器充電的瞬間,電壓不發生突變,電容器兩端的壓差基本保持不變,復位(Restart,RST)節點的電壓接近+5 V,由單片機重置高電平。隨著電流的增加,電容逐漸充滿,RST節點的電壓逐漸降低,直到接近0 V,這時單片機正常工作。按鍵開關S1是1個重置開關,按下后利用電容特性將電容縮小,以達到放電的目的。當按鍵被打開時,RST節點的電壓接近+5 V,由單片機進行復位,使按鈕重置。
3.1.2 STC89C52RC單片機晶振模塊
電容C1和電容C2輔助X2產生時鐘信號,晶振模塊產生12 MHz的正弦波。
3.1.3 MCU最小系統
微控制單元(Microcontroller Unit,MCU)的40腳與直流穩壓器+5 V相連,20管腳與GND相連,31管腳的電壓為+5 V,與復位和晶體振蕩組件一起實現MCU最小化,如圖2所示。

圖2 MCU最小系統
該模塊采用LM7805芯片和直接插入式TO-220芯片,輸出電壓穩定在+5 V。內置過載、過熱以及過流等安全功能。安裝散熱器后,模塊的輸出電流為1 A。
直流穩壓器電源組件:通過JP1接入+10 V以上的供電電壓,經過C1和C2濾波,端正電壓穩壓器LM7805的1腳輸入,2個引腳連接到電源。3個+5 V直流穩壓電源由C3、C4以及C4構成,DS1為功率指示,R1為限流電阻。DS1的指示燈亮,表示電路正常運行。直流穩壓器電源組件如圖3所示,直流電壓穩定。

圖3 直流穩壓器電源組件
模塊的主體部分是LCD1602液晶顯示器。LCD1602控制線路E、RS、R/W以及8條數據線連接到單片機。VO引腳連接合適大小的電阻器,通過調整液晶對比度來調整終端,從而實現室內溫度的實時顯示和設置。
LCD的電路設計如圖4所示。LCD1引腳16與引腳1接地,引腳15與引腳2相連,引腳4~引腳6與P2引腳相耦合,引腳7~引腳14與P0端口相耦合。LCD1602液晶顯示器的硬件結構,如圖4所示。

圖4 LCD1602液晶顯示器
溫度傳感器采用DS18B20。該溫度傳感器模塊電路的電源與1個傳感器相連,包含2個I/O接口、3個引腳接地。通過檢測外部溫度,U4向單片機輸出相應的溫度數值并給予顯示。溫度檢測模塊設計如圖5所示。

圖5 溫度檢測模塊設計
該模塊電路采用關鍵的開關元件。S2連接到P1.1端口,S3連接到P1.2端口。按下按鈕時,MCU的I/O端口會下拉到0 V。松開鍵時,MCU的I/O端口又會恢復到高電平。通過程序判定I/O端口的狀態,可完成門限設定。
該模塊采用水位檢測傳感器和ADC0832變換芯片對其進行測試。U3的引腳1與P13端口相連,引腳5和引腳6與P15相連,引腳7與P14端口相連。U3將液面的模擬信號轉換成數字信號,由MCU對該信號進行處理,得到水壓值。位檢測模塊如圖6所示。

圖6 位檢測模塊
水溫控制模塊的核心器件是繼電器和三極管。利用三極管的截止與飽和狀態,控制繼電器的閉合,實現加熱模塊的電路通斷和水溫控制。水溫控制模塊設計如圖7所示。

圖7 水溫控制模塊設計
本系統單片機程序流程由多模塊結構組成,程序按流程依次運行判斷。單片機系統結構如圖8所示。

圖8 單片機系統結構圖設計
運用Proteus仿真軟件進行電路仿真與調試。使用自帶元件庫繪制,所有元器件帶有仿真模型。繪制完整仿真圖后,雙擊STC89C52單片機設置并導入aaas.HEX文件進行程序導入,如圖9所示。程序運行步驟為開始→系統參數初始化→傳感器初始化→A/D轉換→閾值設定→液晶顯示→判斷液位和水溫是否大于閾值設定(如果大于閾值設定返回到A/D設定)→外圍器件驅動→結束。

圖9 仿真與調試
發現仿真電路正常運行無報錯,LCD顯示正常,證明程序已經運行,整體電路無誤,然后測試程序。初始仿真的運行如圖10所示。

圖10 初始仿真運行
調節溫度傳感器溫度,發現LCD實時溫度顯示變化。調節液位電位器,發現液位發生變化。按按鍵模塊,發現閾值可以增減。溫度超過40 ℃時,D2亮,加熱模塊開始工作。液位低于閾值時,閥門燈D3亮,進水閥門開始工作。
通過系統調試模擬圖可知,該系統能夠實現閥值設定、當前溫度檢測、液位檢測、水溫控制以及水位控制等功能。但是,在模擬軟件中,液面傳感器沒有適合的元件和模擬模型,而采用滑塊變阻器來替代。采用液面傳感器使模數輸出電壓升高,實現了對液面的測量。
在現代工業生產中,隨著電子技術和計算機技術的快速發展,微機測量和控制技術得到了快速發展和廣泛應用。傳統的人工檢測由于存在很大的缺陷,逐漸被智能電子檢測取代。以Atmel公司低功耗高性能的STC89C52RC單片機為核心,用高精度溫度傳感器DS18B20進行溫度采集設計智能液相多點溫控電路控制單元,為企業工業化智能生產的智能化和信息化發展奠定了堅實基礎。