環(huán)境溫、濕度檢測系統(tǒng)設(shè)計——課程設(shè)計論文
《環(huán)境溫、濕度檢測系統(tǒng)設(shè)計——課程設(shè)計論文》由會員分享,可在線閱讀,更多相關(guān)《環(huán)境溫、濕度檢測系統(tǒng)設(shè)計——課程設(shè)計論文(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、湖南工程學(xué)院課 程 設(shè) 計課程名稱 單片機原理與應(yīng)用 課題名稱 溫濕度檢測系統(tǒng) 專 業(yè) 自動化 班 級 學(xué) 號 姓 名 指導(dǎo)教師 年 月 日湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 單片機與應(yīng)用 課 題 環(huán)境溫、濕度檢測系統(tǒng)設(shè)計 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達日期 年 月 日任務(wù)完成日期 年 月 日設(shè)計內(nèi)容與設(shè)計要求設(shè)計內(nèi)容:本課題要求以單片機為核心,采用溫濕度傳感器 DHT11設(shè)計一個對環(huán)境溫度濕度的檢測系統(tǒng),要求用按鍵控制系統(tǒng)選擇分別對溫度或濕度的測試、復(fù)位、清除功能,用四位LED數(shù)碼管顯示實時溫度和濕度。還可由用戶設(shè)定溫度和濕度的上、下限,設(shè)計越限報警功能
2、。設(shè)計要求:1)確定系統(tǒng)設(shè)計方案; 2)進行系統(tǒng)的硬件設(shè)計;3)完成必要元器件選擇;4)系統(tǒng)軟件設(shè)計及調(diào)試;5)系統(tǒng)聯(lián)調(diào)及操作說明6)按規(guī)范要求寫設(shè)計說明書主 要 設(shè) 計 條 件1、 PC機及單片機調(diào)試軟件;2、 開發(fā)板1塊; 3、系統(tǒng)設(shè)計、調(diào)試所需的元器件。說 明 書 格 式1. 課程設(shè)計任務(wù)書2. 目錄3. 總體方案確定4. 各單元硬件電路設(shè)計及計算方法5. 軟件設(shè)計與說明(包括流程圖)6. 調(diào)試結(jié)果與必要的調(diào)試說明7. 總結(jié)8、參考文獻9、附錄附錄A 系統(tǒng)原理圖附錄B 程序清單 10、課程設(shè)計成績評分表。進 度 安 排設(shè)計時間分為二周第一周星期一、上午:布置課題任務(wù),課題介紹及講課。下午
3、:借閱有關(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)試、寫說明書。星期四-星期五上午:寫說明書、完成電子版并打印成稿。星期五下午:答辯。參 考 文 獻1 王迎旭等.單片機原理及及應(yīng)用.機械工業(yè)出版社.2012年目錄第1章 系統(tǒng)總體方案設(shè)計81.1系統(tǒng)設(shè)計方案總體思路81.2系統(tǒng)總體方案框圖8第2章 硬件設(shè)計92.1 STC89C52簡介92.2 晶振電路92.3 復(fù)位電路92.4 共陽數(shù)碼管顯示電路102.5 鍵盤電路102
4、.6 DHT11傳感器電路112.7 報警電路12第3章 軟件設(shè)計與說明123.1系統(tǒng)軟件設(shè)計思路123.2 主程序設(shè)計133.3 鍵盤函數(shù)143.4 顯示程序設(shè)計15第4章 調(diào)試結(jié)果與說明174.1 系統(tǒng)調(diào)試說明174.2 調(diào)試結(jié)果17第5章 總結(jié)18參考文獻19附錄A 系統(tǒng)電理圖路原20附錄B 系統(tǒng)程序清單21第1章 系統(tǒng)總體方案設(shè)計1.1系統(tǒng)設(shè)計方案總體思路根據(jù)課題,設(shè)計溫濕度檢測系統(tǒng)電路,采用單片機STC89C52為控制芯片。根據(jù)設(shè)計要求所需的實現(xiàn)要求,將總電路分為鍵盤接口電路、單片機時鐘電路、復(fù)位電路、LED顯示電路、DHT11傳感器電路、報警電路幾個模塊。鍵盤接口電路為4*4矩陣式
5、鍵盤,采用查詢法,鍵盤連接到單片機的P2口(P1.0-P1.3列線, P1.4-P1.7行線),在本系統(tǒng)中采用內(nèi)部時鐘電路,由一個石英晶體管振蕩器和兩個微調(diào)電容組成;復(fù)位電路中給給RST引腳連續(xù)輸入2個機器周期(即24個時鐘振蕩周期)以上高電平,就可完成初始化操作;顯示電路與單片機I/O相連,采用4段7位共陽LED顯示管顯示溫濕度。1.2系統(tǒng)總體方案框圖 根據(jù)設(shè)計思路確定的總體方案如圖1-2所示。DHT11傳感器STC89C52 晶振電路鍵盤電路LED數(shù)碼管顯示復(fù)位電路段碼位控制報警電路 圖1-2 系統(tǒng)總體框圖第2章 硬件設(shè)計2.1 STC89C52簡介STC89C52是STC公司生產(chǎn)的一種低
6、功耗高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多改進使得芯片具有傳統(tǒng)51單片機不具備的功能。擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 2.2 晶振電路 單片機工作的時間基準(zhǔn)是由時鐘電路所控制的。在單片機的XTAL1和XTAL2兩個管腳,接一只晶振及兩只電容就構(gòu)成了單片機的時鐘電路。電路中,電容器C1和C2對振蕩頻率有微調(diào)作用,均選用20pF,石英晶體選擇12MHZ。 晶振電路如圖. 圖2-2 晶振電路 2.3 復(fù)位電路復(fù)位電路是保證單片
7、機正常運行的關(guān)鍵因素,所以可靠地復(fù)位電路設(shè)計是必要的。將RST引腳連續(xù)輸入2個機器周期(即24個時鐘振蕩期間)以上高電平,即可以完成單片機的初始化操作。本設(shè)計采用按鈕復(fù)位方式。復(fù)位電路如圖: 圖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控制。顯示電路如圖: 圖2-4 顯示電路2.5 鍵盤電路該系統(tǒng)采用4*4矩陣式鍵盤電路,在矩陣式鍵盤中,每條水平線和垂直線交叉處都由一個
8、按鈕連接。鍵盤的行線與P1口的P1.4-P1.7相連,列線與P1.0-P1.3相連。本系統(tǒng)采用4個鍵:鍵0:啟動系統(tǒng),傳感器有響應(yīng)。鍵1:設(shè)置溫濕度的上下限。鍵2:暫停。鍵3:單片機復(fù)位,系統(tǒng)停止工作。鍵盤電路如下 : 圖2-5 鍵盤電路圖2.6 DHT11傳感器電路DHT11是一種能對環(huán)境的溫濕度參數(shù)進行采樣的傳感器。傳感器中的DATA 用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴展,現(xiàn)讀出為零.操作流程如下:一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+
9、8bit濕度小數(shù)數(shù)據(jù)。+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)。+8bit校驗和。DHT11傳感器電路如下: 圖2-6 DHT11傳感器電路2.7 報警電路蜂鳴器是一種一體化的電子通訊響應(yīng)器。在本系統(tǒng)中,當(dāng)溫濕度超過其上下線時報警。 圖2-7 報警電路第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ù)碼管顯
10、示不同字符數(shù)字。位碼由P2.0P2.3口分別控制晶體數(shù)碼管的位控位W4W1,以控制各個數(shù)碼管顯示。開始保護現(xiàn)場開始初始化查表取字型碼送段碼送位碼延時顯示4位顯示掃描完?NY恢復(fù)現(xiàn)場返回 圖3-4 顯示程序流程圖第4章 調(diào)試結(jié)果與說明4.1 系統(tǒng)調(diào)試說明本系統(tǒng)調(diào)試過程中采用直接硬件調(diào)試的方法,對整體的系統(tǒng)程序進行分解排故,首先對八段顯像管進行數(shù)字顯示測試,然后對鍵盤進行按鍵響應(yīng)測試,當(dāng)測試都得到正確結(jié)果時,將鍵盤與顯示結(jié)合起來,并給予恰當(dāng)?shù)淖中痛a,最后加入定時器中斷程序,給出正確的脈沖信號和頻率。調(diào)試過程中,數(shù)碼管顯示的數(shù)字閃爍,原因是傳感器接觸不良,后換了導(dǎo)線,數(shù)字不在閃爍。按鍵出現(xiàn)按下一鍵響
11、應(yīng)多次的情況,后查出由于鍵位抬起子程序書寫不當(dāng),造成鍵盤多次響應(yīng),并加上了松手去抖程序后問題得以順利解決。4.2 調(diào)試結(jié)果接上溫濕度傳感器DHT11后和電源后,將程序下載到板子上,按下0號鍵啟動,執(zhí)行程序,數(shù)碼管上顯示了環(huán)境的溫濕度參數(shù)。 圖5-1 顯示環(huán)境溫濕度參數(shù)第5章 總結(jié) 經(jīng)過兩周的單片機課程設(shè)計,終于完成了單片機環(huán)境溫濕度檢測系統(tǒng)的設(shè)計,其中收獲許多,付出了許多精力和時間,實踐能力的到了一定的提高。剛學(xué)完單片機并且經(jīng)歷了考試,我一直以為我對單片機有了不少的了解,課透過此次課程設(shè)計,我才看到了自己的諸多不足,也學(xué)到了很多知識與技巧。雖然之前有做過不少課程設(shè)計,但以前大多是單獨的軟件或者
12、硬件設(shè)計,這次設(shè)計讓我有了長足的進步,真正實現(xiàn)了對單片機硬件與軟件的兼顧與融會貫通。單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事。由于C語言學(xué)習(xí)較早,很多技巧與方法早就忘得差不多了,上課與做實驗,我一直以來都是使用匯編語言來編寫程序,可課題的復(fù)雜度明顯比試驗中遇到的要大得多,C語言編程的方便性讓我不得不著手C語言開始。這也讓我再次鞏固了以前學(xué)習(xí)的專業(yè)知識。面對大量的參考資料甚至是幾乎現(xiàn)成的參考報告,我選擇了在學(xué)習(xí)吸納的基礎(chǔ)上另辟蹊徑,雖然遇到困難的時候都想放棄,直接用現(xiàn)成的程序和報告,可看到其他同學(xué)和我一樣在埋頭苦
13、干、老師期盼的眼神,我選擇了堅持下來,當(dāng)然,現(xiàn)在這是我驕傲的資本。雖然這個課題不算難,但是從硬件電路到最后程序的編寫和調(diào)試都是自己摸索出來的,這個過程中也遇到了不少困難,更多的是成功后的喜悅,學(xué)習(xí)永無止境,只有把學(xué)習(xí)和實踐當(dāng)做一種樂趣那么即便有再大的困難也會是一種享受。 參考文獻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 陳光東. 單片微型計算
14、機原理及接口技術(shù) M.華中科技大學(xué)出版社,2001.6 何立民. 51系列單片機應(yīng)用與實踐教程 M.北航出版社,.附錄A 系統(tǒng)電路原理圖附錄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 intunsigned char code led_code=0 xc0,0 xf9,0 xa4,0 xb0,
15、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 keyscan(void);/鍵盤掃描void delay(uint i); /延時程序void display(uchar led0,led1,led2,led3);/動態(tài)掃描顯示程序/*- 主函數(shù)-*/void main() uchar key; P1=0 xff; /*關(guān)所有位顯示*/ led0=16; /*顯示
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; /1 case 0 x7b:led0=2;break; /2 case 0 x77:led0=3;break; /3 case 0 xbe:led0=4;break; /4 case 0 xbd:led0
17、=5;break; /5 case 0 xbb:led0=6;break; /6 case 0 xb7:led0=7;break; /7 case 0 xde:led0=8;break; /8 case 0 xdd:led0=9;break; /9 case 0 xdb:led0=10;break; /a case 0 xd7:led0=11;break; /b case 0 xee:led0=12;break; /c case 0 xed:led0=13;break; /d case 0 xeb:led0=14;break; /e case 0 xe7:led0=15;break; /f /
18、*- 鍵盤掃描程序,P1.0-P1.3列線, P1.4-P1.7行線,-*/uchar keyscan(void) /鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法 uchar cord_h,cord_l;/行列值中間變量 P1=0 x0f; /行線輸出全為0 cord_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 xf0; /輸出當(dāng)前列線
19、值 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); /*- 延時程
20、序-*/void delay(int x ) int 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 char table0= 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 str2= ; s
21、bit TRH = P30;/溫濕度傳感器DHT11數(shù)據(jù)接入 sbit LCD_RS = P26; sbit LCD_RW = P25; sbit LCD_EN = P27; void disp(unint8 str1,unint8 str2,unint8 str3,unint8 str4); unint8 TH_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 delayN
22、OP() _nop_(); _nop_(); _nop_(); _nop_(); / 毫秒級延時子程序 void delay_ms(unsigned char ms) unsigned char i; while(ms-) for(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
23、)&respond+); delay_us(); delay_us(); delay_us(); if(TRH) temp=1; respond=2; while(TRH)&respond+); else temp=0; com_data=1; com_data|=temp; return(com_data); void read_TRH() /主機拉低18ms TRH=0; delay_ms(18); TRH=1; /DATA總線由上拉電阻拉高主機延時20us delay_us(); delay_us(); delay_us(); delay_us(); TRH=1; /判斷DHT11是否有
24、低電平響應(yīng)信號如不響應(yīng)則跳出,響應(yīng)則向下運行 if(!TRH) respond=2; /判斷DHT11發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束 while(!TRH)& respond+); respond=2; /判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數(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_
25、temp+RL_temp+TH_temp+TL_temp); if(untemp=CK_temp) RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; /濕度整數(shù)部分 str10 = table0RH_data/10; str11 = table0RH_data%10; /溫度整數(shù)部分 str20 =table0TH_data/10; str21 = table0TH_data%10; /主函數(shù) /TH,TL,RH,RL分別代表溫濕度的整數(shù)和小數(shù)部分 voi
26、d main() delay_us(); TMOD=0X01;/選擇定時器工作方式 TH0=(65536-12000)/256; TL0=(65536-12000)%256; EA=1;/開總中斷 ET0=1;/開定時器中斷 TR0=1;/啟動定時器 while(1) read_TRH(); void T0_timer() interrupt 1 TH0=(65536-20000)/256; TL0=(65536-20000)%256; disp(str10,str11,str20,str21); void disp(unint8 str1,unint8 str2,unint8 str3,un
27、int8 str4) P2=0 xfe; P0=str1; delay_ms(1); P2=0 xfd; P0=str2; delay_ms(1); /P2=0 xfb; /P0=str3; /delay_ms(1); P2=0 xfb; P0=str3; delay_ms(1); P2=0 xf7; P0=str4; delay_ms(1); /P2=0 xdf; /P0=str6; /delay_ms(1); 電氣與信息工程系課程設(shè)計評分表項 目評 價優(yōu)良中及格差設(shè)計方案合理性與創(chuàng)造性(10%)開發(fā)板焊接及其調(diào)試完成情況*(10%)硬件設(shè)計或軟件編程完成情況(20%)硬件測試或軟件調(diào)試結(jié)果*(10%)設(shè)計說明書質(zhì)量(20%)答辯情況(10%)完成任務(wù)情況(10%)獨立工作能力(10%)出勤情況(10%)綜 合 評 分 指導(dǎo)教師簽名:_ 日 期:_ 注:表中標(biāo)*號項目是硬件制作或軟件編程類課題必填內(nèi)容; 此表裝訂在課程設(shè)計說明書的最后一頁。課程設(shè)計說明書裝訂順序:封面、任務(wù)書、目錄、正文、評分表、附件(非16K大小的圖紙及程序清單)。 29
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案