cx溫濕度測(cè)量系統(tǒng)基于單片機(jī)和溫度傳感器DS18B20HS1101是電容式空氣濕度傳感器_第1頁(yè)
cx溫濕度測(cè)量系統(tǒng)基于單片機(jī)和溫度傳感器DS18B20HS1101是電容式空氣濕度傳感器_第2頁(yè)
cx溫濕度測(cè)量系統(tǒng)基于單片機(jī)和溫度傳感器DS18B20HS1101是電容式空氣濕度傳感器_第3頁(yè)
cx溫濕度測(cè)量系統(tǒng)基于單片機(jī)和溫度傳感器DS18B20HS1101是電容式空氣濕度傳感器_第4頁(yè)
cx溫濕度測(cè)量系統(tǒng)基于單片機(jī)和溫度傳感器DS18B20HS1101是電容式空氣濕度傳感器_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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、摘要此溫濕度測(cè)量系統(tǒng)是基于單線(xiàn)式溫度傳感器DS18B20、電容式濕度傳感器單片機(jī)STC89C52 對(duì)溫度濕度分別測(cè)量并通過(guò)液晶顯示屏1602經(jīng)行顯示。 溫度傳感器DS18B20是單線(xiàn)式,體積超小,硬件開(kāi)消超低,抗干擾能力強(qiáng),精度高,附加功能強(qiáng)的理想單片機(jī)溫度傳感器,可實(shí)時(shí)根據(jù)指令給出溫度數(shù)據(jù),可讀性高。HS1101是電容式空氣濕度傳感器,在不同的濕度環(huán)境下呈現(xiàn)出不同的電容值,0%100%RH濕度范圍內(nèi),電容從162PF變化到200PF,誤差誤差為2%RH。可見(jiàn)其精度非常高,為了反映出其電容的變化,本系統(tǒng)采用555多諧震蕩電路產(chǎn)生不同的頻率,用于檢測(cè)濕度。單片機(jī)采集到兩個(gè)傳感器給出的數(shù)據(jù)進(jìn)行處理

2、與計(jì)算,得出當(dāng)前的溫度與濕度并送給液晶屏顯示。本系統(tǒng)具有可讀性高,穩(wěn)定性高,反應(yīng)速度快,測(cè)量值準(zhǔn)確的特點(diǎn)。關(guān)鍵詞:溫濕度測(cè)量系統(tǒng) 精度高 速度快 體積小Abstract: The temperature and humidity measurement system is based on singleline type temperature sensor DS18B20, capacitive moisture sensorSCM STC89C52 for temperature humidity measurement and respectively by LCD display. T

3、he line 1602 Temperature sensor DS18B20 is singleline type, volume super-small, hardware KaiXiao ultra-low, strong anti-jamming capability, high precision, additional features strong ideal single-chip microcomputer temperature sensor, real-time temperature data, depending on the directive given read

4、able. HS1101 is capacitive sensor, air humidity in different humidity presents different capacitance, 0% 100% RH humidity, within the scope of capacitance change to 200PF, from 162PF error for 2% RH error. e can see its precision is very high, in order to reflect the capacitance change, the system U

5、SES the 555 more harmonic concussion circuits produce different frequency, which is used to detect humidity. SCM acquisition to two sensor gives data processing and calculated, the current temperature and humidity and give the display on the LCD panel. This system has a readable, high stability, rea

6、ction speed, measured values exact characteristic.Keywords: temperature and humidity measurement system high precision speed small volume目錄1.設(shè)計(jì)要求22. 方案設(shè)計(jì)及論證22.1 總體方案設(shè)計(jì)22.2系統(tǒng)主要單元的選擇與論證2單片機(jī)控制模塊的選擇論證2溫度濕度檢測(cè)模塊的選擇與論證2顯示模塊的選擇與論證22.3 系統(tǒng)組成33. 理論分析及計(jì)算33.133.234. 系統(tǒng)電路設(shè)計(jì)34.1單片機(jī)主控電路設(shè)計(jì)34.2 DS18B20溫度檢測(cè)模塊和HS1101濕度

