基于STC89C52單片機的溫濕度檢測系統(tǒng)設(shè)計_第1頁
基于STC89C52單片機的溫濕度檢測系統(tǒng)設(shè)計_第2頁
基于STC89C52單片機的溫濕度檢測系統(tǒng)設(shè)計_第3頁
基于STC89C52單片機的溫濕度檢測系統(tǒng)設(shè)計_第4頁
基于STC89C52單片機的溫濕度檢測系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于stc89c52單片機的溫濕度檢測系統(tǒng)設(shè)計摘要隨著人們的生活及其生產(chǎn)水平的不斷提高,對生活環(huán)境和生產(chǎn)環(huán)境的要求就顯的尤為重要,溫濕度的控制就是一個典型的例子,因此溫濕度檢測系統(tǒng)就是現(xiàn)代生產(chǎn)生活中應(yīng)運而生的一種智能、快捷、方便可靠的檢測系統(tǒng),特別是在工業(yè)生產(chǎn)中如果檢測得不準(zhǔn)確就會發(fā)生許多的生產(chǎn)事故。要為現(xiàn)代人工作、科研、生活提供更好的更方便的設(shè)施就需要從單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計是以單片機為核心,配合溫濕度傳感器,以及相關(guān)的外圍電路組成的檢測系統(tǒng),可以接收所測環(huán)境的溫度和濕度信號,檢測人員可以通過lcd顯示的數(shù)據(jù),實時監(jiān)控環(huán)境的溫度和濕度情況。所有的測量操

2、作都可以通過主機控制軟件來實現(xiàn),溫度和濕度傳感器得到的測量信號,經(jīng)電路轉(zhuǎn)換為電信號,然后通過轉(zhuǎn)換送到單片機進(jìn)行數(shù)據(jù)處理,經(jīng)軟件分析處理后送顯示裝置。本系統(tǒng)包括系統(tǒng)硬件和軟件設(shè)計,可靠性高,結(jié)構(gòu)簡單,實現(xiàn)了對溫濕度的自動調(diào)節(jié)。系統(tǒng)還應(yīng)用rs232與上位機相連接,可以設(shè)置自動記錄溫度、濕度的相關(guān)的參數(shù),也可以設(shè)置每隔一定的時間自動記錄,可用在氣象的觀察方面。關(guān)鍵詞:stc89c52單片機,溫濕度傳感器, lcd顯示as people life level of production and improve the living environment and production environm

3、ent to the demands of the significant particularly important, control of temperature and humidity is one example, so the temperature and humidity detection system is the modern production and life of a kind of intelligence have emerged in, quick, convenient and reliable detection system, especially

4、in the industrial production, if detection is not accurate will happen many production accidents. for modern people to work, scientific research, and provide a better life more convenient facilities will need from single chip technology of digital control to all, intelligent control direction. this

5、design is based on single chip microcomputer as the core, with temperature and humidity sensor, and related peripheral circuit composed of detection system, can receive the environment temperature and humidity signal, testing personnel can through the lcd display data, real-time monitoring of enviro

6、nmental temperature and humidity conditions. this system including the system hardware and software design, high reliability, simple structure, realize the automatic adjustment of the temperature and humidity. system is used rs232 and superordination machine connected, can set up automatic recording

7、 of temperature and humidity in related parameters, can also set every certain time to be automatic records, can be used in meteorological observation.key words: stc89c52 microcontroller, temperature and humidity sensor, lcd display目錄第1章 概述21.1課題的研究背景21.2溫濕度檢測的發(fā)展?fàn)顩r以及存在的問題31.3本課程設(shè)計的主要內(nèi)容4第2章 系統(tǒng)總體方案設(shè)計4

