畢業(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、i 東東 莞莞 理理 工工 學(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 月月 ii 摘摘 要要 本論文介紹了一種以單片機(jī) stc12c5a60s2 為主要控制器件,以 pt100,sht15 分別為溫,濕度傳感器。本設(shè)計(jì)主要包括硬件電路的設(shè) 計(jì)和系統(tǒng)軟件的設(shè)計(jì)。硬件電路主要包括控制器,測(cè)溫濕控制電路和 顯示電

2、路等??刂破饔脦в?ad 轉(zhuǎn)換的單片機(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),抗干擾

3、能力強(qiáng), 性?xún)r(jià)比高等優(yōu)點(diǎn)。而且 pt100 在要求的范圍內(nèi)線性度很好。 關(guān)鍵詞關(guān)鍵詞:溫度測(cè)量, 濕度測(cè)量,溫度算法,pt100,sht15 iii abstract this 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

4、software .the hardware design includes 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

5、 of the altogether. driver show circuit 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 pres

6、et temperature or humidity values, 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 thi

7、s design includes a capacitive polymer 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

8、as serial interface circuits in the 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

9、 and sht15, not only has a simple external circuit, but also has a high-precision measurement. key words: temperature measurement, humidity measurements, iv pt100,sht15 1 目目 錄錄 前前 言言1 1 一一 設(shè)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史設(shè)計(jì)任務(wù)要求和溫濕度計(jì)的發(fā)展史1 1 1.11.1 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)任務(wù)及要求.1.1 1.21.2 設(shè)計(jì)溫濕度計(jì)的依據(jù)和意義設(shè)計(jì)溫濕度計(jì)的依據(jù)和意義.1.1 1.31.3 溫度計(jì)的發(fā)展史溫

10、度計(jì)的發(fā)展史2 2 1.41.4 濕度計(jì)的由來(lái)濕度計(jì)的由來(lái)3 3 1.51.5 露點(diǎn)意義露點(diǎn)意義.3.3 二二 設(shè)計(jì)任務(wù)分析及方案論證設(shè)計(jì)任務(wù)分析及方案論證4 4 2.12.1 設(shè)計(jì)總體方案及方案論證設(shè)計(jì)總體方案及方案論證4 4 2.22.2 元器件的選擇元器件的選擇5 5 2.2.12.2.1 主控制器芯片主控制器芯片5 5 2.2.22.2.2 溫濕度傳感器溫濕度傳感器. .7 7 2.2.32.2.3 驅(qū)動(dòng)顯示電路驅(qū)動(dòng)顯示電路. .8 8 2.32.3 溫濕度測(cè)量的方法及分析溫濕度測(cè)量的方法及分析9 9 三三 硬件電路的設(shè)計(jì)硬件電路的設(shè)計(jì). .1010 3.13.1 主控制電路和測(cè)溫濕控

11、制電路主控制電路和測(cè)溫濕控制電路.10.10 3.23.2 驅(qū)動(dòng)顯示電路驅(qū)動(dòng)顯示電路1212 四四 軟件設(shè)計(jì)及分析軟件設(shè)計(jì)及分析. .1313 4.14.1 sht15sht15 傳輸時(shí)序和指令集傳輸時(shí)序和指令集與測(cè)溫模塊與測(cè)溫模塊.13.13 7 4.1.14.1.1 通訊復(fù)位時(shí)序通訊復(fù)位時(shí)序. .1313 4.1.24.1.2 啟動(dòng)傳輸時(shí)序啟動(dòng)傳輸時(shí)序. .1414 4.1.34.1.3 數(shù)據(jù)傳輸和指令集數(shù)據(jù)傳輸和指令集. .1414 4.1.44.1.4 濕度的測(cè)量時(shí)序濕度的測(cè)量時(shí)序. .1515 4.1.54.1.5 輸出轉(zhuǎn)換為物理量輸出轉(zhuǎn)換為物理量. .1515 4.1.64.1.6

12、 sht15sht15 的的 dcdc 特性特性1717 4.24.2 程序流程圖程序流程圖1919 4.34.3 程序的設(shè)計(jì)程序的設(shè)計(jì)2020 4.3.14.3.1 sht15sht15 的初始化程序的初始化程序. .2020 2 4.3.24.3.2 畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì).c.c 是主函數(shù),做了溫度的算法是主函數(shù),做了溫度的算法. .2626 4.3.34.3.3 adad 轉(zhuǎn)換子程序轉(zhuǎn)換子程序3535 4.3.44.3.4 ledled 顯示子程序顯示子程序. .3636 4.3.54.3.5 軟件在硬件上的調(diào)試分析軟件在硬件上的調(diào)試分析4545 結(jié)結(jié) 論論4646 參考文獻(xiàn)參考文獻(xiàn)4747

