畢業(yè)設(shè)計(jì)基于STC12C5A60S2單片機(jī)的數(shù)字溫濕度計(jì)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)基于STC12C5A60S2單片機(jī)的數(shù)字溫濕度計(jì)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)基于STC12C5A60S2單片機(jī)的數(shù)字溫濕度計(jì)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)基于STC12C5A60S2單片機(jī)的數(shù)字溫濕度計(jì)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)基于STC12C5A60S2單片機(jī)的數(shù)字溫濕度計(jì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 東東 莞莞 理理 工工 學(xué)學(xué) 院院本 科 畢 業(yè) 設(shè) 計(jì)畢業(yè)設(shè)計(jì)題目:溫濕度控制器畢業(yè)設(shè)計(jì)題目:溫濕度控制器學(xué)生姓名:學(xué)生姓名:學(xué)學(xué) 號(hào):號(hào):系系 別:別:專(zhuān)業(yè)班級(jí):專(zhuān)業(yè)班級(jí):指導(dǎo)教師姓名及職稱(chēng):劉華珠指導(dǎo)教師姓名及職稱(chēng):劉華珠 高級(jí)工程師高級(jí)工程師起止時(shí)間:起止時(shí)間:20112011 年年 1111 月月 20122012 年年 6 6 月月摘摘 要要本論文介紹了一種以單片機(jī) stc12c5a60s2 為主要控制器件,以pt100,sht15 分別為溫,濕度傳感器。本設(shè)計(jì)主要包括硬件電路的設(shè)計(jì)和系統(tǒng)軟件的設(shè)計(jì)。硬件電路主要包括控制器,測(cè)溫濕控制電路和顯示電路等??刂破饔脦в?ad 轉(zhuǎn)換的單

2、片機(jī),溫度傳感器 pt100,濕度傳感器采用 sht15,顯示電路采用 1 個(gè) 8 位共陰極 led 數(shù)碼管,用鎖存器是顯示效果更好。測(cè)溫濕控制電路由溫濕度傳感器和預(yù)置溫濕度值比較報(bào)警電路組成,當(dāng)實(shí)際測(cè)量溫濕度值大于預(yù)置溫濕度值時(shí),發(fā)出報(bào)警信號(hào)(發(fā)光二極管點(diǎn)亮)而且使外電路驅(qū)動(dòng)(繼電器動(dòng)作) 。軟件部分主要包括主程序,測(cè)溫濕度子程序,顯示子程序和按鍵子程序等。本次設(shè)計(jì)采用的 sht15 濕度傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè) 14 位的 a/d 器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超快響應(yīng),抗干擾能力強(qiáng),性?xún)r(jià)比高等優(yōu)點(diǎn)。而且 pt100 在要求的范

3、圍內(nèi)線(xiàn)性度很好。關(guān)鍵詞關(guān)鍵詞:溫度測(cè)量, 濕度測(cè)量,溫度算法,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è)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史設(shè)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史1 11.11.1 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)任務(wù)及要求.1.11.21.2 設(shè)計(jì)溫濕度計(jì)的依據(jù)和意義設(shè)計(jì)溫濕度計(jì)的依據(jù)和意義.1.11.31.3 溫度計(jì)的發(fā)展史溫度計(jì)的發(fā)展史2 21.41.4 濕度計(jì)的由來(lái)濕度計(jì)的由來(lái)3 31.51.5 露點(diǎn)意義露點(diǎn)意

10、義.3.3二二 設(shè)計(jì)任務(wù)分析及方案論證設(shè)計(jì)任務(wù)分析及方案論證4 42.12.1 設(shè)計(jì)總體方案及方案論證設(shè)計(jì)總體方案及方案論證4 42.22.2 元器件的選擇元器件的選擇5 52.2.12.2.1 主控制器芯片主控制器芯片5 52.2.22.2.2 溫濕度傳感器溫濕度傳感器. .7 72.2.32.2.3 驅(qū)動(dòng)顯示電路驅(qū)動(dòng)顯示電路. .8 82.32.3 溫濕度測(cè)量的方法及分析溫濕度測(cè)量的方法及分析9 9三三 硬件電路的設(shè)計(jì)硬件電路的設(shè)計(jì). .10103.13.1 主控制電路和測(cè)溫濕控制電路主控制電路和測(cè)溫濕控制電路.10.103.23.2 驅(qū)動(dòng)顯示電路驅(qū)動(dòng)顯示電路1212四四 軟件設(shè)計(jì)及分析軟

