版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 東東 莞莞 理理 工工 學(xué)學(xué) 院院本 科 畢 業(yè) 設(shè) 計畢業(yè)設(shè)計題目:溫濕度控制器畢業(yè)設(shè)計題目:溫濕度控制器學(xué)生姓名:學(xué)生姓名:學(xué)學(xué) 號:號:系系 別:別:專業(yè)班級:專業(yè)班級:指導(dǎo)教師姓名及職稱:劉華珠指導(dǎo)教師姓名及職稱:劉華珠 高級工程師高級工程師起止時間:起止時間:20112011 年年 1111 月月 20122012 年年 6 6 月月摘摘 要要本論文介紹了一種以單片機 stc12c5a60s2 為主要控制器件,以pt100,sht15 分別為溫,濕度傳感器。本設(shè)計主要包括硬件電路的設(shè)計和系統(tǒng)軟件的設(shè)計。硬件電路主要包括控制器,測溫濕控制電路和顯示電路等??刂破饔脦в?ad 轉(zhuǎn)換的單
2、片機,溫度傳感器 pt100,濕度傳感器采用 sht15,顯示電路采用 1 個 8 位共陰極 led 數(shù)碼管,用鎖存器是顯示效果更好。測溫濕控制電路由溫濕度傳感器和預(yù)置溫濕度值比較報警電路組成,當(dāng)實際測量溫濕度值大于預(yù)置溫濕度值時,發(fā)出報警信號(發(fā)光二極管點亮)而且使外電路驅(qū)動(繼電器動作) 。軟件部分主要包括主程序,測溫濕度子程序,顯示子程序和按鍵子程序等。本次設(shè)計采用的 sht15 濕度傳感器包括一個電容式聚合體測濕元件和一個能隙式測溫元件,并與一個 14 位的 a/d 器以及串行接口電路在同一芯片上實現(xiàn)無縫鏈接,從而具有超快響應(yīng),抗干擾能力強,性價比高等優(yōu)點。而且 pt100 在要求的范
3、圍內(nèi)線性度很好。關(guān)鍵詞關(guān)鍵詞:溫度測量, 濕度測量,溫度算法,pt100,sht15abstractthis paper presents a new design of digital thermometers and hygrometer. it includes a main control device-microcontroller stc12c5a60s2 and a temperature and humidity sensor. this design includes hardware and system software .the hardware design incl
4、udes a main controller circuit, temperature and humidity measurement and control circuits and show circuit. main controller uses scm stc12c5a60s2,temperature sensor uses pt100,and humidity sensor uses sht15,show circuit is a total of eight circuits using digital led of the altogether. driver show ci
5、rcuit uses atches (74573). temperature and humidity control circuit includes the temperature and humidity sensor and preset temperature and humidity values compared alarm circuit. when the actual measurement of temperature or humidity values is greater than the preset temperature or humidity values,
6、 the alarm signal (light emitting diode is lit) is sent. and output circuit will be sent(relay action) .the major software includes the main routines, temperature and humidity routines, show routines and digital-to-analog routines. the humidity sensor (sht15) in this design includes a capacitive pol
7、ymer sensing element for power consumption makes it the ultimate choice for even relative humidity and a band gap temperature sensor. both the most demanding applications are seamlessly coupled to a 14bit analog to digital converter with a 14 and the a / d, as well as serial interface circuits in th
8、e same chip on the realization of a gap link to a super-fast response, anti-interference capability and cost-effective advantages.and pt100 within the required range linearity is very good.the design of digital thermometers and hygrometer with stc12c5a60s2 and pt100 and sht15, not only has a simple
9、external circuit, but also has a high-precision measurement. key words: temperature measurement, humidity measurements, pt100,sht15目目 錄錄前前 言言1 1一一 設(shè)計任務(wù)要求和溫濕度計的發(fā)展史設(shè)計任務(wù)要求和溫濕度計的發(fā)展史1 11.11.1 設(shè)計任務(wù)及要求設(shè)計任務(wù)及要求.1.11.21.2 設(shè)計溫濕度計的依據(jù)和意義設(shè)計溫濕度計的依據(jù)和意義.1.11.31.3 溫度計的發(fā)展史溫度計的發(fā)展史2 21.41.4 濕度計的由來濕度計的由來3 31.51.5 露點意義露點意
10、義.3.3二二 設(shè)計任務(wù)分析及方案論證設(shè)計任務(wù)分析及方案論證4 42.12.1 設(shè)計總體方案及方案論證設(shè)計總體方案及方案論證4 42.22.2 元器件的選擇元器件的選擇5 52.2.12.2.1 主控制器芯片主控制器芯片5 52.2.22.2.2 溫濕度傳感器溫濕度傳感器. .7 72.2.32.2.3 驅(qū)動顯示電路驅(qū)動顯示電路. .8 82.32.3 溫濕度測量的方法及分析溫濕度測量的方法及分析9 9三三 硬件電路的設(shè)計硬件電路的設(shè)計. .10103.13.1 主控制電路和測溫濕控制電路主控制電路和測溫濕控制電路.10.103.23.2 驅(qū)動顯示電路驅(qū)動顯示電路1212四四 軟件設(shè)計及分析軟
11、件設(shè)計及分析. .13134.14.1 sht15sht15 傳輸時序和指令集傳輸時序和指令集與測溫模塊與測溫模塊.13.1374.1.14.1.1 通訊復(fù)位時序通訊復(fù)位時序. .13134.1.24.1.2 啟動傳輸時序啟動傳輸時序. .14144.1.34.1.3 數(shù)據(jù)傳輸和指令集數(shù)據(jù)傳輸和指令集. .14144.1.44.1.4 濕度的測量時序濕度的測量時序. .15154.1.54.1.5 輸出轉(zhuǎn)換為物理量輸出轉(zhuǎn)換為物理量. .15154.1.64.1.6 sht15sht15 的的 dcdc 特性特性17174.24.2 程序流程圖程序流程圖19194.34.3 程序的設(shè)計程序的設(shè)計
12、20204.3.14.3.1 sht15sht15 的初始化程序的初始化程序. .20204.3.24.3.2 畢業(yè)設(shè)計畢業(yè)設(shè)計.c.c 是主函數(shù),做了溫度的算法是主函數(shù),做了溫度的算法. .26264.3.34.3.3 adad 轉(zhuǎn)換子程序轉(zhuǎn)換子程序35354.3.44.3.4 ledled 顯示子程序顯示子程序. .36364.3.54.3.5 軟件在硬件上的調(diào)試分析軟件在硬件上的調(diào)試分析4545結(jié)結(jié) 論論4646參考文獻參考文獻4747致致 謝謝4848附附 錄錄4848引 言溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國防、科研等部門,經(jīng)常需要對環(huán)境溫度與濕度進行測量及控
13、制。準確測量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。傳統(tǒng)的溫度計是用水銀柱來顯示的,雖然結(jié)構(gòu)簡單、價格便宜,但是它的精確度不高,不易讀數(shù)。傳統(tǒng)濕度計采用干濕球顯示法,不僅復(fù)雜而且測量精度不高。而采用單片機對溫濕度進行測量控制,不僅具有控制方便,簡單和靈活等優(yōu)點,而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用 led 數(shù)碼管來顯示溫濕度的數(shù)值,看起來更加直觀。采用 sht15 作為濕度傳感器,可以同時測溫,測濕,但是,為了能更廣的范圍,溫度傳感器我們采用了 pt100。其實,sht15 這種傳感器不易焊接,但是里面有一個 14 位 a/d 以及串行接口電路在同一芯片上,從而具有超快的響應(yīng)
14、,抗干擾能力強,性價比高等優(yōu)點。用單片機來控制溫濕度可以完成溫濕度的制動控制,通過單片機的串口與外部電路相連,把采集到的參數(shù)跟以設(shè)定的比較,最后由單片機向外部電路指示具體的行動??傊瑹o論在日常生活,還是工業(yè),農(nóng)業(yè)都離不開周圍環(huán)境的溫濕度的測量,因此,研究溫濕度的控制和測量具有非常重要的意義第一章 設(shè)計任務(wù)要求和溫濕度計的發(fā)展史1.1 設(shè)計任務(wù)及要求設(shè)計一個以單片機為核心的溫濕度測量系統(tǒng),可實現(xiàn)的功能為:(1)系統(tǒng)可由用戶預(yù)設(shè)溫度值和濕度值,測溫范圍100200, 測濕范圍 0 100%且誤差小于 5; (2)超出預(yù)設(shè)值時系統(tǒng)會自動報警,即發(fā)光二極管亮,且要求要用繼電器啟動外電路顯示;1.2
15、設(shè)計溫濕度計的依據(jù)和意義溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國防、科研等部門,經(jīng)常需要對環(huán)境溫度與濕度進行測量及控制。準確測量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。傳統(tǒng)的溫度計是用水銀柱來顯示的,雖然結(jié)構(gòu)簡單、價格便宜,但是它的精確度不高,不易讀數(shù)。傳統(tǒng)的濕度計采用干濕球顯示法,不僅復(fù)雜而且測量精度不高。而采用單片機對溫濕度進行控制,不僅具有控制方便,簡單和靈活等優(yōu)點,而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用 led 來顯示溫濕度的數(shù)字看起來更加直觀。采用 sht15 作為濕度傳感器,可以同時測溫,測濕,但是,為了能更廣的范圍,溫度傳感器我們采用了 pt1
16、00。其實,sht15 這種傳感器不易焊接,但是里面有一個 14 位 a/d 以及串行接口電路在同一芯片上,從而具有超快的響應(yīng),抗干擾能力強,性價比高等優(yōu)點。用單片機來控制溫濕度可以完成溫濕度的制動控制,通過單片機的串口與外部電路相連,把采集到的參數(shù)跟以設(shè)定的比較,最后由單片機向外部電路指示具體的行動??傊瑹o論在日常生活中還是在工業(yè)、農(nóng)業(yè)方面都離不開對周圍環(huán)境進行溫濕度的測量。因此,研究溫濕度的控制和測量具有非常重要的意義。1.3 溫度計的發(fā)展史 溫度計是測溫儀器的總稱。根據(jù)所用測溫物質(zhì)的不同和測溫范圍的不同,有煤油溫度計、酒精溫度計、水銀溫度計、氣體溫度計、電阻溫度計、溫差電偶溫度計、輻射
17、溫度計和光測溫度計等。 最早的溫度計是在 1593 年由意大利科學(xué)家伽利略(15641642)發(fā)明的。他的第一只溫度計是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會上下移動,根據(jù)移動的多少就可以判定溫度的變化和溫度的高低。這種溫度計,受外界大氣壓強等環(huán)境因素的影響較大,所以測量誤差大。 后來伽利略的學(xué)生和其他科學(xué)家,在這個基礎(chǔ)上反復(fù)改進,如把玻璃管倒過來,把液體放在管內(nèi),把玻璃管封閉等。比較突出的是法國人布利奧在 1659 年制造的溫度計,他把玻璃泡的體積縮小,并把測溫物質(zhì)改為水銀,這樣的溫度計已具備了現(xiàn)在溫度計
18、的雛形。以后荷蘭人華倫海特在 1709 年利用酒精,在 1714年又利用水銀作為測量物質(zhì),制造了更精確的溫度計。他觀察了水的沸騰溫度、水和冰混合時的溫度、鹽水和冰混合時的溫度;經(jīng)過反復(fù)實驗與核準,最后把一定濃度的鹽水凝固時的溫度定為 0,把純水凝固時的溫度定為 32,把標(biāo)準大氣壓下水沸騰的溫度定為 212,用代表華氏溫度,這就是華氏溫度計。 在華氏溫度計出現(xiàn)的同時,法國人列繆爾(16831757)也設(shè)計制造了一種溫度計。他認為水銀的膨脹系數(shù)太小,不宜做測溫物質(zhì)。他專心研究用酒精作為測溫物質(zhì)的優(yōu)點。他反復(fù)實踐發(fā)現(xiàn),含有 1/5 水的酒精,在水的結(jié)冰溫度和沸騰溫度之間,其體積的膨脹是從 1000
19、個體積單位增大到 1080 個體積單位。因此他把冰點和沸點之間分成 80 份,定為自己溫度計的溫度分度,這就是列氏溫度計。華氏溫度計制成后又經(jīng)過 30 多年,瑞典人攝爾修斯于 1742 年改進了華倫海特溫度計的刻度,他把水的沸點定為零度,把水的冰點定為 100 度。后來他的同事施勒默爾把兩個溫度點的數(shù)值又倒過來,就成了現(xiàn)在的百分溫度,即攝氏溫度,用表示。華氏溫度與攝氏溫度的關(guān)系為: 9/5+32,或59(-32)。現(xiàn)在英、美國家多用華氏溫度,德國多用列氏溫度,而世界科技界和工農(nóng)業(yè)生產(chǎn)中,以及我國、法國等大多數(shù)國家則多用攝氏溫度。隨著科學(xué)技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測溫技術(shù)也不斷地改進和提高
20、。由于測溫范圍越來越廣,根據(jù)不同的要求,又制造出不同需要的測溫儀器。1.4 濕度計的由來濕度計是測量空氣內(nèi)含水分多少的儀器。 史記天官書中即有測濕的記載。我國漢朝初年就已出現(xiàn)濕度計,它是利用天平來測量空氣干燥或潮濕的。天平濕度計的使用方法,是把兩個重量相等而吸濕性不同的物體,例如灰和鐵,分別掛在天平兩端。當(dāng)空氣濕度發(fā)生變化時,由于兩個物體吸入的分水不同,重量也就起了變化,于是天平發(fā)生偏差,從而指示出空氣潮濕的程度。 這就是濕度計的由來。1.5 露點意義氣溫愈低,飽和水氣壓就愈小。所以對于含有一定量水汽的空氣,在氣壓不變的情況下降低溫度,使飽和水汽壓降至與當(dāng)時實際的水汽壓相等時的溫度,稱為露點(
21、dew point) 。露點溫度是指空氣在水汽含量和氣壓都不改變的條件下,冷卻到飽和時的溫度。形象地說,就是空氣中的水蒸氣變?yōu)槁吨闀r候的溫度叫露點溫度。露點溫度本是個溫度值,可為什么用它來表示濕度呢?這是因為,當(dāng)空氣中水汽已達到飽和時,氣溫與露點溫度相同;當(dāng)水汽未達到飽和時,氣溫一定高于露點溫度。所以露點與氣溫的差值可以表示空氣中的水汽距離飽和的程度。在 100%的相對濕度時,周圍環(huán)境的溫度就是露點溫度。露點溫度越小于周圍環(huán)境的溫度,結(jié)露的可能性就越小,也就意味著空氣越干燥,露點不受溫度影響,但受壓力影響。 濕球溫度的定義是在定壓絕熱的情況下,空氣與水直接接觸,達到穩(wěn)定熱濕平衡時的絕熱飽和溫度
22、。第二章 設(shè)計任務(wù)分析及方案論證2.1 設(shè)計總體方案及方案論證 按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由 5 個模塊組成:主控制器,溫濕度傳感器,報警電路,按鍵電路及顯示電路。顯示模塊模塊報警電路按鍵電路溫濕度傳感器主控制器圖 2-1 總體電路框圖主控制器的功能有單片機來完成,主要負責(zé)處理由溫濕度傳感器送來數(shù)據(jù),并把處理好的數(shù)據(jù)送向顯示模塊。溫濕傳感器主要用來采集周圍環(huán)境參數(shù),并把所采集來的參數(shù)送向主控制器。按鍵電路主要用來完成單片機的復(fù)位操作和溫濕度初始值的設(shè)定。這里需要四個按鍵,一個用來溫度設(shè)定的累加,一個是用來溫度設(shè)定的遞減,一個用來設(shè)定濕度的累加,一個用來設(shè)定濕度的遞減。報警電路就是用一個發(fā)
23、光二極管顯示,而且外加一個繼電器來驅(qū)動外電路,用來判斷周圍環(huán)境的溫度或者濕度是否超出設(shè)定值了,任何一個超出設(shè)定值發(fā)光二極管就會被點亮。而且繼電器會發(fā)出聲響,鎖存器用來驅(qū)動顯示電路主要用來驅(qū)動 4 位數(shù)碼管發(fā)光的。由于單片機的輸出電流太?。ㄖ挥袔?ma)不能驅(qū)動繼電器,所以這里必須增加一個驅(qū)動顯示模塊。2.2 元器件的選擇2.2.1 主控制器芯片stc12c5a60s2/ad/pwm 系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1t)的單片機,是高速/低功耗/超強抗干擾的新一代 8051 單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快 8-12 倍。內(nèi)部集成 max810 專用復(fù)位電路,2 路
24、pwm,8 路高速10 位 a/d 轉(zhuǎn)換(250k/s),針對電機控制,強干擾場合。1. 增強型 8051 cpu,1t,單時鐘 / 機器周期,指令代碼完全兼容傳統(tǒng) 80512. 工作電壓:stc12c5a60s2 系列工作電壓: 5.5v - 3.3v(5v 單片機)stc12le5a60s2 系列工作電壓:3.6v - 2.2v(3v 單片機)3. 工作頻率范圍:0 - 35mhz,相當(dāng)于普通 8051 的 0420mhz4. 用戶應(yīng)用程序空間 8k /16k / 20k / 32k / 40k / 48k / 52k / 60k / 62k 字節(jié).5. 片上集成 1280 字節(jié) ram6
25、. 通用 i/o 口(36/40/44 個) , 復(fù)位后為: 準雙向口/ 弱上拉(普通 8051傳統(tǒng) i/o 口) 可設(shè)置成四種模式:準雙向口 / 弱上拉,推挽 / 強上拉,僅為輸入 / 高阻,開漏 每個 i/o 口驅(qū)動能力均可達到 20ma,但整個芯片最大不要超過 55ma7. isp(在系統(tǒng)可編程)/iap(在應(yīng)用可編程) , 無需專用編程器,無需專用仿真器可通過串口(p3.0/p3.1)直接下載用戶程序,數(shù)秒即可完成一片8. 有 eeprom 功能(stc12c5a62s2/ad/pwm 無內(nèi)部 eeprom)9. 看門狗10.內(nèi)部集成 max810 專用復(fù)位電路(外部晶體 12m 以下
26、時,復(fù)位腳可直接 1k 電阻到地)11. 外部掉電檢測電路: 在 p4.6 口有一個低壓門檻比較器 5v 單片機為 1.32v,誤差為+/-5%,3.3v 單片機為 1.30v,誤差為 +/-3%12.時鐘源:外部高精度晶體/ 時鐘,內(nèi)部 r/c 振蕩器(溫漂為+/-5%到 +/-10%以內(nèi))用戶在下載用戶程序時,可選擇是使用內(nèi)部 r/c 振蕩器還是外部晶體/ 時鐘常溫下內(nèi)部 r/c 振蕩器頻率為:5.0v 單片機為:11mhz 15.5mhz 3.3v 單片機為:8mhz 12mhz精度要求不高時,可選擇使用內(nèi)部時鐘,但因為有制造誤差和溫漂,以實際測試為準。13. 共 4 個 16 位定時器
27、 兩個與傳統(tǒng) 8051 兼容的定時器 / 計數(shù)器,16 位定時器 t0 和 t1,沒有定時器 2,但有獨立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上 2 路 pca模塊可再實現(xiàn) 2 個 16 位定時器。14. 2 個時鐘輸出口,可由 t0 的溢出在 p3.4/t0 輸出時鐘,可由 t1 的溢出在p3.5/t1 輸出時鐘。15. 外部中斷 i/o 口 7 路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的 pca 模塊, power down 模式可由外部中斷喚醒, int0/p3.2, int1/p3.3, t0/p3.4, t1/p3.5, rxd/p3.0, ccp0/p1.3
28、(也可通過寄存器設(shè)置到 p4.2 ), ccp1/p1.4 (也可通過寄存器設(shè)置到 p4.3)16. pwm(2 路)/pca(可編程計數(shù)器陣列,2 路) - 也可用來當(dāng) 2 路 d/a 使用 - 也可用來再實現(xiàn) 2 個定時器 -也可用來再實現(xiàn) 2 個外部中斷(上升沿中斷 / 下降沿中斷均可分別或同時支持)17. a/d 轉(zhuǎn)換, 10 位精度 adc,共 8 路,轉(zhuǎn)換速度可達 250k/s(每秒鐘 25 萬次)18. 通用全雙工異步串行口(uart),由于 stc12 系列是高速的 8051,可再用定時器或 pca 軟件實現(xiàn)多串口。19. stc12c5a60s2 系列有雙串口,后綴有 s2
29、標(biāo)志的才有雙串口,rxd2/p1.2(可通過寄存器設(shè)置到 p4.2),txd2/p1.3(可通過寄存器設(shè)置到 p4.3)20. 工作溫度范圍: -40 - +85(工業(yè)級) / 0 - 75(商業(yè)級)21. 封裝:pdip-40,lqfp-44,lqfp-48 i/o 口不夠時,可用 2 到 3 根普通 i/o 口線外接 74hc164/165/595(均可級聯(lián))來擴展 i/o 口,還可用 a/d 做按鍵掃描來節(jié)省 i/o 口,或用雙 cpu,三線通信,還多了串口。2.2.2 溫濕度傳感器測濕模塊選用濕度傳感器 sht15。而溫度傳感器則用 pt100,本來 sht15 也有測溫的功能,但是它
30、不能滿足設(shè)計的要求,且他的線性度沒有 pt100 好,因此測溫傳感器就用 pt100,測濕的傳感器用 sht15。下面圖說明它的線性度好。shtxx 系列單芯片傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專利的工業(yè) coms 過程微加工技術(shù)(cmosens),具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電容式聚合體測濕元件和一個能隙式測溫元件,并與一個 14 位的 a/d 器以及串行接口電路在同一芯片上實現(xiàn)無縫鏈接,從而具有超快響應(yīng),抗干擾能力強,性價比高等優(yōu)點。其內(nèi)部機構(gòu)圖如下圖 2-2 所示。圖 2-2 sht15 結(jié)構(gòu)圖72.2.3 驅(qū)動顯示電路驅(qū)動顯示模塊選用 2
31、 個 4 位共陰極數(shù)碼管和 3 個鎖存器 74573。由于單片機的端口輸出電流太小,這里必須加鎖存器來使數(shù)碼管顯示,使顯示的效果更好。led 數(shù)碼管也稱半導(dǎo)體數(shù)碼管,是目前數(shù)字電路中最常用的顯示器件。它是以發(fā)光二極管作段并按共陰極方式或共陽極方式連接后封裝而成的。圖 2-2 所示是兩種 led 數(shù)碼管的外形與內(nèi)部結(jié)構(gòu),、分別表示公共陽極和公共陰極,ag 是 7 個段電極,dp 為小數(shù)點。led 數(shù)碼管型號較多,規(guī)格尺寸也各異,顯示顏色有紅、綠、橙等。led 數(shù)碼管的主要特點如下:(1)能在低電壓、小電流條件下驅(qū)動發(fā)光,能與 cmos、itl 電路兼容。(2)發(fā)光響應(yīng)時間極短(小于 01s),高
32、頻特性好,單色性好,亮度高。 (3)體積小,重量輕,抗沖擊性能好。 (4)壽命長,使用壽命在 10 萬小時以上,甚至可達 100 萬小時。成本低。 因此它被廣泛用作數(shù)字儀器儀表、數(shù)控裝置、計算機的數(shù)顯器件。圖 2-3 led 數(shù)碼管外形和內(nèi)部結(jié)構(gòu)圖鎖存器的功能下表顯示2.3 溫濕度測量的方法及分析 sht15 是一個兩線串行接口的數(shù)字溫濕度傳感器,一個接口是時鐘線,一個接口是數(shù)據(jù)線(支持雙向傳輸) 。它是四針單排封裝,一個接電源,一個接地線,另兩個直接和單片機的 p2_5 和 p2_6 相連。 、單片機通過 p2_5 和 p2_6 向 sht15發(fā)送命令,sht15 接收到命令后做出相應(yīng)的應(yīng)答
33、。由于 sht15 內(nèi)部包含一個 14位 a/d 轉(zhuǎn)換器,所以單片機接收到就是數(shù)字信號,只需要做相應(yīng)的處理就能得到所需要的數(shù)據(jù)。這里減少了很多外部的電路的連接,用起來比較方便。第三章 硬件電路的設(shè)計3.1 主控制電路和測溫濕控制電路本次硬件設(shè)計的核心就是 stc12c5a60s2,其他部件都是圍繞它設(shè)計的。濕度傳感器 sht15 的 data 口和 sck 口分別與 stc12c5a60s2 的 p2_5 口和 p2_6 口相連。測溫的 pt100 則在電橋的微弱的變化產(chǎn)生的信號放到運放中放大等處理再接到p1_0。預(yù)置數(shù)電路就是 4 個按鍵,進行行列掃描,分別與 stc12c5a60s2 的p
34、1_1,p1_2 p1_3 和 p1_4 口相連。當(dāng)有按鍵按下時單片機收到有效的信號,s1 鍵是用來設(shè)置溫度的加 1,s2 鍵是用來設(shè)置溫度減 1,s3 鍵用來設(shè)置濕度的加0.1%,s4 鍵是用來設(shè)置濕度減 0.1%。報警電路就是把兩個發(fā)光二極管和stc12c5a60s2 的 p2_3,p2_4 口相連,因為要更好的顯示出控制外電路工作,所以要大點的電流驅(qū)動外電路,那么在電路中要顯示出來,那么要加一個繼電器才能顯示有足夠大的電流。如下圖顯示同樣濕度也一樣,只是把 p23 改為 p24.單片機復(fù)位有兩種:一種是上電復(fù)位,一種是按鍵復(fù)位。這次用的就是按鍵復(fù)位,當(dāng)按鍵按下時單片機的 rst 口從低電
35、平變?yōu)楦唠娖?,從而進入復(fù)位狀態(tài)。當(dāng)按鍵松開后,vcc 給 10uf 電容充電,從而把 rst 口拉至電平,單片機進入工作狀態(tài)。stc12c5a60s2 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1 和 xtal2 分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容 c1、c2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路,對外接電容 c1、c2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pf 士
36、 10pf,而如果使用陶瓷諧振器,建議選擇 40pf 士 l0pf。這里用到的是 11.0592m 的石英晶體振蕩器和兩個 30pf 的電容。具體原理圖如下圖3-1 所示。圖 3-1 主控制電路和測溫濕電路原理圖3.2 驅(qū)動顯示電路數(shù)碼管的顯示有兩種方法:一種是靜態(tài)顯示,一種是動態(tài)掃描顯示。靜態(tài)顯示就是數(shù)碼管的段選端一對一與單片機的 i/o 相連,位選端則根據(jù)數(shù)碼管的極型來接地(gnd)或者是高電平(vcc) 。靜態(tài)顯示實現(xiàn)起來比較簡單,但是浪費了單片機的 i/o 口資源。動態(tài)掃描顯示就是幾個數(shù)碼管的段選端可以同時接到單片機的 i/o 口,位選端一對一的接到單片機的其它 i/o 口,當(dāng)位選信號
37、選中某個數(shù)碼管時,那個數(shù)碼管就被點亮,而其它數(shù)碼管不亮。動態(tài)掃描顯示節(jié)省了單片機的 i/o 資源。采用動態(tài)顯示方案,設(shè)計中使用八個共陰極數(shù)碼管作為顯示載體,通過八路并口傳輸,共使用了 8 個 i/o 口。顯示時采用循環(huán)移位法,即八位數(shù)碼管依次循環(huán)點亮,利用人眼睛的視覺暫留效果達到連續(xù)顯示,主程序每運行一遍便調(diào)用一次顯示子程序,將數(shù)據(jù)顯示出來。stc12c5a60s2 的 p0 口與 3 個鎖存器相連,其中一個鎖存器與四個四位數(shù)碼管的數(shù)碼管的 a,b,c,d,e,f,g 和 dp,順序可以根據(jù)硬件接線方便而定。而其他兩個從鎖存器出來的則連到數(shù)碼管的位選端上,一個數(shù)碼管有 4 個位選端,4*4=1
38、6 正好連在剩下的鎖存器上。具體原理圖如下圖3-2 所示。圖 3-2 顯示電路原理圖第四章軟件設(shè)計及分析4.1 sht15 傳輸時序和指令集與測溫模塊74.1.1 通訊復(fù)位時序串行時鐘輸入 (sck)用于微處理器與 dth91 之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小 sck 頻率。串行數(shù)據(jù) (data) 三態(tài)門用于數(shù)據(jù)的讀取。data 在 sck 時鐘下降沿到來之后改變狀態(tài),并僅在 sck 時鐘上升沿有效。數(shù)據(jù)傳輸期間,在 sck 時鐘高電平時,data 必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動 data 在低電平。需要一個外部的上拉電阻(例如:10k)將信號提拉至高電
39、平。如果與 dth91 通訊中斷,下列信號時序可以復(fù)位串口:當(dāng) data 保持高電平時,觸發(fā) sck 時鐘 9 次或更多。這些時序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。圖 4-1 通訊復(fù)位時序4.1.2 啟動傳輸時序用一組“啟動傳輸”時序,來表示數(shù)據(jù)傳輸?shù)某跏蓟?。它包括:?dāng) sck 時鐘高電平時 data 翻轉(zhuǎn)為低電平,緊接著 sck 變?yōu)榈碗娖?,隨后是在 sck 時鐘高電平時 data 翻轉(zhuǎn)為高電平。在下一次指令前,發(fā)送一個“傳輸啟動”時序。啟動傳輸時序如下圖 4-2 所示。圖 4-2 啟動傳輸時序4.1.3 數(shù)據(jù)傳輸和指令集后續(xù)命令包含三個地址位(目前只支持“000” ) ,和五個命令位。d
40、th 91 會以下述方式表示已正確地接收到指令:在第 8 個 sck 時鐘的下降沿之后,將data 下拉為低電平(ack 位) 。在第 9 個 sck 時鐘的下降之后,釋放 data(恢復(fù)高電平) 。發(fā)布一組測量命令(00000101 表示相對濕度 rh, 00000011 表示溫度 t)后,控制器要等待測量結(jié)束。這個過程需要大約 20/80/320ms ,分別對應(yīng) 8/12/14bit 測量。確切時間隨內(nèi)部晶振速度的變化而變化,最多可能有-30%的變化。dth91 通過下拉 data 至低電平并進入空閑模式,表示測量的結(jié)束??刂破髟谠俅斡|發(fā) sck 時鐘前,必須等待這個“數(shù)據(jù)備妥”信號來讀出
41、數(shù)據(jù)。檢測數(shù)據(jù)可以先被存儲,這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時再讀出數(shù)據(jù)。接著傳輸 2 個字節(jié)的測量數(shù)據(jù)和 1 個字節(jié)的 crc 奇偶校驗。uc 需要通過下拉data 為低電平,以確認每個字節(jié)。所有的數(shù)據(jù)從 msb 開始,右值有效(例如:對于 12bit 數(shù)據(jù),從第 5 個 sck 時鐘起算作 msb;而對于 8bit 數(shù)據(jù),首字節(jié)則無意義) 。用 crc 數(shù)據(jù)的確認位,表明通訊結(jié)束。如果不使用 crc-8 校驗,控制器可以在測量值 lsb 后,通過保持確認位 ack 高電平,來中止通訊。在測量和通訊結(jié)束后,sht15 自動轉(zhuǎn)入休眠模式。sht15 的指令集如下表 4-1 所示。表 4-1
42、 命令集4.1.4 濕度的測量時序圖 4-3 測量濕度的時序4.1.5 輸出轉(zhuǎn)換為物理量由能隙材料 ptat (正比于絕對溫度) 研發(fā)的溫度傳感器具有極好的線性??捎萌缦鹿綄?shù)字輸出轉(zhuǎn)換為溫度值:temperature = d1 +d2 .sotd1 和 d2 的值如下表 4-2 所示。表 4-2 溫度轉(zhuǎn)換系數(shù)為了補償濕度傳感器的非線性以獲取準確數(shù)據(jù),建議使用如下公式 1 修正輸出數(shù)值:rhlinear = c1 + c2 .sorh + c3 .sorh2c1,c2 和 c3 值如下表 4-3 所示。表 4-3 濕度轉(zhuǎn)換系數(shù)濕度傳感器相對濕度的溫度補償實際測量溫度與 25 (77)相差較大
43、時,應(yīng)考慮濕度傳感器的溫度修正系數(shù):rhtrue = (tc -25).(t1 + t2 .sorh) + rhlineart1 和 t2 的值如下表 4-4 所示。表 4-4 溫度補償系數(shù)rhtrue 就是測量的濕度值。4.1.6 sht15 的 dc 特性。sht15 的 dc 特性如下表 4-5 所示。表 4-5 dht91 的 dc 特性pt100 在橋式電路的變化的信號傳到儀用中放大, (大概放大 60 倍左右,一度輸出的電壓大概為 23 豪伏,因為設(shè)計要求中有負的-100 度,即輸出電壓為-2.3 伏,因為 ad 轉(zhuǎn)換中不能轉(zhuǎn)換 0 伏以下的電壓以及大于 5 伏的電壓,所以加了一個
44、加法器,又要加一個 1/2 比例電路。 ( 2.3 伏疊加之后輸出的范圍為 06.9 伏)加了 1/2 比例電路后輸出的電壓是反向的,所以應(yīng)該要求再加一個反向電路使輸出的電壓在 0-5v 之間,再接入 ad 轉(zhuǎn)換之中。具體電路如下。4.2 程序流程圖圖 4-4 程序流程圖因為溫度的只有一個 ad 轉(zhuǎn)換,所以就不列流程圖了。4.3 程序的設(shè)計4.3.1 sht15 的初始化程序#include/#include /microcontroller specific library, e.g. port definitions#include /keil library (is used for _
45、nop()_ operation)#include /keil library#include /keil librarytypedef union unsigned int i;float f; value;enum temp,humi;/bit flag=0;#define uchar unsigned char#define uint unsigned int#define noack 0#define ack 1#define status_reg_w 0 x06 #define status_reg_r 0 x07 #define measure_temp 0 x03 #define
46、 measure_humi 0 x05 #define reset 0 x1e sbit data=p23;sbit sck=p24;/uchar table3;/-void send_byte(uchar x);void send_two(uint y);/*以下為讀寫 sht15 濕度程序*/char s_write_byte(unsigned char value)unsigned char i,error=0;for (i=0 x80;i0;i/=2) /shift bit for masking if (i & value) data=1; /masking value wi
47、th i , write to sensi-buselse data=0;_nop_(); /observe setup timesck=1; /clk for sensi-bus_nop_();_nop_();_nop_(); /pulswith approx. 5 ussck=0;_nop_(); /observe hold timedata=1; /release data-line_nop_(); /observe setup timesck=1; /clk #9 for ackerror=data; /check ack (data will be pulled down by sh
48、t11)sck=0;return error; /error=1 in case of no acknowledge/-char s_read_byte(unsigned char ack)unsigned char i,val=0;data=1; /release data-linefor (i=0 x80;i0;i/=2) /shift bit for masking sck=1; /clk for sensi-busif (data) val=(val | i); /read bit sck=0;data=!ack; /in case of ack=1 pull down data-li
49、ne_nop_(); /observe setup timesck=1; /clk #9 for ack_nop_();_nop_();_nop_(); /pulswith approx. 5 ussck=0;_nop_(); /observe hold timedata=1; /release data-linereturn val; /返回讀命令的值/-void s_transstart(void) /transmission startdata=1; sck=0; /initial state_nop_();sck=1;_nop_();data=0;_nop_();sck=0;_nop_
50、();_nop_();_nop_();sck=1;_nop_();data=1;_nop_();sck=0;/-void s_connectionreset(void)unsigned char i;data=1; sck=0; /initial statefor(i=0;i9;i+) /9 sck cycles sck=1;sck=0; /九個脈沖以重置數(shù)據(jù)時鐘線s_transstart(); char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)unsigned char e
51、rror=0;unsigned int i;s_transstart(); /transmission startswitch(mode) /send command to sensorcase temp : error+=s_write_byte(measure_temp); break;case humi : error+=s_write_byte(measure_humi); break;default : break;for (i=0;i100) rh_true=100; /cut if the value is outside ofif(rh_true0.1) rh_true=0.1
52、; /the physical possible range*p_temperature=t_c; /return temperature *p_humidity=rh_true; /return humidity%rh/-float calc_dewpoint(float h,float t) /計算露點 float k,dew_point ;k = (log10(h)-2)/0.4343 + (17.62*t)/(243.12+t);dew_point = 243.12*k/(17.62-k);return dew_point; /返回露點void init_uart(void)tmod=
53、0 x20; /t1 工作于方式 1th1=0 xfd; /設(shè)置波特率為 9600tl1=0 xfd; tr1=1;/允許串行口接收sm0=0; /串口工作方式 1sm1=1; 4.3.2 畢業(yè)設(shè)計.c 是主函數(shù),做了溫度的算法#include /狀態(tài)寄存器默認溫度 14bit,濕度 12bit#include /剛開始要復(fù)位寄存器,且轉(zhuǎn)換時 12bit 為80ms#define uint unsigned int /80ms 可不理會,主機處于檢測狀態(tài)#define uchar unsigned charsbit du_choice=p20;sbit we_choice=p21;sbit w
54、e_choice1=p22;/第二個位選信號sbit data=p23;sbit sck=p24;sbit tem_inc=p11;/溫度加sbit tem_dec=p12;/溫度減sbit hum_inc=p13; /濕度加sbit hum_dec=p14;/濕度減 sbit tem_led=p25;sbit hum_led=p26; extern uchar code table;extern uchar code table1;uchar key=0;/按鍵全局變量uint idata tem_dault=25,hum_dault=500;/溫度、濕度賦初值 溫度:25 濕度:50%uc
55、har idata aj_fuhao=0,aj_bai=0,aj_shi=0,aj_ge=0; uchar idata aj_qian_hum=0,aj_bai_hum=0,aj_shi_hum=0,aj_ge_hum=0; / typedef union unsigned int i;float f; value;uint aa2=0;/定時中斷 1 中的加數(shù)用uchar idata bai=0,shi=0,ge=0,fuhao=0,qian_hum=0,bai_hum=0,shi_hum=0,ge_hum=0;unsigned long get_ad1=0,get_ad3=0;float
56、get_ad2=0;uint get_ad=0;uint humidity_dat=0;void display(uchar fuhao,uchar bai,uchar shi,uchar ge);void display_hum(uchar qian,uchar bai,uchar shi,uchar ge);/void adjust_display(uchar fuhao,uchar bai,uchar shi,uchar ge);void adjust_display( uchar aj_fuhao, uchar aj_bai, uchar aj_shi, uchar aj_ge);vo
57、id aj_display_hum(uchar aj_qian_hum, uchar aj_bai_hum, uchar aj_shi_hum, uchar aj_ge_hum);/void aj_display_hum(uchar qian_hum,uchar bai_hum,uchar shi_hum,uchar ge_hum);/void serial_initial();void init();void send_byte(uchar x);void send_two(uint y);unsigned int get_ad_result(unsigned char channel);v
58、oid delay1ms(uint z); /1ms 延時void delayms(unsigned int n) /延時 10n 毫秒程序 unsigned int i,j; for(i=0;in;i+) for(j=0;j2000;j+); void delay(unsigned int m) /延時程序 unsigned int i,j; for(i=0;im;i+) for(j=0;j10;j+); value humi_val,temp_val; /定義兩個共用體變量 enum temp,humi; char s_measure(unsigned char *p_value, uns
59、igned char *p_checksum, unsigned char mode); void calc_sth11(float*p_humidity ,float *p_temperature); void s_connectionreset(void); void s_transstart(void); char s_read_byte(unsigned char ack); char s_write_byte(unsigned char value);void main() float dew_point;unsigned int humi_val2=0;unsigned char
60、error,checksum;unsigned int i;uchar a=0;/init_uart();init();hum_inc=0;hum_dec=0;tem_inc=1;tem_dec=1;s_connectionreset();we_choice1=0; tem_led=0;hum_led=0; while(1) error=0; error+=s_measure(unsigned char*) &humi_val.i,&checksum,humi); /measure humidity error+=s_measure(unsigned char*) &temp_val.i,&checksum,temp); /measure temperature if(error!=0) s_conne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 21世紀以來中國健康扶貧研究脈絡(luò)與展望-基于CiteSpace的可視化分析
- 二零二五年度國有企業(yè)股權(quán)轉(zhuǎn)讓與知識產(chǎn)權(quán)保護合同3篇
- Unit8 Birthdays(Period 1)(說課稿)-2023-2024學(xué)年譯林版(三起)英語五年級下冊
- 江蘇省泰州市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版競賽題((上下)學(xué)期)試卷及答案
- 二零二五年度建筑工程合同變更與合同糾紛調(diào)解合同9篇
- 二零二五年度GZ事業(yè)單位合同制聘用員工勞動合同解除及補償合同2篇
- 貴州商學(xué)院《中外文學(xué)導(dǎo)讀》2023-2024學(xué)年第一學(xué)期期末試卷
- Unit 2 AnimaIs Lesson 3 Have Fun(說課稿)-2024-2025學(xué)年北師大版(三起)英語五年級上冊
- 貴州農(nóng)業(yè)職業(yè)學(xué)院《籃球理論與實踐Ⅳ》2023-2024學(xué)年第一學(xué)期期末試卷
- Unit 5 What does he do Part C Story time大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版英語六年級上冊
- SB/T 10412-2007速凍面米食品
- 數(shù)控線切割機床的手工編程
- -油水井小修工藝技術(shù)課件
- (完整版)兒童醫(yī)學(xué)康復(fù)科疾病護理常規(guī)
- 2022閥門制造作業(yè)指導(dǎo)書
- 科技創(chuàng)新社團活動教案課程
- 建筑結(jié)構(gòu)加固工程施工質(zhì)量驗收規(guī)范表格
- 部編版語文六年級上冊作文總復(fù)習(xí)課件
- 無水氯化鈣MSDS資料
- 專利產(chǎn)品“修理”與“再造”的區(qū)分
- 氨堿法純堿生產(chǎn)工藝概述
評論
0/150
提交評論