基于單片機(jī)的溫濕度測量儀設(shè)計(jì)_第1頁
基于單片機(jī)的溫濕度測量儀設(shè)計(jì)_第2頁
基于單片機(jī)的溫濕度測量儀設(shè)計(jì)_第3頁
基于單片機(jī)的溫濕度測量儀設(shè)計(jì)_第4頁
基于單片機(jī)的溫濕度測量儀設(shè)計(jì)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計(jì)報(bào)告單片機(jī)課程設(shè)計(jì)報(bào)告題目:基于單片機(jī)的溫濕度儀表設(shè)計(jì)班 級(jí): 智能科學(xué)與技術(shù)1201班 學(xué) 生 姓 名: 曹文波 學(xué) 號(hào): 120407130 指 導(dǎo) 教 師 : 朱建光 成 績 : 沈陽工業(yè)大學(xué)摘要溫度和濕度是兩個(gè)最基本的環(huán)境參數(shù),人們生活與溫濕度息息相關(guān)。在日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護(hù)、化工、石油等領(lǐng)域,經(jīng)常需要對(duì)環(huán)境溫度和濕度進(jìn)行測量和控制。準(zhǔn)確測量溫濕度在生物制藥食品加工、造紙等行業(yè)更是至關(guān)重要。因此,研究溫濕度的測量方法和裝置具有重要的意義。隨著科技的不斷發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們的工作、生活、科研等各個(gè)領(lǐng)域。已經(jīng)成為一種比較成熟的技術(shù)。由于單片機(jī)集成度高、功能

2、強(qiáng)、可靠性高、體積小、功耗低、使用方便等優(yōu)點(diǎn),目前已經(jīng)滲透到我們工作和生活的方方面面。本設(shè)計(jì)STC89C52為主要控制器件,以DHT11為數(shù)字溫度傳感器的新型數(shù)字溫濕度計(jì)。本設(shè)計(jì)主要包括硬件電路的設(shè)計(jì)和系統(tǒng)軟件的設(shè)計(jì)。目錄第一章 目標(biāo)及主要任務(wù)··················3第二章 硬件設(shè)計(jì)··········&

3、#183;··········3 2.1系統(tǒng)設(shè)計(jì)方案 ·······················3 2.2 STC89C52介紹 ···········&#

4、183;··········4 2.3 DHT11數(shù)字傳感器介紹 ··················5 2.4電路設(shè)計(jì) ················

5、83;·······7第3章 軟件設(shè)計(jì)·····················11 3.1 系統(tǒng)軟件主程序流程 ·················&

6、#183;·113.2 DHT11數(shù)據(jù)采集流程 ····················13第4章 結(jié)論與調(diào)試····················13附錄(程序清單)·

7、3;··················14參考文獻(xiàn)························22第一章 目標(biāo)及主要任務(wù)在本次課程設(shè)計(jì)中,為實(shí)現(xiàn)對(duì)溫濕度的檢測與顯示,主要利用

8、以STC89C52為核心構(gòu)架硬件電路,DHT11溫濕度傳感器采集環(huán)境溫度及濕度信息(溫度檢測范圍:0至+50。測量精度:2.;濕度檢測范圍:20%-90%RH檢測精度:5%RH),數(shù)碼管直接顯示溫度和濕度(顯示方式:溫度:兩位顯示;濕度:兩位顯示);同時(shí)利用C語言編程實(shí)現(xiàn)溫濕度信息的顯示功能。擴(kuò)展功能:可設(shè)置溫濕度報(bào)警值,溫濕度超過設(shè)置的響應(yīng)報(bào)警值,會(huì)發(fā)出報(bào)警信號(hào)。第二章 硬件設(shè)計(jì)2.1系統(tǒng)設(shè)計(jì)方案 本方案使用STC89C52作為控制核心,一直能溫濕度傳感器DHT11作為溫濕度測量元件,顯示電路采用4位數(shù)碼管顯示,采用單片機(jī)最小系統(tǒng)。系統(tǒng)硬件電路設(shè)計(jì)框圖如下圖2-1。數(shù)碼管顯示電路時(shí)鐘復(fù)位電路

9、DHT11溫濕度傳感器數(shù)據(jù)采集按鍵電路STC89C52單片機(jī)圖2-1系統(tǒng)硬件電路設(shè)計(jì)框圖2.2 STC89C52介紹STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案圖2-2 STC89C52引腳圖 標(biāo)準(zhǔn)功能:具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗電

10、路,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外 STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz。器件參數(shù):1.增強(qiáng)型8051單片機(jī),6 時(shí)鐘/機(jī)器周期和12 時(shí)鐘/機(jī)器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051.2 2. 工作電壓:5.5V3

11、.3V(5V單片機(jī))/3.8V2.0V(3V 單片機(jī))3.工作頻率范圍:040MHz,相當(dāng)于普通8051 的080MHz,實(shí)際工作 頻率可達(dá)48MHz4. 用戶應(yīng)用程序空間為8K字節(jié)5. 片上集成512 字節(jié)RAM6. 通用I/O 口(32 個(gè)),復(fù)位后為:P0/P1/P2/P3 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為 I/O 口用時(shí),需加上拉電阻。7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片8. 具有EEPROM 功能9