11、件設(shè)計(jì)及分析. .13134.14.1 sht15sht15 傳輸時(shí)序和指令集傳輸時(shí)序和指令集與測(cè)溫模塊與測(cè)溫模塊.13.1374.1.14.1.1 通訊復(fù)位時(shí)序通訊復(fù)位時(shí)序. .13134.1.24.1.2 啟動(dòng)傳輸時(shí)序啟動(dòng)傳輸時(shí)序. .14144.1.34.1.3 數(shù)據(jù)傳輸和指令集數(shù)據(jù)傳輸和指令集. .14144.1.44.1.4 濕度的測(cè)量時(shí)序濕度的測(cè)量時(shí)序. .15154.1.54.1.5 輸出轉(zhuǎn)換為物理量輸出轉(zhuǎn)換為物理量. .15154.1.64.1.6 sht15sht15 的的 dcdc 特性特性17174.24.2 程序流程圖程序流程圖19194.34.3 程序的設(shè)計(jì)程序的設(shè)計(jì)

12、20204.3.14.3.1 sht15sht15 的初始化程序的初始化程序. .20204.3.24.3.2 畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì).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參考文獻(xiàn)參考文獻(xiàn)4747致致 謝謝4848附附 錄錄4848引 言溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國(guó)防、科研等部門(mén),經(jīng)常需要對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量及控

13、制。準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。傳統(tǒng)的溫度計(jì)是用水銀柱來(lái)顯示的,雖然結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜,但是它的精確度不高,不易讀數(shù)。傳統(tǒng)濕度計(jì)采用干濕球顯示法,不僅復(fù)雜而且測(cè)量精度不高。而采用單片機(jī)對(duì)溫濕度進(jìn)行測(cè)量控制,不僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用 led 數(shù)碼管來(lái)顯示溫濕度的數(shù)值,看起來(lái)更加直觀。采用 sht15 作為濕度傳感器,可以同時(shí)測(cè)溫,測(cè)濕,但是,為了能更廣的范圍,溫度傳感器我們采用了 pt100。其實(shí),sht15 這種傳感器不易焊接,但是里面有一個(gè) 14 位 a/d 以及串行接口電路在同一芯片上,從而具有超快的響應(yīng)

14、,抗干擾能力強(qiáng),性?xún)r(jià)比高等優(yōu)點(diǎn)。用單片機(jī)來(lái)控制溫濕度可以完成溫濕度的制動(dòng)控制,通過(guò)單片機(jī)的串口與外部電路相連,把采集到的參數(shù)跟以設(shè)定的比較,最后由單片機(jī)向外部電路指示具體的行動(dòng)??傊?,無(wú)論在日常生活,還是工業(yè),農(nóng)業(yè)都離不開(kāi)周?chē)h(huán)境的溫濕度的測(cè)量,因此,研究溫濕度的控制和測(cè)量具有非常重要的意義第一章 設(shè)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史1.1 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一個(gè)以單片機(jī)為核心的溫濕度測(cè)量系統(tǒng),可實(shí)現(xiàn)的功能為:(1)系統(tǒng)可由用戶(hù)預(yù)設(shè)溫度值和濕度值,測(cè)溫范圍100200, 測(cè)濕范圍 0 100%且誤差小于 5; (2)超出預(yù)設(shè)值時(shí)系統(tǒng)會(huì)自動(dòng)報(bào)警,即發(fā)光二極管亮,且要求要用繼電器啟動(dòng)外電路顯示;1.2

15、設(shè)計(jì)溫濕度計(jì)的依據(jù)和意義溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國(guó)防、科研等部門(mén),經(jīng)常需要對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量及控制。準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。傳統(tǒng)的溫度計(jì)是用水銀柱來(lái)顯示的,雖然結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜,但是它的精確度不高,不易讀數(shù)。傳統(tǒng)的濕度計(jì)采用干濕球顯示法,不僅復(fù)雜而且測(cè)量精度不高。而采用單片機(jī)對(duì)溫濕度進(jìn)行控制,不僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用 led 來(lái)顯示溫濕度的數(shù)字看起來(lái)更加直觀。采用 sht15 作為濕度傳感器,可以同時(shí)測(cè)溫,測(cè)濕,但是,為了能更廣的范圍,溫度傳感器我們采用了 pt1

16、00。其實(shí),sht15 這種傳感器不易焊接,但是里面有一個(gè) 14 位 a/d 以及串行接口電路在同一芯片上,從而具有超快的響應(yīng),抗干擾能力強(qiáng),性?xún)r(jià)比高等優(yōu)點(diǎn)。用單片機(jī)來(lái)控制溫濕度可以完成溫濕度的制動(dòng)控制,通過(guò)單片機(jī)的串口與外部電路相連,把采集到的參數(shù)跟以設(shè)定的比較,最后由單片機(jī)向外部電路指示具體的行動(dòng)??傊?,無(wú)論在日常生活中還是在工業(yè)、農(nóng)業(yè)方面都離不開(kāi)對(duì)周?chē)h(huán)境進(jìn)行溫濕度的測(cè)量。因此,研究溫濕度的控制和測(cè)量具有非常重要的意義。1.3 溫度計(jì)的發(fā)展史 溫度計(jì)是測(cè)溫儀器的總稱(chēng)。根據(jù)所用測(cè)溫物質(zhì)的不同和測(cè)溫范圍的不同,有煤油溫度計(jì)、酒精溫度計(jì)、水銀溫度計(jì)、氣體溫度計(jì)、電阻溫度計(jì)、溫差電偶溫度計(jì)、輻射