7、檢測(cè)模塊電路設(shè)計(jì)44.2.1 HS1101濕度檢測(cè)傳感器工作原理44.2.2 DS18B20溫度檢測(cè)傳感器工作原理4蜂鳴器電路原理44.3 1602液晶顯示模塊電路設(shè)計(jì)55. 系統(tǒng)軟件設(shè)計(jì)65.1 軟件設(shè)計(jì)流程圖65.2 軟件設(shè)計(jì)分析66. 系統(tǒng)測(cè)試66.1主要指標(biāo)測(cè)試66.2測(cè)試結(jié)果分析67. 結(jié)論6參考文獻(xiàn)7附錄8附錄一:系統(tǒng)的總原理圖8附錄二:系統(tǒng)的PCB元件分布圖9附錄三:程序清單10附錄五:元器件清單101. 設(shè)計(jì)要求(1)設(shè)計(jì)制作一個(gè)溫濕度計(jì),溫度測(cè)量范圍為-10-50,濕度為0-100%;(2)溫度測(cè)量誤差為0.1,濕度測(cè)量誤差為3%;(3)具有量程自動(dòng)轉(zhuǎn)換功能;(4)其他創(chuàng)新性

8、設(shè)計(jì),如低功耗等。2. 2. 方案設(shè)計(jì)及論證2.1 總體方案設(shè)計(jì)顯示模塊經(jīng)分析,將系統(tǒng)分為兩個(gè)DS18B20溫度檢測(cè)HS1101濕度檢測(cè)電路部分,一個(gè)是由溫濕度傳感器組成的檢測(cè)部分,另一個(gè)是由單片機(jī)單片機(jī)和1602液晶組成的主控與顯示部分。如圖所示DS18B20和HS1101濕度檢測(cè)電路將檢測(cè)到的數(shù)送到單片機(jī),單片機(jī)對(duì)接收電源到的數(shù)據(jù)進(jìn)行處理并送到1602顯示,5V穩(wěn)壓電源給各個(gè)部分供電。 圖2.1 系統(tǒng)組成框圖2.2 系統(tǒng)主要單元的選擇與論證 單片機(jī)控制模塊的選擇論證方案一:采用XC9000系列的FPGA。該類(lèi)器件具有并行處理能力,能快速的響應(yīng)外部的各種數(shù)字信號(hào),但在數(shù)據(jù)處理方面過(guò)于復(fù)雜,而

9、且芯片價(jià)格較昂貴。 方案二:采用單片機(jī)作為控制核心,單片機(jī)數(shù)學(xué)運(yùn)算功能較強(qiáng)。在程序相互調(diào)用方面,處理方便靈活,性能穩(wěn)定,適合實(shí)際應(yīng)用。且單片機(jī)技術(shù)發(fā)展較為成熟,價(jià)格便宜?;谝陨戏治?,采用單片機(jī)控制可更為簡(jiǎn)便靈活地實(shí)現(xiàn)系統(tǒng)功能,故擬采用方案二。溫度濕度檢測(cè)模塊的選擇與論證 方案一:選用DHT11作為溫濕度檢測(cè)模塊。DHT11是一款數(shù)字輸出的復(fù)合傳感器,包含一個(gè)電阻式感濕元件和NTC式溫度檢測(cè)元件,可測(cè)2090%RH濕度,誤差5%RH,050攝氏度,誤差2攝氏度。 方案二:選用DS18B20溫度傳感器和HS1101濕度傳感器。是一線(xiàn)式數(shù)字溫度傳感器,具有獨(dú)特的單線(xiàn)式接口方式,測(cè)量范圍在,誤差為-

10、+0.5。最高精度可達(dá)0.0625。HS1101是電容式濕度傳感器,可測(cè)相對(duì)濕度范圍在0%100%RH,誤差為-+2%RH。方案選擇,有上述數(shù)據(jù)可知,根據(jù)設(shè)計(jì)要求(溫度測(cè)量范圍為-10-50,濕度為0-100%;溫度測(cè)量誤差為0.1,濕度測(cè)量誤差為3%;),從設(shè)計(jì)要求的精度來(lái)看,本方案更優(yōu)。 綜上所述,雖然方案一具有綜合作用,但是方案二的測(cè)試范圍和精度都由于方案一,故本模塊采用方案二。顯示模塊的選擇與論證方案一:采用12864液晶模塊顯示測(cè)得的數(shù)據(jù),可顯示較多組的數(shù)據(jù),字體較大,可清晰讀數(shù),但12864液晶模塊價(jià)格昂貴,接線(xiàn)復(fù)雜,故不采用。方案二:采用1602液晶模塊顯示所測(cè)數(shù)據(jù),1602液晶