8、2.1 溫濕度傳感器51、dht11產(chǎn)品概述52接口說明53、電源引腳64、串行接口 (單線雙向)65、dht11引腳說明66、 焊接信息67、注意事項72.2 rs232接口72.3 單片機stc89c5272.4 lcd16029第3章 系統(tǒng)的硬件設(shè)計和連接103.1主控模塊103.2顯示模塊123.3 溫度和濕度采集模塊123.4 鍵盤設(shè)計143.5與上位機相連電路的設(shè)計153.6 報警電路設(shè)計15第4章 系統(tǒng)軟件方案的設(shè)計164.1 程序流程圖16第5章 總結(jié)與展望36參考文獻(xiàn)37第1章 概述1.1課題的研究背景工業(yè)生產(chǎn)中有些場合需要使用精密的機臺設(shè)備,這些設(shè)備的精密度高、價格高,因此

9、為了保證產(chǎn)品的質(zhì)量及機臺的使用壽命,對其環(huán)境的要求也很高,尤其的是對溫度、濕度的控制。例如在我工作的生產(chǎn)發(fā)光二極管led的工業(yè)現(xiàn)場,前面的兩道工序固晶片和焊線要求的精度非常高,晶片必須固到碗杯的中心點,偏差不可超過1/5晶片的寬度,且對膠量的控制也有嚴(yán)格的要求,只有這道工序做好了,下一個工序焊線才會順利,否則焊線將會出現(xiàn)很多異常,不僅會降低產(chǎn)量也會造成質(zhì)量問題,因此要求每三個小時記錄一次室內(nèi)的溫濕度,且要保證其溫度在18-23之間,濕度不可超過60%。隨著信息產(chǎn)業(yè)的發(fā)展及工業(yè)化的進(jìn)步,溫度和濕度不僅僅表現(xiàn)在以上幾個方面直接或間接影響著人類基本生活條件, 還表現(xiàn)在對工生物制品、醫(yī)藥衛(wèi)生、科學(xué)研究

10、、國防建設(shè)等方面的影響。針對以上情況,研制可靠且實用的溫濕度控制器顯得非常重要。常用溫濕度傳感器的非線性輸出及一致性較差,使溫濕度的測量方法和手段相對較復(fù)雜,且給電路的調(diào)試帶來很大的困難。傳統(tǒng)的溫濕度測量多采用模擬小信號傳感器,不僅信號調(diào)理電路復(fù)雜,且溫濕度值的標(biāo)定過程也極其復(fù)雜,并需要使用昂貴的標(biāo)定儀器設(shè)備。因此對于溫濕度控制器的設(shè)計有著很大的現(xiàn)實生產(chǎn)意義。本文設(shè)計的是基于單片機stc89c52的溫濕度檢測和控制系統(tǒng),主要以廣泛應(yīng)用的dht11作為溫度和濕度的檢測,該儀器具有測量精度較高、硬件電路簡單、并能很好的進(jìn)行顯示,可測試不同環(huán)境溫濕度的特點。另外和控制電路相連,可以進(jìn)行加濕電路和除濕

11、電路的控制,使溫度和濕度參數(shù)在預(yù)先設(shè)定的范圍內(nèi),不需要人的直接參與。本系統(tǒng)還通過rs232和上位機相連,可以設(shè)置每隔一定的時間進(jìn)行溫度和濕度的采集,上傳到上位機,以供查詢。1.2溫濕度檢測的發(fā)展?fàn)顩r以及存在的問題傳統(tǒng)的溫度和濕度檢測系統(tǒng)主要有以下幾種:(1)水汽壓(e):是水汽在大氣總壓力中的分壓力。它表示了空氣中水汽的絕對含量的大小,以毫巴為單位。(2)相對濕度(rh):濕空氣中實際水汽壓e與同溫度下飽和水汽壓e的百分比,相對濕度的大小能直接表示空氣距離飽和的相對程度??諝馔耆稍飼r,相對濕度為零。相對濕度越小,表示當(dāng)時空氣越干燥。當(dāng)相對濕度接近于100%時,表示空氣很潮濕,越接近于飽和。(

12、3)露點(或霜點)溫度:指空氣在水汽含量和氣壓都不改變的條件下,冷卻到飽和時的溫度。(4)干濕球溫度表:用一對并列裝置的、形狀完全相同的溫度表,一支測氣溫,稱干球溫度表,另一支包有保持浸透蒸餾水的脫脂紗布,稱濕球溫度表。(5)發(fā)濕度表(計):利用脫脂人發(fā)(或牛的腸衣)具有空氣潮濕時伸長,干燥時縮短的特性,制成毛發(fā)濕度表或濕度自記儀器,它的測濕精度較差,毛發(fā)濕度表通常在氣溫低于-10時使用。(6)電阻式濕度片:利用吸濕膜片隨濕度變化改變其電阻值的原理,常用的有碳膜濕敏電阻和氯化鋰濕度片兩種。前者用高分子聚合物和導(dǎo)電材料碳黑,加上粘合劑配成一定比例的膠狀液體,涂覆到基片上組成的電阻片;后者是在基片