17、溫度計(jì)和光測(cè)溫度計(jì)等。 最早的溫度計(jì)是在 1593 年由意大利科學(xué)家伽利略(15641642)發(fā)明的。他的第一只溫度計(jì)是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時(shí)先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會(huì)上下移動(dòng),根據(jù)移動(dòng)的多少就可以判定溫度的變化和溫度的高低。這種溫度計(jì),受外界大氣壓強(qiáng)等環(huán)境因素的影響較大,所以測(cè)量誤差大。 后來(lái)伽利略的學(xué)生和其他科學(xué)家,在這個(gè)基礎(chǔ)上反復(fù)改進(jìn),如把玻璃管倒過(guò)來(lái),把液體放在管內(nèi),把玻璃管封閉等。比較突出的是法國(guó)人布利奧在 1659 年制造的溫度計(jì),他把玻璃泡的體積縮小,并把測(cè)溫物質(zhì)改為水銀,這樣的溫度計(jì)已具備了現(xiàn)在溫度計(jì)

18、的雛形。以后荷蘭人華倫海特在 1709 年利用酒精,在 1714年又利用水銀作為測(cè)量物質(zhì),制造了更精確的溫度計(jì)。他觀察了水的沸騰溫度、水和冰混合時(shí)的溫度、鹽水和冰混合時(shí)的溫度;經(jīng)過(guò)反復(fù)實(shí)驗(yàn)與核準(zhǔn),最后把一定濃度的鹽水凝固時(shí)的溫度定為 0,把純水凝固時(shí)的溫度定為 32,把標(biāo)準(zhǔn)大氣壓下水沸騰的溫度定為 212,用代表華氏溫度,這就是華氏溫度計(jì)。 在華氏溫度計(jì)出現(xiàn)的同時(shí),法國(guó)人列繆爾(16831757)也設(shè)計(jì)制造了一種溫度計(jì)。他認(rèn)為水銀的膨脹系數(shù)太小,不宜做測(cè)溫物質(zhì)。他專(zhuān)心研究用酒精作為測(cè)溫物質(zhì)的優(yōu)點(diǎn)。他反復(fù)實(shí)踐發(fā)現(xiàn),含有 1/5 水的酒精,在水的結(jié)冰溫度和沸騰溫度之間,其體積的膨脹是從 1000

19、個(gè)體積單位增大到 1080 個(gè)體積單位。因此他把冰點(diǎn)和沸點(diǎn)之間分成 80 份,定為自己溫度計(jì)的溫度分度,這就是列氏溫度計(jì)。華氏溫度計(jì)制成后又經(jīng)過(guò) 30 多年,瑞典人攝爾修斯于 1742 年改進(jìn)了華倫海特溫度計(jì)的刻度,他把水的沸點(diǎn)定為零度,把水的冰點(diǎn)定為 100 度。后來(lái)他的同事施勒默爾把兩個(gè)溫度點(diǎn)的數(shù)值又倒過(guò)來(lái),就成了現(xiàn)在的百分溫度,即攝氏溫度,用表示。華氏溫度與攝氏溫度的關(guān)系為: 9/5+32,或59(-32)?,F(xiàn)在英、美國(guó)家多用華氏溫度,德國(guó)多用列氏溫度,而世界科技界和工農(nóng)業(yè)生產(chǎn)中,以及我國(guó)、法國(guó)等大多數(shù)國(guó)家則多用攝氏溫度。隨著科學(xué)技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測(cè)溫技術(shù)也不斷地改進(jìn)和提高

20、。由于測(cè)溫范圍越來(lái)越廣,根據(jù)不同的要求,又制造出不同需要的測(cè)溫儀器。1.4 濕度計(jì)的由來(lái)濕度計(jì)是測(cè)量空氣內(nèi)含水分多少的儀器。 史記天官書(shū)中即有測(cè)濕的記載。我國(guó)漢朝初年就已出現(xiàn)濕度計(jì),它是利用天平來(lái)測(cè)量空氣干燥或潮濕的。天平濕度計(jì)的使用方法,是把兩個(gè)重量相等而吸濕性不同的物體,例如灰和鐵,分別掛在天平兩端。當(dāng)空氣濕度發(fā)生變化時(shí),由于兩個(gè)物體吸入的分水不同,重量也就起了變化,于是天平發(fā)生偏差,從而指示出空氣潮濕的程度。 這就是濕度計(jì)的由來(lái)。1.5 露點(diǎn)意義氣溫愈低,飽和水氣壓就愈小。所以對(duì)于含有一定量水汽的空氣,在氣壓不變的情況下降低溫度,使飽和水汽壓降至與當(dāng)時(shí)實(shí)際的水汽壓相等時(shí)的溫度,稱(chēng)為露點(diǎn)(

21、dew point) 。露點(diǎn)溫度是指空氣在水汽含量和氣壓都不改變的條件下,冷卻到飽和時(shí)的溫度。形象地說(shuō),就是空氣中的水蒸氣變?yōu)槁吨闀r(shí)候的溫度叫露點(diǎn)溫度。露點(diǎn)溫度本是個(gè)溫度值,可為什么用它來(lái)表示濕度呢?這是因?yàn)椋?dāng)空氣中水汽已達(dá)到飽和時(shí),氣溫與露點(diǎn)溫度相同;當(dāng)水汽未達(dá)到飽和時(shí),氣溫一定高于露點(diǎn)溫度。所以露點(diǎn)與氣溫的差值可以表示空氣中的水汽距離飽和的程度。在 100%的相對(duì)濕度時(shí),周?chē)h(huán)境的溫度就是露點(diǎn)溫度。露點(diǎn)溫度越小于周?chē)h(huán)境的溫度,結(jié)露的可能性就越小,也就意味著空氣越干燥,露點(diǎn)不受溫度影響,但受壓力影響。 濕球溫度的定義是在定壓絕熱的情況下,空氣與水直接接觸,達(dá)到穩(wěn)定熱濕平衡時(shí)的絕熱飽和溫度

