用DHT11與4段數(shù)碼管顯示的溫濕度檢測系統(tǒng)_第1頁
用DHT11與4段數(shù)碼管顯示的溫濕度檢測系統(tǒng)_第2頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、i等級:25湖南工程學(xué)院課 程 設(shè) 計課程名稱單片機原理與應(yīng)用_課題名稱溫濕度檢測系統(tǒng)_專 業(yè)_班級_學(xué)號_姓名_指導(dǎo)教師_ii20132013 年 6 6 月 2020 日湖南工程學(xué)院課程設(shè)計任務(wù)書課程名稱單片機與應(yīng)用_課 題環(huán)境溫、濕度檢測系統(tǒng)設(shè)計專業(yè)班級_學(xué)生姓名 _學(xué)號_指導(dǎo)老師_審批_任務(wù)書下達(dá)日期20132013 年 6 6 月 1010 日任務(wù)完成日期20132013 年 6 6 月 2121 日設(shè)計內(nèi)容與設(shè)計要求3設(shè)計內(nèi)容:本課題要求以單片機為核心,采用溫濕度傳感器DHT11DHT11設(shè)計一個對環(huán)境溫度濕度的檢測系統(tǒng),要求用按鍵控制系統(tǒng)選 擇分別對溫度或濕度的測試、復(fù)位、清除功

2、能,用四位LEDLED 數(shù)碼管顯示實時溫度和濕度。 還可由用戶設(shè)定溫度和濕度的上、下限,設(shè)計越限報警功能。設(shè)計要求:1 1)確定系統(tǒng)設(shè)計方案;2 2 )進(jìn)行系統(tǒng)的硬件設(shè)計;3 3)完成必要元器件選擇;4 4)系統(tǒng)軟件設(shè)計及調(diào)試;5 5)系統(tǒng)聯(lián)調(diào)及操作說明6 6) 按規(guī)范要求寫設(shè)計說明書4主要設(shè)計條件1、PC 機及單片機調(diào)試軟件;2、開發(fā)板 1 塊;3、系統(tǒng)設(shè)計、調(diào)試所需的元器件說明書格式1.1. 課程設(shè)計任務(wù)書2.2. 目錄3 3總體方案確定4.4. 各單元硬件電路設(shè)計及計算方法5.5. 軟件設(shè)計與說明(包括流程圖)6.6. 調(diào)試結(jié)果與必要的調(diào)試說明7.7. 總結(jié)8 8 參考文獻(xiàn)9 9、附錄附

3、錄 A A系統(tǒng)原理圖附錄 B B 程序清單51010、課程設(shè)計成績評分表。進(jìn)度安排設(shè)計時間分為二周第一周星期一、上午:布置課題任務(wù), 課題介紹及講課。 下午:借閱有關(guān)資料,總體方案討論。星期二、確定總體方案, 學(xué)習(xí)與設(shè)計相關(guān)內(nèi)容。 星期三、各部分方案設(shè)計,各部分設(shè)計。星期四、設(shè)計及調(diào)試。星期五、設(shè)計及調(diào)試。星期六、設(shè)計及調(diào)試。第二周星期一:設(shè)計及調(diào)試。星期二:設(shè)計及調(diào)試。星期三:調(diào)試、寫說明書。星期四-星期五上午:寫說明書、完成電子版并打印成稿 星期五下午:答辯。參考文獻(xiàn)1王迎旭等單片機原理及及應(yīng)用機械工業(yè)出版社.2012 年6目錄第 1 章 系統(tǒng)總體方案設(shè)計 .71.1 系統(tǒng)設(shè)計方案總體思路

4、 . 71.2 系統(tǒng)總體方案框圖 . 7第 2 章 硬件設(shè)計 .82.1 STC89C52 簡介 . 82.2 晶振電路 . 82.3 復(fù)位電路 . 82.4 共陽數(shù)碼管顯示電路 . 92.5 鍵盤電路 .102.6 DHT11 傳感器電路 .102.7 報警電路 .11第 3 章 軟件設(shè)計與說明 .123.1 系統(tǒng)軟件設(shè)計思路 . 錯誤 !未定義書簽。3.2 主程序設(shè)計 .123.3 鍵盤函數(shù) . 錯誤 !未定義書簽。3.4 顯示程序設(shè)計 .12第 4 章 調(diào)試結(jié)果與說明 .144.1 系統(tǒng)調(diào)試說明 .144.2 調(diào)試結(jié)果 .14第 5 章 總結(jié) .15參考文獻(xiàn) .16附錄 A 系統(tǒng)電理圖路

