上個(gè)月剛做的智能儀器儀表設(shè)計(jì)。
首先感謝51黑,這次設(shè)計(jì)用到的很多程序都參考了51黑大神們的分享。
溫濕度計(jì)本身也有很多大佬有發(fā),我的設(shè)計(jì)也沒有什么高明之處,還望見諒。
溫度傳感器為NTC熱敏電阻,濕度傳感器為HS1101濕敏電容,用的12位ADC。溫濕度測量分辨率0.01,精度0.5%。
仿真圖如下
0.png (28.22 KB, 下載次數(shù): 86)
下載附件
2019-9-20 17:40 上傳
51hei.gif (387.18 KB, 下載次數(shù): 39)
下載附件
2022-10-12 23:18 上傳
本文的主要目標(biāo)是設(shè)計(jì)一款具有較高精度的低成本溫度、濕度監(jiān)測儀表。該溫濕度監(jiān)測儀表的主要功能及性能指標(biāo)如下: 溫度測量范圍:0~99 ℃ 濕度測量范圍:0%~100% RH 溫度分辨率:0.2 ℃ 濕度分辨率:1% RH 溫度值精度:±2 ℃ 濕度值精度:±2% RH 為了降低成本,同時(shí)提高精度,本溫濕度監(jiān)測儀表大量采用模擬電路以代替價(jià)格高昂的集成芯片,產(chǎn)品預(yù)期效果圖如圖1-1所示。 
圖1-1 溫濕度檢測儀表預(yù)期成果圖
二、整體設(shè)計(jì)方案
2.1 設(shè)計(jì)任務(wù)本文的主要目標(biāo)是設(shè)計(jì)一款具有較高精度的低成本溫度、濕度監(jiān)測儀表。設(shè)計(jì)動(dòng)態(tài)性能更好的模擬電路以替代集成芯片。 該溫濕度監(jiān)測儀表需要滿足以下性能指標(biāo): 溫度測量范圍:0~99 ℃ 濕度測量范圍:0%~100% RH 溫度分辨率:0.2 ℃ 濕度分辨率:1% RH 溫度值精度:±2 ℃ 濕度值精度:±2% RH 2.2 設(shè)計(jì)原則要求嵌入式系統(tǒng)應(yīng)具有高可靠性、易維護(hù)、高性價(jià)比等特點(diǎn)。設(shè)計(jì)原則有以下幾個(gè): (1)可靠性高 可靠性是單片機(jī)系統(tǒng)應(yīng)用的前提,在系統(tǒng)設(shè)計(jì)的每一個(gè)環(huán)節(jié),都應(yīng)該將可靠性作為首要的設(shè)計(jì)準(zhǔn)則。提高系統(tǒng)的可靠性通常從以下幾個(gè)方面考慮:使用可靠性高的元器件;設(shè)計(jì)電路板時(shí)布線和接地要合理;對供電電源采用抗干擾措施;進(jìn)行軟硬件濾波等。 (2)易維護(hù) 在系統(tǒng)的軟硬件設(shè)計(jì)時(shí),應(yīng)從操作者的角度考慮操作和維護(hù)方便,盡量減少對操作人員專業(yè)知識(shí)的要求,以利于系統(tǒng)的推廣。因此在設(shè)計(jì)時(shí),要盡可能減少人機(jī)交互接口,多采用操作內(nèi)置或簡化的方法。 (3)性價(jià)比高 微處理器除體積小、功耗低等特點(diǎn)外,最大的優(yōu)勢在于高性能價(jià)格比。一個(gè)嵌入式系統(tǒng)能否被廣泛應(yīng)用,性價(jià)比是其中一個(gè)關(guān)鍵因素。因此,在設(shè)計(jì)時(shí),除了保持高性能外,盡可能降低成本,在系統(tǒng)性能和速度允許的情況下盡可能用軟件功能取代硬件功能等。 2.3 元件選型
2.3.1 嵌入式芯片本文所設(shè)計(jì)的溫濕度監(jiān)測計(jì)要求在實(shí)現(xiàn)長時(shí)間穩(wěn)定工作的基礎(chǔ)上,進(jìn)一步提高性能,降低成本。因此,核心運(yùn)算部分選用久經(jīng)市場考驗(yàn)的STC89C52RC芯片。它內(nèi)部集成了通用8位中央處理器和8 kb Flash存儲(chǔ)單元,功能上滿足溫濕度計(jì)的設(shè)計(jì)需要。同時(shí),STC89C52芯片可以在0~75℃的環(huán)境下正常工作,具有較強(qiáng)的穩(wěn)定性和抗干擾能力。 
圖2-1 STC89C52實(shí)物圖 2.3.2 顯示模塊液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。1602具有輕薄短小、低壓微功耗、體積小、無輻射、平面直角顯示及影像穩(wěn)定不閃爍等優(yōu)點(diǎn),且可視面積大、效果好、分辨率高、抗干擾能力強(qiáng),適合用于顯示字母、數(shù)字、符號(hào)等信息,而且不需要擴(kuò)展過多外圍電路,可由單片機(jī)直接進(jìn)行控制輸出顯示。
2.3.3 熱敏元件計(jì)量溫度的單位有攝氏度和華氏度兩種單位。攝氏度和華氏度。 攝氏度是目前世界上使用較為廣泛的一種溫標(biāo)——攝氏溫標(biāo)的溫度計(jì)量單位,用符號(hào)“℃”表示。指在1標(biāo)準(zhǔn)大氣壓下,純凈的冰水混合物的溫度為0度,水的沸點(diǎn)為100度,其間平均分為100份,每一等份為1度,記作1℃。它最初是由瑞典天文學(xué)家安德斯·攝爾修斯(Anders Celsius,1701~1744)于1742年提出的,其后歷經(jīng)改進(jìn)。攝氏溫度現(xiàn)已納入國際單位制(SI)。T(K)=t(℃)+273.15,T為絕對溫度。 華氏度也是溫度的一種度量單位,以其發(fā)明者德國人華倫海特(Gabriel D. Fahrenheit,1681—1736)命名的。由于種種歷史局限性,華氏溫標(biāo)正逐漸退出歷史舞臺(tái),因此,本系統(tǒng)默認(rèn)顯示攝氏溫標(biāo)。 測量溫度的傳感器有很多種,其中熱敏電阻器是最早應(yīng)用也是應(yīng)用最廣泛的一類測溫元件。熱敏電阻屬于敏感元件,按照溫度系數(shù)不同分為正溫度系數(shù)熱敏電阻器(PTC)和負(fù)溫度系數(shù)熱敏電阻器(NTC)。熱敏電阻的典型特點(diǎn)是對溫度敏感,不同的溫度下會(huì)表現(xiàn)出不同的電阻值。PTC電阻在溫度越高時(shí)電阻值越大,NTC電阻在溫度越高時(shí)電阻值越低,根據(jù)這個(gè)特性可以制作出各種形式的溫度傳感器。 本系統(tǒng)的溫度采集電路核心傳感元件采用玻封熱敏電阻NTC-MF58A104F3950FA,這款型號(hào)的熱敏電阻為軸向引線,由于采用隔熱玻璃封裝的形式,所以其不易受輕微的熱流擾動(dòng),大大提高了溫度測量的靈敏度和精確度。本文所選熱敏電阻的阻值為100千歐,B值為3950,阻值精度和B值精度均為1%。 熱敏電阻價(jià)格低廉,小巧堅(jiān)固,穩(wěn)定性好,熱感應(yīng)快,被廣泛應(yīng)用于多種行業(yè)的溫度檢測系統(tǒng)。除了查詢溫度/阻值對照表以外,NTC熱敏電阻還有其溫度/阻值計(jì)算公式,本文所選型號(hào)熱敏電阻在25℃下的B值為3950,因此其計(jì)算公式如下所示: (1)
化簡公式,并加上0.5的誤差校正后,MF58熱敏電阻的溫度與所測阻值的關(guān)系式為: (2)
通過上述溫度/阻值計(jì)算公式,可以得出更高分辨率的溫度值,在后面的溫度測量中采用的正是通過公式法計(jì)算所測溫度。 2.3.4 濕敏元件空氣的濕度有絕對濕度和相對濕度之分。 空氣中水蒸氣的壓強(qiáng) p 叫做空氣的絕對濕度,可以用空氣中所含水蒸汽的密度,即單位體積的空氣中所含水蒸汽的質(zhì)量來表示。由于直接測量空氣中水蒸氣的密度比較困難,而水蒸氣的壓強(qiáng)隨水蒸氣密度的增大而增大,所以通常用空氣中水蒸氣的壓強(qiáng)來表示空氣的濕度。 絕對濕度被廣泛應(yīng)用于天氣預(yù)測上,而與我們生產(chǎn)生活密切相關(guān)的是相對濕度,即空氣中實(shí)際水汽壓與當(dāng)時(shí)氣溫下的飽和水汽壓之比的百分?jǐn)?shù)。常見的濕度測量方法有伸縮式溫度計(jì)、干濕球溫度計(jì)、露點(diǎn)溫度計(jì)、濕敏電阻和濕敏電容等。其中伸縮式溫度計(jì)精度最高,但不能轉(zhuǎn)換成電信號(hào),干濕球溫度計(jì)和露點(diǎn)溫度計(jì)體積較大,且難以長時(shí)間穩(wěn)定工作。濕敏電阻是利用濕敏材料吸收空氣中的水分而導(dǎo)致本身電阻值發(fā)生變化這一原理而制成的,工業(yè)上流行的濕敏電阻主要有:氯化鋰濕敏電阻,有機(jī)高分子膜濕敏電阻,但濕敏電阻只能用于交流電工作環(huán)境,直流電會(huì)導(dǎo)致高分子材料中的帶電粒子偏向兩極,從而導(dǎo)致其無法正常工作。 因此,本文選擇法國Humirel公司設(shè)計(jì)生產(chǎn)的濕敏電容HS1101作為濕度監(jiān)測敏感元件,它也可以稱為MHS1101。它對濕度的監(jiān)測精度高達(dá)±2%RH,典型值為180pF@55%RH,即在工作頻率為10 KHz、環(huán)境溫度為25℃、相對濕度為55%RH時(shí)測得電容為180 pF。在上述條件下,HS1101的電容變化范圍大致為160pF~200pF, RF特性曲線如圖所示,可以明顯的看出它具有極好的線性輸出。此外,依靠其獨(dú)特的固態(tài)聚合物結(jié)構(gòu),HS1101還具有優(yōu)異的長期穩(wěn)定性及可靠性,漂移量僅0.5%RH/年。 
圖2-2 HS1101濕度電容特性曲線 2.3.5 模數(shù)轉(zhuǎn)換芯片信號(hào)調(diào)理電路將電阻和電容的變化量轉(zhuǎn)換為電壓的變化量,因此,數(shù)據(jù)采集電路需要使用模數(shù)轉(zhuǎn)換芯片采集兩路電壓信號(hào),基于低成本的原則,本文選擇美國TI公司生產(chǎn)的一種12位多通道A/D轉(zhuǎn)換芯片TLC2543作為模數(shù)轉(zhuǎn)換芯片,圖2-3為TLC2543的內(nèi)部電路圖。 
圖2-3 TLC2543的內(nèi)部電路圖 TLC2543是一種12位開關(guān)電容逐次逼近A/D 轉(zhuǎn)換器,芯片共有11個(gè)模擬輸入通道。芯片的三個(gè)控制端: 串行三態(tài)輸出數(shù)據(jù)端(DATA OUTPUT)、輸人數(shù)據(jù)端(DATA INPUT)、輸人/出時(shí)鐘(I/O CLOCK)能形成與微處理器之間數(shù)據(jù)傳輸較快和較為有效的串行外設(shè)接口——SPI。片內(nèi)具有一個(gè)14 通道多路選擇器用于在11個(gè)模擬輸人通道和3 個(gè)內(nèi)部自測試(SELF-TEST)電壓中任選一個(gè),可通過對其8 位內(nèi)部控制寄存器進(jìn)行編程完成通道的選擇,并可對輸出結(jié)果的位數(shù)、MSB/I.SB 導(dǎo)前和極性進(jìn)行選擇。
2.4 方案設(shè)計(jì)思路溫濕度監(jiān)測系統(tǒng)的設(shè)計(jì)以嵌入式微處理器STC89C52為核心,熱敏元件NTC-MF58和濕敏元件HS1101作為物理量敏感元件,通過硬件電路將敏感元件變化的物理量轉(zhuǎn)換成模數(shù)轉(zhuǎn)換芯片可以獲取識(shí)別的電壓模擬量,再由模數(shù)轉(zhuǎn)換芯片將電壓模擬量轉(zhuǎn)換為數(shù)字量,通過串行通信接口傳給微處理器。最后經(jīng)過軟件算法的處理,得出精確的溫度、濕度數(shù)值,并將數(shù)據(jù)通過LCD液晶屏呈現(xiàn)給用戶。 因此,整個(gè)方案設(shè)計(jì)應(yīng)包含四個(gè)部分,即:信號(hào)調(diào)理部分、模數(shù)轉(zhuǎn)換部分、嵌入式系統(tǒng)部分、人機(jī)交互部分。設(shè)計(jì)思路如圖2-4所示,信號(hào)調(diào)理部分包含了傳感器和多個(gè)不同類型的轉(zhuǎn)換電路。 
圖2-4 整體設(shè)計(jì)方案思路
三、理論分析儀器儀表最重要的性能指標(biāo)之一為精度,在設(shè)計(jì)系統(tǒng)硬件和軟件之前,需要對設(shè)計(jì)方案做系統(tǒng)而完備的理論分析。以便于在軟、硬件設(shè)計(jì)時(shí)對不合理之處進(jìn)行修改補(bǔ)償。 溫敏元件和濕敏元件的物理量分別為電阻和電容,通過信號(hào)調(diào)理電路將電阻轉(zhuǎn)換為電壓;將電容依次轉(zhuǎn)換為頻率、電壓。由于微處理采集的是8位分辨率的電壓信號(hào),因此需要多個(gè)計(jì)算公式將電壓值轉(zhuǎn)換為頻率、電容、電阻,最后根據(jù)敏感元件的特性轉(zhuǎn)換為對應(yīng)的溫度、濕度值。其中需要的算法及步驟如下所示: 