13、上涂上一層氯化鋰酒精溶液,當(dāng)空氣濕度變化時,氯化鋰溶液濃度隨之改變從而也改變了測濕膜片的電阻。(7)薄膜濕敏電容:是以高分子聚合物為介質(zhì)的電容器,因吸收(或釋放)水汽而改變電容值。它制作精巧,性能優(yōu)良,常用在探空儀和遙測中。隨著智能檢測系統(tǒng)的飛速發(fā)展,基于單片機的溫濕度檢測系統(tǒng)將多傳感器系統(tǒng)結(jié)合在一起。如何把多傳感器集中于一個檢測控制系統(tǒng),綜合利用來自多傳感器的信息,獲得對被測對象的可靠了解和解釋,以利于系統(tǒng)做出正確的響應(yīng)、決策和控制,是智能檢測控制系統(tǒng)中需要解決的首要問題。在溫濕度要求嚴(yán)格的場合,利用多傳感技術(shù)可以提高系統(tǒng)的可靠性和精度,亦可以提高系統(tǒng)的時間空間的覆蓋范圍。1.3本課程設(shè)計的

14、主要內(nèi)容單片機是系統(tǒng)的控制核心,所以單片機的性能關(guān)系到整個系統(tǒng)的好壞。因此單片機的選擇,對所設(shè)計系統(tǒng)的實現(xiàn)以及功能的擴展有著很大的影響。單片機種類很多,在眾多51系列單片機中,較為常用的是atmel 公司的at89c51和at89s52單片機,at89c51片內(nèi)4krom是flash工藝的,使用專用的編程器自己就可以隨時對單片機進(jìn)行電擦除和改寫,片內(nèi)有128字節(jié)的ram。而at89s52含有在系統(tǒng)可編程的flash存儲器,片內(nèi)有8k閃存,ram的容量也較at89c51大,為256字節(jié)。顯然這種單片機優(yōu)點更多,開發(fā)時間也大為縮短。在本次設(shè)計中選用了stc89c52單片機。鍵盤接口電路較為簡單,而

15、顯示部分有兩種方案供選擇:一種為lcd,一種為led。lcd液晶顯示的像素單元是整合在同一塊液晶版當(dāng)中分隔出來的小方格。通過數(shù)碼控制這些極小的方格進(jìn)行顯像。顯示非常細(xì)膩但是造價很高。而led數(shù)碼顯示中每一個像素單元就是一個發(fā)光二極管,如果是單色,一般是紅色發(fā)光二極管。如果是彩色,一般是三個三原色小二極管組成的一個大二極管。這些二極管組成的矩陣由數(shù)碼控制實時顯示文字或圖象,造價相對低廉,顯示效果也較好。本設(shè)計中,最終選用的集成溫度傳感器dht11,采集到的溫濕度信號送至單片機,實現(xiàn)溫濕度的顯示與控制。系統(tǒng)主要由以上元器件組成,通過硬件電路和軟件程序的設(shè)計,實現(xiàn)系統(tǒng)的基本功能。第2章 系統(tǒng)總體方案