12、. 共3 個(gè)16 位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T210.外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒11. 通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART12. 工作溫度范圍:-40+85(工業(yè)級(jí))/075(商業(yè)級(jí))13. PDIP封裝2.3 DHT11數(shù)字傳感器介紹 DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測溫元件,并與一個(gè)高性能8位單片機(jī)相連接

13、。因此該產(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)部在檢測信號(hào)的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。1.引腳說明DHT11有四個(gè)引腳,3號(hào)引腳一般懸空,如圖2-3所示。DHT11的供電電壓為 35.5V。傳感器上電后,要等待1s以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電

14、源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。建議連接線長度短于20米時(shí)用5K上拉電阻,大于20米時(shí)根圖2-3 DHT11典型電路據(jù)實(shí)際情況使用合適的上拉電阻。2.技術(shù)參數(shù)供電電壓: 3.35.5V DC輸 出: 單總線數(shù)字信號(hào)測量范圍: 濕度20-90%RH, 溫度050測量精度: 濕度+-5%RH, 溫度+-2分 辨 率: 濕度1%RH, 溫度1互 換 性: 可完全互換 ,長期穩(wěn)定性: <±1%RH/年3.串行接口(單線雙向) DATA 引腳用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分

15、,具體格式在下面說明,當(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)和 數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。 用戶MCU發(fā)送一次開始信號(hào)后,DHT11從低功耗模式轉(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ā)一次溫濕度采集

16、,如果沒有接收到主機(jī)發(fā)送開始信號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。1. 通訊過程如圖1所示圖2-4 通信過程 如圖2-5,總線空閑狀態(tài)為高電平,主機(jī)把總線拉低等待DHT11響應(yīng),主機(jī)把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號(hào)。DHT11接收到主機(jī)的開始信號(hào)后,等待主機(jī)開始信號(hào)結(jié)束,然后發(fā)送80us低電平響應(yīng)信號(hào).主機(jī)發(fā)送開始信號(hào)結(jié)束后,延時(shí)等待20-40us后, 讀取DHT11的響應(yīng)信號(hào),主機(jī)發(fā)送開始信號(hào)后,可以切換到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高。圖2-5 主機(jī)喚醒從機(jī)響應(yīng)過程 總線為低電平,說明DHT11發(fā)送響應(yīng)信號(hào),DHT1

17、1發(fā)送響應(yīng)信號(hào)后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時(shí)隙開始,高電平的長短定了數(shù)據(jù)位是0還是1.格式見下面圖示.如果讀取響應(yīng)信號(hào)為高電平,則DHT11沒有響應(yīng),應(yīng)檢查線路是否連接正常.當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。數(shù)字0信號(hào)表示方法如圖4所示圖2-6 數(shù)字0信號(hào)數(shù)字1信號(hào)表示方法.如圖5所示圖2-6 數(shù)字1信號(hào)2.4電路設(shè)計(jì)1.單片機(jī)系統(tǒng)電路圖2-7 單片機(jī)系統(tǒng)2.數(shù)碼管電路注:數(shù)碼管前兩位顯示濕度,后兩位顯示溫度圖2-8 數(shù)碼管電路3.報(bào)警燈電路注:D27為濕度超(上限)報(bào)警信號(hào)燈D26為溫度度

18、超(上限)報(bào)警信號(hào)燈圖2-9 LED報(bào)警電路4.按鍵電路按鍵1為加按鍵2為減按鍵6為設(shè)置圖2-10 按鍵電路5.總體電路圖圖2-11 總體電路圖第3章 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)程序主要包括主程序、DHT11控制模塊程序、延時(shí)子程序、中斷服務(wù)子程序,整體程序見附錄。3.1 系統(tǒng)軟件主程序流程 程序開始后,先對(duì)單片機(jī)進(jìn)行初始化(開中斷),通過延時(shí)一秒等待DHT11溫濕度傳感器啟動(dòng)。主程序分為三個(gè)不同的模式,通過中斷次數(shù)進(jìn)行選擇。模式一:溫濕度測量模式 DHT11溫濕度傳感器啟動(dòng)后,對(duì)其進(jìn)行數(shù)據(jù)初始化后,進(jìn)行溫濕度信息的采集、轉(zhuǎn)化、處理,最后通過數(shù)碼管讀出,并判斷溫濕度是否超過報(bào)警值以產(chǎn)生報(bào)警信號(hào)。DHT