整理可得: 

其中VolOut分別為微處理器采集的兩路電壓數(shù)字量,R、C分別為溫敏元件的電阻和濕敏元件的電容。多次轉(zhuǎn)換會(huì)帶來信號(hào)上的失真,且微處理器難以高精度地執(zhí)行數(shù)據(jù)處理算法。本課題組使用Matlab工具軟件,通過模擬微處理器的運(yùn)算方式計(jì)算出系統(tǒng)的理論誤差。其中溫度測量的最大誤差為1.8℃,濕度測量的最大誤差為2.0%RH,因此,需要在軟件設(shè)計(jì)中通過合適的算法補(bǔ)償誤差,使顯示結(jié)果接近真值。 四、系統(tǒng)硬件設(shè)計(jì)整體硬件由STC89C52RC嵌入式運(yùn)算芯片、LCD1602液晶顯示器、濕敏電容HS1101、溫敏電阻MF58、模數(shù)轉(zhuǎn)換芯片TLC2543、555計(jì)時(shí)器和LM331構(gòu)成。基于上述硬件模塊的外圍電路分別為單片機(jī)最小系統(tǒng)電路、LCD1602驅(qū)動(dòng)電路、TLC2543驅(qū)動(dòng)電路、電阻電壓轉(zhuǎn)換電路、電容頻率轉(zhuǎn)換電路、電壓頻率轉(zhuǎn)換電路等。 本節(jié)以硬件模塊為中心分別介紹各個(gè)硬件及其外圍電路。 4.1 STC89C52RC本設(shè)計(jì)選擇STC89C52RC作為主控芯片,其最小系統(tǒng)由單片機(jī)芯片、時(shí)鐘電路及復(fù)位電路四部分組成。 (1)時(shí)鐘電路 本設(shè)計(jì)采用外部時(shí)鐘方式,時(shí)鐘電路圖如圖4-1所示。AT89C52中有高增益的反相放大器,它是構(gòu)成內(nèi)部振蕩器的主要單元,XTAL1和XTAL2兩個(gè)引腳分別是該放大器的輸出端和輸入端。晶振和放大器共同構(gòu)成了自激振蕩器,兩個(gè)旁路電容與外接晶振接在具有反饋功能的放大器中,構(gòu)成了并聯(lián)反饋振蕩電路。 
圖4-1 時(shí)鐘電路 C1、C2 為旁路電容,對頻率有微調(diào)作用,電容值根據(jù)晶振要求來選擇,對振蕩器的穩(wěn)定性、幅值有輕微的影響。但如果C1、C2 值相差太大,容易引發(fā)諧振不平衡,所以此處選擇電容大小為100pF,以確保振蕩器的穩(wěn)定性。
(2)復(fù)位電路 無論是在單片機(jī)剛開始接上電源時(shí),還是運(yùn)行過程中發(fā)生故障都需要復(fù)位。故復(fù)位電路是單片機(jī)小系統(tǒng)中重要的一環(huán),如圖4-2所示。 復(fù)位電路用于將單片機(jī)內(nèi)部各電路的狀態(tài)恢復(fù)到一個(gè)確定的初始值,并從這個(gè)狀態(tài)開始工作。單片機(jī)的復(fù)位條件:必須使其RST引腳上持續(xù)出現(xiàn)兩個(gè)(或以上)機(jī)器周期的高電平。 
圖4-2 復(fù)位電路 單片機(jī)有兩種復(fù)位形式:上電復(fù)位和按鍵復(fù)位。 上電復(fù)位電路中,利用電容充電來實(shí)現(xiàn)復(fù)位。在電源接通瞬間,RST引腳上的電位是高電平(VCC),電源接通后對電容進(jìn)行快速充電,隨著充電的進(jìn)行,RST引腳上的電位也會(huì)逐漸下降為低電平。只要保證RST引腳上高電平出現(xiàn)的時(shí)間大于兩個(gè)機(jī)器周期,便可以實(shí)現(xiàn)正常復(fù)位。 按鍵復(fù)位電路中,當(dāng)按鍵沒有按下時(shí),電路同上電復(fù)位電路。如在單片機(jī)運(yùn)行過程中,按下S1鍵,已經(jīng)充好電的電容會(huì)快速通過電阻的回路放電,從而使得RST引腳上的電位快速變?yōu)楦唠娖剑烁唠娖綍?huì)維持到按鍵釋放,從而滿足單片機(jī)復(fù)位的條件實(shí)現(xiàn)按鍵復(fù)位。
4.2 溫度采集電路溫敏元件為NTC熱敏電阻,隨著溫度的變化,其電阻阻值會(huì)發(fā)生相應(yīng)的變化。因此,本溫度采集電路的功能是將電阻變化量轉(zhuǎn)化為電壓變化量,嵌入式微處理器會(huì)將采集到的電壓量通過算法轉(zhuǎn)換成溫度量。 
圖4-3 電阻轉(zhuǎn)電壓電路 溫度采集電路如圖4-3所示,為一種基于歐姆定律的電阻轉(zhuǎn)電壓電路,也稱為電阻分壓電路。分壓電路輸出電壓的計(jì)算公式為 
其中RT1為熱敏電阻。輸入電壓VCC和電阻R10固定不變時(shí),如果熱敏電阻的阻值發(fā)生變化,輸出電壓會(huì)隨之發(fā)生變化。 當(dāng)嵌入式微處理器采集到電壓數(shù)據(jù)時(shí),可以通過分壓電路輸出電壓公式反向推導(dǎo)出對應(yīng)的電阻值,具體計(jì)算公式如下所示 
4.3 濕度采集電路MHS1101的電容隨著濕度的變化而變化,因此,獲取準(zhǔn)確的電容值即可通過電容-濕度表或換算公式得到濕度值。由于單片機(jī)無法直接采集電容物理量,因此需要通過設(shè)計(jì)測量電路將電容值轉(zhuǎn)換為單片機(jī)可采集的模擬量或數(shù)字量。 濕度采集電路分為兩部分,首先將MHS1101置于555振蕩電路(C/F)中,將電容值轉(zhuǎn)換成方波脈沖信號(hào),由于轉(zhuǎn)換后的頻率范圍在6kHz~7kHz之間,屬于中高頻,核心芯片難以有效采集,因此,本文設(shè)計(jì)了頻率轉(zhuǎn)電壓(F/V)電路,將555振蕩電路輸出的頻率信號(hào)進(jìn)一步線性轉(zhuǎn)換成電壓信號(hào),便于處理器的高效采集與處理。 1. C/F電路C/F電路如圖4-4所示。555芯片外接電阻R1,R2與MHS1101,構(gòu)成對MHS1101的充電回路。7端通過芯片內(nèi)部的晶體管對地短路實(shí)現(xiàn)對MHS1101的放電回路,并將引腳2,6端相連引入到片內(nèi)比較器,構(gòu)成一個(gè)多諧波振蕩器,其中,R1相對于R2必須非常的小,但決不能低于一個(gè)最小值。R4是防止短路的保護(hù)電阻。 
圖4-4 電容轉(zhuǎn)頻率電路 MHS1101作為一個(gè)變化的電容器,連接2和6引腳。引腳作為R1的短路引腳。MHS1101的等效電容通過R1和R2充電達(dá)到上限電壓(近似于0.67VCC,時(shí)間記為T1),這時(shí)555的引腳3由高電平變?yōu)榈碗娖剑缓笸ㄟ^R2開始放電,由于R1被7引腳內(nèi)部短路接地,所以只放電到觸發(fā)界線(近似于0.33VCC,時(shí)間記為T2),這時(shí)555芯片的引腳3變?yōu)楦唠娖健Mㄟ^不同的兩個(gè)電阻R1,R2進(jìn)行傳感器的不停充放電,產(chǎn)生方波輸出。 充電、放電時(shí)間分別為: 
輸出波形的頻率和占空比的計(jì)算公式如下: 
由此可以看出,空氣相對濕度與555定時(shí)器輸出頻率存在一定線性關(guān)系。表1給出了典型頻率濕度關(guān)系(參考點(diǎn):25℃,相對濕度:55%,輸出頻率:6.208kHz)。在對精度要求不高的場合,可以通過微處理器采集555定時(shí)器輸出的頻率,然后查表即可得出相對濕度值。 表1 部分典型頻率/濕度對照表
2. F/V電路頻率/電壓轉(zhuǎn)換電路就是把輸入的脈沖信號(hào)轉(zhuǎn)換為電壓信號(hào)輸出的一種電路。輸出的電壓與輸入的脈沖頻率成線性關(guān)系,并可通過測量其輸出端的電壓值來間接測量輸入的脈沖頻率。目前市面上已有成熟的基于ΣΔ技術(shù)的頻率/電壓轉(zhuǎn)換芯片,但是芯片的成本較高,構(gòu)成的電路結(jié)構(gòu)比較復(fù)雜,功耗較大。本文選擇了基于LM331頻率轉(zhuǎn)換芯片設(shè)計(jì)的頻率/電壓轉(zhuǎn)換電路,其由專用的頻率/電壓轉(zhuǎn)換芯片LM331及少量的電阻電容組成。 
圖4-5 頻率轉(zhuǎn)電壓電路 LM331外接電路簡單,只需接入幾個(gè)外部元件就可方便構(gòu)成V/F或F/V等變換電路,并且轉(zhuǎn)換精度較高。LM331構(gòu)成的頻率/電壓轉(zhuǎn)換電路如圖4-5所示,經(jīng)C/F電路輸出的頻率FreOut經(jīng)過R3、C1組成的微分電路加到LM331的6腳。當(dāng)FreOut的下降沿到來時(shí)經(jīng)過微分電路將在6腳產(chǎn)生負(fù)向尖峰脈沖,當(dāng)負(fù)向尖峰脈沖大于VCC/3時(shí)LM331的內(nèi)部觸發(fā)器將置位,其內(nèi)部的電流源對電容C3充電,同時(shí)電源VCC通過R7對電容C2充電。當(dāng)C3上的電壓大于2VCC/3時(shí), LM331內(nèi)部的觸發(fā)器復(fù)位,C3通過R8放電,同時(shí)定時(shí)電容C2迅速放電,完成一次充放電過程。此后,每經(jīng)過一次充放電過程電路重復(fù)上面的工作過程,這樣就實(shí)現(xiàn)了頻率/電壓的轉(zhuǎn)換。LM331輸出的電壓Vol2Out與輸入信號(hào)頻率FreOut的關(guān)系可表示為: 
此關(guān)系式具有較好的線性度,且轉(zhuǎn)換速度快,便于微處理器進(jìn)行采集處理。 4.4 模數(shù)轉(zhuǎn)換電路TLC2543具有20個(gè)引腳,TLC2543與單片機(jī)的接口應(yīng)為5條數(shù)據(jù)線,分別是CS、CLK、SDO、SDI和EOC。 
圖4-6 模數(shù)轉(zhuǎn)換電路 模數(shù)轉(zhuǎn)換電路的驅(qū)動(dòng)電路如圖4-6所示,其中AIN0、AIN1端口分別連接溫度采集電路和濕度采集電路的電壓輸出端,CS、CLK、SDO、SDI和EOC則與微處理器通用I/O口相連接。 4.5 液晶屏驅(qū)動(dòng)電路 LCD1602液晶屏采用標(biāo)準(zhǔn)的16腳接口,驅(qū)動(dòng)電路如圖4-7所示。其中1號(hào)引腳和2號(hào)引腳分別為地電源和正電源。3號(hào)引腳為顯示器對比度調(diào)整端,電壓越高,對比度越低,接地時(shí)對比度最高。LCD驅(qū)動(dòng)電路中使用可調(diào)電阻,方便使用者調(diào)整對比度。 4號(hào)引腳RS端為寄存器選擇端,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。EN端為使能端,高電平時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。D0~D7為8位雙向數(shù)據(jù)端。第15引腳為背光正極,第16引腳背光負(fù)極,加入隔離電容C9可以防止顯示器燒壞。 
圖4-7 LCD1602驅(qū)動(dòng)電路
五、系統(tǒng)軟件設(shè)計(jì)
5.1 軟件設(shè)計(jì)思路 本課題設(shè)計(jì)的溫濕度檢測儀表具有較多的功能,且各個(gè)功能模塊對實(shí)時(shí)性的要求較高,因此本系統(tǒng)引入了多任務(wù)實(shí)時(shí)操作系統(tǒng),所有功能子程序均運(yùn)行在實(shí)時(shí)系統(tǒng)之上。整體設(shè)計(jì)思路如圖5-1所示 
圖5-1 系統(tǒng)軟件設(shè)計(jì)思路 job 0執(zhí)行各個(gè)模塊的初始化程序,初始化完畢后,會(huì)創(chuàng)建job 1、job 2、job 3三個(gè)功能任務(wù),最后刪除job 0的任務(wù),因此,job 0任務(wù)在微處理器運(yùn)行過程中只執(zhí)行一次。 job 1、job 2、job 3三個(gè)功能任務(wù)為同級(jí)輪轉(zhuǎn)任務(wù),每個(gè)任務(wù)分得的時(shí)間均為10 ms,各自的運(yùn)行時(shí)間結(jié)束后,會(huì)按順序跳轉(zhuǎn)執(zhí)行下一個(gè)任務(wù)。在一個(gè)標(biāo)準(zhǔn)時(shí)間內(nèi),每個(gè)軟件功能模塊都會(huì)得到運(yùn)行,不會(huì)出現(xiàn)由于大規(guī)模的數(shù)據(jù)處理導(dǎo)致其他功能停滯的現(xiàn)象。
5.2 實(shí)時(shí)系統(tǒng)的設(shè)計(jì)(程序暫未實(shí)現(xiàn))RTX-51 TINY是一個(gè)由美國Keil公司設(shè)計(jì)開發(fā)的用于8051系列處理器多任務(wù)實(shí)時(shí)操作系統(tǒng)。RTX-51采用時(shí)間片輪轉(zhuǎn)任務(wù)切換和使用信號(hào)進(jìn)行任務(wù)切換,所有的任務(wù)平等運(yùn)行,占用資源極低。 RTX-51 TINY的程序用標(biāo)準(zhǔn)的C語言構(gòu)造,在傳統(tǒng)的C語言程序入口都是從main函數(shù)作為入口,而基于RTX-51 TINY構(gòu)建的嵌入式程序卻沒有main函數(shù),而是從任務(wù)0(job 0)開始執(zhí)行的。在job 0中執(zhí)行各個(gè)模塊的初始化程序,程序執(zhí)行后,關(guān)閉job 0,開始輪流執(zhí)行其他job函數(shù)。RTX-51 TINY使用無優(yōu)先級(jí)時(shí)間片輪詢法,每個(gè)任務(wù)使用相同大小的時(shí)間片,時(shí)間片可以在相關(guān)參數(shù)配置中進(jìn)行修改設(shè)置。 RTX51 Tiny的配置參數(shù)中有INT_CLOCK和TIMESHARING兩個(gè)參數(shù)。這兩個(gè)參數(shù)決定了每個(gè)任務(wù)使用時(shí)間片的大小:INT_CLOCK是時(shí)鐘中斷使用的周期數(shù),也就是基本時(shí)間片;TIMESHARING是每個(gè)任務(wù)一次使用的時(shí)間片數(shù)目。兩者決定了一個(gè)任務(wù)一次使用的最大時(shí)間片。本系統(tǒng)設(shè)置INT_CLOCK為10000,即TIMESHARING=1,一個(gè)任務(wù)使用的最大時(shí)間片是10ms。 實(shí)時(shí)系統(tǒng)相關(guān)代碼如下圖5-2所示: 
圖5-2 實(shí)時(shí)系統(tǒng)部分代碼(暫未實(shí)現(xiàn) 調(diào)試中)
5.3 功能子程序的設(shè)計(jì)
1.模擬量采集模塊TLC2543與單片機(jī)的接口應(yīng)為5條數(shù)據(jù)線,分別是CS、CLK、SDO、SDI和EOC。模擬量采集模塊開始工作后,片選CS必須從高到低,才能開始一次工作周期,此時(shí)EOC為高,輸入數(shù)據(jù)寄存器被置為0,輸出數(shù)據(jù)寄存器的內(nèi)容是隨機(jī)的。 開始采集時(shí),CS片選為高,I/O CLOCK、DATA INPUT被禁止,DATA OUT 呈高阻狀,EOC為高。接下來使CS變低,I/OCLOCK、DATAINPUT使能,DATAOUT脫離高阻狀態(tài)。12個(gè)時(shí)鐘信號(hào)從I/OCLOCK端依次加入,隨著時(shí)鐘信號(hào)的加入,控制字從DATAINPUT一位一位地在時(shí)鐘信號(hào)的上升沿時(shí)被送入TLC2543(高位先送入),同時(shí)上一周期轉(zhuǎn)換的A/D數(shù)據(jù),即輸出數(shù)據(jù)寄存器中的數(shù)據(jù)從DATAOUT一位一位地移出(下降沿),在CS=0時(shí)輸出第一位,其他的在下降沿輸出。部分代碼如圖所示5-3所示,為TLC2543讀取低8位轉(zhuǎn)換結(jié)果。 
圖5-3 讀取低8位轉(zhuǎn)換結(jié)果
2. LCD顯示模塊 LCD1602的驅(qū)動(dòng)程序一共有3個(gè)功能子程序,分別為初始化函數(shù)、寫命令函數(shù)和寫數(shù)據(jù)函數(shù)。具體函數(shù)如圖5-4所示。 
圖5-4 LCD1602驅(qū)動(dòng)程序
5.4 數(shù)據(jù)處理算法 在理論分析中已經(jīng)說明,嵌入式微處理并不能負(fù)擔(dān)大規(guī)模的實(shí)時(shí)數(shù)據(jù)處理運(yùn)算。但是可以通過化簡、等價(jià)代換等方法將多個(gè)公式組合成線性表達(dá)式,如下所示: 