16、設(shè)計本設(shè)計是基于單片機對數(shù)字信號的高敏感和可控性、溫濕度傳感器可以產(chǎn)生模擬信號,和a/d模擬數(shù)字轉(zhuǎn)換芯片的性能,此設(shè)計以stc89c52基本系統(tǒng)為核心的一套檢測系統(tǒng),其中包括單片機、復(fù)位電路、溫濕度檢測、鍵盤及顯示、報警電路、系統(tǒng)軟件等部分的設(shè)計。系統(tǒng)總體方框圖如圖2.1。鍵盤控制顯示電路系統(tǒng)晶振電平變換pc機報警電路溫濕度傳感器單片機 系統(tǒng)重點及組成:溫濕度的檢測 溫濕度的顯示 單片機與pc機間的通信 通過開關(guān)量控制實現(xiàn)溫濕度上下限調(diào)節(jié)圖2.1 系統(tǒng)總體框圖2.1 溫濕度傳感器1、dht11產(chǎn)品概述dht11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊

17、采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個ntc測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。每個dht11傳感器都在極為精確的濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在otp內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。2接口說明 建議連接

18、線長度短于20米時用5k上拉電阻,大于20米時根據(jù)實際情況使用合適的上拉電阻3、電源引腳dht11的供電電壓為35.5v。傳感器上電后,要等待 1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(vdd,gnd)之間可增加一個100nf 的電容,用以去耦濾波。4、串行接口 (單線雙向)data 用于微處理器與 dht11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右, 用戶mcu發(fā)送一次開始信號后,dht11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,dht11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,dht11接收到

19、開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,dht11不會主動進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。5、dht11引腳說明pin名稱注釋1vdd供電 35.5vdc2data串行數(shù)據(jù),單總線3nc空腳,請懸空4gnd接地,電源負(fù)極6、 焊接信息手動焊接,在最高260的溫度條件下接觸時間須少于10秒。7、注意事項(1)避免結(jié)露情況下使用。(2)長期保存條件:溫度1040,濕度60以下2.2 rs232接口rs232接口是1970年由美國電子工業(yè)協(xié)會(eia)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(dte)和數(shù)據(jù)通

20、訊設(shè)備(dce)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。 該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的db25連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。隨著設(shè)備的不斷改進(jìn),出現(xiàn)了代替db25的db9接口,現(xiàn)在都把rs232接口叫做db9。2.3 單片機stc89c52stc89c52是一種低功耗、高性能cmos八位微控制器,具有8k在系統(tǒng)可編程flash存儲器,使用atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。片上flash允許rom在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使其為眾多嵌入式控制

21、應(yīng)用系統(tǒng)提供靈活的解決方案。2.3.1 主要特性(1) 與mcs-51單片機產(chǎn)品兼容;(2) 8k字節(jié)在系統(tǒng)可編程flash存儲器;(3) 1000次擦寫周期;(4) 全靜態(tài)操作:0hz33hz;(5) 三級加密程序存儲器;(6) 32個可編程i/o口線;(7) 三個16位定時器/計數(shù)器;(8) 八個中斷源;(9) 全雙工uart串行通道;(10) 低功耗空閑和掉電模式;(11) 掉電后中斷可喚醒; 圖2.3 stc89c52芯片的引腳圖(12) 看門狗定時器;(13) 雙數(shù)據(jù)指針;(14) 掉電標(biāo)識符。如圖2.3所示stc89c52芯片的引腳圖vcc:電源vss:地 p0口:8位漏極開路的雙

22、向i/o口。作為輸出口,每位能驅(qū)動8個ttl邏輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。在flash編程時,p0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。p1口:具有內(nèi)部上拉電阻的8位雙向i/o口,p1輸出緩沖器能驅(qū)動4個ttl邏輯電平。對p1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(p1.0

23、/t2)和定時器/計數(shù)器2的觸發(fā)輸入(p1.1/t2ex),具體如表3-1所示。在flash編程和校驗時,p1口接收低8位地址字節(jié)。p2口:具有內(nèi)部上拉電阻的8位雙向i/o口,p2輸出緩沖器能驅(qū)動四個ttl邏輯電平。對p2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在方位外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器時,p2口送出高八位地址。在flash編程和校驗時,p2口也接收高8位地址字節(jié)和一些控制信號。p3口:p3口是一個具有內(nèi)部上拉電阻的8位雙向i/o口,p2輸出緩沖器能驅(qū)動四個ttl邏輯電平