11、接線(xiàn)簡(jiǎn)單方便,同時(shí)也能滿(mǎn)足顯示需要,價(jià)格遠(yuǎn)低于12864液晶。因此,本方案為首選方案。綜上所述,顯示模塊選擇方案二。2.3 系統(tǒng)組成本系統(tǒng)由單片機(jī)主控電路、DS18B20溫度檢測(cè)模塊、HS1101濕度檢測(cè)模塊、1602液晶顯示模塊4部分組成,其中單片機(jī)主控電路3. 3. 理論分析及計(jì)算3.1 HS1101的濕度測(cè)量方法分析HS1101是電容式濕度傳感器,由于電容不可直接測(cè)量,故選用555多諧震蕩電路檢測(cè)到頻率,然后由單片機(jī)計(jì)算的電容值,再根據(jù)電容值算出相應(yīng)的濕度值。3.1HS1101的濕度測(cè)量計(jì)算電路如圖4.2 ,由電路可知 圖3.1電容值與相對(duì)濕度值的關(guān)系t 充電 =C(R2 +R1 ) l

12、n2 t 放電 =CR4 ln2 因而 , 輸出的方波率􄸺 f= 1 /(t 充電 +t 放電 )= 1 /C(R2+ 2 R1) ln2 )由圖3.1可知相對(duì)濕度與電容的關(guān)系可看成直線(xiàn)段,所以有相對(duì)濕度RH=2.7C+163所以有4. 系統(tǒng)電路設(shè)計(jì)4.1單片機(jī)主控電路設(shè)計(jì) 單片機(jī)主控電路原理圖如下所示:圖4.1 單片機(jī)主控電路原理圖 單片機(jī)主控模塊包括了振落電路、復(fù)位電路,同時(shí)接入了各個(gè)模塊的接口,保證了整個(gè)系統(tǒng)的靈活性。單片機(jī)是整個(gè)系統(tǒng)的控制中樞,它指揮外圍器件協(xié)調(diào)工作,從而完成特定的功能。硬件實(shí)現(xiàn)上采用模塊化設(shè)計(jì),每一模塊只實(shí)現(xiàn)一個(gè)特定功能,最后再將各個(gè)模塊搭接在一起。

13、這種設(shè)計(jì)方法可以降低系統(tǒng)設(shè)計(jì)的復(fù)雜性??刂齐娐返暮诵钠骷怯擅绹?guó)Atmel公司生產(chǎn)的AT89S52單片機(jī),屬于MCS-51系列。AT89S52是一種低功耗、高性能的CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器,采用的工藝是Atmel公司的高密度非易失存儲(chǔ)器技術(shù);片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器;在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案;價(jià)格低廉、性能可靠、抗干擾能力強(qiáng)。因此廣泛應(yīng)用于工業(yè)控制和嵌入式系統(tǒng)中。 4.2 DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊

14、電路設(shè)計(jì) DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊電路原理圖如下所示:圖 DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊電路原理圖圖 DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊電路仿真圖圖 DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊電路仿真結(jié)果圖 HS1101濕度檢測(cè)傳感器工作原理T1為HS1101濕度檢測(cè)傳感器,其工作電路由555多諧振蕩器來(lái)實(shí)現(xiàn),HS1101作為電容變量接在555芯片的2、5腳之間,引腳7用作電阻R2的短路,等量電容HS1101通過(guò)R1、R2充電到門(mén)限電壓(約0.67V),通過(guò)R4放電到觸發(fā)電平,然后R2通過(guò)7短路到地,傳感器由不同的電

15、阻R1、R2充放電,進(jìn)行工作循環(huán),形成方波。其周期計(jì)算如下: T充電=C*(R1+R2)*In2; T放電=C*R1*In2; 由此可知輸出方波頻率為f=1/(T充電+ T放電)=1/C*(R2+2R1)*In2; 可見(jiàn)空氣濕度通過(guò)555測(cè)量振蕩電路,就轉(zhuǎn)變?yōu)榕c之呈反比例的頻率信號(hào)。 DS18B20溫度檢測(cè)傳感器工作原理 DS18B20的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。其一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18B20的內(nèi)部存儲(chǔ)器資源。18B20共有三種形態(tài)的存儲(chǔ)器資源,它們分別是: ROM 只讀存儲(chǔ)器,用于存放DS1

