王仲夏 白劍峰 馬萬國 楊坤
摘要:該文介紹了以STC12C5A16S2單片機(jī)為核心,對溫濕度實時采集的設(shè)計與實現(xiàn)。用溫濕度傳感器采集溫度、濕度,從DS1302時鐘芯片讀取當(dāng)前日期和時間,經(jīng)過STC12C5A16S2單片機(jī)分析處理后在1602液晶上顯示,并通過CH376模塊將采集到的時間和溫濕度數(shù)據(jù)保存到U盤。若溫濕度不在預(yù)定范圍內(nèi)可自動報警。
關(guān)鍵詞:STC12C5A16S2單片機(jī);DSl302時鐘芯片;1602液晶;CH376S模塊;報警
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)17-0237-03
1概述
溫度、濕度是和人類生存密切相關(guān)的一項重要指標(biāo)。小到體溫、皮膚濕潤度,大到一個生態(tài)系統(tǒng)的溫濕度控制等等,都與之相關(guān)?;贑H376S的實時溫濕度采集可以保證數(shù)據(jù)的科學(xué)性,節(jié)省不必要的人力資源浪費,而且目前單片機(jī)已滲透到我們生產(chǎn)、生活的各個領(lǐng)域,其價格便宜,學(xué)習(xí)簡單,使用12C5A16S2單片機(jī)實現(xiàn)的實時溫濕度采集可以準(zhǔn)確地監(jiān)測到各個時間點的溫濕度變化,能夠滿足控制要求,總而言之,基于CH376S的實時溫濕度采集具有廣闊前景和實用價值。
2系統(tǒng)方案設(shè)計
2.1系統(tǒng)主控模塊及框圖
CH376S溫濕度采集系統(tǒng)包括DS1302時鐘模塊、SHT20溫濕度傳感器模塊、LCD1602模塊、CH376S U盤存儲模塊。
2.2總體方案設(shè)計
12C5A16S2作為主控制器,主要處理SHT20溫濕度傳感器和DS1302時鐘芯片送來的數(shù)據(jù),然后通過CH376模塊將數(shù)據(jù)存儲到U盤里,并在1602液晶上實時顯示出來。若所采集溫濕度不在預(yù)設(shè)范圍內(nèi),則啟動報警裝置。U盤里的數(shù)據(jù)可保存為XLS格式,方便處理和分析。系統(tǒng)原理圖如圖2所示。
3硬件電路設(shè)計
3.1主控模塊
常用的STC89C52RC單片機(jī)不能滿足設(shè)計要求,本次設(shè)計采用的主控模塊為STC公司的STC12C5A16S2單片機(jī)。STC12C5A16S2單片機(jī)是臺灣宏晶公司推出的新一代超強(qiáng)抗干擾、高速、搞可靠性、超低功耗的8051單片機(jī),編程語言完全與傳統(tǒng)8051單片機(jī)兼容。
3.2時鐘模塊
DSl302是由美國DALLAS公司推出的具有涓細(xì)電流充電能力的低功耗實時時鐘芯片。它可以對年、月、日、周、時、分、秒進(jìn)行計時,且具有閏年補(bǔ)償?shù)榷喾N功能,工作電壓為2.5V~5.5V。本設(shè)計采用5V供電,與單片機(jī)通信的RST、I/O、SCLK分別與單片機(jī)的P2.4、P2.3、P2.2相連,DSl302振蕩源采用32.768k晶振。
DSl302與上一代的DS1202相比增加了主電源/后備電源雙電源引腳。其中VCC2為主電源、VCC1為后備電源,后備電源采用的是CR1220 3V鋰電池。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行,保證了所采集溫濕度數(shù)據(jù)的實時性。DS1302引腳圖如圖3。
3.3顯示模塊
LCD1602是一個專門用于顯示數(shù)字、字母、符號等的點陣型液晶模塊,價格便宜,并且能夠同時顯示16×2即32個字符。液晶的RS、E分別與單片機(jī)的P3.5、P3.3連接,RW直接接地,數(shù)據(jù)端與單片機(jī)的P1口依次連接。
3.4傳感器模塊
本次設(shè)計采用的溫濕度傳感器為SHT20,是標(biāo)準(zhǔn)的12C格式輸出。SHT20溫濕度傳感器的SDA、SCL分別與單片機(jī)的P2.1、P2.5相連進(jìn)行數(shù)據(jù)傳輸。與DHT11傳感器相比SHT20相對更穩(wěn)定,數(shù)據(jù)更加準(zhǔn)確。SHT20是一個經(jīng)過改進(jìn)的電容式濕度傳感元件和一個標(biāo)準(zhǔn)的能隙溫度傳感元件。供電范圍為2.1-3.6V,本設(shè)計采用AMS1117模塊進(jìn)行5V-3.3V電壓轉(zhuǎn)換,為SHT20供電。電源和接地之間須連接一個100nF的去耦電容,且電容的位置應(yīng)盡可能靠近傳感器。
傳感器模塊在一定范圍內(nèi),性能穩(wěn)定,但是若長期將傳感器放到室外或其他惡劣環(huán)境中,尤其是在濕度>80%時,可能會造成溫漂,使采集到的數(shù)據(jù)不準(zhǔn)確。再將傳感器放入正常環(huán)境,數(shù)據(jù)會慢慢恢復(fù)為準(zhǔn)確值。
3.5 U盤存儲模塊
很多數(shù)碼產(chǎn)品以及單片機(jī)系統(tǒng)都需要數(shù)據(jù)存儲,以便于對數(shù)據(jù)進(jìn)行分析。當(dāng)前,U盤以其便攜,價格相對適中,占據(jù)市場主導(dǎo),所以采用U盤作為設(shè)備存儲器是非常合理的。
CH376是U盤和SD卡文件管理控制芯片,能夠存取U盤或者SD卡中的文件。數(shù)據(jù)采集時U盤格式要作出一定的修改,WINDOWS下的NTFS格式不能進(jìn)行數(shù)據(jù)采集,U盤默認(rèn)的FAT32格式可以進(jìn)行存儲操作。CH376可以用內(nèi)置程序軟件直接檢測USB設(shè)備是否連接。采集到的數(shù)據(jù)格式可以為TXT、XLS等多種格式,方便處理和分析。
3.6報警模塊
本設(shè)計所采用的報警模塊為LED燈,當(dāng)溫度超出設(shè)定范圍時,給P2.7一個低電平,紅色LED亮起,當(dāng)濕度高于設(shè)定范圍時,給P3.4一個低電平,黃色LED亮。否則,指示燈為熄滅狀態(tài)。LED旁串接一個1K分壓電阻,防止燒壞LED小燈。
4軟件設(shè)計
4.1軟件總流程圖
插入U盤后,LCD顯示處理后的時間和溫濕度數(shù)值,U盤開始實時存儲數(shù)據(jù)。同時判斷溫濕度是否在預(yù)設(shè)范圍,若不在設(shè)定范圍內(nèi),點亮對應(yīng)的LED燈;若溫在設(shè)定范圍內(nèi),則熄滅相應(yīng)的LED燈。數(shù)據(jù)存儲格式為一次采集10組數(shù)據(jù),采集完成后進(jìn)行軟件復(fù)位,直接用追加的方式進(jìn)行下一組的數(shù)據(jù)采集。取出U盤,則采集結(jié)束。軟件總流程圖如圖4所示。
4.2 DS1302程序流程圖
首先對DS1302初始化,然后使DS1302不具備寫保護(hù),再向其寫入數(shù)據(jù)和地址,最后把時間在液晶上顯示,并存儲到U盤。DS1302程序流程圖如圖5所示。
SHT20采用標(biāo)準(zhǔn)的12C格式輸出,其輸出的數(shù)據(jù)已經(jīng)過標(biāo)準(zhǔn)的數(shù)字信號標(biāo)定,誤差相對更小。上電后,需短暫延時以保證所采集數(shù)據(jù)的可靠性。SHT20模塊程序流程圖如圖6。
5總結(jié)
通過本次設(shè)計,我發(fā)現(xiàn)了自己的許多不足,考慮問題不夠全面,以至于在硬件電路的設(shè)計部分走了許多彎路,對編程和一些軟件使用方面的生疏也使我吃了不少苦頭。但總體來說,我學(xué)到的更多,書本知識更容易與實際結(jié)合,動手能力也得到了極大增強(qiáng)。