24、。對p3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3口亦作為stc89c52特殊功能(第二功能)使用rst:復(fù)位輸入。晶振工作時,rst腳持續(xù)2個機器周期高電平將使單片機復(fù)位。disrto默認(rèn)狀態(tài)下,復(fù)位高電平有效。ale/:控制信號(ale)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳()也用作編程輸入脈沖。在一般情況下,ale以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時, ale脈沖將會跳過。如果需

25、要,通過將地址為8eh的sfr的第0位置“1”,ale操作將無效。這一位置“1”,ale僅在執(zhí)行movx或movc指令時有效。否則,ale將被微弱拉高。這個ale使能標(biāo)志位(地址為8eh的sfr的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。:外部程序存儲器選通信號()是外部程序存儲器選通信號。當(dāng)89s52從外部程序存儲器執(zhí)行外部代碼時,在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,將不被激活。/vpp:訪問外部程序存儲器控制信號。為使能從0000h到ffffh的外部程序存儲器讀取指令,必須接地。為執(zhí)行內(nèi)部程序指令,應(yīng)該接vcc。在flash編程期間,也接收12伏vpp電壓。xtal1

26、:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。2.4 lcd1602工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)1602字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線 vcc(15腳)和地線gnd(16腳),其控制原理與14腳的lcd完全一樣,其中: 引腳符號功能說明1vss一般接地2vdd接電源(+5v)3v0液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10k的電位器調(diào)整對比度)。4rsrs為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、

27、低電平0時選擇指令寄存器。5r/wr/w為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。6ee(或en)端為使能(enable)端,下降沿使能。7db0低4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)8db1低4位三態(tài)、 雙向數(shù)據(jù)總線 1位9db2低4位三態(tài)、 雙向數(shù)據(jù)總線 2位10db3低4位三態(tài)、 雙向數(shù)據(jù)總線 3位11db4高4位三態(tài)、 雙向數(shù)據(jù)總線 4位12db5高4位三態(tài)、 雙向數(shù)據(jù)總線 5位13db6高4位三態(tài)、 雙向數(shù)據(jù)總線 6位14db7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flag)15bla背光電源正極16blk背光 電源負(fù)極寄存器選擇控制表

28、 rsr/w操作說明00寫入指令寄存器(清除屏等)01讀busy flag(db7),以及讀取位址計數(shù)器(db0db6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)第3章 系統(tǒng)的硬件設(shè)計和連接3.1主控模塊采用stc89c52單片機作為系統(tǒng)的控制器。pl口控制數(shù)碼管顯示溫度和濕度值。p2口與dht11連接實現(xiàn)濕度模擬電壓量轉(zhuǎn)換為數(shù)字量便于單片機處理。鍵盤控制采用po口其中poo是溫度的設(shè)置,po1是濕度的設(shè)置,po2po3是分別對溫度與濕度的上下限值進(jìn)行設(shè)置。原理如下圖:圖3.1 stc89c52單片機各引腳功能3.2顯示模塊3.3 溫度和濕度采集模塊1.通訊過程如圖1所示圖1

29、總線空閑狀態(tài)為高電平,主機把總線拉低等待dht11響應(yīng),主機把總線拉低必須大于18毫秒,保證dht11能檢測到起始信號。dht11接收到主機的開始信號后,等待主機開始信號結(jié)束,然后發(fā)送80us低電平響應(yīng)信號.主機發(fā)送開始信號結(jié)束后,延時等待20-40us后, 讀取dht11的響應(yīng)信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高。圖2總線為低電平,說明dht11發(fā)送響應(yīng)信號,dht11發(fā)送響應(yīng)信號后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時隙開始,高電平的長短定了數(shù)據(jù)位是0還是1.格式見下面圖示.如果讀取響應(yīng)信號為高電平,則dh