22、。第二章 設(shè)計(jì)任務(wù)分析及方案論證2.1 設(shè)計(jì)總體方案及方案論證 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由 5 個(gè)模塊組成:主控制器,溫濕度傳感器,報(bào)警電路,按鍵電路及顯示電路。顯示模塊模塊報(bào)警電路按鍵電路溫濕度傳感器主控制器圖 2-1 總體電路框圖主控制器的功能有單片機(jī)來(lái)完成,主要負(fù)責(zé)處理由溫濕度傳感器送來(lái)數(shù)據(jù),并把處理好的數(shù)據(jù)送向顯示模塊。溫濕傳感器主要用來(lái)采集周?chē)h(huán)境參數(shù),并把所采集來(lái)的參數(shù)送向主控制器。按鍵電路主要用來(lái)完成單片機(jī)的復(fù)位操作和溫濕度初始值的設(shè)定。這里需要四個(gè)按鍵,一個(gè)用來(lái)溫度設(shè)定的累加,一個(gè)是用來(lái)溫度設(shè)定的遞減,一個(gè)用來(lái)設(shè)定濕度的累加,一個(gè)用來(lái)設(shè)定濕度的遞減。報(bào)警電路就是用一個(gè)發(fā)

23、光二極管顯示,而且外加一個(gè)繼電器來(lái)驅(qū)動(dòng)外電路,用來(lái)判斷周?chē)h(huán)境的溫度或者濕度是否超出設(shè)定值了,任何一個(gè)超出設(shè)定值發(fā)光二極管就會(huì)被點(diǎn)亮。而且繼電器會(huì)發(fā)出聲響,鎖存器用來(lái)驅(qū)動(dòng)顯示電路主要用來(lái)驅(qū)動(dòng) 4 位數(shù)碼管發(fā)光的。由于單片機(jī)的輸出電流太小(只有幾 ma)不能驅(qū)動(dòng)繼電器,所以這里必須增加一個(gè)驅(qū)動(dòng)顯示模塊。2.2 元器件的選擇2.2.1 主控制器芯片stc12c5a60s2/ad/pwm 系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1t)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代 8051 單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快 8-12 倍。內(nèi)部集成 max810 專(zhuān)用復(fù)位電路,2 路

24、pwm,8 路高速10 位 a/d 轉(zhuǎn)換(250k/s),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。1. 增強(qiáng)型 8051 cpu,1t,單時(shí)鐘 / 機(jī)器周期,指令代碼完全兼容傳統(tǒng) 80512. 工作電壓:stc12c5a60s2 系列工作電壓: 5.5v - 3.3v(5v 單片機(jī))stc12le5a60s2 系列工作電壓:3.6v - 2.2v(3v 單片機(jī))3. 工作頻率范圍:0 - 35mhz,相當(dāng)于普通 8051 的 0420mhz4. 用戶(hù)應(yīng)用程序空間 8k /16k / 20k / 32k / 40k / 48k / 52k / 60k / 62k 字節(jié).5. 片上集成 1280 字節(jié) ram6