16、8B20ID編碼,其前8位是單線(xiàn)系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號(hào),最后8位是以上56的位的CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶(hù)更改。DS18B20共64位ROM。 RAM 數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個(gè)字節(jié)RAM,每個(gè)字節(jié)為8位。第1、2個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個(gè)字節(jié)是用戶(hù)EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第5個(gè)字節(jié)則是用戶(hù)第3個(gè)EEPROM的鏡像。第6、7、8個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶(hù)得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫

17、存單元。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。EEPROM 非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶(hù)操作。蜂鳴器電路原理 蜂鳴器額定電流IB30mA,而對(duì)于AT89S52單片機(jī),P1口的灌電流為 16mA,拉電流為60A,由此可見(jiàn),僅靠單片機(jī)的P1口電流是不能驅(qū)動(dòng)蜂鳴器的,必須使用集晶體管放大電路,為了使單片機(jī)消耗的功率更小,所以使用 PNP型晶體管9012。AT89S52采用的晶振電路采用110592MHz的無(wú)源晶振,微調(diào)電容大小取30pF。顯示模塊選用1602字符型液晶模塊,是目前工控系統(tǒng)中使用最

18、為廣泛的液晶屏之一,電路圖如圖6所示。1602字符型液晶模塊是點(diǎn)陣型液晶,驅(qū)動(dòng)方便,經(jīng)編碼后顯示內(nèi)容多樣化。系統(tǒng)的輸入模塊采用中斷掃描的4×4矩陣鍵盤(pán),相比定時(shí)掃描方式,提高了MCU的使用效率。4.3 1602液晶顯示模塊電路設(shè)計(jì) 1602液晶顯示模塊電路原理圖如下所示:圖4.3 1602液晶顯示模塊電路原理圖在日常生活中,我們對(duì)液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過(guò)器件,如在計(jì)算器、萬(wàn)用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專(zhuān)用符號(hào)和圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。 在單片機(jī)系統(tǒng)中應(yīng)

19、用晶液顯示器作為輸出器件有以下幾個(gè)優(yōu)點(diǎn):顯示質(zhì)量高、數(shù)字式接口 、體積小、重量輕 、功耗低 、 1602LCD 主要技術(shù)參數(shù): 顯示容量:16×2 個(gè)字符 芯片工作電壓:4.55.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95×4.35(W×H)mm 引腳功能說(shuō)明:1602LCD 采用標(biāo)準(zhǔn)的 14腳(無(wú)背光)或 16腳(帶背光)接口, 第 1 腳:VSS 為地電源。 第 2 腳:VDD接 5V正電源。 第 3 腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)

20、一個(gè) 10K 的電位器調(diào)整對(duì)比度。 第 4 腳:RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。 第 5 腳:R/W 為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng) RS和 R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng) RS 為低電平 R/W 為高電平時(shí)可以讀忙信號(hào),當(dāng) RS 為高電平 R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。 第 6 腳:E端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第 714腳:D0D7為 8 位雙向數(shù)據(jù)線(xiàn)。 第 15腳:背光源正極。 第 16腳:背光源負(fù)極。5. 系統(tǒng)軟件設(shè)計(jì)5.1 軟件設(shè)計(jì)流程圖 主程序流程圖 液晶顯示程序流