30、t11沒有響應(yīng),請檢查線路是否連接正常.當(dāng)最后一bit數(shù)據(jù)傳送完畢后,dht11拉低總線50us,隨后總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。數(shù)字0信號表示方法如圖4所示 圖4數(shù)字1信號表示方法.如圖5所示 圖53.4 鍵盤設(shè)計用了幾個簡單的按鍵將它們拼成了一個簡易的鍵盤。為提高cpu的效率,鍵盤采用中斷方式。按鍵對單片機的接口電路圖如圖所示。行信號(key)接到高電平,當(dāng)沒有鍵按時,行線與列線(keyscan)是斷開的,且行線都是高電平(1111),行信號作為的輸入端、列信號作為的輸出端??梢栽O(shè)置列線初始狀態(tài)為低電平(0000)。信號為從上到下的順序當(dāng)有鍵按下時,假如是k1按下,行信號與列信號接通,

31、這時相應(yīng)的行線(key0)變?yōu)榈碗娖剑?1111),可以肯定第一行(k1,5,9,13)有鍵按下。下面就要運用掃描的原理了:1、因為只知道第一行有鍵按下,不知道是那個,可以設(shè)置列信號為0111,這時行信號變?yōu)椋?111)(注:假設(shè)時鐘周期很短,手還沒松開,即鍵還在按下的狀態(tài))2、設(shè)置列信號為1011,行信號也變成(1111)3、設(shè)置列信號為1101,行信號也變成(1111)4、設(shè)置列信號為1110,行信號也變成(0111),這時就可以肯定是第一個鍵按下。3.5與上位機相連電路的設(shè)計通過和max232和上位機相連接,如圖3-9所示。在大氣氣候的檢測中需要做記錄時,可以通過設(shè)置單片機的參數(shù),每隔一

32、定的時間進(jìn)行自動的做記錄,省去人工的記錄麻煩。max232的t1in和單片機的p3.2相連,r1 out和單片機的p3.1相連。圖3.5 單片機系統(tǒng)與上位機的連接3.6 報警電路設(shè)計npn5.6k3.3k+5vp3.2at89s52pb2130up002a本設(shè)計采用峰鳴音報警電路。峰鳴音報警接口電路的設(shè)計只需購買市售的壓電式蜂鳴器,然后通過mcs-51的1根口線經(jīng)驅(qū)動器驅(qū)動蜂鳴音發(fā)聲。壓電式蜂鳴器約需10ma的驅(qū)動電流,可以使用ttl系列集成電路7406或7407低電平驅(qū)動,也可以用一個晶體三極管驅(qū)動。在圖中,p3.2接晶體管基極輸入端。當(dāng)p3.2輸出高電平“1”時,晶體管導(dǎo)通,壓電蜂鳴器兩端

33、獲得約+5v電壓而鳴叫;當(dāng)p3.2輸出低電平“0”時,三極管截止,蜂鳴器停止發(fā)聲。圖3.6 三極管驅(qū)動的峰鳴音報警電路第4章 系統(tǒng)軟件方案的設(shè)計溫度控制主程序的設(shè)計應(yīng)考慮以下問題:(1)溫濕度采樣,數(shù)字濾波;(2)越限報警和處理;(3)溫度標(biāo)度轉(zhuǎn)換;(4)溫濕度顯示。通常,符合上述功能的溫度控制程序由主程序和t0中斷服務(wù)程序兩部分組成。在該軟件系統(tǒng)中,定時器t0為工作方式1,定時周期為125ms,8次定時器中斷為1s,由于實際環(huán)境溫度和濕度變化是連續(xù)和平緩的,故這里采用分段定值平緩濾波算法處理每次測得的溫度和濕度值,有效防止了突發(fā)干擾使測得值波動很大,導(dǎo)致反饋系統(tǒng)關(guān)啟工作,影響系統(tǒng)的穩(wěn)定,提高

34、了系統(tǒng)的抗干擾性。4.1 程序流程圖lcd1602頭文件#ifndef _lcd_1602_climberwin_#define _lcd_1602_climberwin_#define uchar unsigned char#define uint unsigned int#include #includelcd1602define.h/*port definitions*/#define lcd_data p0 /lcd的數(shù)據(jù)口sbit lcd_bf=lcd_data7; /lcd忙信號位sbit lcd_rs = p27;sbit lcd_rw = p26;sbit lcd_en = p