25、. 通用 i/o 口(36/40/44 個(gè)) , 復(fù)位后為: 準(zhǔn)雙向口/ 弱上拉(普通 8051傳統(tǒng) i/o 口) 可設(shè)置成四種模式:準(zhǔn)雙向口 / 弱上拉,推挽 / 強(qiáng)上拉,僅為輸入 / 高阻,開(kāi)漏 每個(gè) i/o 口驅(qū)動(dòng)能力均可達(dá)到 20ma,但整個(gè)芯片最大不要超過(guò) 55ma7. isp(在系統(tǒng)可編程)/iap(在應(yīng)用可編程) , 無(wú)需專(zhuān)用編程器,無(wú)需專(zhuān)用仿真器可通過(guò)串口(p3.0/p3.1)直接下載用戶(hù)程序,數(shù)秒即可完成一片8. 有 eeprom 功能(stc12c5a62s2/ad/pwm 無(wú)內(nèi)部 eeprom)9. 看門(mén)狗10.內(nèi)部集成 max810 專(zhuān)用復(fù)位電路(外部晶體 12m 以下

26、時(shí),復(fù)位腳可直接 1k 電阻到地)11. 外部掉電檢測(cè)電路: 在 p4.6 口有一個(gè)低壓門(mén)檻比較器 5v 單片機(jī)為 1.32v,誤差為+/-5%,3.3v 單片機(jī)為 1.30v,誤差為 +/-3%12.時(shí)鐘源:外部高精度晶體/ 時(shí)鐘,內(nèi)部 r/c 振蕩器(溫漂為+/-5%到 +/-10%以?xún)?nèi))用戶(hù)在下載用戶(hù)程序時(shí),可選擇是使用內(nèi)部 r/c 振蕩器還是外部晶體/ 時(shí)鐘常溫下內(nèi)部 r/c 振蕩器頻率為:5.0v 單片機(jī)為:11mhz 15.5mhz 3.3v 單片機(jī)為:8mhz 12mhz精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測(cè)試為準(zhǔn)。13. 共 4 個(gè) 16 位定時(shí)器

27、 兩個(gè)與傳統(tǒng) 8051 兼容的定時(shí)器 / 計(jì)數(shù)器,16 位定時(shí)器 t0 和 t1,沒(méi)有定時(shí)器 2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上 2 路 pca模塊可再實(shí)現(xiàn) 2 個(gè) 16 位定時(shí)器。14. 2 個(gè)時(shí)鐘輸出口,可由 t0 的溢出在 p3.4/t0 輸出時(shí)鐘,可由 t1 的溢出在p3.5/t1 輸出時(shí)鐘。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、(也可通過(guò)寄存器設(shè)置到 p4.2 ), ccp1/p1.4 (也可通過(guò)寄存器設(shè)置到 p4.3)16. pwm(2 路)/pca(可編程計(jì)數(shù)器陣列,2 路) - 也可用來(lái)當(dāng) 2 路 d/a 使用 - 也可用來(lái)再實(shí)現(xiàn) 2 個(gè)定時(shí)器 -也可用來(lái)再實(shí)現(xiàn) 2 個(gè)外部中斷(上升沿中斷 / 下降沿中斷均可分別或同時(shí)支持)17. a/d 轉(zhuǎn)換, 10 位精度 adc,共 8 路,轉(zhuǎn)換速度可達(dá) 250k/s(每秒鐘 25 萬(wàn)次)18. 通用全雙工異步串行口(uart),由于 stc12 系列是高速的 8051,可再用定時(shí)器或 pca 軟件實(shí)現(xiàn)多串口。19. stc12c5a60s2 系列有雙串口,后綴有 s2

29、標(biāo)志的才有雙串口,rxd2/p1.2(可通過(guò)寄存器設(shè)置到 p4.2),txd2/p1.3(可通過(guò)寄存器設(shè)置到 p4.3)20. 工作溫度范圍: -40 - +85(工業(yè)級(jí)) / 0 - 75(商業(yè)級(jí))21. 封裝:pdip-40,lqfp-44,lqfp-48 i/o 口不夠時(shí),可用 2 到 3 根普通 i/o 口線(xiàn)外接 74hc164/165/595(均可級(jí)聯(lián))來(lái)擴(kuò)展 i/o 口,還可用 a/d 做按鍵掃描來(lái)節(jié)省 i/o 口,或用雙 cpu,三線(xiàn)通信,還多了串口。2.2.2 溫濕度傳感器測(cè)濕模塊選用濕度傳感器 sht15。而溫度傳感器則用 pt100,本來(lái) sht15 也有測(cè)溫的功能,但是它

30、不能滿(mǎn)足設(shè)計(jì)的要求,且他的線(xiàn)性度沒(méi)有 pt100 好,因此測(cè)溫傳感器就用 pt100,測(cè)濕的傳感器用 sht15。下面圖說(shuō)明它的線(xiàn)性度好。shtxx 系列單芯片傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)利的工業(yè) coms 過(guò)程微加工技術(shù)(cmosens),具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè) 14 位的 a/d 器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超快響應(yīng),抗干擾能力強(qiáng),性?xún)r(jià)比高等優(yōu)點(diǎn)。其內(nèi)部機(jī)構(gòu)圖如下圖 2-2 所示。圖 2-2 sht15 結(jié)構(gòu)圖72.2.3 驅(qū)動(dòng)顯示電路驅(qū)動(dòng)顯示模塊選用 2