19、11溫濕度傳感器經(jīng)過一次數(shù)據(jù)采集和處理后,需返回次延時(shí)程序處理來重新初始化DHT11后采集溫濕度數(shù)據(jù)。模式二:濕度報(bào)警值設(shè)定模式掃描按鍵1和按鍵2,若按鍵按下對(duì)濕度相應(yīng)的加1減一,并通過數(shù)碼管顯示。模式二:溫度報(bào)警值設(shè)定模式掃描按鍵1和按鍵2,若按鍵按下對(duì)溫度相應(yīng)的加1減一,并通過數(shù)碼管顯示。程序流程圖如下:開始 單片機(jī)初始化延時(shí)1秒While(1)m=? = 0 =1 =2掃描按鍵掃描按鍵DHT11初始化濕度加1或減1濕度閃爍濕度加1或減1讀取溫濕度值 濕度閃爍 顯示溫濕度并報(bào)警中斷服務(wù)m=m+1Ym=3?Nm=m+1中斷返回圖3-1 程序流程圖3.2 DHT11數(shù)據(jù)采集流程DHT11溫濕度

20、傳感器有嚴(yán)格的思緒要求,程序一定要遵循其與主機(jī)通信的步驟。其溫濕度數(shù)據(jù)采集流程圖如下:主機(jī)發(fā)出開始信號(hào)主機(jī)設(shè)置為輸入模式NDHT11是否響應(yīng)跳出Y等待80us高電平結(jié)束接收數(shù)據(jù)拉低總線,延時(shí)50us釋放總線圖3-2 DHT數(shù)據(jù)采集流程圖第4章 調(diào)試與結(jié)論 作品實(shí)現(xiàn)了課設(shè)的所有要求,并添加了擴(kuò)展功能溫濕度報(bào)警。硬件上選擇DHT11作為溫濕度傳感器,使電路簡單,容易讀數(shù),簡化了設(shè)計(jì)。軟件上,在DHT11與主機(jī)通信上遇到困難,查了很多資料。鍵盤和數(shù)碼管閃爍上也經(jīng)過了多次調(diào)試才取得成功。附錄程序清單:#include <reg51.h>#include <intrins.h>

21、/typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 無符號(hào)8位整型變量 */typedef signed char S8; /* defined for signed 8-bits integer variable 有符號(hào)8位整型變量 */typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 無符號(hào)16位整型變量 */typedef signed int S16; /* defined for sign

22、ed 16-bits integer variable 有符號(hào)16位整型變量 */#define uchar unsigned char#define uint unsigned int#define Data_0_time 4/-/-IO口定義區(qū)-/-/sbit P2_0= P20 ;/-/-定義區(qū)-/-/U8 U8FLAG;U8 U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_

23、temp,U8checkdata_temp;U8 U8comdata;U8 str4;U8 k,m=0;U8 i,j;S8 rb,tb;uchar table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; void Delay(U16 j) U8 i; for(;j>0;j-) for(i=0;i<27;i+); void Delay_10us(void) U8 i; i-; i-; i-; i-; i-; i-; void COM(void) U8 i; for(i=0;i<8;i+) U8FLAG=2; while(

24、!P2_0)&&U8FLAG+);Delay_10us(); Delay_10us();Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&&U8FLAG+); /超時(shí)則跳出for循環(huán) if(U8FLAG=1)break; /判斷數(shù)據(jù)位是0還是1 / 如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為 1 U8comdata<<=1; U8comdata|=U8temp; /0 /rof /-/-濕度讀取子程序 -/-/-以下變量均為全局變量-/-溫度高8位= U8T_data_H-/-

25、溫度低8位= U8T_data_L-/-濕度高8位= U8RH_data_H-/-濕度低8位= U8RH_data_L-/-校驗(yàn) 8位 = U8checkdata-/-調(diào)用相關(guān)子程序如下-/- Delay();, Delay_10us();,COM(); /-void st(U8 a,U8 b) str0=tablea/10; str1=tablea%10; str2=tableb/10; str3=tableb%10; void RH(void) /主機(jī)拉低18ms P2_0=0; Delay(180); P2_0=1; /總線由上拉電阻拉高 主機(jī)延時(shí)20us Delay_10us(); D

26、elay_10us(); Delay_10us(); Delay_10us(); /主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào) P2_0=1; /判斷從機(jī)是否有低電平響應(yīng)信號(hào) 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行 if(!P2_0) /T ! U8FLAG=2; /判斷從機(jī)是否發(fā)出 80us 的低電平響應(yīng)信號(hào)是否結(jié)束 while(!P2_0)&&U8FLAG+); U8FLAG=2; /判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài) while(P2_0)&&U8FLAG+); /數(shù)據(jù)接收狀態(tài) COM(); U8RH_data_H_temp=U8comdata;

27、COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; /數(shù)據(jù)校驗(yàn) U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp=U8checkdata_temp) U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8

28、RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; st(U8RH_data_H,U8T_data_H);int0()interrupt 0+m;if(m=3)m=0;Delay(2000);/-/main()/-void main()EA=1;IT0=1;EX0=1; /開中斷0P2=0xff;P3=0xff;rb=60;tb=20;Delay(10000); /延時(shí)1swhile(1)if(rb>99)rb=0;if(rb<0)rb=99;if(tb>50)tb=0;if(tb<0)tb=50;switch(m) ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論