21、程開(kāi)始開(kāi)始是否忙碌Key1鍵按下?顯示濕度 是是 否 否寫(xiě)指令Key2鍵按下?顯示溫度 是寫(xiě)數(shù)據(jù) 否設(shè)置顯示位顯示初始化圖液晶顯示程序流程溫度檢測(cè)程序流程濕度檢測(cè)流程圖開(kāi)始開(kāi)始 開(kāi)定時(shí)T0,T1初始化初始化是否成功是否計(jì)滿(mǎn)1S否 否 是從18B20讀字節(jié)是關(guān)閉T0并根據(jù)頻率算出濕度值向18B20寫(xiě)字節(jié)顯示濕度讀取溫度顯示溫度圖溫度檢測(cè)程序流程 圖5.1.4 濕度檢測(cè)流程圖5.2 軟件設(shè)計(jì)分析主程序進(jìn)行鍵盤(pán)掃描,單片機(jī)根據(jù)判斷鍵盤(pán)那個(gè)鍵按下,顯示溫度或濕度。如果key1鍵按下就調(diào)用溫度檢測(cè)程序,單片機(jī)對(duì)18B20進(jìn)行初始化,成功則讀字節(jié),再寫(xiě)入字節(jié),讀取溫度數(shù)據(jù)送到1602顯示。如果key2鍵按

22、下,就調(diào)用濕度顯示程序,開(kāi)啟定時(shí)中斷T0、T1,T0進(jìn)行定時(shí),T1對(duì)濕度電路給的頻率計(jì)數(shù),當(dāng)計(jì)滿(mǎn)1S時(shí)關(guān)閉T1,單片機(jī)對(duì)計(jì)的數(shù)進(jìn)行運(yùn)算,的出濕度值,送往液晶顯示。6. 6. 系統(tǒng)測(cè)試6.1主要指標(biāo)測(cè)試 本系統(tǒng)主要指標(biāo)就在于所測(cè)得的溫濕度的數(shù)據(jù)是否達(dá)到了題目要求,本系統(tǒng)測(cè)量范圍為-10-50,濕度為0-100%;溫度測(cè)量誤差為0.1,濕度測(cè)量誤差為2%;在8棟111測(cè)試溫度為16.7度,濕度為41%。6.2測(cè)試結(jié)果分析 通過(guò)測(cè)試,與標(biāo)準(zhǔn)儀器所測(cè)得的溫濕度相比較,可得系統(tǒng)的誤差為信號(hào)傳輸過(guò)程中可能存在誤碼,及誤判。7. 結(jié)論本溫濕度計(jì)的制作基本上達(dá)到了題目要求的技術(shù)指標(biāo),溫度測(cè)量范圍為-10-50

23、,濕度為0-100%;溫度測(cè)量誤差為0.1,濕度測(cè)量誤差為3%;實(shí)現(xiàn)了量程自動(dòng)轉(zhuǎn)換功能。課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的。 回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在接近一星期的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)

24、到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)不懂一些元器件的使用方法,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。 參考文獻(xiàn)(1) 康華光等.電子技術(shù)基礎(chǔ)M. 北京:高等教育出版社(2) 彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)M. 北京:

25、高等教育出版社(3) 郭天祥.新概念51單片機(jī)C語(yǔ)言教程:入門(mén)、提高、開(kāi)發(fā)、拓展全攻略M.電子工業(yè)出版社,2009.(3) 黃智偉全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽制作實(shí)訓(xùn)M北京:北京航空航天大學(xué)出版社,2007(4) 黃智偉全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)M北京:北京航空航天大學(xué)出版社,2006(5) 黃智偉全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽技能訓(xùn)練M北京:北京航空航天大學(xué)出版社,2007(6) 黃智偉全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽電路設(shè)計(jì)M北京:北京航空航天大學(xué)出版社,2006(7) 黃智偉全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽 常用電路模塊制作M北京:北京航空航天大學(xué)出版社,2010(8) 黃智偉等.基于NI multisim的電子電路

26、計(jì)算機(jī)仿真設(shè)計(jì)與分析M北京:電子工業(yè)出版社,2007(9) 黃智偉.印制電路板(PCB)設(shè)計(jì)技術(shù)與實(shí)踐M北京:電子工業(yè)出版社,2009(10) 高吉祥等.電子技術(shù)基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)M北京:電子工業(yè)出版社,2002(11) 吳運(yùn)昌.模擬集成電路原理與應(yīng)用M廣州:華南理工大學(xué)出版社,2001年(12) 譚博學(xué)等. 集成電路原理及應(yīng)用M北京:電子工業(yè)出版社,2003(13) 魏立軍.CMOS 4000系列60種常用集成電路的應(yīng)用M北京:人民郵電出版社,1993(14) 楊寶清.實(shí)用電路手冊(cè)M北京:機(jī)械工業(yè)出版社.2002 (15) 陳有卿.報(bào)警集成電路和報(bào)警器制作實(shí)例M人民郵電出版社1996 附錄附