31、 個(gè) 4 位共陰極數(shù)碼管和 3 個(gè)鎖存器 74573。由于單片機(jī)的端口輸出電流太小,這里必須加鎖存器來(lái)使數(shù)碼管顯示,使顯示的效果更好。led 數(shù)碼管也稱(chēng)半導(dǎo)體數(shù)碼管,是目前數(shù)字電路中最常用的顯示器件。它是以發(fā)光二極管作段并按共陰極方式或共陽(yáng)極方式連接后封裝而成的。圖 2-2 所示是兩種 led 數(shù)碼管的外形與內(nèi)部結(jié)構(gòu),、分別表示公共陽(yáng)極和公共陰極,ag 是 7 個(gè)段電極,dp 為小數(shù)點(diǎn)。led 數(shù)碼管型號(hào)較多,規(guī)格尺寸也各異,顯示顏色有紅、綠、橙等。led 數(shù)碼管的主要特點(diǎn)如下:(1)能在低電壓、小電流條件下驅(qū)動(dòng)發(fā)光,能與 cmos、itl 電路兼容。(2)發(fā)光響應(yīng)時(shí)間極短(小于 01s),高

32、頻特性好,單色性好,亮度高。 (3)體積小,重量輕,抗沖擊性能好。 (4)壽命長(zhǎng),使用壽命在 10 萬(wàn)小時(shí)以上,甚至可達(dá) 100 萬(wàn)小時(shí)。成本低。 因此它被廣泛用作數(shù)字儀器儀表、數(shù)控裝置、計(jì)算機(jī)的數(shù)顯器件。圖 2-3 led 數(shù)碼管外形和內(nèi)部結(jié)構(gòu)圖鎖存器的功能下表顯示2.3 溫濕度測(cè)量的方法及分析 sht15 是一個(gè)兩線(xiàn)串行接口的數(shù)字溫濕度傳感器,一個(gè)接口是時(shí)鐘線(xiàn),一個(gè)接口是數(shù)據(jù)線(xiàn)(支持雙向傳輸) 。它是四針單排封裝,一個(gè)接電源,一個(gè)接地線(xiàn),另兩個(gè)直接和單片機(jī)的 p2_5 和 p2_6 相連。 、單片機(jī)通過(guò) p2_5 和 p2_6 向 sht15發(fā)送命令,sht15 接收到命令后做出相應(yīng)的應(yīng)答

33、。由于 sht15 內(nèi)部包含一個(gè) 14位 a/d 轉(zhuǎn)換器,所以單片機(jī)接收到就是數(shù)字信號(hào),只需要做相應(yīng)的處理就能得到所需要的數(shù)據(jù)。這里減少了很多外部的電路的連接,用起來(lái)比較方便。第三章 硬件電路的設(shè)計(jì)3.1 主控制電路和測(cè)溫濕控制電路本次硬件設(shè)計(jì)的核心就是 stc12c5a60s2,其他部件都是圍繞它設(shè)計(jì)的。濕度傳感器 sht15 的 data 口和 sck 口分別與 stc12c5a60s2 的 p2_5 口和 p2_6 口相連。測(cè)溫的 pt100 則在電橋的微弱的變化產(chǎn)生的信號(hào)放到運(yùn)放中放大等處理再接到p1_0。預(yù)置數(shù)電路就是 4 個(gè)按鍵,進(jìn)行行列掃描,分別與 stc12c5a60s2 的p

34、1_1,p1_2 p1_3 和 p1_4 口相連。當(dāng)有按鍵按下時(shí)單片機(jī)收到有效的信號(hào),s1 鍵是用來(lái)設(shè)置溫度的加 1,s2 鍵是用來(lái)設(shè)置溫度減 1,s3 鍵用來(lái)設(shè)置濕度的加0.1%,s4 鍵是用來(lái)設(shè)置濕度減 0.1%。報(bào)警電路就是把兩個(gè)發(fā)光二極管和stc12c5a60s2 的 p2_3,p2_4 口相連,因?yàn)橐玫娘@示出控制外電路工作,所以要大點(diǎn)的電流驅(qū)動(dòng)外電路,那么在電路中要顯示出來(lái),那么要加一個(gè)繼電器才能顯示有足夠大的電流。如下圖顯示同樣濕度也一樣,只是把 p23 改為 p24.單片機(jī)復(fù)位有兩種:一種是上電復(fù)位,一種是按鍵復(fù)位。這次用的就是按鍵復(fù)位,當(dāng)按鍵按下時(shí)單片機(jī)的 rst 口從低電

35、平變?yōu)楦唠娖?,從而進(jìn)入復(fù)位狀態(tài)。當(dāng)按鍵松開(kāi)后,vcc 給 10uf 電容充電,從而把 rst 口拉至電平,單片機(jī)進(jìn)入工作狀態(tài)。stc12c5a60s2 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1 和 xtal2 分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容 c1、c2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路,對(duì)外接電容 c1、c2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pf 士

