版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、等級:湖南工程學院課 程 設 計課程名稱 單片機原理與應用 課題名稱 環(huán)境溫、濕度檢測系統(tǒng)設計專 業(yè) 自動化 班 級 1191 學 號 20 姓 名 指導教師 李曉秀 王迎旭 2013 年 12 月 12 日湖南工程學院課 程 設 計 任 務 書課程名稱 單片機原理與應用 課 題 環(huán)境溫、濕度檢測系統(tǒng)設計 專業(yè)班級 自動化 學生姓名 學 號 2011 指導老師 李曉秀 審 批 任務書下達日期 2013 年 12 月 1 日任務完成日期 2013 年 12 月 13 日設計內(nèi)容與設計要求設計內(nèi)容:本課題要求以單片機為核心,采用溫濕度傳感器 DHT11設計一個對環(huán)境溫度濕度的檢測系統(tǒng),要求用按鍵控
2、制系統(tǒng)選擇分別對溫度或濕度的測試、復位、清除功能,用四位LED數(shù)碼管顯示實時溫度和溫度。設計要求:1)確定系統(tǒng)設計方案; 2)進行系統(tǒng)的硬件設計;3)完成必要元器件選擇;4)系統(tǒng)軟件設計及調(diào)試;5)系統(tǒng)聯(lián)調(diào)及操作說明6)按規(guī)范要求寫設計說明書主 要 設 計 條 件1、 PC機及單片機調(diào)試軟件;2、 開發(fā)板1塊;3、 系統(tǒng)設計、調(diào)試所需的元器件 說 明 書 格 式1. 課程設計任務書2. 目錄3. 總體方案確定4. 各單元硬件電路設計及計算方法5. 軟件設計與說明(包括流程圖)6. 調(diào)試結(jié)果與必要的調(diào)試說明7. 總結(jié)8、參考文獻9、附錄附錄A 系統(tǒng)原理圖附錄B 程序清單 10、課程設計成績評分表
3、。進 度 安 排設計時間分為二周第一周星期一、上午:布置課題任務,課題介紹及講課。下午:借閱有關(guān)資料,總體方案討論。星期二、確定總體方案,學習與設計相關(guān)內(nèi)容。星期三、各部分方案設計,各部分設計。星期四、設計及調(diào)試。星期五、設計及調(diào)試。星期六、設計及調(diào)試。第二周星期一:設計及調(diào)試。星期二:設計及調(diào)試。星期三:調(diào)試、寫說明書。星期四-星期五上午:寫說明書、完成電子版并打印成稿。星期五下午:答辯。參 考 文 獻1 王迎旭等.單片機原理及及應用M 機械工業(yè)出版社.2012年 2 康華光等.模擬電子技術(shù) 第五版M 高等教育出版社 2011年 3 杜樹春等
4、.單片機C語言M 北京航空航天大學出版社目 錄第1章 概述71.1 設計任務與要求71.2 設計方案7第2章 硬件設計82.1 時鐘電路和復位電路82.2 溫濕度測量電路設計92.3按鍵電路10第3章 軟件設計123.1主函數(shù)設計123.2按鍵查詢133.3 實時監(jiān)控與測試流程圖14第4章 硬件調(diào)試與結(jié)果分析154.1調(diào)試過程154.2 硬件調(diào)試16第5章 總結(jié)18參考文獻19附錄一:系統(tǒng)仿真圖20附錄二:源程序21電氣與信息工程系課程設計評分表29第1章 概述1.1 設計任務與要求本課題以單片機為核心,用智能集成溫溫度傳感器DHT11主要實現(xiàn)檢測溫度、濕度的檢測,將溫度濕度信號通過
5、傳感器進行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運用單片機進行數(shù)據(jù)的分析和處理,在數(shù)碼管上顯示當前溫濕度。要求用按鍵控制系統(tǒng)選擇分別對溫度或濕度的測試、復位、清除功能,完成硬件調(diào)試。1.2 設計方案本課題的溫濕度測試,通過單片機STC-89C51連接溫濕度模塊、顯示模塊將溫度、濕度同時顯示。單片機發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,DHT11發(fā)送響應信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,如果沒有接收到單片機發(fā)送來的信號,DHT11不會主動進行溫度采集,采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。系統(tǒng)設計框圖如圖1.1所示。單片機按鍵電路顯示電路DHT11溫度采集電
6、路時鐘復位電 路 圖1.1 程序設計框圖第2章 硬件設計2.1 時鐘電路和復位電路MCS-51單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反放大器,引腳XTAL1和XTAL2分別是反相放大器的輸入端和輸出端。通常,經(jīng)由片外晶體振蕩器或陶瓷諧振器與兩個匹配電容一起構(gòu)成一個自激振蕩電路。本課題由片外晶體振蕩器與兩個匹配電容一起構(gòu)成了一個內(nèi)部時鐘振蕩電路,為單片機提供時鐘源。本設計復位電路采用按鍵復位,當開關(guān)斷開時,與上電自動復位電路相同;當開關(guān)閉合時,電容通過并聯(lián)的電阻迅速放電,然后,RC電路充電,能夠保證RST端能夠維持一段時間的高電平。如圖2.1所示。圖2.1 時鐘及復位電路2.2 溫濕度測量電路設
7、計DHT11的供電電壓為35.5V,傳感器上電后,要等待1s以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個100nF的電容,用以去耦濾波。數(shù)據(jù)用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。如圖2.2所示,本電路上拉電阻為5K,數(shù)據(jù)端接P1.7(接受溫濕度數(shù)據(jù))。圖2. 2 溫濕度測量電路2.3 顯示電路本電路由四位一體共陽極數(shù)碼管顯示,采用9015三極管做位驅(qū)動。根據(jù)發(fā)光二極管物理連接的不同,七段數(shù)碼管可以分為共陰極和共陽極兩種結(jié)構(gòu)。其中P0端口為段選,P2.0P2.3為位選,如圖2.3所示。
8、圖2.3 顯示電路2.4按鍵電路單片機設計中按鍵可分為獨立式按鍵和矩陣式按鍵,本系統(tǒng)由于按鍵較少,故采用四個獨立按鍵,上拉電阻為1K。其中,四個按鍵功能分別是顯示溫度、顯示濕度、實時監(jiān)控顯示溫濕度、測試溫濕度。如圖2.4。 圖2.4 按鍵電路第3章 軟件設計本軟件設計主要是對距離進行測量、顯示。因此,整個軟件可分為按照硬件電路對單片機位定義;溫濕度設置子程序;溫濕度接收子程序;顯示子程序;延時子程序等。由于本設計方案要求硬件電路和軟件編程相結(jié)合,所以選擇合適的編程語言十分重要。C語言執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便靈活,運算豐富,表達化類型多樣化,程序設計自由度大,很好的可重用性,
9、可移植性等特點基于C語言的眾多優(yōu)點本設計選擇此語言來編程。3.1主函數(shù)設計軟件分為兩部分,主程序和中斷服務程序。主程序完成初始化工作、溫濕度數(shù)據(jù)接收處理控制。外部中斷服務子程序主要完成時間值的讀取、結(jié)果的輸出等工作,如圖3.1所示。開始初始化顯示掃描按鍵圖3.1 主程序流程圖 3.2按鍵查詢 獨立式按鍵接口采用直接讀入方式工作,直讀式鍵盤接口是一個輸入接口,輸入接口主要功能是解決數(shù)據(jù)輸入的緩沖(選通)問題。本設計按鍵較少,采用的獨立按鍵。是否按鍵?確定鍵實時測試顯示濕度顯示溫度測試Y圖3.2 查詢按鍵處理在掃描按鍵函數(shù)中,每按下不同按鍵會返回一個不同的數(shù)值,在主函數(shù)中有按鍵查詢函數(shù)判
10、斷為那個按鍵按下,隨后進入不同的子函數(shù),如圖3.2所示。3.3 實時監(jiān)控與測試流程圖 本系統(tǒng)設計分為實時監(jiān)控與測試模塊,圖3.3示為測試模塊。上電是數(shù)碼管顯示四個零,當按下測試按鍵后,系統(tǒng)開始測量環(huán)境溫、濕度。當數(shù)碼管顯示四個“”時,表示成功測量溫、濕度。當按下溫度(濕度)顯示按鍵,該模塊顯示測試時的溫度(濕度)。當要進行下一次測量時,必須按下測試按鍵。開始是否按鍵?顯示是否按鍵?調(diào)用測試函數(shù)N溫度按鍵按下?調(diào)用顯示溫度函數(shù)調(diào)用顯示濕度函數(shù)YY濕度按鍵按下?YNY 圖3.3 測試流程圖圖3.4示為實時監(jiān)控模塊,按下實時監(jiān)控鍵后,啟動T0定時器開始定時,每一分鐘測試一次溫度、濕度,并在四位一體的
11、共陽極數(shù)碼管輪流顯示溫度、濕度。當按下溫度(濕度)顯示按鍵后,該模塊只顯示實時的溫度(濕度)。當再次按下實時監(jiān)控按鍵后。定時器T0關(guān)閉。顯示開始是否按鍵?是否按鍵?重裝初值啟動定時器調(diào)用測試函數(shù)NNYY輪流顯示溫濕度圖3.4 實時監(jiān)控模塊第4章 硬件調(diào)試與結(jié)果分析4.1調(diào)試過程在編寫此程序前,感覺DHT11的通信程序和取數(shù)程序最為難寫,在之前的學習中我并沒有接觸過單總線的通信時序圖。通過查閱資料和參考現(xiàn)有的程序,然后在老師講解和與本組的其他組員談論后,終于弄明白這方面的知識。而在測量函數(shù)中,剛開始并沒有測得數(shù)據(jù),通過查閱書籍我設置了一個全局變量,一步一步跟蹤每一步并顯示在P1的LED燈上,一步
12、一步跟蹤,完善了DTH11的通信與取數(shù)函數(shù)。但在通信與取數(shù)函數(shù)與按鍵函數(shù)銜接時,總是有一定的概率測不到數(shù)據(jù),慢慢的調(diào)試我發(fā)現(xiàn)我的通信與取數(shù)函數(shù)要連續(xù)調(diào)用兩次才能每次正確的讀取數(shù)據(jù),在此,我設置了一個全局變量作為一個標志位,每次按下測量鍵是將該標志位設置為2,使通信與取數(shù)函數(shù)循環(huán)兩次,這樣保證了每次按下測試按鍵后就能與DHT11正確的通信從而保證得到正確的數(shù)據(jù)。在實時監(jiān)控這個模塊中,為了保證溫、濕度能循環(huán)顯示、按鍵后能只顯示溫度(濕度)。由于按鍵有限,所以一下設置了很多的標志位。因為標志位太多,而沒有將所有的環(huán)節(jié)考慮進去,一下程序有調(diào)試了很久才正確的實現(xiàn)要求的功能。4.2 硬件調(diào)試如圖4.1所示
13、,按下左下角按鍵時,單片機開始與DHT11通信并開始測試溫、濕度。圖示為測量溫、濕度成功。圖4.1 初始化當按下圖示按鍵時,數(shù)碼管顯示此時或?qū)崟r監(jiān)控的環(huán)境濕度。其中最前端的“C” 表示此時顯示的事環(huán)節(jié)溫度,如圖4.2。圖4.2 顯示濕度當按下此按鍵時,數(shù)碼管顯示此時或?qū)崟r監(jiān)控的環(huán)境溫度。其中最前端的“H”表示此時顯示的是環(huán)境濕度,如圖4.3。圖4.3 顯示溫度第5章 總結(jié)這次單片機課程設計不僅鞏固了以前學過的知識,而且學到了很多書本上沒有沒到的知識,掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程,通過這次課程設計我們明白理論與實際相結(jié)合是很重要的,只有理論知識還不夠,理論實踐相結(jié)合才能提高實
14、際動手能力和獨立思考的能力。同樣,在學習中也發(fā)現(xiàn)了自己的不足之處,例如對以前所學過的知識理解不夠深刻,掌握不夠牢固。課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。隨著科學技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術(shù)是十分重要的。 回顧起此次單片機課程設計,我仍感慨頗多。的確,從選題到定稿,從理論到實踐,在接近兩個星期的日子里,可以說得是苦多于甜,在設計的過程中遇到問題,可以說得是困難重重,
15、難免會遇到過各種各樣的問題,通過這次課程設計之后,一定把以前所學過的知識重新溫故。參考文獻1 王迎旭等.單片機原理及及應用M 機械工業(yè)出版社.2012年2 龔建偉、熊光明等.Visual.c.Tubor.c串口通信M 3 康華光等.模擬電子技術(shù) 第五版M 高等教育出版社2011年 4 杜樹春等.單片機C語言M 北京航空航天大學出版社 附錄一:系統(tǒng)仿真圖附錄二:源程序#include <reg51.h>bit flag2,flag3,flag5;sbit dht11 = P17;#define NUMBE
16、R 20/防止在與硬件通信時發(fā)生死循環(huán)的計數(shù)范圍#define SIZE 5#define OK 1#define ERROR 0/函數(shù)的返回值表示讀取數(shù)據(jù)是否成功 OK 表示成功 ERROR 表示失敗void DHT11_Delay_10us(void);/延時10usvoid ceshiwenshidu(void);void xianshishidu(void);void xianshiwendu(void);unsigned char ReadValue(void);unsigned char DHT11_ReadTempAndHumi(void);void delay_1_002s(v
17、oid);void delay(unsigned char i);/延時程序void display(unsigned char led0,led1,led2,led3);/動態(tài)掃描顯示程序unsigned char keyscan(void);/鍵盤掃描unsigned char status;/#define uchar unsigned char/#define uint unsigned intunsigned char flag1,flag4;unsigned char led_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9
18、0,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x89;/*共陽字型段碼表,"0"-"F","-",“H”*/unsigned char led0,led1,led2,led3;unsigned char value_array5;/存放五字節(jié)數(shù)據(jù)的數(shù)組unsigned char value_temp, value_humi; void DHT11_Delay_10us(void)unsigned char i;i-;i-;i-;i-;i-;i-;/*讀一個字節(jié)的數(shù)據(jù)*/unsigned char DHT1
19、1_ReadValue(void)unsigned char count, value = 0, i;status = OK; /設定標志為正常狀態(tài)for(i = 8; i > 0; i-)/高位在先value <<= 1;count = 0;/每一位數(shù)據(jù)前會有一個50us 的低電平時間.等待50us 低電平結(jié)束while(dht11 = 0) && (count+ < NUMBER);if(count >= NUMBER) status = ERROR; /設定錯誤標志return 0; /函數(shù)執(zhí)行過程發(fā)生錯誤就退出函數(shù)/26-28us 的高電平
20、表示該位是0,為70us 高電平表該位1DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();/延時30us 后檢測數(shù)據(jù)線是否還是高電平if(dht11 != 0)/進入這里表示該位是1value+;/等待剩余(約40us)的高電平結(jié)束while(dht11 != 0) && (count+ < NUMBER)dht11 = 1;if(count >= NUMBER)status = ERROR; /設定錯誤標志return 0;return (value);/讀溫度和濕度函數(shù),讀一次的數(shù)據(jù),共五字節(jié),讀出
21、成功函數(shù)返回OK, 錯誤返回ERROR unsigned char DHT11_ReadTempAndHumi(void)unsigned char i = 0, check_value = 0,count = 0;display(led0,led1,led2,led3);/EA = 0;dht11 = 0; /拉低數(shù)據(jù)線大于18ms 發(fā)送開始信號display(led0,led1,led2,led3); /需大于18 毫秒dht11 = 1; /釋放數(shù)據(jù)線,用于檢測低電平的應答信號/延時20-40us,等待一段時間后檢測應答信號,應答信號是從機拉低數(shù)據(jù)線80usDHT11_Delay_10u
22、s();DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();if(dht11 != 0) /檢測應答信號,應答信號是低電平/沒應答信號return ERROR;else/有應答信號while(dht11 = 0)&&(count+ < NUMBER); /等待應答信號結(jié)束if(count >= NUMBER) /檢測計數(shù)器是否超過了設定的范圍dht11 = 1;return ERROR; /讀數(shù)據(jù)出錯,退出函數(shù)count = 0;dht11 = 1;/釋放數(shù)據(jù)線/應答信號后會有一個80us 的高電平,等待
23、高電平結(jié)束while(dht11 != 0) && (count+ < NUMBER);if(count >= NUMBER) dht11 = 1;return ERROR; /退出函數(shù)/讀出濕.溫度值for(i = 0; i < SIZE; i+)value_arrayi=DHT11_ReadValue();if(status = ERROR)/調(diào)用ReadValue()讀數(shù)據(jù)出錯會設定status 為ERRORdht11 = 1;return ERROR;/讀出的最后一個值是校驗值不需加上去if(i != SIZE - 1)/讀出的五字節(jié)數(shù)據(jù)中的前四字節(jié)數(shù)
24、據(jù)和等于第五字節(jié)數(shù)據(jù)表示成功check_value += value_arrayi;/end fordisplay(led0,led1,led2,led3);/在沒用發(fā)生函數(shù)調(diào)用失敗進行校驗if(check_value = value_arraySIZE - 1)value_humi = value_array0;value_temp = value_array2;dht11 = 1;return OK;/正確的讀出dht11 輸出的數(shù)據(jù)elsereturn ERROR;/校驗數(shù)據(jù)錯void delay_1_002s(void)unsigned char z,b,c;for(z=0;z<
25、10;z+)for(b=0;b<160;b+)for(c=0;c<207;c+);void delay(unsigned char x) unsigned char i,j; for(i=0;i<x;i+) for(j=0;j<120;j+);void display(unsigned char led0,led1,led2,led3) P2=0xfe;P0=led_codeled0;delay(5);P2=0xfd;P0=led_codeled1;delay(5);P2=0xfb;P0=led_codeled2&0x7f;delay(5);P2=0xf7;P0
26、=led_codeled3;delay(5);P2=0xff;unsigned char keyscan(void)unsigned char cord_l;cord_l=P3&0xf0;if(cord_l!=0xf0)display(led0,led1,led2,led3);if(cord_l!=0xf0)while(P3!=0xf0)P3=0xf0;/等待按鍵釋放return(cord_l);return(0xf0);void ceshiwenshidu(void)unsigned char d;for(;flag4>0;flag4-)d=DHT11_ReadTempAndHumi();display(led0,led1,led2,led3);if(flag3=0)if(d=1)led0=16;led1=16;led2=16;led3=16;flag4=1;void xianshishidu(void)led0=17;led1=value_humi/10;led2=value_humi%10;led3=0;void xianshiwendu(void)led0=12;led1=value_temp/10;led2=valu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年職業(yè)技能認證培訓服務合同書3篇
- 2024年版技術(shù)轉(zhuǎn)讓合同服務內(nèi)容擴展
- 承德護理職業(yè)學院《汽車新技術(shù)》2023-2024學年第一學期期末試卷
- 成都銀杏酒店管理學院《數(shù)值分析與算法》2023-2024學年第一學期期末試卷
- 2025年度航空安全員聘用與培訓協(xié)議書
- 2024年裝配式建筑配件瓦工施工合同范本3篇
- 二零二五年工廠食堂員工用餐健康指導承包合同3篇
- 教學課件:瀝青材料的流變學特性解析
- 2024權(quán)戰(zhàn)略合作協(xié)議
- 2025版空置工業(yè)廠房租賃及倉儲物流服務合同3篇
- 成都大學《Python數(shù)據(jù)分析》2022-2023學年期末試卷
- 保險理賠崗位招聘面試題與參考回答(某大型央企)2024年
- 上海市市轄區(qū)(2024年-2025年小學五年級語文)部編版期末考試(上學期)試卷及答案
- 期末試卷(試題)-2024-2025學年五年級上冊數(shù)學人教版
- 護理安全警示教育-新-
- 社會工作行政復習要點
- SOR-04-014-00 藥品受托生產(chǎn)企業(yè)審計評估報告模板
- 三級電子商務師理論考試題(含答案)
- 智慧物流第10套理論題附有答案
- 2024AI時代的社交媒體營銷進化
- 低壓配電系統(tǒng)運行維護操作手冊
評論
0/150
提交評論