13、 致致 謝謝4848 附附 錄錄4848 1 引 言 溫度與濕度與人們的生活息息相關(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)行測(cè)量 控制,不僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的 技術(shù)指標(biāo)。用 led 數(shù)碼管來(lái)顯示溫濕度的數(shù)值,看起來(lái)更加直觀。 采用 sht15 作為濕度傳感器,可以同時(shí)測(cè)溫,測(cè)濕

14、,但是,為了能更廣的范 圍,溫度傳感器我們采用了 pt100。其實(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)周?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)

15、的功能為: (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) 外電路顯示; 2 1.2 設(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)行控 制,不

16、僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的技 術(shù)指標(biāo)。用 led 來(lái)顯示溫濕度的數(shù)字看起來(lái)更加直觀。 采用 sht15 作為濕度傳感器,可以同時(shí)測(cè)溫,測(cè)濕,但是,為了能更廣的范 圍,溫度傳感器我們采用了 pt100。其實(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ì)周

17、圍環(huán)境進(jìn)行溫 濕度的測(cè)量。因此,研究溫濕度的控制和測(cè)量具有非常重要的意義。 1.3 溫度計(jì)的發(fā)展史 溫度計(jì)是測(cè)溫儀器的總稱(chēng)。根據(jù)所用測(cè)溫物質(zhì)的不同和測(cè)溫范圍的不同,有 煤油溫度計(jì)、酒精溫度計(jì)、水銀溫度計(jì)、氣體溫度計(jì)、電阻溫度計(jì)、溫差電偶溫 度計(jì)、輻射溫度計(jì)和光測(cè)溫度計(jì)等。 最早的溫度計(jì)是在 1593 年由意大利科學(xué)家伽利略(15641642)發(fā)明的。他 的第一只溫度計(jì)是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時(shí) 先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就 會(huì)上下移動(dòng),根據(jù)移動(dòng)的多少就可以判定溫度的變化和溫度的高低。這種溫度計(jì), 受外界大氣壓強(qiáng)等環(huán)境因素的

18、影響較大,所以測(cè)量誤差大。 后來(lái)伽利略的學(xué)生和其他科學(xué)家,在這個(gè)基礎(chǔ)上反復(fù)改進(jìn),如把玻璃管倒過(guò) 來(lái),把液體放在管內(nèi),把玻璃管封閉等。比較突出的是法國(guó)人布利奧在 1659 年 制造的溫度計(jì),他把玻璃泡的體積縮小,并把測(cè)溫物質(zhì)改為水銀,這樣的溫度計(jì) 已具備了現(xiàn)在溫度計(jì)的雛形。以后荷蘭人華倫海特在 1709 年利用酒精,在 1714 年又利用水銀作為測(cè)量物質(zhì),制造了更精確的溫度計(jì)。他觀察了水的沸騰溫度、 3 水和冰混合時(shí)的溫度、鹽水和冰混合時(shí)的溫度;經(jīng)過(guò)反復(fù)實(shí)驗(yàn)與核準(zhǔn),最后把一 定濃度的鹽水凝固時(shí)的溫度定為 0,把純水凝固時(shí)的溫度定為 32,把標(biāo)準(zhǔn)大 氣壓下水沸騰的溫度定為 212,用代表華氏溫度,

19、這就是華氏溫度計(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 個(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ò)

20、來(lái),就成了現(xiàn)在的百分溫度,即攝氏溫度, 用表示。華氏溫度與攝氏溫度的關(guān)系為: 9/5+32,或59(-32)。 現(xiàn)在英、美國(guó)家多用華氏溫度,德國(guó)多用列氏溫度,而世界科技界和工農(nóng)業(yè) 生產(chǎn)中,以及我國(guó)、法國(guó)等大多數(shù)國(guó)家則多用攝氏溫度。隨著科學(xué)技術(shù)的發(fā)展和 現(xiàn)代工業(yè)技術(shù)的需要,測(cè)溫技術(shù)也不斷地改進(jìn)和提高。由于測(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è)重量相等而吸濕性不同的物體,例如灰和鐵,分

21、別掛在天平兩端。當(dāng)空氣濕度發(fā)生變化時(shí),由于兩個(gè)物體吸入的分水不同,重量 也就起了變化,于是天平發(fā)生偏差,從而指示出空氣潮濕的程度。 這就是濕度 計(jì)的由來(lái)。 1.5 露點(diǎn)意義 氣溫愈低,飽和水氣壓就愈小。所以對(duì)于含有一定量水汽的空氣,在氣壓不 變的情況下降低溫度,使飽和水汽壓降至與當(dāng)時(shí)實(shí)際的水汽壓相等時(shí)的溫度,稱(chēng) 為露點(diǎn)(dew point) 。 露點(diǎn)溫度是指空氣在水汽含量和氣壓都不改變的條件下,冷卻到飽和時(shí)的溫 度。形象地說(shuō),就是空氣中的水蒸氣變?yōu)槁吨闀r(shí)候的溫度叫露點(diǎn)溫度。露點(diǎn)溫度 本是個(gè)溫度值,可為什么用它來(lái)表示濕度呢?這是因?yàn)?,?dāng)空氣中水汽已達(dá)到飽 4 和時(shí),氣溫與露點(diǎn)溫度相同;當(dāng)水汽未達(dá)