36、 10pf,而如果使用陶瓷諧振器,建議選擇 40pf 士 l0pf。這里用到的是 11.0592m 的石英晶體振蕩器和兩個(gè) 30pf 的電容。具體原理圖如下圖3-1 所示。圖 3-1 主控制電路和測(cè)溫濕電路原理圖3.2 驅(qū)動(dòng)顯示電路數(shù)碼管的顯示有兩種方法:一種是靜態(tài)顯示,一種是動(dòng)態(tài)掃描顯示。靜態(tài)顯示就是數(shù)碼管的段選端一對(duì)一與單片機(jī)的 i/o 相連,位選端則根據(jù)數(shù)碼管的極型來(lái)接地(gnd)或者是高電平(vcc) 。靜態(tài)顯示實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,但是浪費(fèi)了單片機(jī)的 i/o 口資源。動(dòng)態(tài)掃描顯示就是幾個(gè)數(shù)碼管的段選端可以同時(shí)接到單片機(jī)的 i/o 口,位選端一對(duì)一的接到單片機(jī)的其它 i/o 口,當(dāng)位選信號(hào)

37、選中某個(gè)數(shù)碼管時(shí),那個(gè)數(shù)碼管就被點(diǎn)亮,而其它數(shù)碼管不亮。動(dòng)態(tài)掃描顯示節(jié)省了單片機(jī)的 i/o 資源。采用動(dòng)態(tài)顯示方案,設(shè)計(jì)中使用八個(gè)共陰極數(shù)碼管作為顯示載體,通過(guò)八路并口傳輸,共使用了 8 個(gè) i/o 口。顯示時(shí)采用循環(huán)移位法,即八位數(shù)碼管依次循環(huán)點(diǎn)亮,利用人眼睛的視覺(jué)暫留效果達(dá)到連續(xù)顯示,主程序每運(yùn)行一遍便調(diào)用一次顯示子程序,將數(shù)據(jù)顯示出來(lái)。stc12c5a60s2 的 p0 口與 3 個(gè)鎖存器相連,其中一個(gè)鎖存器與四個(gè)四位數(shù)碼管的數(shù)碼管的 a,b,c,d,e,f,g 和 dp,順序可以根據(jù)硬件接線(xiàn)方便而定。而其他兩個(gè)從鎖存器出來(lái)的則連到數(shù)碼管的位選端上,一個(gè)數(shù)碼管有 4 個(gè)位選端,4*4=1

38、6 正好連在剩下的鎖存器上。具體原理圖如下圖3-2 所示。圖 3-2 顯示電路原理圖第四章軟件設(shè)計(jì)及分析4.1 sht15 傳輸時(shí)序和指令集與測(cè)溫模塊74.1.1 通訊復(fù)位時(shí)序串行時(shí)鐘輸入 (sck)用于微處理器與 dth91 之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小 sck 頻率。串行數(shù)據(jù) (data) 三態(tài)門(mén)用于數(shù)據(jù)的讀取。data 在 sck 時(shí)鐘下降沿到來(lái)之后改變狀態(tài),并僅在 sck 時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在 sck 時(shí)鐘高電平時(shí),data 必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng) data 在低電平。需要一個(gè)外部的上拉電阻(例如:10k)將信號(hào)提拉至高電

39、平。如果與 dth91 通訊中斷,下列信號(hào)時(shí)序可以復(fù)位串口:當(dāng) data 保持高電平時(shí),觸發(fā) sck 時(shí)鐘 9 次或更多。這些時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。圖 4-1 通訊復(fù)位時(shí)序4.1.2 啟動(dòng)傳輸時(shí)序用一組“啟動(dòng)傳輸”時(shí)序,來(lái)表示數(shù)據(jù)傳輸?shù)某跏蓟Kǎ寒?dāng) sck 時(shí)鐘高電平時(shí) data 翻轉(zhuǎn)為低電平,緊接著 sck 變?yōu)榈碗娖剑S后是在 sck 時(shí)鐘高電平時(shí) data 翻轉(zhuǎn)為高電平。在下一次指令前,發(fā)送一個(gè)“傳輸啟動(dòng)”時(shí)序。啟動(dòng)傳輸時(shí)序如下圖 4-2 所示。圖 4-2 啟動(dòng)傳輸時(shí)序4.1.3 數(shù)據(jù)傳輸和指令集后續(xù)命令包含三個(gè)地址位(目前只支持“000” ) ,和五個(gè)命令位。d

40、th 91 會(huì)以下述方式表示已正確地接收到指令:在第 8 個(gè) sck 時(shí)鐘的下降沿之后,將data 下拉為低電平(ack 位) 。在第 9 個(gè) sck 時(shí)鐘的下降之后,釋放 data(恢復(fù)高電平) 。發(fā)布一組測(cè)量命令(00000101 表示相對(duì)濕度 rh, 00000011 表示溫度 t)后,控制器要等待測(cè)量結(jié)束。這個(gè)過(guò)程需要大約 20/80/320ms ,分別對(duì)應(yīng) 8/12/14bit 測(cè)量。確切時(shí)間隨內(nèi)部晶振速度的變化而變化,最多可能有-30%的變化。dth91 通過(guò)下拉 data 至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束??刂破髟谠俅斡|發(fā) sck 時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號(hào)來(lái)讀出

