




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、傳感器與檢測(cè)技術(shù)課程設(shè)計(jì)摘要生活上,合適的空氣濕度有益于人們的身體健康;工業(yè)上,芯片的封裝,設(shè)備的維護(hù)以及工廠的裝配等,都需要在合適的濕度下進(jìn)行。該課題對(duì)空氣的濕度進(jìn)行研究,采用單片機(jī)和濕度模塊組成的濕度控制系統(tǒng),對(duì)環(huán)境的濕度進(jìn)行數(shù)據(jù)采集、處理。系統(tǒng)通過測(cè)量當(dāng)前環(huán)境的絕對(duì)濕度,及時(shí)、精確地了解空氣濕度的變化,并將當(dāng)時(shí)絕對(duì)濕度值與預(yù)設(shè)的上下限值進(jìn)行比較,如果不在合適的空氣濕度范圍內(nèi),系統(tǒng)會(huì)自動(dòng)發(fā)出報(bào)警。關(guān)鍵詞:?jiǎn)纹瑱C(jī);濕度傳感器;DHT11濕度傳感器AbstractLife, moderate air humidity is beneficial to people's health;
2、industrial, chip packaging, equipment maintenance and factory assembly, under the appropriate humidity. The subject of air humidity research, uses the monolithic integrated circuit and the humidity modules of humidity control system, the environment humidity data acquisition and processing. The syst
3、em is adopted to measure the absolute humidity of the environment, timely, accurately understanding changes in the humidity of the air, and then the absolute humidity value with a preset upper and lower limit values are compared, if not in the range of suitable air humidity, the system will alarm au
4、tomatically.Key words: single chip microcomputer; humidity sensor; DHT11 humidity sensorI目錄1緒論51.1 目的及意義51.2 發(fā)展?fàn)顩r52 系統(tǒng)的整體設(shè)計(jì)52.1 設(shè)計(jì)內(nèi)容52.2 系統(tǒng)完成的技術(shù)指標(biāo)62.3 系統(tǒng)構(gòu)成與框圖62.4 系統(tǒng)設(shè)計(jì)73 硬件設(shè)計(jì)73.1 STC89C52簡(jiǎn)介73.2 DHT11濕度檢測(cè)模塊93.2.1 濕度檢測(cè)模塊選擇思路93.2.2DHT11濕度模塊93.3 液晶顯示模塊103.4 報(bào)警模塊113.5 按鍵輸入模塊123.6 電路的排版連線設(shè)計(jì)124 軟件設(shè)計(jì)134.1 總
5、程序流程圖134.1.1 溫濕度DHT11程序144.1.2 LCD1602液晶程序154.2 程序設(shè)計(jì)154.3 串口通信154.4 上位機(jī)的程序設(shè)計(jì)164.4.1面向?qū)ο蟮木幊?64.4.2 上位機(jī)圖形窗口164.4.3 上位機(jī)流程174.4.4 主要程序代碼175 系統(tǒng)調(diào)試175.1 硬件調(diào)試175.2 軟件調(diào)試17參考文獻(xiàn)18附錄19附錄一 程序19附錄二 上位機(jī)程序34附錄三 串口通信程序38附錄四 元器件清單41附錄五 硬件原理圖42附錄六 仿真圖43附錄七 PCB版圖44附錄八 上位機(jī)圖形窗口4531緒論1.1 目的及意義在工農(nóng)業(yè)生產(chǎn)和日常生活中,對(duì)濕度的測(cè)量及控制始終占據(jù)著重要
6、地位。在現(xiàn)代農(nóng)業(yè)大棚種植或是室內(nèi)畜牧業(yè)、氣象、環(huán)保、國(guó)防、科研、航天以及現(xiàn)代生活的各個(gè)方面,經(jīng)常需要對(duì)環(huán)境濕度進(jìn)行測(cè)量及控制。本設(shè)計(jì)就在此基礎(chǔ)上,設(shè)計(jì)一種基于STC89C52單片機(jī)控制的智能濕度檢測(cè)系統(tǒng)。1.2 發(fā)展?fàn)顩r進(jìn)入21世紀(jì)后,特別在我國(guó)加入WTO后,國(guó)內(nèi)產(chǎn)品面臨巨大挑戰(zhàn)。各行業(yè)特別是傳統(tǒng)產(chǎn)業(yè)都急切需要應(yīng)用電子技術(shù)、自動(dòng)控制技術(shù)進(jìn)行改造和提升。例如紡織行業(yè),溫濕度是影響紡織品質(zhì)量的重要因素,但紡織企業(yè)對(duì)溫濕度的測(cè)控手段仍很粗糙,十分落后,絕大多數(shù)仍在使用干濕球濕度計(jì),采用人工觀測(cè),人工調(diào)節(jié)閥門、風(fēng)機(jī)的方法,其控制效果可想而知。制藥行業(yè)里也基本如此。而在食品行業(yè)里,則基本上憑經(jīng)驗(yàn),很少有
7、人使用濕度傳感器。值得一提的是,隨著農(nóng)業(yè)向產(chǎn)業(yè)化發(fā)展,許多農(nóng)民意識(shí)到必需擺脫落后的傳統(tǒng)耕作、養(yǎng)殖方式,采用現(xiàn)代科學(xué)技術(shù)來應(yīng)付進(jìn)口農(nóng)產(chǎn)品的挑戰(zhàn),并打進(jìn)國(guó)外市場(chǎng)。各地建立了越來越多的新型溫室大棚,種植反季節(jié)蔬菜,花卉;養(yǎng)殖業(yè)對(duì)環(huán)境的測(cè)控也日感迫切。但目前,在濕度測(cè)試領(lǐng)域大部分濕敏元件性能還只能使用在通常溫度環(huán)境下。在需要特殊環(huán)境下測(cè)濕的應(yīng)用場(chǎng)合大部分國(guó)內(nèi)包括許多國(guó)外濕度傳感器都會(huì)“皺起眉頭”!例如在上面提到紡織印染行業(yè),食品行業(yè),耐高溫材料行業(yè)等,都需要在高溫情況下測(cè)量濕度。一般情況下,印染行業(yè)在紗錠烘干中,溫度能達(dá)到120攝氏度或更高溫度;在食品行業(yè)中,食物的烘烤溫度能達(dá)到80-200攝氏度左右
8、;耐高溫材料,如陶瓷過濾器的烘干等能達(dá)到200攝氏度以上。在這些情況下,普通的濕度傳感器是很難測(cè)量的。2 系統(tǒng)的整體設(shè)計(jì)2.1 設(shè)計(jì)內(nèi)容本次設(shè)計(jì)分為兩個(gè)內(nèi)容:硬件部分、軟件部分。硬件以單片機(jī)為核心,配以濕度模塊電路、鍵盤電路、數(shù)模轉(zhuǎn)換電路、顯示電路和報(bào)警電路。主要實(shí)現(xiàn)以下功能:(1)通過濕度模塊電路對(duì)環(huán)境的濕度進(jìn)行數(shù)據(jù)采集;(2)通過單片機(jī)對(duì)采集的數(shù)據(jù)進(jìn)行處理;(3)當(dāng)環(huán)境濕度低于或者高于設(shè)置濕度時(shí)啟動(dòng)報(bào)警。濕度檢測(cè)系統(tǒng)是一個(gè)智能化的系統(tǒng),它的軟件主要實(shí)現(xiàn)功能:(1)單片機(jī)能夠控制濕度模塊對(duì)空氣的濕度進(jìn)行采樣;(2)把采集的數(shù)據(jù)通過單片機(jī)處理,再以十進(jìn)制的形式顯示出來;(3)按鍵和顯示電路可對(duì)
9、設(shè)置的報(bào)警上下限值進(jìn)行更改,并通過顯示電路顯示出來。2.2 系統(tǒng)完成的技術(shù)指標(biāo)(1)實(shí)時(shí)顯示絕對(duì)濕度,系統(tǒng)的精度為10mg/L;(2)采用3位數(shù)碼管進(jìn)行濕度顯示;(3)顯示報(bào)警上限值為180mg/L,下限值為90mg/L;(4)濕度超過上下限濕度時(shí)進(jìn)行報(bào)警;(5)數(shù)碼管采用動(dòng)態(tài)顯示方式。2.3 系統(tǒng)構(gòu)成與框圖本次設(shè)計(jì)的系統(tǒng)框圖見圖1.1所示。圖1.1系統(tǒng)框圖單片機(jī)控制濕度模塊AM1001對(duì)環(huán)境的濕度進(jìn)行檢測(cè)并通過單片機(jī)處理用數(shù)碼管顯示出來,鍵盤電路可設(shè)置報(bào)警的上下限值,當(dāng)環(huán)境濕度高于上限或者低于下限報(bào)警值時(shí),啟動(dòng)報(bào)警電路,即蜂鳴器響。2.4 系統(tǒng)設(shè)計(jì)(1)設(shè)計(jì)之前,查找資料。先對(duì)濕度的概念進(jìn)行
10、了解,并了解一些濕度傳感器的工作原理。空氣濕度是指空氣潮濕的程度,可用相對(duì)濕度(RH)表示。相對(duì)濕度是指空氣實(shí)際所含水蒸氣密度和同溫下飽和水蒸氣密度的百分比值。人體在室內(nèi)感覺舒適的最佳相對(duì)濕度是,495l,相對(duì)濕度過低或過高,對(duì)人體都不適甚至有害。 絕對(duì)濕度是一定體積的空氣中含有的水蒸氣的質(zhì)量,一般其單位是克/立方米。絕對(duì)濕度的最大限度是飽和狀態(tài)下的最高濕度。絕對(duì)濕度只有與溫度一起才有意義,因?yàn)榭諝庵心軌蚝械臐穸鹊牧侩S溫度而變化,在不同的溫度中絕對(duì)濕度也不同,因?yàn)殡S著溫度的變化空氣的體積也要發(fā)生變化。但絕對(duì)濕度越靠近最高濕度,它隨溫度的變化就越小。 (2)分析系統(tǒng)的主要性能; (3)對(duì)整個(gè)電
11、路的流程進(jìn)行分析; (4)硬件的準(zhǔn)備以及焊接; (5)用c語(yǔ)言進(jìn)行軟件的編寫并仿真; (6)將硬件和軟件進(jìn)行系統(tǒng)仿真直至完成設(shè)計(jì)。3 硬件設(shè)計(jì)3.1 STC89C52簡(jiǎn)介圖 1.2 STC89C52本次設(shè)計(jì)所使用的單片機(jī)如圖1.2所示。STC89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的STC89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用
12、場(chǎng)合。 STC89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線。STC89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。 主要功能特性u(píng)u(1)兼容MCS51指令系統(tǒng)u u(2)8k可反復(fù)擦寫(>1000次)Flash ROM uu(3)32個(gè)雙向I/O口 u(4)256x8bit內(nèi)部RAM uu(5)3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷u(6)時(shí)鐘頻率0-24MHz uu(7)2個(gè)串行中斷uu(8)可編程UART串行通道 uu(9)2個(gè)外部中斷源uu(1
13、0)共8個(gè)中斷源 uu(11)2個(gè)讀寫中斷口線 uu(12)3級(jí)加密位 uu(13)低功耗空閑和掉電模式u(14)軟件設(shè)置睡眠和喚醒功能引腳簡(jiǎn)介: (1)VCC(40腳),接5V電源正端 GND(20腳),接5V電源地端 (2)XTAL1(19腳),接外部晶振的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端。當(dāng)采用外部振蕩器時(shí),此引腳應(yīng)接地。 XTAL2(18腳),接外部晶振的另一個(gè)引腳。在片內(nèi)接至反相放大器的輸出端和內(nèi)部時(shí)鐘電路的輸入端。當(dāng)采用外部振蕩器時(shí),此腳接外部振蕩器的輸出端。 (3)控制信號(hào)線 RESET(9腳):復(fù)位信號(hào)輸入端,復(fù)位/掉電時(shí)內(nèi)部RAM的備用電源輸入端。 ALE(
14、30腳):地址鎖存允許/編程脈沖輸入,用ALE鎖存從P0口輸出的低8位地址。在對(duì)片內(nèi)EPROM編程時(shí),編程脈沖由此輸入。 PSEN(29腳):外部程序存儲(chǔ)器讀選通信號(hào),低電平有效。 EA(31腳):訪問外部存儲(chǔ)器允許/編程電壓輸入。EA為高電平時(shí),訪問內(nèi)部存儲(chǔ)器;低電平時(shí),訪問外部存儲(chǔ)器。3.2 DHT11濕度檢測(cè)模塊圖 1.3 DHT11濕度模塊檢測(cè)模塊如圖1.3所示。3.2.1 濕度檢測(cè)模塊選擇思路要對(duì)當(dāng)前環(huán)境濕度進(jìn)行檢測(cè),并且需要和單片機(jī)結(jié)合,最好便是用傳感器來檢測(cè)環(huán)境濕度,通過單片機(jī)進(jìn)行數(shù)據(jù)處理后顯示出來。傳感器的選擇需要精度高,而且便于單片機(jī)控制。3.2.2DHT11濕度模塊本次設(shè)計(jì)
15、使用DHT11濕度傳感器。DHT11濕度模塊,是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻
16、的應(yīng)用場(chǎng)合的最佳選則。引腳說明: (1)Pin1:(VDD),電源引腳,供電電壓為3-5.5V。 (2)Pin2:(DATA),串行數(shù)據(jù),單總線。 (3)Pin3:(NC),空腳,懸浮。 (4)Pin4(VDD),接地端,電源負(fù)極。 3.3 液晶顯示模塊圖 1.4 液晶模塊本系統(tǒng)顯示采用了工業(yè)字符型液晶模塊1602,如圖1.4所示??娠@示2行16個(gè)字符,能方便顯示英文字母大小寫、阿拉伯?dāng)?shù)字、常用符號(hào)等。通過自定義還可顯示簡(jiǎn)單的漢字。本液晶模塊的電路的連接圖如圖3-3所示,第1腳和第2腳分別接到了電路的GND和VCC,這2個(gè)腳是液晶工作的電源輸入腳。第3腳通過一個(gè)10K的電位器連接到地端,可通過
17、調(diào)節(jié)該電位器來調(diào)節(jié)液晶的對(duì)比度。第4腳是液晶的寄存器控制腳,接到了單片機(jī)的P12腳上。第5腳是液晶的讀寫控制腳,接到了單片機(jī)的P13腳上。第6腳是液晶的使能腳,接到了單片機(jī)的P14腳上。第7腳到第14腳是液晶的數(shù)據(jù)/地址8位總線,接到了單片機(jī)的P0口上。最后第15腳和第16腳是液晶的背光電源腳,直接連接系統(tǒng)VCC和GND。1602LCD主要技術(shù)參數(shù):(1)顯示容量:16×2個(gè)字符(2)芯片工作電壓:4.55.5V(3)工作電流:2.0mA(5.0V) u (4)模塊最佳工作電壓:5.0V (5)字符尺寸:2.95×4.35(W×H)mm 引腳說明:(1) VSS
18、:接地(2) VDD:接5V正電源 (3) VL:VL為液晶顯示器對(duì)比度調(diào)整的端口,對(duì)比度的強(qiáng)弱由接電源的不同決定,對(duì)比度的調(diào)整可以通過一個(gè)10k的電位器(4) RS:RS是寄存器選擇(5) R/W:R / W的讀和寫信號(hào)線,高水平低的讀操作,寫操作(6) E:使能端E,當(dāng)E端由1至0時(shí),液晶模塊中的命令開始被運(yùn)行(7) 至(14)D0-D7:位雙向數(shù)據(jù)線(15) BLA:背光源正極(16) BLK:背光源負(fù)極3.4 報(bào)警模塊圖 1.5 蜂鳴器模塊蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作
19、發(fā)聲器件。報(bào)警電路的要求是電路器件簡(jiǎn)單,易于控制。所以報(bào)警模塊選擇單片機(jī)設(shè)計(jì)中最常使用的有源蜂鳴器。本設(shè)計(jì)利用單片機(jī)的I/O控制三極管的開關(guān)狀態(tài),進(jìn)而達(dá)到控制蜂鳴器的報(bào)警。由于蜂鳴器工作時(shí),需要的電流比較大,單片機(jī)的IO口輸出的電流又比較小,所以這里利用三極管的開關(guān)管功能來控制蜂鳴器發(fā)音,本設(shè)計(jì)選用的三極管型號(hào)是PNP三極管S8550,而且本設(shè)計(jì)選用的蜂鳴器屬于有源蜂鳴器,即在蜂鳴器內(nèi)部已經(jīng)內(nèi)置了震蕩電路,單片機(jī)無需連續(xù)發(fā)出高低電平來驅(qū)動(dòng)它,而只要輸出高(或低)電平即可,這大大簡(jiǎn)化了單片機(jī)程序的設(shè)計(jì)。由于選用的是PNP型而單片機(jī)上電IO口默認(rèn)是高電平的,所以上電時(shí)蜂鳴器是不會(huì)發(fā)出鳴叫的。3.5
20、 按鍵輸入模塊圖 1.6 按鍵輸入模塊在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤。它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡(jiǎn)單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡(jiǎn)單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。本設(shè)計(jì)中由于采用的按鍵數(shù)量較少,只有3個(gè)按鍵,分別是“設(shè)置”、“減”、“加”,故采用了獨(dú)立鍵盤的方式。3.6 電路的排版連線設(shè)計(jì)電路元器件的排版和連線影響到電路的美觀和功能的實(shí)現(xiàn),本設(shè)計(jì)采用protel軟件進(jìn)行排版設(shè)計(jì)。制作流程:(1)將生
21、成的pcb圖打?。?(2)按照打印的圖紙?jiān)诎遄由线M(jìn)行刻錄聯(lián)系; (3)將刻錄的連線部分用錫進(jìn)行覆蓋; (4)用蝕銅液把多余的銅腐蝕掉; (5)打孔,焊接。4 軟件設(shè)計(jì)4.1 總程序流程圖 圖 1.7 程序流程圖程序流程圖實(shí)現(xiàn)步驟:本系統(tǒng)的軟件流程圖如圖1.8所示,最開始先進(jìn)行液晶的初始化,包括液晶功能初始化和液晶顯示內(nèi)容初始化,接著就開始進(jìn)行溫濕度的檢測(cè),然后判斷讀取到的溫濕度是否在報(bào)警的范圍之內(nèi),如果超出范圍,則蜂鳴器鳴叫,且對(duì)應(yīng)的指示燈亮。檢測(cè)完溫濕度數(shù)據(jù)后,就判斷是否有按鍵被按下(第一個(gè)),有的話,則進(jìn)入了報(bào)警范圍設(shè)置界面,否則進(jìn)行一段時(shí)間的延時(shí)后,就進(jìn)入下一個(gè)循環(huán),從新檢測(cè)溫濕度數(shù)據(jù)。
22、4.1.1 溫濕度DHT11程序圖 1.8 溫濕度DHT11程序流程圖該軟件部分的實(shí)現(xiàn)步驟為:(1)DHT11發(fā)出讀取命令,讀取濕度和溫度數(shù)據(jù)以及校驗(yàn)和;(2)檢測(cè)數(shù)據(jù)是否出錯(cuò);(3)若數(shù)據(jù)出錯(cuò),則丟棄當(dāng)前數(shù)據(jù);若數(shù)據(jù)符合,則數(shù)據(jù)被采用,進(jìn)行下一個(gè)程序。4.1.2 LCD1602液晶程序圖1.9 LCD1602液晶程序該程序的實(shí)現(xiàn)步驟為:(1)液晶進(jìn)行初始化后,對(duì)行列坐標(biāo)進(jìn)行定位;(2)顯示一個(gè)字符;(3)數(shù)據(jù)是否顯示完成,若否,則重新顯示字符;若是,則進(jìn)行下一個(gè)程序。 4.2 程序設(shè)計(jì)利用C51語(yǔ)言進(jìn)行編程可以把程序進(jìn)行模塊化編寫,然后在主函數(shù)里進(jìn)行調(diào)用即可,這樣分工明確,框架清晰,給人一目
23、了然的感覺。程序詳見附錄一。4.3 串口通信串口程序如附錄三所示。單片機(jī)要與計(jì)算機(jī)通信,必須通過MAX232(或其他)芯片。這是因?yàn)橛?jì)算機(jī)串口上的電平執(zhí)行的是RS-232標(biāo)準(zhǔn),它定義的高低電平和單片機(jī)的TTL邏輯電平不兼容。而MAX232芯片加上幾個(gè)電解電容,能完成電壓的加倍和反相,實(shí)現(xiàn)TTL電平和RS-232電平的轉(zhuǎn)換。單片機(jī)的串行口TXD與MAX232的一組電平轉(zhuǎn)換器的TTL輸入端(管腳12)相連,經(jīng)過MAX232轉(zhuǎn)換后,RS-232標(biāo)準(zhǔn)輸出端(管腳14)輸出的信號(hào)進(jìn)入計(jì)算機(jī)串口的RXD。同樣計(jì)算機(jī)串口的TXD與MAX232的RS-232標(biāo)準(zhǔn)輸入端(管腳13)相連,經(jīng)過電平轉(zhuǎn)換后,由TTL
24、輸出端(管腳11)輸出到單片機(jī)的RXD上DHT11的供電電壓為35.5V。傳感器上電后,要等待1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF 的電容,用以去耦濾波。DATA 用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零.操作流程如下:一次完整的數(shù)據(jù)傳輸40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和用戶MCU發(fā)送一次開始信號(hào)后,DHT11
25、從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號(hào)結(jié)束后,DHT11發(fā)送響應(yīng)信號(hào),送出40bit的數(shù)據(jù),并觸發(fā)一次信號(hào)采集,用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,DHT11接收到開始信號(hào)觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。4.4 上位機(jī)的程序設(shè)計(jì)4.4.1面向?qū)ο蟮木幊堂嫦驅(qū)ο?Object Oriented,OO)是軟件開發(fā)方法。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到如數(shù)據(jù)庫(kù)系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)
26、算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。4.4.2 上位機(jī)圖形窗口上位機(jī)是一臺(tái)可以發(fā)出特定操控命令的計(jì)算機(jī),通過操作預(yù)先設(shè)定好的命令,將命令傳遞給下位機(jī),通過下位機(jī)來控制設(shè)備完成各項(xiàng)操作。圖形窗口見附錄六。4.4.3 上位機(jī)流程圖 2.0 主線程流程圖4.4.4 主要程序代碼程序代碼詳見附錄二5 系統(tǒng)調(diào)試5.1 硬件調(diào)試(1)在焊接之前對(duì)各元器件的好壞進(jìn)行測(cè)試,用萬用表進(jìn)行測(cè)量。(2)檢測(cè)電路焊接的正確性,是否存在漏焊等。(3)用萬用表的電阻檔測(cè)量各焊點(diǎn)是否存在虛焊。5.2 軟件調(diào)試軟件采用keil c51軟件進(jìn)行編寫程序并進(jìn)行仿真運(yùn)行,如圖2.2所示。圖 2.1 軟件編譯圖(1)在軟件中編輯程序
27、。(2)編輯結(jié)束后對(duì)軟件的正確性進(jìn)行仿真。(3)直至出現(xiàn)以上的結(jié)果即沒有錯(cuò)誤,沒有警告。參考文獻(xiàn) 1 董慧敏溫濕度控制系統(tǒng)設(shè)計(jì)J 實(shí)驗(yàn)科學(xué)與技術(shù),2008,(05):2427 2 PIC單片機(jī)與單片機(jī)入門J電子制作, 2005, (10):10153 劉守義單片機(jī)技術(shù)基礎(chǔ)M西安電子科技大學(xué)出版社,20074 牛余朋,牛傲其51單片機(jī)C語(yǔ)言的編程技巧J.電子制作, 20075 王東峰單片機(jī)C語(yǔ)言應(yīng)用100例M電子工業(yè)出版社,2009(04):22276 周韌研,商斌.Visual C+串口通信開發(fā)入門與編程實(shí)踐,2009.(05):33377 李江全,張榮華,李偉等.Visual Studio串
28、口通信與測(cè)控應(yīng)用編程實(shí)踐.8 李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).附錄附錄一 程序#include <reg51.h> #include <intrins.h>typedef unsigned char uchar;typedef unsigned int uint;sfr ISP_DATA = 0xe2;/ 數(shù)據(jù)寄存器sfr ISP_ADDRH = 0xe3;/ 地址寄存器高八位sfr ISP_ADDRL = 0xe4;/ 地址寄存器低八位sfr ISP_CMD = 0xe5;/ 命令寄存器sfr ISP_TRIG = 0xe6;/ 命令觸發(fā)寄存器sfr ISP_CO
29、NTR = 0xe7;/ 命令寄存器sbit LCD_RS = P12; / LCD1602液晶的RS管腳 sbit LCD_RW = P13; / LCD1602液晶的RW管腳 sbit LCD_EN = P14; / LCD1602液晶的EN管腳sbit DHT11_D = P10; / 溫濕度傳感器DHT11數(shù)據(jù)接入sbit LED_HL = P36;/ 濕度過低報(bào)警指示燈sbit LED_HH = P37;/ 濕度過高報(bào)警指示燈sbit Buzzer_D = P11; / 蜂鳴器sbit Key_Set = P15;/ 設(shè)置按鍵的管腳sbit Key_Down = P16;/ 減按鍵的
30、管腳sbit Key_Up = P17;/ 加按鍵的管腳uchar SHIDU; / 保存濕度uchar T; / 保存溫度uchar Alarm_HL; / 濕度下限報(bào)警值uchar Alarm_HH; / 濕度上限報(bào)警值/* 關(guān)閉ISP&IAP*/void ISP_Disable()ISP_CONTR = 0x00;ISP_CMD = 0x00;ISP_TRIG = 0x00;/* 從單片機(jī)內(nèi)部EEPROM讀一個(gè)字節(jié),從0x2000地址開始*/uchar EEPROM_Read(uint add)EA = 0;ISP_CONTR = 0x81;ISP_CMD = 0x01;ISP_
31、ADDRH = (uchar)(add>>8);ISP_ADDRL = (uchar)(add&0xff);/ 對(duì)STC89C52系列來說,每次要寫入0x46,再寫入0xB9,ISP/IAP才會(huì)生效ISP_TRIG = 0x46; ISP_TRIG = 0xB9;_nop_();ISP_Disable();EA = 1;return ISP_DATA;/* 往單片機(jī)內(nèi)部EEPROM寫一個(gè)字節(jié),從0x2000地址開始*/void EEPROM_Write(uint add,uchar ch)EA = 0;ISP_CONTR = 0x81;ISP_CMD = 0x02;ISP_
32、ADDRH = (uchar)(add>>8);ISP_ADDRL = (uchar)(add&0xff);ISP_DATA = ch;ISP_TRIG = 0x46;ISP_TRIG = 0xB9;_nop_();ISP_Disable();EA = 1;/* 擦除單片機(jī)內(nèi)部EEPROM的一個(gè)扇區(qū) 寫8個(gè)扇區(qū)中隨便一個(gè)的地址,便擦除該扇區(qū),寫入前要先擦除*/void Sector_Erase(uint add) EA = 0;ISP_CONTR = 0x81;ISP_CMD = 0x03;ISP_ADDRH = (uchar)(add>>8);ISP_ADDR
33、L = (uchar)(add&0xff);ISP_TRIG = 0x46;ISP_TRIG = 0xB9;_nop_();ISP_Disable();EA = 1;/* 毫秒級(jí)延時(shí)函數(shù)*/void Delay_Ms(uint time)uint i,j;for(i=0;i<time;i+)for(j=0;j<112;j+);/* LCD1602液晶寫指令函數(shù)*/void Lcd_Write_Cmd(uchar cmd) LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; P0 = cmd;Delay_Ms(2); LCD_EN = 1; Delay_M
34、s(2); LCD_EN = 0;/* LCD1602液晶寫數(shù)據(jù)函數(shù)*/void Lcd_Write_Data(uchar dat) LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat;Delay_Ms(2); LCD_EN = 1; Delay_Ms(2); LCD_EN = 0;/* LCD1602液晶初始化函數(shù)*/void Lcd_Init() Lcd_Write_Cmd(0x38); / 16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)口 Lcd_Write_Cmd(0x0C); / 開顯示,不顯示光標(biāo) Lcd_Write_Cmd(0x06); / 地址加1,當(dāng)
35、寫入數(shù)據(jù)后光標(biāo)右移 Lcd_Write_Cmd(0x01); / 清屏/* LCD1602液晶輸出字符串函數(shù)*/void Lcd_Show_String(uchar *str) while(*str!='0') / 判斷當(dāng)前字符是否為空字符 Lcd_Write_Data(*str+);/* LCD1602液晶輸出數(shù)字*/void Lcd_Show_Num(uchar num)Lcd_Write_Data(num/10+48);/ 十位Lcd_Write_Data(num%10+48); / 個(gè)位/* LCD1602液晶顯示內(nèi)容的初始化*/void Lcd_Show_Init()
36、Lcd_Write_Cmd(0x80);Lcd_Show_String(" DHT11 SYSTEM "); / 第1行的顯示內(nèi)容Lcd_Write_Cmd(0xC0);Lcd_Show_String(" SHIDU= %RH "); / 第2行的顯示內(nèi)容 /* 10us級(jí)延時(shí)程序*/void Delay_10us()_nop_();/ 執(zhí)行一條指令,延時(shí)1微秒_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/* 讀取DHT11單總線上的一個(gè)字節(jié)*/uchar
37、 Read_Dht_Byte() uchar j;uchar dat = 0;for(j=0;j<8;j+) while(!DHT11_D);/ 等待低電平結(jié)束Delay_10us();/ 延時(shí)等待30usDelay_10us();Delay_10us();if(DHT11_D) / 判斷數(shù)據(jù)線是高電平還是低電平dat=dat|0x01;while(DHT11_D); elsedat=dat|0x00;dat=dat<<1; / 循環(huán)左移一位 return dat; /* 讀取DHT11的一幀數(shù)據(jù),濕度高、濕度低、校驗(yàn)碼*/void Read_Dht_Data() uchar
38、 Shidu_H;/ 濕度高檢測(cè)值uchar Shidu_L; / 濕度低檢測(cè)值 uchar Tem_H;/ 溫度高檢測(cè)值uchar Tem_L;/ 溫度低檢測(cè)值 uchar check;/ 校驗(yàn)字節(jié) DHT11_D = 0;/ 主機(jī)拉低20msDelay_Ms(20);DHT11_D = 1;/ DATA總線由上拉電阻拉高 主機(jī)延時(shí)40usDelay_10us(); / 延時(shí)等待30usDelay_10us();Delay_10us();while(!DHT11_D);/ 等待DHT的低電平結(jié)束while(DHT11_D);/ 等待DHT的高電平結(jié)束/ 進(jìn)入數(shù)據(jù)接收狀態(tài)Shidu_H = R
39、ead_Dht_Byte(); / 濕度高8位Shidu_L = Read_Dht_Byte(); / 濕度低8位,總為0Tem_H = Read_Dht_Byte(); / 溫度高8位 Tem_L = Read_Dht_Byte(); / 溫度低8位,總為0 check = Read_Dht_Byte();/ 8位校驗(yàn)碼,其值等于讀出的四個(gè)字節(jié)相加之和的低8位DHT11_D = 1;/ 拉高總線if(check=Shidu_H + Shidu_L + Tem_H + Tem_L) / 如果收到的數(shù)據(jù)無誤SHIDU = Shidu_H;/ 將濕度的檢測(cè)結(jié)果賦值給全局變量SHIDU/* 報(bào)警判斷
40、*/void Alarm_Judge()uchar i;if(SHIDU>Alarm_HH) / 濕度過高,低電平顯示LED_HH = 0; LED_HL = 1;else if(SHIDU<Alarm_HL)/ 濕度過低,低電平顯示LED_HL = 0;LED_HH = 1;else / 濕度正常,都為高電平LED_HH = 1;LED_HL = 1;if(!LED_HH)|(!LED_HL) / 蜂鳴器判斷,只要至少1個(gè)報(bào)警燈亮,蜂鳴器就報(bào)警for(i=0;i<3;i+)Buzzer_D = 0;Delay_Ms(100);Buzzer_D = 1;Delay_Ms(10
41、0);/* 按鍵掃描,用于設(shè)置濕度報(bào)警范圍*/void Key_Scan()if(!Key_Set)/ 判斷設(shè)置按鍵是否被按下/*將液晶顯示改為設(shè)置頁(yè)面的*/Lcd_Write_Cmd(0x80);Lcd_Show_String(" Alarm Set "); / 第一行顯示內(nèi)容Lcd_Write_Cmd(0xC0);Lcd_Show_String(" - "); / 第二行顯示內(nèi)容 Lcd_Write_Cmd(0xC0+5); / 在液晶上填充濕度的下限值Lcd_Show_Num(Alarm_HL);Lcd_Write_Cmd(0xC0+8); / 在
42、液晶上填充濕度的上限值Lcd_Show_Num(Alarm_HH); Lcd_Write_Cmd(0xC0+6); / 光標(biāo)定位到第2行第7列Lcd_Write_Cmd(0x0F); / 光標(biāo)閃爍Delay_Ms(10); / 去除按鍵按下的抖動(dòng)while(!Key_Set); / 等待按鍵釋放Delay_Ms(10); / 去除按鍵松開的抖動(dòng)/*設(shè)置濕度的下限值*/while(Key_Set) / “設(shè)置鍵” 沒有被按下,則一直處于濕度下限的設(shè)置if(!Key_Down) / 判斷 “減按鍵“ 是否被按下 if(Alarm_HL>0) / 當(dāng)濕度下限值大于0時(shí),自減Alarm_HL-;
43、 Lcd_Write_Cmd(0xC0+5); / 重新刷新顯示更改后的濕度下限值 Lcd_Show_Num(Alarm_HL);Lcd_Write_Cmd(0xC0+6); / 重新定位閃爍的光標(biāo)位置Delay_Ms(350);if(!Key_Up) / 判斷 “加按鍵“ 是否被按下if(Alarm_HL<99) / 當(dāng)濕度下限值小于99時(shí),自加Alarm_HL+;Lcd_Write_Cmd(0xC0+5); / 重新刷新顯示更改后的濕度下限值Lcd_Show_Num(Alarm_HL);Lcd_Write_Cmd(0xC0+6); / 重新定位閃爍的光標(biāo)位置Delay_Ms(350)
44、; / 延時(shí)Lcd_Write_Cmd(0xC0+9); / 定位到濕度上限的位置閃爍Delay_Ms(10); / 去除按鍵按下的抖動(dòng)while(!Key_Set); / 等待按鍵釋放Delay_Ms(10); / 去除按鍵松開的抖動(dòng)/*設(shè)置濕度的上限值*/ while(Key_Set) / “設(shè)置鍵” 沒有被按下,則一直處于濕度上限的設(shè)置if(!Key_Down) / 判斷 “減按鍵” 是否被按下if(Alarm_HH>0) / 當(dāng)濕度上限值大于0時(shí),自減Alarm_HH-;Lcd_Write_Cmd(0xC0+8); / 重新刷新顯示更改后的濕度上限值Lcd_Show_Num(Al
45、arm_HH); Lcd_Write_Cmd(0xC0+9); / 重新定位閃爍的光標(biāo)位置Delay_Ms(350);if(!Key_Up) / 判斷 “加按鍵“ 是否被按下if(Alarm_HH<99) / 當(dāng)濕度上限值小于99時(shí),自加Alarm_HH+;Lcd_Write_Cmd(0xC0+8); / 重新刷新顯示更改后的濕度上限值Lcd_Show_Num(Alarm_HH); Lcd_Write_Cmd(0xC0+9); / 重新定位閃爍的光標(biāo)位置Delay_Ms(350); / 延時(shí)Lcd_Write_Cmd(0x0C); / 取消光標(biāo)閃爍Lcd_Show_Init(); / 液晶顯示為檢測(cè)界面的Delay_Ms(10); / 去除按鍵按下的抖動(dòng)while(!Key_Set); / 等待按鍵釋放Delay_Ms(10); / 去除按鍵松開的抖動(dòng)Sector_Erase(0x2000); / 存儲(chǔ)之前必須先擦除EEPROM_Write(0x2000,Alarm_HL); / 把濕度下限存入到EEPROM的0x2000這個(gè)地址EEPROM_Write(0x2001,Alarm_HH);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班級(jí)科技活動(dòng)組織與引導(dǎo)計(jì)劃
- 社團(tuán)發(fā)展戰(zhàn)略計(jì)劃
- 可持續(xù)發(fā)展與財(cái)務(wù)規(guī)劃計(jì)劃
- 小兒輔食知識(shí)培訓(xùn)課件
- 企業(yè)戰(zhàn)略控制概述
- 簡(jiǎn)單的護(hù)理查房
- 靜脈輸血護(hù)理查房
- 鋰電池安全知識(shí)培訓(xùn)課件
- 第十單元實(shí)驗(yàn)活動(dòng)6:酸、堿的化學(xué)性質(zhì)教學(xué)設(shè)計(jì)-2023-2024學(xué)年九年級(jí)化學(xué)人教版下冊(cè)
- 腰椎穿刺患者術(shù)后護(hù)理
- (二模)長(zhǎng)春市2025屆高三質(zhì)量監(jiān)測(cè)(二)地理試卷(含答案)
- 2025天津市建筑安全員-C證考試題庫(kù)
- 2025年河南省高職單招計(jì)算機(jī)類職業(yè)技能測(cè)試題(附答案)
- GB/T 18936-2025禽流感診斷技術(shù)
- 《主題四 雞蛋撞地球》教學(xué)設(shè)計(jì)-2023-2024學(xué)年六年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)遼師大版
- 2025年北京控股集團(tuán)招聘筆試參考題庫(kù)含答案
- 2025年國(guó)航機(jī)務(wù)系統(tǒng)AMECO工程師崗位校園招聘筆試參考題庫(kù)附帶答案詳解
- 巨量千川中級(jí)營(yíng)銷師認(rèn)證考試題(附答案)
- 2025中智集團(tuán)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《公路工程造價(jià)標(biāo)準(zhǔn)高海拔高寒地區(qū)補(bǔ)充規(guī)定》
- 金融公司早會(huì)內(nèi)容
評(píng)論
0/150
提交評(píng)論