22、到飽和時(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í) 的絕熱飽和溫度。 第二章 設(shè)計(jì)任務(wù)分析及方案論證 2.1 設(shè)計(jì)總體方案及方案論證 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由 5 個(gè)模塊組成:主控制器,溫濕度傳 感器,報(bào)警電路,按鍵電路及顯示電路。 顯示模塊 模塊 報(bào)警電路 按鍵電路 溫濕度傳感器 主 控 制 器 圖 2-1

23、總體電路框圖 主控制器的功能有單片機(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ā)光二極管顯示,而且外加一個(gè)繼電器來(lái)驅(qū)動(dòng)外電路,用來(lái)判斷周?chē)?5 環(huán)境的溫度或者濕度是否超出設(shè)定值了,任何一個(gè)超出設(shè)定值發(fā)光二極管就會(huì)被 點(diǎn)亮。而且繼電器會(huì)發(fā)出聲響,鎖存器用來(lái)驅(qū)動(dòng)顯示電路主要用來(lái)驅(qū)動(dòng) 4 位數(shù)碼 管發(fā)光

24、的。由于單片機(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 路 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) 8051 2. 工作電壓:

25、 stc12c5a60s2 系列工作電壓: 5.5v - 3.3v(5v 單片機(jī)) stc12le5a60s2 系列工作電壓:3.6v - 2.2v(3v 單片機(jī)) 3. 工作頻率范圍:0 - 35mhz,相當(dāng)于普通 8051 的 0420mhz 4. 用戶(hù)應(yīng)用程序空間 8k /16k / 20k / 32k / 40k / 48k / 52k / 60k / 62k 字節(jié). 5. 片上集成 1280 字節(jié) ram 6. 通用 i/o 口(36/40/44 個(gè)) , 復(fù)位后為: 準(zhǔn)雙向口/ 弱上拉(普通 8051 傳統(tǒng) i/o 口) 可設(shè)置成四種模式:準(zhǔn)雙向口 / 弱上拉,推挽 / 強(qiáng)上拉,僅

26、為輸入 / 高阻, 開(kāi)漏 每個(gè) i/o 口驅(qū)動(dòng)能力均可達(dá)到 20ma,但整個(gè)芯片最大不要超過(guò) 55ma 7. 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 以下時(shí),復(fù)位腳可直接 1k 電阻到地) 6 11. 外部掉電檢測(cè)電路: 在 p4.6 口有一個(gè)低壓門(mén)檻比較器 5v 單片機(jī)為 1.32v, 誤差為+/-5%,3.3v

27、單片機(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í)器 兩個(gè)與傳統(tǒng) 8051 兼容的定時(shí)器 / 計(jì)數(shù)器,16 位定時(shí)器 t0 和 t1,沒(méi)有定 時(shí)器 2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生

28、器,再加上 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(也可通過(guò)寄存器設(shè)置到 p4.2 ), ccp1/p1.4 (也可通過(guò)寄存器 設(shè)置到 p4.3) 16. pwm(2 路)/pca