代入各個(gè)電阻、電容的數(shù)值,化簡可得:


由于理論計(jì)算與實(shí)際典型值有偏差,因此需要對計(jì)算公式進(jìn)行補(bǔ)償,其中補(bǔ)償后溫度處理算法如圖5-5所示,補(bǔ)償后的濕度處理算法如圖5-6所示,對不同大小的計(jì)算電容值做出對應(yīng)的補(bǔ)償,可以有效的使最終結(jié)果逼近真值。 
圖5-5 溫度處理算法 
圖5-6 濕度處理算法
六、系統(tǒng)調(diào)試和實(shí)驗(yàn)結(jié)果分析
6.1 仿真測試在完成硬件設(shè)計(jì)和軟件編程后,啟動(dòng)Proteus軟件進(jìn)行仿真,仿真測試結(jié)果如圖6-1所示。啟動(dòng)仿真后,LCD屏幕首先會(huì)顯示開機(jī)界面,如圖6-1所示。 
圖6-1 開機(jī)界面 啟動(dòng)后1秒鐘以內(nèi),LCD屏幕即能夠顯示當(dāng)前時(shí)刻的溫度值、濕度值和敏感元件的物理量,且串口也會(huì)同步發(fā)送對應(yīng)數(shù)據(jù)。 
圖6-2 Proteus仿真示意圖 如圖6-2所示,在NCT熱敏電阻設(shè)定的虛擬溫度值為28. 0℃時(shí),本溫濕度檢測儀表顯示溫度值為27.85℃。HS1101濕敏電容設(shè)定電容值為180pF,儀表顯示測得的濕敏電容的電容為179.74pF。根據(jù)HS1101特性曲線可知,180pF電容值下對應(yīng)的環(huán)境濕度為49.15%RH,本溫濕度檢測儀表顯示濕度值為48.35%RH。 本課題組針對此溫濕度檢測儀表進(jìn)行了多組測試,測試結(jié)果如下表所示。 表1 對比測試表 可以看出,本文所設(shè)計(jì)的溫濕度檢測儀表具有較好的快速性和準(zhǔn)確性,溫度測量精度高達(dá)0.5%,濕度測量精度高達(dá)1%。滿足性能指標(biāo)。
6.2 PCB效果圖 本文所設(shè)計(jì)的溫濕度檢測儀表的控制系統(tǒng)如圖6-3所示,3D效果圖如圖6-4所示。 
圖6-3 PCB設(shè)計(jì)圖

圖6-4 PCB 3D效果圖 單片機(jī)源程序如下:
0.png (4.93 KB, 下載次數(shù): 76)
下載附件
2019-9-20 17:45 上傳
仿真原理圖和Keil程序下載:
溫濕度計(jì).zip
(1.62 MB, 下載次數(shù): 162)
2019-9-20 17:22 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
操作系統(tǒng)部分的代碼暫未實(shí)現(xiàn),程序是按普通方式寫的,大家如果有改進(jìn)和完善歡迎上傳一起學(xué)習(xí)
|