5、原 .17附錄 B 系統(tǒng)程序清單 .187第1章系統(tǒng)總體方案設(shè)計1.1 系統(tǒng)設(shè)計方案總體思路根據(jù)課題,設(shè)計溫濕度檢測系統(tǒng)電路,采用單片機STC89C52 為控制芯片。根據(jù)設(shè)計要求所需的實現(xiàn)要求, 將總電路分為鍵盤接口電路、單 片機時鐘電路、復(fù)位電路、LED 顯示電路、DHT11 傳感器電路、報警電路 幾個模塊。鍵盤接口電路為 4*4 矩陣式鍵盤,采用查詢法,鍵盤連接到單 片機的P2 口( P1.0-P1.3 列線,P1.4-P1.7 行線),在本系統(tǒng)中采用內(nèi)部時 鐘電路,由一個石英晶體管振蕩器和兩個微調(diào)電容組成;復(fù)位電路中給給RST 引腳連續(xù)輸入 2 個機器周期(即 24 個時鐘振蕩周期)以上

6、高電平, 就可完成初始化操作;顯示電路與單片機I/O 相連,采用 4 段 7 位共陽LED 顯示管顯示溫濕度。81.2 系統(tǒng)總體方案框圖第2章硬件設(shè)計2.1 STC89C52 簡介STC89C52 是 STC 公司生產(chǎn)的一種低功耗高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程 FLASH 存儲器。STC89C52 使用經(jīng)典的 MCS-51 內(nèi)核,但做了很多改進(jìn)使得芯片具有傳統(tǒng) 51 單片機不具備的功能。擁有 靈巧的 8 位CPU 和在系統(tǒng)可編程 Flash,使得 STC89C52 為眾多嵌入式 控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。根據(jù)設(shè)計思路確定的總體方案如圖 1-2 所示。圖

7、 1-2 系統(tǒng)總體框圖92.2 晶振電路單片機工作的時間基準(zhǔn)是由時鐘電路所控制的。在單片機的 XTAL1 和XTAL2 兩個管腳,接一只晶振及兩只電容就構(gòu)成了單片機的時鐘電路。 電路中,電容器 C1 和 C2 對振蕩頻率有微調(diào)作用,均選用 20pF,石英晶體 選擇12MHZ。晶振電路如圖CTr+nW丄口xi L1C2商甌I_I_1wM一圖 2-2 晶振電路2.3 復(fù)位電路復(fù)位電路是保證單片機正常運行的關(guān)鍵因素,所以可靠地復(fù)位電路設(shè)10計是必要的。將 RST 引腳連續(xù)輸入 2 個機器周期(即 24 個時鐘振蕩期間)以上高電平,即可以完成單片機的初始化操作。本設(shè)計采用按鈕復(fù)位方式 復(fù)位電路如圖:圖

8、 2-3 復(fù)位電路2.4 共陽數(shù)碼管顯示電路LED 數(shù)碼管采用共陽數(shù)碼管,采用動態(tài)顯示方式,減少硬件資源。動 態(tài)掃描顯示接口是單片機中應(yīng)用最廣泛的一種顯示方式。數(shù)碼管的 dp 段以及 g-a 段依序與 P0 口的 P0.7-P0.0 連接。4 位 LED 的位選線分別由相對應(yīng)的 P2.0-P2.3 控制。顯示電路如圖:11圖 2-4 顯示電路2.5 鍵盤電路該系統(tǒng)采用 4*4 矩陣式鍵盤電路,在矩陣式鍵盤中,每條水平線和垂 直線交叉處都由一個按鈕連接。 鍵盤的行線與 P1 口的 P1.4-P1.7 相連,列 線與P1.0-P1.3 相連。本系統(tǒng)采用 4 個鍵:鍵 0:啟動系統(tǒng),傳感器有響應(yīng)。鍵