27、錄一:系統(tǒng)的總原理圖圖附1.1 系統(tǒng)總原理圖附錄二:系統(tǒng)的PCB圖及元件分布圖 圖附2.1 單片機(jī)主控電路及液晶PCB布線(xiàn)圖圖附2.2 DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊PCB布線(xiàn)圖圖附2.3 單片機(jī)主控電路及液晶PCB元件分布圖圖附2.24DS18B20溫度檢測(cè)模塊和HS1101濕度檢測(cè)模塊PCB元件分布圖附錄三:程序清單#include < reg51.h >#include < intrins.h >#define uchar unsigned char /定義無(wú)符號(hào)字符型變量uchar#define uint unsigned int /定義無(wú)

28、符號(hào)整型變量uintsbit DQ = P20 ; /定義DS18B20端口DQ sbit BEEP=P22 ; /蜂鳴器驅(qū)動(dòng)線(xiàn)bit presence ;sbit LCD_RS = P12; sbit LCD_RW = P11; sbit LCD_EN = P10;sbit led= P21; sbit key1= P23;sbit key2= P24;uchar code cdis1 = " wendujishiyan " ;uchar code cdis2 = " T= . C " ;uchar code cdis3 = " shiduj

29、ishiyan " ;uchar code cdis4 = "shidu: %" ;uchar code cdis5 = "the system of " ;uchar code cdis6 = " temp and hum "unsigned char data temp_data2 = 0x00,0x00 ;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ;unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x0

30、3,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09 ;void beep() ; unsigned char code mytab8 = 0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00 ;bit int_flag; /定時(shí)器0 1S到標(biāo)志位unsigned char volatile int_count; /定時(shí)器0中斷次數(shù)unsigned char volatile T1count; /定時(shí)器1中斷次數(shù)unsigned long sum,wet; /1S內(nèi)脈沖總個(gè)數(shù)unsigned char le

31、6; /LED顯示緩存#define delayNOP() ; _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;/*/void delay1(int ms) unsigned char y ; while(ms-) for(y = 0 ; y<250 ; y+) _nop_() ; _nop_() ; _nop_() ; _nop_() ; /*/*檢查L(zhǎng)CD忙狀態(tài) */*lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù)。 */*/ bit lcd_busy() bit result ; LCD_RS = 0 ; LCD_RW =

32、1 ; LCD_EN = 1 ; delayNOP() ; result = (bit)(P0&0x80) ; LCD_EN = 0 ; return(result) ; /*寫(xiě)指令數(shù)據(jù)到LCD */*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 */*/void lcd_wcmd(uchar cmd) while(lcd_busy() ; LCD_RS = 0 ; LCD_RW = 0 ; LCD_EN = 0 ; _nop_() ; _nop_() ; P0 = cmd ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0

33、; /*/*寫(xiě)顯示數(shù)據(jù)到LCD */*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 */*/void lcd_wdat(uchar dat) while(lcd_busy() ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /* LCD初始化設(shè)定 */*/void lcd_init() delay1(15) ; lcd_wcmd(0x01) ; /清除LCD的顯示內(nèi)容 lcd_wcmd(0x38) ; /16*2顯示,5*7點(diǎn)陣,

34、8位數(shù)據(jù) delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; /顯示開(kāi),關(guān)光標(biāo) delay1(5) ; lcd_wcmd(0x06) ; /移動(dòng)光標(biāo) delay1(5) ; lcd_wcmd(0x01) ; /清除LCD的顯示內(nèi)容 delay1(5) ;/* 設(shè)定顯示位置 */*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80) ; /數(shù)據(jù)指針=80+地址變量/*自定義字符寫(xiě)入CGRAM */*/void writetab() uns

35、igned char i ; lcd_wcmd(0x40) ; /寫(xiě)CGRAM for (i = 0 ; i< 8 ; i+) lcd_wdat(mytab i ) ; /*us級(jí)延時(shí)函數(shù) */*/void Delay(unsigned int num) while( -num ) ; /* /*溫度測(cè)量* /* /*初始化ds1820 */*/Init_DS18B20(void) DQ = 1 ; /DQ復(fù)位 Delay(8) ; /稍做延時(shí) DQ = 0 ; /單片機(jī)將DQ拉低 Delay(90) ; /精確延時(shí) 大于 480us DQ = 1 ; /拉高總線(xiàn) Delay(8) ;