29、(可編程計(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 標(biāo)志的才有雙串口,rxd2/p1.2(可 7 通過(guò)寄存器設(shè)置到 p4.2),txd2/p1.3(可通過(guò)寄存器設(shè)置到

30、 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 口線外接 74hc164/165/595(均可 級(jí)聯(lián))來(lái)擴(kuò)展 i/o 口,還可用 a/d 做按鍵掃描來(lái)節(jié)省 i/o 口,或用雙 cpu,三線 通信,還多了串口。 2.2.2 溫濕度傳感器 測(cè)濕模塊選用濕度傳感器 sht15。而溫度傳感器則用 pt100,本來(lái) sht15 也 有測(cè)溫的功能,但是它不能滿(mǎn)足設(shè)計(jì)的要求,且他的線性度沒(méi)有 pt100 好,因此 測(cè)溫傳感器就用 pt100,測(cè)濕的

31、傳感器用 sht15。下面圖說(shuō)明它的線性度好。 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 所 示。 8 圖 2-2 sht15 結(jié)構(gòu)圖 7 2.2.3 驅(qū)動(dòng)顯示電路 驅(qū)動(dòng)顯示模塊選用 2 個(gè) 4 位共陰極數(shù)碼管和 3 個(gè)鎖存器 74573。由于單片機(jī) 的

32、端口輸出電流太小,這里必須加鎖存器來(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),高頻特性好,單色性好,亮度高。 (3)體積小,重量輕

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

34、14 位 a/d 轉(zhuǎn)換器,所以單片機(jī)接收到就是數(shù)字信號(hào),只需要做相應(yīng)的處理就能得到 所需要的數(shù)據(jù)。這里減少了很多外部的電路的連接,用起來(lái)比較方便。 10 第三章 硬件電路的設(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 的 p1_1,p

35、1_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 口

36、從低電平變?yōu)楦唠娖?,從而進(jìn)入復(fù)位狀態(tài)。 11 當(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)定性,如果使用石英晶體,我

37、們推薦 電容使用 30pf 士 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)顯 12 示就是數(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 口,

38、位選端一對(duì)一的接到單片機(jī)的其它 i/o 口,當(dāng)位選信號(hào)選中某個(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ù)硬件接線方便而定。而其他兩個(gè)從鎖存

39、器出來(lái)的則連到數(shù)碼管的位選端上,一 個(gè)數(shù)碼管有 4 個(gè)位選端,4*4=16 正好連在剩下的鎖存器上。具體原理圖如下圖 3-2 所示。 圖 3-2 顯示電路原理圖 13 第四章軟件設(shè)計(jì)及分析 4.1 sht15 傳輸時(shí)序和指令集與測(cè)溫模塊 7 4.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)定。為避免信

40、號(hào)沖 突,微處理器應(yīng)驅(qū)動(dòng) data 在低電平。需要一個(gè)外部的上拉電阻(例如:10k) 將信號(hào)提拉至高電平。 如果與 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ù)某跏蓟?。它包括:?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 所示。

41、 圖 4-2 啟動(dòng)傳輸時(shí)序 14 4.1.3 數(shù)據(jù)傳輸和指令集 后續(xù)命令包含三個(gè)地址位(目前只支持“000” ) ,和五個(gè)命令位。dth 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%的變化

42、。dth91 通過(guò)下拉 data 至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束。 控制器在再次觸發(fā) sck 時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號(hào)來(lái)讀出數(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è)量值

43、lsb 后,通過(guò)保持確認(rèn)位 ack 高電平,來(lái)中止通訊。在測(cè)量和通訊 結(jié)束后,sht15 自動(dòng)轉(zhuǎn)入休眠模式。sht15 的指令集如下表 4-1 所示。 表 4-1 命令集 15 4.1.4 濕度的測(cè)量時(shí)序 圖 4-3 測(cè)量濕度的時(shí)序 4.1.5 輸出轉(zhuǎn)換為物理量 由能隙材料 ptat (正比于絕對(duì)溫度) 研發(fā)的溫度傳感器具有極好的線性。可 用如下公式將數(shù)字輸出轉(zhuǎn)換為溫度值: temperature = d1 +d2 .sot d1 和 d2 的值如下表 4-2 所示。 表 4-2 溫度轉(zhuǎn)換系數(shù) 為了補(bǔ)償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),建議使用如下公式 1 修正輸 出數(shù)值: rhlinear

44、= c1 + c2 .sorh + c3 .sorh 2 c1,c2 和 c3 值如下表 4-3 所示。 表 4-3 濕度轉(zhuǎn)換系數(shù) 16 濕度傳感器相對(duì)濕度的溫度補(bǔ)償實(shí)際測(cè)量溫度與 25 (77)相差較大時(shí), 應(yīng)考慮濕度傳感器的溫度修正系數(shù): rhtrue = (tc -25).(t1 + t2 .sorh) + rhlinear t1 和 t2 的值如下表 4-4 所示。 表 4-4 溫度補(bǔ)償系數(shù) rhtrue 就是測(cè)量的濕度值。 4.1.6 sht15 的 dc 特性。 sht15 的 dc 特性如下表 4-5 所示。 表 4-5 dht91 的 dc 特性 17 pt100 在橋式電路的