9、 1:設(shè)置溫濕度的上下限。鍵 2:暫停。鍵 3:單片機復(fù)位,系統(tǒng)停止工作鍵盤電路如下:2.6 DHT11 傳感器電路DHT11 是一種能對環(huán)境的溫濕度參數(shù)進(jìn)行采樣的傳感器。傳感器中 的DATA 用于微處理器與 DHT11 之間的通訊和同步,采用單總線數(shù)據(jù)格 式,一次通訊時間 4ms 左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下 面說明,當(dāng)前小數(shù)部分用于以后擴展,現(xiàn)讀出為零 操作流程如下:一次完整的數(shù)據(jù)傳輸為 40bit,高位先出。數(shù)據(jù)格式:8bit 濕度整數(shù)數(shù) 據(jù)+8bit 濕度小數(shù)數(shù)據(jù)。+8b i 溫度整數(shù)數(shù)據(jù)+8bit 溫度小數(shù)數(shù)據(jù)。+8bit 校驗 和。DHT11 傳感器電路如下:圖 2

10、-6 DHT11 傳感器電路2.7 報警電路蜂鳴器是一種一體化的電子通訊響應(yīng)器。在本系統(tǒng)中,當(dāng)溫濕度超過 其上下線時報警。13第3章 軟件設(shè)計與說明此次系統(tǒng)設(shè)計是通過 C 語言編程,其中包括數(shù)碼管顯示部分、鍵盤掃 描部分、傳感器采樣溫濕度部分。3.1 主程序設(shè)計主程序初始化,主程序循環(huán)掃描是否有鍵按下,如有鍵按下則做出相 應(yīng)的功能處理,若無鍵按下則繼續(xù)執(zhí)行顯示函數(shù)。3.4 顯示程序設(shè)計顯示采用 4 位共陽數(shù)碼管,段碼在程序數(shù)據(jù)區(qū)定義,根據(jù)需要查表取 得,再送往 P0 口,以控制數(shù)碼管顯示不同字符數(shù)字。位碼由 P2.0P2.3 口分別控制晶體數(shù)碼管的位控位 W4 W1,以控制各個數(shù)碼管顯示。14

11、圖 3-4 顯示程序流程圖15第4章調(diào)試結(jié)果與說明4.1 系統(tǒng)調(diào)試說明本系統(tǒng)調(diào)試過程中采用直接硬件調(diào)試的方法,對整體的系統(tǒng)程序進(jìn)行 分解排故,首先對八段顯像管進(jìn)行數(shù)字顯示測試, 然后對鍵盤進(jìn)行按鍵響 應(yīng)測試,當(dāng)測試都得到正確結(jié)果時,將鍵盤與顯示結(jié)合起來,并給予恰當(dāng)?shù)淖中痛a,最后加入定時器中斷程序,給出正確的脈沖信號和頻率。調(diào)試 過程中,數(shù)碼管顯示的數(shù)字閃爍,原因是傳感器接觸不良,后換了導(dǎo)線, 數(shù)字不在閃爍。按鍵出現(xiàn)按下一鍵響應(yīng)多次的情況, 后查出由于鍵位抬起 子程序書寫不當(dāng),造成鍵盤多次響應(yīng),并加上了松手去抖程序后問題得以 順利解決。4.2 調(diào)試結(jié)果接上溫濕度傳感器 DHT11 后和電源后,將

12、程序下載到板子上,按下 0 號鍵啟動 , 執(zhí) 行 程 序 , 數(shù) 碼 管 上 顯 示 了 環(huán) 境 的 溫 濕 度 參 數(shù) 。圖 5-1 顯示環(huán)境溫濕度參數(shù)16第5章 總結(jié)經(jīng)過兩周的單片機課程設(shè)計,終于完成了單片機環(huán)境溫濕度檢測系統(tǒng)的設(shè)計,其中收獲許多,付出了許多精力和時間, 實踐能力的到了一定的剛學(xué)完單片機并且經(jīng)歷了考試,我一直以為我對單片機有了不少的了 解,課透過此次課程設(shè)計,我才看到了自己的諸多不足, 也學(xué)到了很多知 識與技巧。 雖然之前有做過不少課程設(shè)計, 但以前大多是單獨的軟件或者 硬件設(shè)計,這次設(shè)計讓我有了長足的進(jìn)步, 真正實現(xiàn)了對單片機硬件與軟 件的兼顧與融會貫通。單片機課程設(shè)計重