35、25;unsigned char dis_buf3; /數(shù)值顯示緩沖區(qū)unsigned char table11 = 0123456789 ;/字碼/*定義子程序*/void lcd_clrall(void); /清屏void judge_lcd_busy(void); /檢測是否忙碌void lcd_write(uchar writedata); /寫控制字void lcd_write_data(uchar lcd_data); /寫數(shù)據(jù)顯示void lcd_cursor(uchar x); /光標(biāo)起始地址void lcd_printc(unsigned char lcd_data) ; /

36、輸出一個字符void lcd_prints(unsigned char *lcd_string);/輸出字符串void delay_ms(unsigned char i);/1ms延時/*/*lcd1602忙碌判斷子程序*/void judge_lcd_busy(void) /判斷l(xiāng)cd1602是否忙狀態(tài) while(1) lcd_en=0; lcd_rs=0; lcd_rw=1; lcd_data=0xff; lcd_en=1; /en 是 10 使能 if(!lcd_bf)break; /lcd_bf=1表示忙碌,需要等待。 lcd_en=0;/*lcd清屏*/void lcd_clral

37、l(void) judge_lcd_busy(); /判斷是否忙碌 lcd_rs=0; lcd_rw=0; lcd_data=0x01; lcd_en=1; lcd_en=0;/*lcd寫數(shù)據(jù)定義各種模式*/void lcd_write(uchar writedata) /寫指令到lcd judge_lcd_busy(); lcd_rs=0; lcd_rw=0; lcd_data=writedata; /把writedata的數(shù)據(jù)送到數(shù)據(jù)口 lcd_en=1; lcd_en=0; /*lcd顯示數(shù)據(jù)*/void lcd_write_data(uchar lcd_data) /輸出一個字節(jié)數(shù)據(jù)到

38、lcd judge_lcd_busy(); lcd_rs=1; lcd_rw=0; lcd_data=lcd_data; lcd_en=1; lcd_en=0; /*光標(biāo)位置的確定*/void lcd_cursor(uchar x) /lcd光標(biāo)定位到x處 lcd_write(0x80+x); /第一行地址是0x80/*輸出一個字符*/void lcd_printc(unsigned char lcd_data) lcd_write_data(lcd_data);/*輸出字符串*/void lcd_prints(unsigned char *lcd_string) unsigned char

39、i=0; while(lcd_stringi!=0x00) lcd_write_data(lcd_stringi); i+; /*顯示整數(shù)*/void lcd_ints(unsigned char num) signed char i=0; for(i=0;i0;i-)/滅零 if(dis_bufi=0)dis_bufi=10; else break; for(i=2;i=0;i-)/逐個顯示 lcd_write_data(tabledis_bufi); /*初始化程序*/void lcd_initial(void) /初始化lcd lcd_write(lcd_ac_auto_incremen

40、t|lcd_move_disenable); lcd_write(lcd_display_on|lcd_cursor_off); lcd_write(lcd_display_double_line); lcd_clrall();#endifuart頭文件bit flag_uart = 0;/字符串接受完成后標(biāo)志位置位,須軟件復(fù)位unsigned char s_len = 4;unsigned char res_buf20=0;void uart_init()es = 1;/set es scon = 0x52;/set sm1、ren and ti;tmod = 0x20;/set m1,方式

41、2;th1 = 0xf3;tl1 = 0xf3; /baud rate 2400b/str1 = 1; /計數(shù)使能void uart_sc(unsigned char byte) /發(fā)送單字符while(!ti);sbuf = byte;ti = 0;void uart_ss(unsigned char *p,bit flag) /發(fā)送字符串while(*p)uart_sc(*p+);if(flag=1)uart_sc(0x0d);uart_sc(0x0a); /結(jié)尾發(fā)送回車換行key頭文件unsigned char code row_scan4=0xef,0xdf,0xbf,0x7f;voi