41、數(shù)據(jù)。檢測(cè)數(shù)據(jù)可以先被存儲(chǔ),這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀出數(shù)據(jù)。接著傳輸 2 個(gè)字節(jié)的測(cè)量數(shù)據(jù)和 1 個(gè)字節(jié)的 crc 奇偶校驗(yàn)。uc 需要通過(guò)下拉data 為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從 msb 開(kāi)始,右值有效(例如:對(duì)于 12bit 數(shù)據(jù),從第 5 個(gè) sck 時(shí)鐘起算作 msb;而對(duì)于 8bit 數(shù)據(jù),首字節(jié)則無(wú)意義) 。用 crc 數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用 crc-8 校驗(yàn),控制器可以在測(cè)量值 lsb 后,通過(guò)保持確認(rèn)位 ack 高電平,來(lái)中止通訊。在測(cè)量和通訊結(jié)束后,sht15 自動(dòng)轉(zhuǎn)入休眠模式。sht15 的指令集如下表 4-1 所示。表 4-1

42、 命令集4.1.4 濕度的測(cè)量時(shí)序圖 4-3 測(cè)量濕度的時(shí)序4.1.5 輸出轉(zhuǎn)換為物理量由能隙材料 ptat (正比于絕對(duì)溫度) 研發(fā)的溫度傳感器具有極好的線(xiàn)性??捎萌缦鹿綄?shù)字輸出轉(zhuǎn)換為溫度值:temperature = d1 +d2 .sotd1 和 d2 的值如下表 4-2 所示。表 4-2 溫度轉(zhuǎn)換系數(shù)為了補(bǔ)償濕度傳感器的非線(xiàn)性以獲取準(zhǔn)確數(shù)據(jù),建議使用如下公式 1 修正輸出數(shù)值:rhlinear = c1 + c2 .sorh + c3 .sorh2c1,c2 和 c3 值如下表 4-3 所示。表 4-3 濕度轉(zhuǎn)換系數(shù)濕度傳感器相對(duì)濕度的溫度補(bǔ)償實(shí)際測(cè)量溫度與 25 (77)相差較大

43、時(shí),應(yīng)考慮濕度傳感器的溫度修正系數(shù):rhtrue = (tc -25).(t1 + t2 .sorh) + rhlineart1 和 t2 的值如下表 4-4 所示。表 4-4 溫度補(bǔ)償系數(shù)rhtrue 就是測(cè)量的濕度值。4.1.6 sht15 的 dc 特性。sht15 的 dc 特性如下表 4-5 所示。表 4-5 dht91 的 dc 特性pt100 在橋式電路的變化的信號(hào)傳到儀用中放大, (大概放大 60 倍左右,一度輸出的電壓大概為 23 豪伏,因?yàn)樵O(shè)計(jì)要求中有負(fù)的-100 度,即輸出電壓為-2.3 伏,因?yàn)?ad 轉(zhuǎn)換中不能轉(zhuǎn)換 0 伏以下的電壓以及大于 5 伏的電壓,所以加了一個(gè)

44、加法器,又要加一個(gè) 1/2 比例電路。 ( 2.3 伏疊加之后輸出的范圍為 06.9 伏)加了 1/2 比例電路后輸出的電壓是反向的,所以應(yīng)該要求再加一個(gè)反向電路使輸出的電壓在 0-5v 之間,再接入 ad 轉(zhuǎn)換之中。具體電路如下。4.2 程序流程圖圖 4-4 程序流程圖因?yàn)闇囟鹊闹挥幸粋€(gè) ad 轉(zhuǎn)換,所以就不列流程圖了。4.3 程序的設(shè)計(jì)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);/*以下為讀寫(xiě) 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; /九個(gè)脈沖以重置數(shù)據(jù)時(shí)鐘線(xiàn)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) /計(jì)算露點(diǎn) 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; /返回露點(diǎn)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è)計(jì).c 是主函數(shù),做了溫度的算法#include /狀態(tài)寄存器默認(rèn)溫度 14bit,濕度 12bit#include /剛開(kāi)始要復(fù)位寄存器,且轉(zhuǎn)換時(shí) 12bit 為80ms#define uint unsigned int /80ms 可不理會(huì),主機(jī)處于檢測(cè)狀態(tài)#define uchar unsigned charsbit du_choice=p20;sbit we_choice=p21;sbit w

54、e_choice1=p22;/第二個(gè)位選信號(hào)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;/定時(shí)中斷 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 延時(shí)void delayms(unsigned int n) /延時(shí) 10n 毫秒程序 unsigned int i,j; for(i=0;in;i+) for(j=0;j2000;j+); void delay(unsigned int m) /延時(shí)程序 unsigned int i,j; for(i=0;im;i+) for(j=0;j10;j+); value humi_val,temp_val; /定義兩個(gè)共用體變量 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論