13、點就在于軟件算法的設(shè)計,需要有很巧妙的程序算 法,雖然以前寫過幾次程序, 但我覺的寫好一個程序并不是一件簡單的事。 由于 C語言學(xué)習(xí)較早,很多技巧與方法早就忘得差不多了,上課與做實 驗,我一直以來都是使用匯編語言來編寫程序, 可課題的復(fù)雜度明顯比試 驗中遇到的要大得多, C 語言編程的方便性讓我不得不著手 C 語言開始。 這也讓我再次鞏固了以前學(xué)習(xí)的專業(yè)知識。面對大量的參考資料甚至是幾乎現(xiàn)成的參考報告,我選擇了在學(xué)習(xí)吸 納的基礎(chǔ)上另辟蹊徑, 雖然遇到困難的時候都想放棄, 直接用現(xiàn)成的程序 和報告,可看到其他同學(xué)和我一樣在埋頭苦干、老師期盼的眼神,我選擇 了堅持下來,當(dāng)然,現(xiàn)在這是我驕傲的資本。

14、雖然這個課題不算難,但是 從硬件電路到最后程序的編寫和調(diào)試都是自己摸索出來的, 這個過程中也 遇到了不少困難,更多的是成功后的喜悅,學(xué)習(xí)永無止境, 只有把學(xué)習(xí)和 實踐當(dāng)做一種樂趣那么即便有再大的困難也會是一種享受。17參考文獻(xiàn) 1 王迎旭. 單片機原理與應(yīng)用 M. 北京:機械工業(yè)出版社 , 2004. 2 陳海宴 . 51 單片機原理及應(yīng)用 M. 北京: 北京航空航天大學(xué)出版 社, 2010. . 3 胡漢才 . 單片機原理及其接口技術(shù) M. 北京:清華大學(xué)出版社, 2010. 4 李全利 . 單片機原理及應(yīng)用技術(shù) M. 北京:高等教育出版社, 2004. 5 陳光東 . 單片微型計算機原理及

15、接口技術(shù) M. 華中科技大學(xué)出版社, 2001.2001. 6 何立民 . 51 系列單片機應(yīng)用與實踐教程 M. 北航出版社, .18附錄A系統(tǒng)電路原理圖19附錄B系統(tǒng)程序清單/ P1.0-P1.7 段選 a-dp,P2.0-P2.3 位選 w4-w1,p1 口接矩陣鍵盤 列接高四位, 橫接低四位 / 鍵盤:0 鍵啟動, 1 鍵設(shè)置, 2 鍵暫停, 3 鍵復(fù)位#include /包含頭文件,一般情況不需要改動,頭文件包含特殊 功能寄存器的定義#define uchar unsigned char#define uint unsigned intunsignedcharcodeled_code=

16、0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 xbf;/* 共陽字型段碼表 ,0-F,-*/uchar led0,led1,led2,led3;/*-函數(shù)聲明- */uchar keysca n(v oid);/鍵盤掃描void delay(uint i); /延時程序void display(uchar Ied0,led1,led2,led3);/動態(tài)掃描顯示程序/*-主函數(shù)- */void main()uchar key;20P1=0 xff

17、; /* 關(guān)所有位顯示 */led0=16;/*顯示初始狀態(tài)“ - - - 0”*/led1=16;led2=16;led3=0;while(1)display(led0,led1,led2,led3); /*調(diào)顯示 */ key=keyscan(); /調(diào)用鍵盤掃描,switch(key)case 0 x7e:led0=0;break; /0 按下相應(yīng)的鍵,首位數(shù)碼管顯示相對應(yīng) 的值case 0 x7d:led0=1;break; /1case 0 x7b:led0=2;break; /2case 0 x77:led0=3;break; /3case 0 xbe:led0=4;break;

