蘇冠楠+姚樂(lè)+易小龍+王晉+鐘沁耘
【摘 要】溫度、濕度、光照是文物保護(hù)的基本因素,傳統(tǒng)的測(cè)量方法費(fèi)事費(fèi)力,效率低,且隨機(jī)性大,本文通過(guò)設(shè)計(jì)基于STC12C5A60S2單片機(jī),綜合利用傳感器技術(shù)、數(shù)字電子技術(shù)和LCD顯示等知識(shí)知識(shí)的測(cè)量系統(tǒng)達(dá)到自動(dòng)檢測(cè)室內(nèi)環(huán)境溫度、濕度及光強(qiáng)的目的,并在超過(guò)閾值時(shí)進(jìn)行報(bào)警,并行性高,且能夠處理多點(diǎn)溫濕度,光強(qiáng)等信息。
【關(guān)鍵詞】單片機(jī);光強(qiáng);溫度;濕度;測(cè)量
0 前言
溫度、濕度、光照度和人類的生產(chǎn)、生活有著密切的關(guān)系,同時(shí)也是博物館文物保護(hù)中最常見(jiàn)最基本的參數(shù),例如不同的溫度可能會(huì)造成珍貴文物的過(guò)早氧化,而濕度的大小也同樣對(duì)于文物的保護(hù)有著重要的意義,還有光的強(qiáng)度也會(huì)對(duì)文物的材質(zhì)有著很大的影響,所以對(duì)溫度、濕度及光照度的檢測(cè)及控制就非常有必要了。傳統(tǒng)的方法是用溫度表、雙金屬式測(cè)量計(jì)、等手段,通過(guò)人工進(jìn)行檢測(cè),對(duì)不符合溫度、濕度、光照度要求的環(huán)境進(jìn)行通風(fēng)、去濕、降溫、采光等工作。隨著生產(chǎn)的發(fā)展,一個(gè)低成本和具有較高精度的環(huán)境測(cè)量?jī)x在許多領(lǐng)域會(huì)代替人工操作。為此,本設(shè)計(jì)開(kāi)發(fā)了一種能夠同時(shí)測(cè)量多點(diǎn),并實(shí)時(shí)性高、精度高,能夠綜合處理多點(diǎn)溫濕度、光照度信息的設(shè)計(jì)方案。
1 單片機(jī)的選擇
基于性價(jià)比的考慮,在電子設(shè)計(jì)中8位單片機(jī)仍是首選。在8位單片機(jī)中又以MCS-51系列單片機(jī)及其兼容機(jī)所占的份額最大。通過(guò)內(nèi)部資源比較,單片機(jī)芯片我們選擇STC12C5A60S2,STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。
2 傳感器的選擇
2.1 光強(qiáng)傳感器
2.1.1 TSL2561簡(jiǎn)介
TSL2561是TAOS公司推出的一種高速、低功耗、寬量程、可編程靈活配置的光強(qiáng)度數(shù)字轉(zhuǎn)換芯片。
2.1.2 TSL2561的引腳功能
TSL2561有2種封裝形式:6LEAD CHIPSCALE和6LEAD TMB。封裝形式不同,相應(yīng)的光照度計(jì)算公式也不同。
各引腳的功能如下:
腳1和腳3:分別是電源引腳和信號(hào)地。其工作電壓范圍是2.7~3.5V。
腳2:器件訪問(wèn)地址選擇引腳。由于該引腳電平不同,該器件有3個(gè)不同的訪問(wèn)地址。
腳4和腳6:I2C或SMBus總線的時(shí)鐘信號(hào)線和數(shù)據(jù)線。
腳5:中斷信號(hào)輸出引腳。當(dāng)光強(qiáng)度超過(guò)用戶編程配置的上或下閾值時(shí),器件會(huì)輸出一個(gè)中斷信號(hào)。
2.1.3 TSL2561的內(nèi)部結(jié)構(gòu)和工作原理
TSL2561是第二代周圍環(huán)境光強(qiáng)度傳感器。通道0和通道1是兩個(gè)光敏二極管,其中通道0對(duì)可見(jiàn)光和紅外線都敏感,而通道1僅對(duì)紅外線敏感。積分式A/D轉(zhuǎn)換器對(duì)流過(guò)光敏二極管的電流進(jìn)行積分,并轉(zhuǎn)換為數(shù)字量,在轉(zhuǎn)換結(jié)束后將轉(zhuǎn)換結(jié)果存入芯片內(nèi)部通道0和通道1各自的寄存器中。當(dāng)一個(gè)積分周期完成之后,積分式A/D轉(zhuǎn)換器將自動(dòng)開(kāi)始下一個(gè)積分轉(zhuǎn)換過(guò)程。微控制器和TSL2561可通過(guò)標(biāo)準(zhǔn)的SMBus(System Management Bus)V1.1或V2.0實(shí)現(xiàn),TSL2561則可通過(guò)I2C總線協(xié)議訪問(wèn)。
2.1.4 硬件設(shè)計(jì)
TSL2561能夠通過(guò)I2C總線訪問(wèn),所以硬件接口電路很簡(jiǎn)單。假如所選用的微控制器帶有I2C總線控制器,則將該總線的時(shí)鐘線和數(shù)據(jù)線直接和TSL2561的I2C總線的SCL和SDA分別相連;假如微控制器內(nèi)部沒(méi)有上拉電阻,則還需要再用2個(gè)上拉電阻接到總線上。假如微控制器不帶I2C總線控制器,則將TSL2561的I2C總線的SCL和SDA和普通I/O口連接即可[6];但編程時(shí)需要模擬I2C總線的時(shí)序來(lái)訪問(wèn)TSL2561,INT引腳接微控制器的外部中斷。
2.2 溫度傳感器
2.2.1 DS18B20功能特點(diǎn)
1)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。
2)測(cè)溫范圍 -55℃~+125℃,固有測(cè)溫誤差1℃。
3)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定。
4)工作電源: 3.0~5.5V/DC (可以數(shù)據(jù)線寄生電源)。
5)在使用中不需要任何外圍元件。
6)測(cè)量結(jié)果以9~12位數(shù)字量方式串行傳送。
7)用戶可定義的非易失性溫度報(bào)警設(shè)置。
2.2.2 DS18B20結(jié)構(gòu)和工作原理
64位只讀存儲(chǔ)器儲(chǔ)存器件的唯一片序列號(hào)。高速暫存器含有兩個(gè)字節(jié)的溫度寄存器,這兩個(gè)寄存器用來(lái)存儲(chǔ)溫度傳感器輸出的數(shù)據(jù)。除此之外,高速暫存器提供一個(gè)直接的溫度報(bào)警值寄存器(TH和TL),和一個(gè)字節(jié)的的配置寄存器。配置寄存器允許用戶將溫度的精度設(shè)定為9,10,11或12位。TH,TL和配置寄存器是非易失性的可擦除程序寄存器(EEPROM),所以存儲(chǔ)的數(shù)據(jù)在器件掉電時(shí)不會(huì)消失。DS18B20通過(guò)達(dá)拉斯公司獨(dú)有的單總線協(xié)議依靠一個(gè)單線端口通訊。當(dāng)全部器件經(jīng)由一個(gè)3態(tài)端口或者漏極開(kāi)路端口(DQ引腳在DS18B20上的情況下)與總線連接的時(shí)候,控制線需要連接一個(gè)弱上拉電阻。在這個(gè)總線系統(tǒng)中,微控制器(主器件)依靠每個(gè)器件獨(dú)有的64位片序列號(hào)辨認(rèn)總線上的器件和記錄總線上的器件地址。由于每個(gè)裝置有一個(gè)獨(dú)特的片序列碼,總線可以連接的器件數(shù)目事實(shí)上是無(wú)限的。
2.2.3 硬件設(shè)計(jì)
DS18B20可以通過(guò)從VDD引腳接入一個(gè)外部電源供電,或者可以工作于寄生電源模式,該模式允許DS18B20工作于無(wú)外部電源需求狀態(tài)。當(dāng)總線為高電平時(shí),寄生電源由單總線通過(guò)VDD引腳。這個(gè)電路會(huì)在總線處于高電平時(shí)偷能量,部分汲取的能量存儲(chǔ)在寄生電源儲(chǔ)能電容內(nèi),在總線處于低電平時(shí)釋放能量以提供給器件能量]。用漏極開(kāi)路把I/O直接拉到電源上就可以實(shí)現(xiàn)DS18B20有充足的供電。在發(fā)出溫度轉(zhuǎn)換指令或拷貝暫存器指令之后,必須在至多10us之內(nèi)把單總線轉(zhuǎn)換到強(qiáng)上拉,并且在溫度轉(zhuǎn)換時(shí)序或拷貝數(shù)據(jù)時(shí)序必須一直保持為強(qiáng)上拉狀態(tài)。對(duì)DS18B20供電的另一種傳統(tǒng)辦法是從VDD引腳接入一個(gè)外部電源。這樣做的好處是單總線上不需要強(qiáng)上拉。而且總線不用在溫度轉(zhuǎn)換期間總保持高電平。溫度高于100℃時(shí),不推薦使用寄生電源,因?yàn)镈S18B20在這種溫度下表現(xiàn)出的漏電流比較大。
2.3 濕度傳感器
2.3.1 DHT11引腳說(shuō)明及工作原理
引腳說(shuō)明
數(shù)字濕溫度傳感器采用單總線數(shù)據(jù)格式。即單個(gè)數(shù)據(jù)引腳端口完成輸入輸出雙向傳輸。其數(shù)據(jù)包由5Byte(40Bit)組成。一次通訊時(shí)間最大3ms,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說(shuō)明。DATA用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為0。操作流程如下:
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。
數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù) +8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù) +8bit校驗(yàn)和,校驗(yàn)和數(shù)據(jù)為前四個(gè)字節(jié)相加。
2.3.2 DHT11與單片機(jī)連接的設(shè)計(jì)
DHT11數(shù)字濕溫度傳感器連接電路簡(jiǎn)單,只需要占用控制器一個(gè)I/O口即可完成上下位的連接[8]。另外,建議連接線長(zhǎng)度短于20時(shí)用5K上拉電阻,大于20米時(shí)根據(jù)實(shí)際情況使用合適的上拉電阻。
3 其他硬件模塊的設(shè)計(jì)
3.1 復(fù)位電路
單片機(jī)復(fù)位的原理是在時(shí)鐘電路開(kāi)始工作后,在單片機(jī)的RST引腳施加24個(gè)時(shí)鐘振蕩脈沖(即兩個(gè)機(jī)器周期)以上的高電平,單片機(jī)便可以實(shí)現(xiàn)復(fù)位。在復(fù)位期間,單片機(jī)的ALE引腳和\P\S\E\N引腳均輸出高電平。當(dāng)RST引腳從高電平跳變?yōu)榈碗娖胶螅瑔纹瑱C(jī)便從0000H單元開(kāi)始執(zhí)行程序。
在實(shí)際應(yīng)用中,一般采用既可以手動(dòng)復(fù)位,又可以上電復(fù)位的電路,這樣可以人工復(fù)位單片機(jī)系統(tǒng)。上電復(fù)位電路部分的原理也是RC電路的充放電效應(yīng)。除了系統(tǒng)上電的時(shí)候可以給RST引腳一個(gè)短暫的高電平信號(hào)外,當(dāng)按下按鍵開(kāi)關(guān)的時(shí)候,VCC通過(guò)一個(gè)高電阻連接到RST引腳,給RST一個(gè)高電平,按鍵松開(kāi)的時(shí)候,RST引腳恢復(fù)為低電平,復(fù)位完成。
3.2 晶振電路
時(shí)鐘電路是用于產(chǎn)生單片機(jī)正常工作時(shí)所需要的時(shí)鐘信號(hào),STC89C52單片機(jī)內(nèi)部包含有一個(gè)振蕩器,可以用于CPU的時(shí)鐘源。另外也可以采用外部振蕩器,由外部振蕩器產(chǎn)生的時(shí)鐘信號(hào)來(lái)供內(nèi)部CPU運(yùn)行使用。
3.3 顯示模塊
在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中,一般都是把鍵盤和顯示器放在一起考慮。顯示器作為輸出部件,可以將系統(tǒng)的運(yùn)行結(jié)果、狀態(tài)等信息直觀地顯示出來(lái)供操作者了解系統(tǒng)的運(yùn)行情況和程序的執(zhí)行結(jié)果,本次設(shè)計(jì)的溫濕度、光照度實(shí)時(shí)信息采用LCD12864來(lái)顯示。
3.4 報(bào)警電路
壓電式蜂鳴器約10mA的驅(qū)動(dòng)電流,可以使用TTL系列集成電路7406或7407低電平驅(qū)動(dòng),在此選用一個(gè)三極管來(lái)做驅(qū)動(dòng)。P2.5接三極管輸入端,當(dāng)P2.5輸出低電平時(shí),三極管導(dǎo)通,壓電式蜂鳴器兩端獲得+5V電壓而發(fā)出報(bào)警,當(dāng)P2.5輸出為高電平時(shí),三極管截止,蜂鳴器[12]停止工作。
4 整體設(shè)計(jì)
本方案以STC89C51單片機(jī)系統(tǒng)為核心來(lái)對(duì)溫度、濕度、光照度進(jìn)行實(shí)時(shí)檢測(cè)。各檢測(cè)單元能獨(dú)立完成各自功能。單片機(jī)負(fù)責(zé)發(fā)送控制指令,并控制各個(gè)檢測(cè)模塊進(jìn)行數(shù)據(jù)采集,收集測(cè)量數(shù)據(jù),同時(shí)對(duì)測(cè)量結(jié)果進(jìn)行整理和顯示。通過(guò)軟件編程設(shè)定報(bào)警值,一旦檢測(cè)數(shù)據(jù)超過(guò)閾值,蜂鳴器實(shí)現(xiàn)報(bào)警。整體包括單片機(jī)、復(fù)位電路、溫度檢測(cè)、濕度檢測(cè)、光照度檢測(cè)、報(bào)警電路、系統(tǒng)軟件等部分的設(shè)計(jì)。
[責(zé)任編輯:楊玉潔]