環(huán)境溫、濕度檢測系統(tǒng)設(shè)計——課程設(shè)計論文
《環(huán)境溫、濕度檢測系統(tǒng)設(shè)計——課程設(shè)計論文》由會員分享,可在線閱讀,更多相關(guān)《環(huán)境溫、濕度檢測系統(tǒng)設(shè)計——課程設(shè)計論文(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、湖南工程學院課 程 設(shè) 計課程名稱 單片機原理與應(yīng)用 課題名稱 溫濕度檢測系統(tǒng) 專 業(yè) 自動化 班 級 學 號 姓 名 指導(dǎo)教師 年 月 日湖南工程學院課 程 設(shè) 計 任 務(wù) 書課程名稱 單片機與應(yīng)用 課 題 環(huán)境溫、濕度檢測系統(tǒng)設(shè)計 專業(yè)班級 學生姓名 學 號 指導(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)資料,總體方案討論。星期二、確定總體方案,學習與設(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 晶振電路 單片機工作的時間基準是由時鐘電路所控制的。在單片機的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ù)部分,具體格式在下面說明,當前小數(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)中,當溫濕度超過其上下線時報警。 圖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)測試,當測試都得到正確結(jié)果時,將鍵盤與顯示結(jié)合起來,并給予恰當?shù)淖中痛a,最后加入定時器中斷程序,給出正確的脈沖信號和頻率。調(diào)試過程中,數(shù)碼管顯示的數(shù)字閃爍,原因是傳感器接觸不良,后換了導(dǎo)線,數(shù)字不在閃爍。按鍵出現(xiàn)按下一鍵響
11、應(yī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è)計,其中收獲許多,付出了許多精力和時間,實踐能力的到了一定的提高。剛學完單片機并且經(jīng)歷了考試,我一直以為我對單片機有了不少的了解,課透過此次課程設(shè)計,我才看到了自己的諸多不足,也學到了很多知識與技巧。雖然之前有做過不少課程設(shè)計,但以前大多是單獨的軟件或者
12、硬件設(shè)計,這次設(shè)計讓我有了長足的進步,真正實現(xiàn)了對單片機硬件與軟件的兼顧與融會貫通。單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事。由于C語言學習較早,很多技巧與方法早就忘得差不多了,上課與做實驗,我一直以來都是使用匯編語言來編寫程序,可課題的復(fù)雜度明顯比試驗中遇到的要大得多,C語言編程的方便性讓我不得不著手C語言開始。這也讓我再次鞏固了以前學習的專業(yè)知識。面對大量的參考資料甚至是幾乎現(xiàn)成的參考報告,我選擇了在學習吸納的基礎(chǔ)上另辟蹊徑,雖然遇到困難的時候都想放棄,直接用現(xiàn)成的程序和報告,可看到其他同學和我一樣在埋頭苦
13、干、老師期盼的眼神,我選擇了堅持下來,當然,現(xiàn)在這是我驕傲的資本。雖然這個課題不算難,但是從硬件電路到最后程序的編寫和調(diào)試都是自己摸索出來的,這個過程中也遇到了不少困難,更多的是成功后的喜悅,學習永無止境,只有把學習和實踐當做一種樂趣那么即便有再大的困難也會是一種享受。 參考文獻1 王迎旭. 單片機原理與應(yīng)用 M.北京:機械工業(yè)出版社,2004.2 陳海宴. 51單片機原理及應(yīng)用 M.北京:北京航空航天大學出版社,2010.3 胡漢才. 單片機原理及其接口技術(shù) M.北京:清華大學出版社,2010.4 李全利. 單片機原理及應(yīng)用技術(shù) M.北京:高等教育出版社,2004.5 陳光東. 單片微型計算
14、機原理及接口技術(shù) M.華中科技大學出版社,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; /輸出當前列線
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)教師簽名:_ 日 期:_ 注:表中標*號項目是硬件制作或軟件編程類課題必填內(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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當頭廉字入心爭當公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔當時代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學期末考試經(jīng)驗總結(jié)(認真復(fù)習輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展營造風清氣正的環(huán)境
- 冬季消防安全知識培訓冬季用電防火安全
- 2025加強政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓直播技巧與方法
- 2025六廉六進持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學期末考試經(jīng)驗總結(jié)(認真復(fù)習輕松應(yīng)考)
- 幼兒園期末家長會長長的路慢慢地走