18、/4case 0 xbd:led0=5;break; /5case 0 xbb:led0=6;break; /6case 0 xb7:led0=7;break; /7case 0 xde:led0=8;break; /8case 0 xdd:led0=9;break; /9case 0 xdb:led0=10;break; /acase 0 xd7:led0=11;break; /bcase 0 xee:led0=12;break; /ccase 0 xed:led0=13;break; /dcase 0 xeb:led0=14;break; /e case 0 xe7:led0=15;bre

19、ak; /f/*-鍵盤掃描程序,P1.0-P1.3 列線,P1.4-P1.7 行線,21- */uchar keyscan(void) /鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法uchar cord_h,cord_l;行列值中間變量P1=0 x0f;/行線輸出全為 0cord_h=P1&0 x0f;if(cord_h!=0 x0f)/讀入列線值/先檢測有無按鍵按下, cord_h 不等于 0 x0f 無鍵按下display(led0,led1,led2,led3);/*調(diào)顯示*/if(cord_h!=0 x0f)cord_h=P1&0 x0f; /讀入列線值P1=cord_h|0 xf

20、0; /輸出當(dāng)前列線值cord_l=P1&0 xf0; /讀入行線值 return(cord_h+cord_l);鍵盤最后組合碼值return(0 xff);/無鍵按下返回值/*-動態(tài)掃描顯示程序,P0 段控,P2.0-P2.3 位控(反向驅(qū)動)- */void display(led0,led1,led2,led3) /P2=0 xfe;P0=led_codeled0;delay(5);P2=0 xfd;P0=led_codeled1;delay(5);P2=0 xfb;P0=led_codeled2;delay(5);P2=0 xf7;P0=led_codeled3;delay(5

21、);/*-延時程序 - */ void delay(int x )22int i,j;for(i=0;ix;i+) for(j=0;j120;j+);/ 溫度傳感器采樣環(huán)境溫濕度參數(shù)并由數(shù)碼管顯示 #include#include typedef unsigned char unint8;typedef unsigned char unint16; unsigned chartable0= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90 ;/ 不帶小數(shù)點unsigned char str1=;unsigned char s

22、tr2=;sbit TRH = P3A0;/溫濕度傳感器 DHT11 數(shù)據(jù)接入 sbit LCD_RS =卩2八6;sbit LCD_RW = P2A5;sbit LCD_EN =卩2八7;void disp(unint8 str1,unint8 str2,unint8 str3,unint8 str4); unint8TH_data,TL_data,RH_data,RL_data,CK_data;unint8 TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;unint8 com_data,untemp,temp;unint8 respond;void dela

23、yNOP() _nop_();_nop_();_nop_();_nop_();/ 毫秒級延時子程序void delay_ms(unsigned char ms)unsigned char i;while(ms-)23for(i = 0; i 150; i+)_nop_();_nop_();_nop_();_nop_();/5us 級延時程序void delay_us()unint8 i;i-;i-;i-;i-;i-;char receive()unint8 i;com_data=0;for(i=0;i=7;i+)respond=2;while(!TRH)&respond+);delay

24、_us();delay_us();delay_us();if(TRH)24 temp=1;respond=2; while(TRH)&respond+);elsetemp=0;com_data=1;com_data|=temp;return(com_data);void read_TRH()/主機拉低 18msTRH=0;delay_ms(18);TRH=1;/DATA 總線由上拉電阻拉高主機延時 20usdelay_us();delay_us();delay_us();delay_us();TRH=1;/判斷 DHT11 是否有低電平響應(yīng)信號如不響應(yīng)則跳出,響應(yīng)則 向下運行if(!T

25、RH)respond=2;/判斷 DHT11 發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束25while(!TRH)& respond+);respond=2;/判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù) 據(jù)接收狀態(tài)while(TRH & respond+);/數(shù)據(jù)接收狀態(tài) RH_temp = receive(); RL_temp = receive();TH_temp = receive();TL_temp = receive();CK_temp = receive();TRH=1;/數(shù)據(jù)校驗untemp=(RH_temp+RL_temp+TH_temp+TL_temp);if(untemp=CK_temp)RH_data=RH_temp;RL_data=RL_temp;TH_dataTH_temp;TL_data=TL_temp;CK_data=CK_temp;/濕度整數(shù)部分str10 = table0RH_data/10;str11 =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論