42、d delay_1ms(unsigned int i) /1ms延時unsigned char x,j;for(j=0;ji;j+)for(x=0;x=40;x+);unsigned char key_scan()unsigned char i,j;unsigned char temp,key_vaul;for(i=0;i4;i+)p1=row_scani;temp=0x01;for(j=0;j4;j+) if(!(p1&temp) key_vaul=i*4+j+1;while(!(p1&temp);return key_vaul; temp=1; bit key_check()/檢測有無鍵按

43、下bit key_flag=0; /鍵標(biāo)志。有鍵按下時為1p1=0x0f;if(p1!=0x0f)delay_1ms(1);if(p1!=0x0f)key_flag=1; /有鍵按下else key_flag=0; /為抖動return key_flag; dht11頭文件#ifndef _dht11_h_ #define _dht11_h_sbit dt0 =p20;sbitdt1 =p21;sbit beep = p23;#define ok 1#define error 0#define number 20#define size 5static unsigned char status

44、; / 存放五字節(jié)數(shù)據(jù)的數(shù)組static unsigned char value_array_0size;static unsigned char value_array_1size;int humi_value0,temp_value0,humi_value1,temp_value1;void delay_ms(unsigned char i) /ms延時unsigned char x,j;for(j=0;ji;j+)for(x=0;x=140;x+);void delay(unsigned char x) /x*0.14msunsigned char i;while(x-)for (i =

45、 0; i13; i+) void delay_1(unsigned char x) /x*1.4msunsigned char i;while(x-)for (i = 0; i130; i+) void beep()unsigned char i;beep=0;for(i=0;i6;i+)beep = !beep;delay_1(5000);delay_1(5000);void delay_10us() unsigned char i; i-;i-;i-;i-;i-;i-;void node_sensor_0(unsigned int tep,unsigned int dam,int fla

46、g_send)unsigned char i,j,n=0;unsigned char buf5 = 0;unsigned char tem,teml=10,temh=40;dt0 = 0;delay_ms(30);dt0 = 1;delay_10us();delay_10us();delay_10us();delay_10us();dt0 = 1;if(dt0=0)/是否響應(yīng)信號while(dt0=0);/跳過 80us dht響應(yīng)信號while(dt0=1);/跳過 80us dht拉高信號/準(zhǔn)備接受溫濕度數(shù)據(jù)for(i=0;i5;i+)for(j=0;j8;j+)n = 0;while(d

47、t0=0);/bit數(shù)據(jù)頭while(dt0=1)delay_10us();/適當(dāng)延時n+;bufi 3)bufi+;dt0 = 1;/接受完成,準(zhǔn)備校驗數(shù)據(jù)tem = buf0+buf1+buf2+buf3;if(tem=buf4)/buf2 = buf2-5;lcd_cursor(0);lcd_prints( );lcd_cursor(0);lcd_prints(n1 );lcd_prints(t:);lcd_cursor(0x04);lcd_ints(buf2);lcd_cursor(0x07);lcd_write_data(0xdf);lcd_write_data(0x43);lcd_

48、cursor(0x0a);lcd_prints(hu: %);lcd_cursor(0x0c);lcd_ints(buf0); if(flag_send=1)lcd_write(lcd_display_on|lcd_cursor_on |lcd_cursor_blink_on);uart_ss(n1: ,0);uart_ss(tem:,0);uart_sc(buf2/10+48);uart_sc(buf2%10+48);uart_ss(度 ,0);uart_ss(hum:,0);uart_sc(buf0/10+48);uart_sc(buf0%10+48);uart_sc(0xa3);uart

49、_sc(0xa5);uart_sc(0x0d);uart_sc(0x0a); /結(jié)尾發(fā)送回車換行l(wèi)cd_cursor(0x40);elselcd_write(lcd_display_on|lcd_cursor_off |lcd_cursor_blink_off); teml = tep;temh = tep8;if(buf2temh) /溫度低于于10度或高于40度時候報警 beep();lcd_write(lcd_display_on|lcd_cursor_on);elsebeep=1;lcd_write(lcd_display_on|lcd_cursor_off);teml = dam;temh = dam8;if(buf0temh) /濕度低于15%或高于60%度時候報警 beep();lcd_write(lcd_display_on|lcd_cursor_on);els

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論