張偉超
摘要:本文提出一種基于STC89C52RC單片機(jī)的水溫和氣溫測量系統(tǒng)。采用STC89C52RC為主控芯片,DS18B20數(shù)字溫度傳感器為測溫元件,使用太陽能供電。由Keil完成系統(tǒng)程序設(shè)計(jì),搭建Proteus 軟件仿真平臺、編譯程序從而實(shí)現(xiàn)硬件調(diào)試仿真,最后對硬件進(jìn)行運(yùn)行測試。太陽能供電使該系統(tǒng)具有很強(qiáng)的適用性、實(shí)用性、可靠性等優(yōu)點(diǎn)。
關(guān)鍵詞:DS18B20;STC89C52RC;太陽能測溫;Proteus;控制
中圖分類號:TP212 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2017)04-0054-02
在對河流水文的觀測中水溫、氣溫是重要測量量。傳統(tǒng)測溫一般采用熱電阻或熱電偶,將模擬信號進(jìn)行A/D轉(zhuǎn)換后,輸入到單片機(jī)進(jìn)行處理。這種電路可靠性相對較差,測量準(zhǔn)確度低而且采集點(diǎn)不少處在無電網(wǎng)供電的地方。鑒于此,本文提出基于單片機(jī)的太陽能數(shù)字測溫系統(tǒng)設(shè)計(jì)方案。
1 系統(tǒng)方案設(shè)計(jì)
采用STC89C52RC單片機(jī)為主控芯片、20w單晶硅太陽能光伏板、蓄電池、DS18B20數(shù)字溫度傳感器、數(shù)碼管等,實(shí)現(xiàn)對水溫和氣溫的測量、顯示功能。利用PROTEL 99SE繪制原理圖、設(shè)計(jì)PCB板圖。由Keil完成程序設(shè)計(jì)和編譯,在硬件裝配前,通過Proteus仿真。本系統(tǒng)能在無電網(wǎng)供電情況下,穩(wěn)定不間斷的監(jiān)測水溫和氣溫,兩路數(shù)字溫度傳感器分別進(jìn)行水溫和氣溫采集,采集結(jié)果通過單片機(jī)處理后,通過數(shù)碼管輸出顯示。單片機(jī)控制太陽能電池板對蓄電池進(jìn)行充電管理,12v蓄電池經(jīng)變壓電路后為系統(tǒng)提供主電源。系統(tǒng)整體設(shè)計(jì)如下圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 單片機(jī)主控系統(tǒng)
本系統(tǒng)以STC89C52單片機(jī)作為系統(tǒng)的主控芯片。STC89C52RC單片機(jī)是高速、低功耗、抗干擾的CMOS8位微控制器 ,在嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。其工作頻率:0~40MHz,8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,內(nèi)置4KBEEPROM,MAX810復(fù)位電路,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口。正常工作模式下,典型功耗4ma~7ma,掉電模式下可由外部中斷喚醒,特別適合蓄電池供電系統(tǒng)。
通過STC89C52單片機(jī),可以控制太陽能電池板對蓄電池的充電狀態(tài)。在白天隨著光照強(qiáng)度增強(qiáng),太陽能電池板電壓高于蓄電池電壓,此時(shí)蓄電池處于充電狀態(tài)。同時(shí)為了防止蓄電池過充,單片機(jī)通過檢測蓄電池兩端電壓,控制太陽能電池板停止為蓄電池充電。如果長期陰雨無光,單片機(jī)檢測到蓄電池電壓低于其放電截止電壓,為了延長蓄電池的使用壽命。這時(shí)單片機(jī)將關(guān)閉系統(tǒng),進(jìn)入掉電模式,等待有光照時(shí)候,由外部中斷喚醒單片機(jī)。同時(shí)也可在深夜時(shí)關(guān)閉系統(tǒng),在指定時(shí)間開啟系統(tǒng),從而延長電池使用時(shí)間。
2.2 數(shù)字溫度傳感器
DS18B20數(shù)字溫度傳感器是Dallas公司生產(chǎn)的單總線器件,具有線路簡單、體積小,精度高的特點(diǎn)。測溫范圍在-55~+125℃,精度為0.5℃,內(nèi)部有溫度上、下限告警設(shè)置。能直接讀取被測的溫度,還能根據(jù)設(shè)計(jì)需求采用簡單的編程技術(shù)實(shí)現(xiàn) 9 ~ 12 位的讀取數(shù)字方式, 并且讀寫傳輸形式簡單,只需一根單線接口的數(shù)據(jù)線即可。DS18B20芯片最常見的封裝為TO-92,三個(gè)引腳分別為 GND-電源地、DQ-數(shù)據(jù)輸入/輸出引腳、VDD為可選電源引腳。采用 DS18B20完全能滿足測量要求,且更加簡單和可靠性。本系統(tǒng)DS18B20 設(shè)計(jì)的測溫電路如圖2 所示。
為了能長期浸泡在水中,將TO-92封裝的DS18B20,通過優(yōu)質(zhì)不銹鋼管封裝,內(nèi)部填裝導(dǎo)熱硅膠,采用滾口封裝技術(shù)與加厚硅橡膠導(dǎo)線間接。提高其感溫性能同時(shí)擁有極佳的防水、防潮、防銹特點(diǎn)。使用雙絞線帶屏蔽電纜傳輸,保證長距離測量更穩(wěn)定。一般正常通信距離可達(dá)150 m,適用于大多數(shù)場合要求。
2.3 蓄電池組選擇與容量
蓄電池既是太陽能電池板儲能裝置,又是系統(tǒng)的供電裝置。這要求蓄電池要維護(hù)簡單且壽命長。市場常見的有鉛酸免維護(hù)蓄電池、普通鉛酸蓄電池和堿性鎳鎘蓄電池三種。鉛酸免維護(hù)蓄電池免維護(hù)性好,密封性能好,狀態(tài)穩(wěn)定,適合在戶外使用。而普通的鉛酸蓄電池,雖然價(jià)格低,但維護(hù)工作量大,應(yīng)用場合少。堿性鎳鎘蓄電池,各項(xiàng)性能都很好,但是價(jià)格較高。綜合考慮選擇使用鉛酸免維護(hù)蓄電池作為蓄電池。
在南方地區(qū)一般最長的連續(xù)陰雨天氣不超過30天。綜合系統(tǒng)功耗考慮,經(jīng)過測算,選擇用12V、20Ah容量的鉛酸免維護(hù)蓄電池可以滿足系統(tǒng)在30天連續(xù)陰雨無光照條件下正常工作。特別適用在野外無電網(wǎng)供電的采集點(diǎn),大大提高了系統(tǒng)適用范圍。
2.4 太陽能電池板
采用單晶硅太陽能電池板,它的電池的光電轉(zhuǎn)換效率為15%左右,最高的達(dá)到24%,所有種類的太陽能電池板中光電轉(zhuǎn)換效率最高。本系統(tǒng)選用峰值功率20W,峰值電壓17.3V,短路電流1.33A,鋼化玻璃封裝,高強(qiáng)度鋁邊框。相對于本系統(tǒng)功耗而言,20w單晶硅太陽能電池板能滿足系統(tǒng)需求且有余量。
2.5 顯示及電源模塊電路
顯示模塊采用2個(gè)三位共陰極數(shù)碼管分別來顯示測量的水溫和氣溫,利用單片機(jī)的定時(shí)器來實(shí)現(xiàn)動態(tài)掃描顯示。電源模塊:由太陽能電池板發(fā)電,12V蓄電池電壓經(jīng)過LM7805穩(wěn)壓后產(chǎn)生5V電壓直流電源,作為單片機(jī)、溫度傳感器、數(shù)碼管等主電源。電壓轉(zhuǎn)換電路圖如圖3所示。
3 軟件設(shè)計(jì)
3.1 主控程序
水溫,氣溫測量系統(tǒng)上電啟動后自動復(fù)位,首先對芯片內(nèi)部寄存器、單片機(jī)IO口進(jìn)行初始化,然后進(jìn)入主函數(shù)開始運(yùn)行。首先判斷檢測蓄電池電壓是否低于放電截止電壓,若低于系統(tǒng)則進(jìn)入休眠關(guān)閉狀態(tài),等待外部中斷重新激活系統(tǒng)。否則進(jìn)入溫度測量及顯示子程序。接著進(jìn)入蓄電池充電方式選擇子程序,來判斷電池電壓是繼續(xù)充電,還是停止充電。最后在返回主函數(shù)循環(huán)。
3.2 溫度測量子程序設(shè)計(jì)
DS18B20在同單片機(jī)通信采用的是單總線協(xié)議方式,它將所采集到的溫度轉(zhuǎn)換為數(shù)字信號后,通過DQ傳送至單片機(jī)。由于DS18B20在一根數(shù)據(jù)線上實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,故單片機(jī)在同DS18B20通信時(shí)候,我們采用軟件的方法來模擬單總線的協(xié)議時(shí)序。需要嚴(yán)格的按照通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。依照DS18B20的通訊協(xié)議。同時(shí)為了簡化軟件設(shè)計(jì),本設(shè)計(jì)采用“并行I/O口輸入與單總線結(jié)構(gòu)相結(jié)合” 結(jié)合的方式巡回讀取多路溫度。溫度測量流程如下:(1)初始化DS18B20,執(zhí)行跳過ROM命令(CCH),不讀取64位ROM編碼直接向DS18B20發(fā)出功能命令。(2)向DS18B20發(fā)送溫度轉(zhuǎn)換指令(44H) ,隨后啟動溫度采樣與A/D轉(zhuǎn)換,并將轉(zhuǎn)換數(shù)據(jù)存儲在暫存器中。(3)再次初始化DS18B20,執(zhí)行跳過ROM命令。(4)執(zhí)行單片機(jī)讀暫存器命令(BEH),將對應(yīng)的DS18B20高速暫存存儲器的數(shù)據(jù)讀入單片機(jī)中,其中第0,1字節(jié)分別是溫度值低位(LS byte)和高位(MS byte),從而完成某通道DS18B20的溫度采集。
4 Proteus電路仿真
Proteus嵌入式系統(tǒng)仿真與開放平臺是由英國Labcenter公司開發(fā)的,它完善的電路設(shè)計(jì)與仿真平臺可以對模擬電路、數(shù)字電路、模/數(shù)混合電路、單片機(jī)及其外圍電路進(jìn)行系統(tǒng)仿真。Proteus提供了大量的虛擬儀器、儀表、激勵(lì)源和分析工具。編輯環(huán)境功能強(qiáng)大,界面友好容易操作,仿真調(diào)試簡潔直觀。啟動Proteus ISIS 7,從Proteus元件庫中選擇所需元件。將在Keil軟件下編寫控制程序并生成HEX文件裝載到單片機(jī)中進(jìn)行仿真。通過仿真結(jié)果表明本測量系統(tǒng)溫度測量模塊、顯示模塊、充電方式選擇模塊、電源模塊、均正常工作,程序可按照預(yù)先設(shè)定方式正常工作。
5 結(jié)語
本次研究提出了一種采用STC89C52RC為主控模塊,DS18B20數(shù)字溫度傳感進(jìn)行水溫和氣溫的測量,使用太陽能光伏供電系統(tǒng)的方法。用數(shù)字傳感器提高了測量精度,簡化了電路降低了功耗,容易實(shí)現(xiàn)的特點(diǎn)。同時(shí)該系統(tǒng)在野外依靠太陽能長期穩(wěn)定工作,對水文監(jiān)測、氣象監(jiān)測等具有很高實(shí)用價(jià)值。
參考文獻(xiàn)
[1]周潤景,張麗娜.PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006.
[2]孫少偉,戴義保,章高琴.基于DS18B20組網(wǎng)測溫的研究[J].自動化儀表,2006,27(10):42-45.