36、presence = DQ ; /如果=0則初始化成功 =1則初始化失敗 Delay(100) ; DQ = 1 ; return(presence) ; /返回信號(hào),0=presence,1= no presence/* 讀一個(gè)字節(jié) */*/ ReadOneChar(void)unsigned char i = 0 ;unsigned char dat = 0 ;for (i = 8 ; i > 0 ; i-) DQ = 0 ; / 給脈沖信號(hào) dat >>= 1 ; DQ = 1 ; / 給脈沖信號(hào) if(DQ) dat |= 0x80 ; Delay(4) ; retu

37、rn (dat) ;/* 寫(xiě)一個(gè)字節(jié) */*/ WriteOneChar(unsigned char dat) unsigned char i = 0 ; for (i = 8 ; i > 0 ; i-) DQ = 0 ; DQ = dat&0x01 ; Delay(5) ; DQ = 1 ; dat>>=1 ; /* 讀取溫度 */*/ Read_Temperature(void) Init_DS18B20() ; WriteOneChar(0xCC) ; / 跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44) ; / 啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20

38、() ; WriteOneChar(0xCC) ; /跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE) ; /讀取溫度寄存器 temp_data0 = ReadOneChar() ; /溫度低8位 temp_data1 = ReadOneChar() ; /溫度高8位 /* 數(shù)據(jù)轉(zhuǎn)換與溫度顯示 */*/ Disp_Temperature()display4=temp_data0&0x0f ;display0=ditabdisplay4+0x30 ; /查表得小數(shù)位的值display4=(temp_data0&0xf0)>>4)|(temp_data1&am

39、p;0x0f)<<4) ;display3=display4/100+0x30 ;display1=display4%100 ;display2=display1/10+0x30 ;display1=display1%10+0x30 ;if(display3=0x30) /高位為0,不顯示 display3=0x20 ; if(display2=0x30) /次高位為0,不顯示display2=0x20 ;lcd_pos(0x48) ; lcd_wdat(display3) ; /百位數(shù)顯示 lcd_pos(0x49) ; lcd_wdat(display2) ; /十位數(shù)顯示 l

40、cd_pos(0x4a) ; lcd_wdat(display1) ; /個(gè)位數(shù)顯示 lcd_pos(0x4c) ; lcd_wdat(display0) ; /小數(shù)位數(shù)顯示 /報(bào)警void baojing()if(display2>=0x32&&display1>=0x31) BEEP=1;elseBEEP=0;/*濕度測(cè)量*/ /軟件延時(shí)/void delays(unsigned int cnt) while(-cnt);/定時(shí)器0初始化void init_t0(void) TMOD=(TMOD&0xF0)|0x01; /定時(shí)器0工作于方式1/ TH0=

41、(65536-50000)/256; /定時(shí)50ms/ TL0=(65535-50000)%256;TH0=0x4c;TL0=0x00;/ 定時(shí)器1初始化void init_t1(void) TMOD=(TMOD&0x0F)|0x50; /定時(shí)器1用作計(jì)時(shí) TH1 =0x00; TL1 =0x00;/定時(shí)器0中斷服務(wù)程序void int_t0(void) interrupt 1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; int_count+; if(int_count=20) TR1=0; int_flag=1; int_count=0

42、x00; /定時(shí)器1中斷服務(wù)程序void int_t1(void) interrupt 3 T1count+; void disp(void) /濕度顯示函數(shù) int_flag=0; sum=TL1+TH1*256+T1count*65536; /計(jì)算1秒內(nèi)的脈沖個(gè)數(shù) /以下將數(shù)據(jù)格式化,轉(zhuǎn)成LED可顯示的BCD碼 wet=100-(sum-4000)/50;/* 濕度計(jì)算公式 le0=wet%10; /最低位 wet=wet/10; le1=wet%10; /第二位 wet=wet/10; le2=wet%10; /第三位 wet=wet/10; int_count=0x00; T1count=0; TH1=0x00; TL1=0x00; TR1=

溫馨提示

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