45、變化的信號(hào)傳到儀用中放大, (大概放大 60 倍左右,一度輸 出的電壓大概為 23 豪伏,因?yàn)樵O(shè)計(jì)要求中有負(fù)的-100 度,即輸出電壓為-2.3 伏, 因?yàn)?ad 轉(zhuǎn)換中不能轉(zhuǎn)換 0 伏以下的電壓以及大于 5 伏的電壓,所以加了一個(gè)加 法器,又要加一個(gè) 1/2 比例電路。 ( 2.3 伏疊加之后輸出的范圍為 06.9 伏) 加了 1/2 比例電路后輸出的電壓是反向的,所以應(yīng)該要求再加一個(gè)反向電路使輸 出的電壓在 0-5v 之間,再接入 ad 轉(zhuǎn)換之中。具體電路如下。 18 4.2 程序流程圖 圖 4-4 程序流程圖 19 因?yàn)闇囟鹊闹挥幸粋€(gè) ad 轉(zhuǎn)換,所以就不列流程圖了。 4.3 程序的設(shè)計(jì)

46、 4.3.1 sht15 的初始化程序 #include /#include /microcontroller specific library, e.g. port definitions #include /keil library (is used for _nop()_ operation) #include /keil library #include /keil library typedef union unsigned int i; float f; value; enum temp,humi; /bit flag=0; #define uchar unsigned char

47、#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 measure_humi 0 x05 #define reset 0 x1e sbit data=p23; sbit sck=p24; /uchar table3; 20 /- - void send_byte(uchar x); void send_two(uint y); /*以下為讀寫(xiě) sht15 濕度

48、程序 */ 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 /masking value with i , write to sensi-bus else data=0; _nop_(); /observe setup time sck=1; /clk for sensi-bus _nop_();_nop_();_nop_(); /pulswith approx. 5 us sck=0; _nop_(); /obs

49、erve hold time data=1; /release data-line _nop_(); /observe setup time sck=1; /clk #9 for ack error=data; /check ack (data will be pulled down by sht11) sck=0; return error; /error=1 in case of no acknowledge /- - 21 char s_read_byte(unsigned char ack) unsigned char i,val=0; data=1; /release data-li

50、ne for (i=0 x80;i0;i/=2) /shift bit for masking sck=1; /clk for sensi-bus if (data) val=(val | i); /read bit sck=0; data=!ack; /in case of ack=1 pull down data-line _nop_(); /observe setup time sck=1; /clk #9 for ack _nop_(); _nop_(); _nop_(); /pulswith approx. 5 us sck=0; _nop_(); /observe hold tim

51、e data=1; /release data-line return val; /返回讀命令的值 /- - void s_transstart(void) /transmission start data=1; sck=0; /initial state _nop_(); sck=1; 22 _nop_(); data=0; _nop_(); sck=0; _nop_();_nop_();_nop_(); sck=1; _nop_(); data=1; _nop_(); sck=0; /- - void s_connectionreset(void) unsigned char i; dat

52、a=1; sck=0; /initial state for(i=0;i9;i+) /9 sck cycles sck=1; sck=0; /九個(gè)脈沖以重置數(shù)據(jù)時(shí)鐘線 s_transstart(); char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode) unsigned char error=0; unsigned int i; s_transstart(); /transmission start 23 switch(mode) /send command to sensor

53、 case 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 of if(rh_true0.1) rh_true=0.1; /the physical possible range *p_temperature=t_c; /return temperature *p_humidity=rh_tr

54、ue; /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=0 x20; /t1 工作于方式 1 th1=0 xfd; /設(shè)置波特率為 9600 tl1=0 xfd; tr1=1; /允許串行口接收 sm0=0; /串口

55、工作方式 1 sm1=1; 25 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 char sbit du_choice=p20; sbit we_choice=p21; sbit we_choice1=p22;/第二個(gè)位選信號(hào) sbit data=p23; sbit sck=p24; sbit tem_inc

56、=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% uchar idata aj_fuhao=0,aj_bai=0,aj_shi=0,aj_ge=0; uchar

57、 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; 26 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 get_ad2=0; uint get_ad=0;uint humidity_dat=0;

58、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); void aj_display_hum(uchar aj_qian_hum, uch

59、ar 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); void delay1ms(uint z); /1ms 延時(shí) voi

60、d 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+) 27 for(j=0;j10;j+); value humi_val,temp_val; /定義兩個(gè)共用體變量 enum temp,humi; char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsig

溫馨提示

  • 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)論