基于單片機(jī)的溫濕度自動控制系統(tǒng)[共29頁]

上傳人:gfy****yf 文檔編號:42748911 上傳時間:2021-11-27 格式:DOC 頁數(shù):30 大小:855.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于單片機(jī)的溫濕度自動控制系統(tǒng)[共29頁]_第1頁
第1頁 / 共30頁
基于單片機(jī)的溫濕度自動控制系統(tǒng)[共29頁]_第2頁
第2頁 / 共30頁
基于單片機(jī)的溫濕度自動控制系統(tǒng)[共29頁]_第3頁
第3頁 / 共30頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于單片機(jī)的溫濕度自動控制系統(tǒng)[共29頁]》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的溫濕度自動控制系統(tǒng)[共29頁](30頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、華北科技學(xué)院課程設(shè)計(jì)電子信息工程專業(yè)課程設(shè)計(jì)任務(wù)書題目:基于單片機(jī)的溫濕度自動控制系統(tǒng)設(shè)計(jì)設(shè)計(jì)內(nèi)容設(shè)計(jì)一個由8052MCU組成的溫濕度采集及自動控制系統(tǒng)。能夠測量溫濕度并顯示;可以設(shè)置溫濕度上下限范圍,當(dāng)超過此設(shè)置溫濕度時自動調(diào)節(jié)溫濕度;超過溫濕度極限時要有報(bào)警功能。通過這個過程熟悉溫濕度傳感器、RS232和七段數(shù)碼管的使用,掌握51系列單片機(jī)控制和測試方法。設(shè)計(jì)以STC89C52單片機(jī)為核心,對電壓信號首先進(jìn)行比例調(diào)節(jié)以滿足A/D的需要;用LCD顯示測量得到的溫濕度值;設(shè)計(jì)通信接口電路以實(shí)現(xiàn)測量數(shù)據(jù)的傳送。完成基本要求,可以適當(dāng)發(fā)揮進(jìn)行擴(kuò)展設(shè)計(jì)。1. 液晶顯示:年月日時分秒;2. 鍵盤輸入:

2、修改溫濕度報(bào)警上下限;設(shè)計(jì)步驟一、總體方案設(shè)計(jì)以51系列MCU構(gòu)成核心模塊,合理分配存儲器資源和I/O資源。溫度采集模塊建議采用SHT11,或采用Pt100再經(jīng)模數(shù)轉(zhuǎn)換;顯示模塊用LCD1602可滿足需要;報(bào)警模塊可采用聲光等形式;輸入模塊可選用矩陣式鍵盤或鍵盤驅(qū)動芯片;可選用8255進(jìn)行I/O擴(kuò)展。二、硬件選型工作對于每一個芯片要有具體型號,對每個分立元件要給出其參數(shù)。三、硬件的設(shè)計(jì)和實(shí)現(xiàn)1. 選擇計(jì)算機(jī)機(jī)型(采用51內(nèi)核的單片機(jī));2. 設(shè)計(jì)支持計(jì)算機(jī)工作的外圍電路(EPROM、RAM、I/O端口、鍵盤、顯示接口電路等);3. 接口電路;4. 其它相關(guān)電路的設(shè)計(jì)或方案(電源、通信等)四、軟

3、件設(shè)計(jì)1. 分配系統(tǒng)資源,編寫系統(tǒng)初始化和主程序模塊;2. 編寫相關(guān)子程序;3. 其它程序模塊(顯示與鍵盤等處理程序)。五、編寫課程設(shè)計(jì)說明書,繪制完整的系統(tǒng)電路圖(A3幅面)。目 錄一、設(shè)計(jì)要求1二、設(shè)計(jì)目的1三、設(shè)計(jì)方案的選擇論證2四、設(shè)計(jì)的具體實(shí)現(xiàn)41、硬件電路的設(shè)計(jì)41.1 主控制電路設(shè)計(jì)41.2 傳感器電路設(shè)計(jì)51.3 顯示電路設(shè)計(jì)71.4 電源電路設(shè)計(jì)101.5 串口電路設(shè)計(jì)121.6 報(bào)警電路設(shè)計(jì)142、軟件設(shè)計(jì)142.1 軟件設(shè)計(jì)流程圖142.2 軟件設(shè)計(jì)程序16五、總結(jié)與心得24六、附錄25七、參考文獻(xiàn)272基于單片機(jī)的溫濕度自動控制系統(tǒng)的設(shè)計(jì)報(bào)告一、設(shè)計(jì)要求設(shè)計(jì)一個基于單片

4、機(jī)的溫濕度自動控制系統(tǒng),具體功能要求如下:1、具有溫濕度采集功能;2、對數(shù)據(jù)實(shí)時處理并能夠顯示;3、當(dāng)溫度或濕度高于(低于)設(shè)定值時能夠自動調(diào)節(jié);4、超限報(bào)警電路,當(dāng)環(huán)境溫度或濕度高于(低于)極限值時,系統(tǒng)能夠發(fā)出聲光報(bào)警,提示工作人員進(jìn)行相應(yīng)的應(yīng)急處理;5、自動斷電功能,當(dāng)環(huán)境溫度或濕度高于(低于)極限值時,系統(tǒng)能夠自動切斷電源;6、當(dāng)檢測電路電壓低即供電不足時,電路發(fā)出報(bào)警,提示工作人員對檢測電路電源進(jìn)行更換。二、設(shè)計(jì)目的1、掌握用溫濕度傳感器SHT11和STC89C52單片機(jī)來設(shè)計(jì)高精度的溫濕度檢測及自動控制系統(tǒng);2、提出系統(tǒng)設(shè)計(jì)方案,包括電路原理圖和流程圖以及程序;3、掌握溫濕度檢測系

5、統(tǒng)的系統(tǒng)調(diào)試,實(shí)現(xiàn)要求的檢測及控制方式;4、掌握系統(tǒng)調(diào)試方法,實(shí)現(xiàn)檢測及控制要求;5、提高查閱文獻(xiàn)與論文撰寫的能力。三、設(shè)計(jì)方案的選擇論證隨著人們對生活質(zhì)量的要求顯著提高,對美麗的植被和花卉的需求量也急劇上升,這對以種植植被為生計(jì)的園林工人是一個機(jī)遇,同時也對傳統(tǒng)的手工植被種植是一個挑戰(zhàn),而基于單片機(jī)的溫濕度控制系統(tǒng)對解決這些問題有重要的意義。方案一:采用熱電阻溫度傳感器。熱電阻是利用導(dǎo)體的電阻隨溫度變化的特性制成的測溫元件?,F(xiàn)應(yīng)用較多的有鉑、銅、鎳等熱電阻。其主要的特點(diǎn)為精度高、測量范圍大、便于遠(yuǎn)距離測量。采用HOS-201濕敏傳感器。HOS-201濕敏傳感器為高濕度開關(guān)傳感器,它的工作電壓

6、為交流1V以下,頻率為50HZ-1KHZ,測量濕度范圍為0-100%RH工作溫度范圍為0-50,阻抗在75%RH-25時為1M。這種傳感器原是用于開關(guān)的傳感器不能在寬頻帶范圍內(nèi)檢測濕度。因此,主要用于判斷規(guī)定值以上或以下的濕度電平。然而這種傳感器只限于一定范圍內(nèi)使用時具有良好的線性可有效地利用其線性特性。方案二:采用SHT11溫濕度傳感器。SHT11是瑞士Scnsirion公司推出的一款數(shù)字溫濕度傳感器芯片。該芯片廣泛應(yīng)用于暖通空調(diào)、汽車、消費(fèi)電子、自動控制等領(lǐng)域。其主要特點(diǎn)如下:高度集成,將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個芯片上;提供二線數(shù)字串行接口SCK和D

7、ATA,接口簡單,支持CRC傳輸校驗(yàn),傳輸可靠性高;測量精度可編程調(diào)節(jié),內(nèi)置A/D轉(zhuǎn)換器(分辨率為8-12位,可以通過對芯片內(nèi)部寄存器編程選擇);測量精確度高,由于同時集成溫濕度傳感器,可以提供溫度補(bǔ)償?shù)臐穸葴y量值和高質(zhì)量的露點(diǎn)計(jì)算功能;封裝尺寸超?。?.62 mm×5.08mm×2.5 mm),測量和通信結(jié)束后,自動轉(zhuǎn)入低功耗模式;高可靠性采用CMOSens工藝,測量時可將感測頭完全浸于水中。綜合這兩種方案,從性能的比較,測量精度,市場的使用情況,以及該設(shè)計(jì)的可操作性方案二中的SHT11溫濕度傳感器都表現(xiàn)出它的優(yōu)勢,因此本設(shè)計(jì)采用方案二。本次溫濕度采集及自動控制系統(tǒng)就以S

8、TC89C52單片機(jī)為主體與SHT11等技術(shù)相結(jié)合實(shí)現(xiàn)高性能的環(huán)境溫濕度測控。利用STC89C52單片機(jī)在P3.4、P3.5口接溫濕度控制電路;P1.5、P1.6口接溫濕度傳感器SHT11;P0口接LCD1602的D0D7管腳;當(dāng)溫濕度不在范圍內(nèi),P3.4、P3.5輸出低電平,控制電路導(dǎo)通對其進(jìn)行控制并在LCD顯示。結(jié)構(gòu)框圖如1所示。圖1 硬件電路框圖由單片機(jī)最小系統(tǒng),外加數(shù)據(jù)采集模塊、控制模塊、顯示模塊及其報(bào)警部分構(gòu)成溫濕度檢測和自動控制系統(tǒng)。四、設(shè)計(jì)的具體實(shí)現(xiàn)1、硬件電路的設(shè)計(jì)1.1 主控制電路設(shè)計(jì)單片機(jī)是系統(tǒng)的控制核心,所以單片機(jī)的性能關(guān)系到整個系統(tǒng)的好壞。因此單片機(jī)的選擇,對所設(shè)計(jì)的系

9、統(tǒng)的實(shí)現(xiàn)一機(jī)功能的擴(kuò)展有著很大的影響。STC89C52是Intel公司于80年代初推出的8位嵌入式微控制器,它與MCS-96系統(tǒng)中的其它芯片相比,具有性能高、功能全、售價低廉、使用方便(48PINDIP)等優(yōu)點(diǎn)。STC89C52在工業(yè)應(yīng)用方面有許多明顯的特點(diǎn),它具有靈活方便的8位總線外圍支持器擴(kuò)展功能,而在數(shù)據(jù)處理方面又有8位微機(jī)的快速功能。由于大的高度集成化已把許多常駐用的輸入檢測輸出控制通道都制作在同一塊硅片上,大大地靈活了外部連線,增強(qiáng)了系統(tǒng)的穩(wěn)定性并且速度快(時鐘12MHz)非常適合于工業(yè)環(huán)境下安裝使用。因此本系統(tǒng)CPU選用STC89C52芯片。 STC89C52單片機(jī)引腳采用40雙列

10、直插式封裝結(jié)構(gòu)。STC89C52系統(tǒng)CPU中的主要組件有:高速寄存器陣列、特殊功能寄存器(SFR)、寄存器控制器和算術(shù)邏輯單元(RALU)。它與外部通訊是通過特殊功能寄存器SFR或存儲器,控制器進(jìn)行的。STC89C52系統(tǒng)的CPU的主要特色是體積小、重量輕、抗干擾能力強(qiáng)、售價低。此外,通過SFR還可以直接控制I/O、A/D、PWM、串行口等部件的有效運(yùn)行。CPU內(nèi)部的一個控制單元和兩條總線寄存器陣列和EALU連接起來。這兩條總線是:16位地址總線和8位數(shù)據(jù)總線。數(shù)據(jù)總線僅在RALU與寄存器陣列或SFR之間傳送數(shù)據(jù),地址總線用作上述數(shù)據(jù)傳送的地址總線或與寄存器控制器連接的多路復(fù)用地址/數(shù)據(jù)總線。

11、CPU對片內(nèi)RAM訪問是直接訪問和通過寄存器R0、R1間接訪問的。STC89C52工作時所需的時鐘可通過其XTALL輸入引腳由外部輸入,也可采用芯片內(nèi)部的振蕩器。其工作頻率為6-12MHz。在本系統(tǒng)中采用11.0592MHz頻率。圖2 單片機(jī)電路1.2 傳感器電路設(shè)計(jì)SHT11是瑞士Scnsirion公司推出的一款數(shù)字溫濕度傳感器芯片。該芯片廣泛應(yīng)用于暖通空調(diào)、汽車、消費(fèi)電子、自動控制等領(lǐng)域。共主要優(yōu)點(diǎn)如下: 高度集成,將溫度感測、濕度感測、信號變換、AD轉(zhuǎn)換和加熱器等功能集成到一個芯片上; 提供二線數(shù)字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗(yàn),傳輸可靠性高; 測量精度可編程調(diào)節(jié)

12、,內(nèi)置AD轉(zhuǎn)換器(分辨率為812位,可以通過對芯片內(nèi)部寄存器編程米選擇); 測量精確度高,由于同時集成溫濕度傳感器,可以提供溫度補(bǔ)償?shù)臐穸葴y量值和高質(zhì)量的露點(diǎn)計(jì)算功能; 封裝尺寸超小(7.62 mm×5.08mm×2.5 mm),測量和通信結(jié)束后,自動轉(zhuǎn)入低功耗模式; 高可靠性,采用CMOSens工藝,測量時可將感測頭完全浸于水中。SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式接口非常簡單,如圖3所示。圖3 傳感器電路SHT11工作原理:溫濕度傳感器SHT11將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個芯片上。該芯片包括一個電容性聚合體濕度

13、敏感元件和一個用能隙材料制成的溫度敏感元件。這兩個敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號,該電信號首先進(jìn)入微弱信號放大器進(jìn)行放大,然后進(jìn)入一個14位的A/D轉(zhuǎn)換器,最后經(jīng)過二線串行數(shù)字接口輸出數(shù)字信號。SHT11在出廠前,都會在恒濕或恒溫環(huán)境巾進(jìn)行校準(zhǔn),校準(zhǔn)系數(shù)存儲在校準(zhǔn)寄存器中,在測量過程中,校準(zhǔn)系數(shù)會自動校準(zhǔn)來自傳感器的信號。此外,SHT11內(nèi)部還集成了一個加熱元件,加熱元件接通后可以將SHT11的溫度升高5左右,同時功耗也會有所增加。此功能主要為了比較加熱前后的溫度和濕度值,可以綜合驗(yàn)證兩個傳感器元件的性能。在高濕(>95RH)環(huán)境中,加熱傳感器可預(yù)防傳感器結(jié)露,同時縮短響應(yīng)時間,提

14、高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會略有差異。然而在改變溫度的同時濕度也會略微變化,因?yàn)闈穸葴y量測的是相對濕度,相對濕度跟溫度相關(guān),溫度變則相對濕度變,其自身帶有溫度補(bǔ)償功能。微處理器是通過二線串行數(shù)字接口與SHT11進(jìn)行通信的。通信協(xié)議與通用的I2C總線協(xié)議是不兼容的。因此需要用通用微處理器I/O口模擬該通信時序。微處理器對SHT11的控制是通過5個5位命令代碼來實(shí)現(xiàn)的。命令代碼的含義為:00011 測量溫度00101 測量濕度00111 讀內(nèi)部狀態(tài)寄存器00110 寫內(nèi)部狀態(tài)寄存器11110 復(fù)位命令,是內(nèi)部寄存器恢復(fù)默認(rèn)值其他 保留1.3 顯示電路設(shè)計(jì)在日常

15、生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計(jì)算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管和LED數(shù)碼管比較常用,軟硬件都比較簡單。在單片機(jī)系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個優(yōu)點(diǎn): 顯示質(zhì)量高:由于液晶顯示器每一個點(diǎn)在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫質(zhì)高且不會閃爍。 數(shù)字式接口:液晶顯示器都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡單可靠

16、,操作更加方便。 體積小、重量輕:液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。 功耗低:相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。為使其具有更廣泛的適用性,本系統(tǒng)設(shè)計(jì)時可采用兩款液晶顯示器顯示LCD1602與LCD12864,其接口電路如下圖所示:圖4 液晶接口電路LCD1602主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm1602L

17、CD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示。表1 LCD1602引腳功能編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令如表2所示:表2 控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開

18、/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容圖5 寫操作時序圖6 1602LCD內(nèi)部顯示地址1.4 電源電路設(shè)計(jì)該設(shè)計(jì)所用到的電源有兩種形式,一種為USB供電(5.0V);一種為干電池供電(3.0V)。由于本采用兩節(jié)干電池供電電壓為3.0V,而電路中各芯片所用到的電壓為5.0V,必須將干電池所提供的3.0V電壓轉(zhuǎn)換為適

19、合電路需要的5.0V電壓。采用MAX1675芯片進(jìn)行轉(zhuǎn)換。MAX1675芯片為升壓型DC-DC轉(zhuǎn)換電路,為雙列8腳封裝,具有高達(dá)94%的轉(zhuǎn)換效率,靜態(tài)電流僅16uA。其內(nèi)部含有同步整流器,一方面提高了變換效率,另一方面節(jié)省了外接肖特基二極管,使其外圍元件非常簡潔。具有峰值電流抑制功能,可以降低EMI,同時也使在輸出過載時芯片不致?lián)p壞,MAX1675具有0.5A峰值電流抑制功能。器件內(nèi)置0.3歐姆N溝道MOSFET,可以通過引腳方便的選擇3.3V或5.0V輸出電壓,也可以利用分壓電阻使之在2.0V至5.5V之間可調(diào)。輸入電壓范圍為0.7V至5.5V,開啟電壓可低至1.1V。其優(yōu)點(diǎn)還包括0.1uA

20、電流關(guān)機(jī)模式、輸入電壓檢測、電池反接保護(hù)等。圖7 USB供電電路圖8 外接供電模塊1.5 串口電路設(shè)計(jì)本設(shè)計(jì)中串口電路可采用兩種形式進(jìn)行程序下載與控制。一種為RS232電路,一種是USB電路。在USB電路中采用PL2303芯片進(jìn)行USB-RS232信號轉(zhuǎn)換。PL2303 是Prolific 公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器,可提供一個RS232 全雙工異步串行通信裝置與USB 功能接口便利聯(lián)接的解決方案。該器件內(nèi)置USB功能控制器、USB 收發(fā)器、振蕩器和帶有全部調(diào)制解調(diào)器控制信號的UART, 只需外接幾只電容就可實(shí)現(xiàn)USB 信號與RS232 信號的轉(zhuǎn)換,能夠方便嵌入到各種

21、設(shè)備;該器件作為USB/RS232 雙向轉(zhuǎn)換器,一方面從主機(jī)接收USB 數(shù)據(jù)并將其轉(zhuǎn)換為RS232 信息流格式發(fā)送給外設(shè);另一方面從RS232 外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB 數(shù)據(jù)格式傳送回主機(jī)。這些工作全部由器件自動完成,開發(fā)者無需考慮固件設(shè)計(jì)。圖9 USB-UART轉(zhuǎn)換電路圖10 USB接口電路圖11 USB電源去耦及UART切換電路圖12 RS232串口電路1.6 報(bào)警電路設(shè)計(jì)煤礦井下氣體環(huán)境是易燃易爆的混合性氣體,其對溫度、濕度的要求十分嚴(yán)格,當(dāng)溫濕度參數(shù)超過其正常范圍時就會導(dǎo)致混合性氣體爆炸,危害礦井工人的生命安全。所以必須設(shè)置報(bào)警電路。當(dāng)電路采集到的溫濕度超過正常范圍時,使其觸發(fā)聲光報(bào)警

22、電路,使其報(bào)警,從而及時的提醒工作人員進(jìn)行處理,而不至于發(fā)生爆炸性危害。本設(shè)計(jì)電路采用的蜂鳴器報(bào)警電路工作原理為:當(dāng)煤礦井下溫濕度參數(shù)超過正常范圍時,觸發(fā)BUZZ信號,使其變?yōu)楦唠娖?,LED等亮,并且使三極管Q3導(dǎo)通驅(qū)動蜂鳴器,使蜂鳴器發(fā)聲,從而實(shí)現(xiàn)聲光報(bào)警。P1.7為高電平,報(bào)警燈亮。聲光報(bào)警電路如下圖所示:圖13 聲光報(bào)警電路2、軟件設(shè)計(jì)2.1 軟件設(shè)計(jì)流程圖溫濕度判斷控制模塊也是系統(tǒng)的核心模塊之一。所謂判斷控制模塊,就是對用戶輸入的溫度和濕度與當(dāng)前溫室內(nèi)的實(shí)際溫濕度進(jìn)行比較,先進(jìn)行判斷,然后再進(jìn)行控制,控制模塊是決定系統(tǒng)將要進(jìn)行什么工作的。如溫度高于上限時需要降溫,低于下限時需要升溫,同

23、時還要啟動警報(bào)等等。程序流程如圖14所示。圖14 軟件流程圖本流程分為溫度和適度監(jiān)控,我們以溫度的監(jiān)控為例闡述該流程:首先系統(tǒng)初始化由SHT11傳感器讀取環(huán)境溫度并自身將其轉(zhuǎn)換成數(shù)字信號,然后送入51單片機(jī),如果該數(shù)據(jù)低于預(yù)設(shè)最低值或高于預(yù)設(shè)最高值,則報(bào)警電路和控制電路將被接通,起到提醒和控制的作用,并將數(shù)據(jù)送入51單片機(jī),在LCD上顯示。如果溫度正常即處于預(yù)設(shè)范圍,則報(bào)警電路和控制電路不會動作,并將數(shù)據(jù)送入單片機(jī),在LCD上顯示,之后進(jìn)入下次的監(jiān)控流程。濕度的監(jiān)控流程和溫度基本一致。2.2 軟件設(shè)計(jì)程序/*頭文件*/第 28 頁#include<reg52.h>#include&

24、lt;intrins.h>#include<stdio.h>#include<math.h>#include<string.h>/*宏定義*/#define uchar unsigned char#define uint unsigned int#define uiong unsigned long/*位聲明*/sbit DAT=P15;/SHT11數(shù)據(jù)sbit SCK=P16;/SHT11時鐘sbit lcden=P13;/LCD使能端sbit lcdrs=P10;/lcd指令/數(shù)據(jù)寄存器選擇端/*定義變量*/uchar error;/全局錯誤變量u

25、char ack;/全局應(yīng)答變量uchar data_h;/數(shù)據(jù)高位uchar data_l;/數(shù)據(jù)低位int temp;/溫度顯值int humi;/濕度顯值int dis_buf5;/顯示緩沖區(qū)/*定義數(shù)據(jù)表*/uchar code dis1="temp:"/第一行顯示表頭uchar code dis2="Humi:"/第二行顯示表頭uchar code dis="0123456789."/顯示數(shù)值/*定義溫濕度命令*/#define TEMP_ML 0x03/000 0001 1 溫度命令#define HUMI_ML 0x05

26、/000 0010 1 濕度命令/*延時函數(shù)*/void delay(uint count) uint i,j;for(i=count;i>0;i-) for(j=110;j>0;j-);/*SHT11啟動程序*/void sht11_start()DAT=1;SCK=0;_nop_();SCK=1;_nop_();DAT=0;_nop_();SCK=0;_nop_();_nop_();_nop_();SCK=1;_nop_();DAT=1;_nop_();SCK=0;/*SHT11復(fù)位程序*/void sht11_rest(void) uchar i;DAT=1;SCK=0;fo

27、r(i=0;i<9;i+) SCK=1; SCK=0;sht11_start();/*讀兩個字節(jié)并返回應(yīng)答信號*/void read(void) uchar i,val;data_l=0;data_h=0;/SCK=0;/*讀高八位*/DAT=1;/釋放數(shù)據(jù)總線for(i=0x80;i>0;i/=2)/移位8位 SCK=1;/上升沿讀入 if(DAT) val=(val | i);/確定值先讀入高位 SCK=0;DAT=0;/應(yīng)答信號 有應(yīng)答為0,無為1SCK=1;/第九個脈沖_nop_();_nop_();_nop_();/脈沖寬度為5usSCK=0;DAT=1;/釋放數(shù)據(jù)總線d

28、ata_h=val;/存測高字節(jié)/*讀低八位*/val=0;DAT=1;/釋放數(shù)據(jù)總線for(i=0x80;i>0;i/=2) SCK=1;/上升沿讀入 if(DAT) val=(val | i);/確定值 SCK=0;DAT=1;SCK=1;/第九個脈沖_nop_();_nop_();_nop_();/脈沖寬度為5usSCK=0;DAT=1;/釋放數(shù)據(jù)總線data_l=val;/*寫一個字節(jié)并返回應(yīng)答信號*/char write(uchar value) uchar i;ack=0;/默認(rèn)低電平表示有應(yīng)答SCK=0;for(i=0x80;i>0;i/=2)/釋放數(shù)據(jù)總線 if(i

29、 & value)/先寫入高值 DAT=1;/寫入值1 else DAT=0; SCK=1;/上升沿寫入 _nop_();_nop_();_nop_();/脈沖寬度為5us SCK=0;DAT=1; /釋放數(shù)據(jù)總線SCK=1;/第九個脈沖if(DAT=1)/讀應(yīng)答信號 ack=1;/高電平表示未應(yīng)答,低電平表示有應(yīng)答SCK=0;return ack;/返回ack,1為沒有應(yīng)答,0為有應(yīng)答/*測量溫度或者濕度并返回校驗(yàn)值*/void measure(uchar m1) uint i;sht11_start();/啟動write(m1);/寫入測溫度或濕度指令if(ack=1)/無應(yīng)答 s

30、ht11_rest();/復(fù)位 write(m1);/再次寫入 for(i=0;i<55535;i+)/判斷是否處于忙狀態(tài) if(DAT=0)/有應(yīng)答就退出 break; else disp(temp,0x06);/第一行顯示溫度 disp(humi,0x46);/第二行顯示濕度read();/度溫度或濕度 /*溫度計(jì)算程序*/void comp_temp(void) float aa=0,temp_zi;aa=(float)(data_h*256)+(float)data_l;/高低字節(jié)合并temp_zi=0.01*aa-40.1;if(temp_zi<0)/低于0以0計(jì)算 te

31、mp_zi=0;temp_zi=temp_zi*10;/保留一位temp=(int)temp_zi;/溫度/*溫度控制程序*/if(temp>24|temp<15)P1_7=1;/*溫度報(bào)警電路程序*/if(temp>32|temp<11)BUZZ=1;/*濕度計(jì)算程序*/void comp_humi(void) float aa=0,bb=0,humi_zi;int abcd=0;aa=(float)data_h*256+(float)data_l;/高低字節(jié)合并bb=-4+0.0405*aa-aa*aa*0.0000028;humi_zi=(float)(temp)

32、/10-25)*(0.01+0.00008*aa)+bb;/濕度信號補(bǔ)償humi_zi=bb*10;/保留小數(shù)點(diǎn)后面1位humi=(int)humi_zi;/濕度/*濕度控制程序*/if(humi>52|humi<48)P1_7=1;/*濕度報(bào)警電路程序*/if(humi>60|humi<40)BUZZ=1;void comp_temp_humi(void)/溫濕度處理error=0;ack=0;sht11_rest();/復(fù)位measure(TEMP_ML);/測溫度comp_temp();/計(jì)算溫度measure(HUMI_ML);/測濕度comp_humi();/

33、計(jì)算濕度/*LCD寫數(shù)據(jù)程序*/void dat_wrt(uchar dat) lcden=0;delay(5);lcdrs=1;/RS=1;為寫數(shù)據(jù)delay(5);P1=dat;/寫數(shù)據(jù)delay(5);lcden=1;/高電平寫入delay(5);lcden=0;void cmd_wrt(uchar cmd)/寫命令lcden=0;delay(5);lcdrs=0;/RS=1;為寫命令delay(5);P1=cmd;/寫入命令delay(5);lcden=1;/上升沿寫入delay(5);lcden=0;void init_1602(void)cmd_wrt(0x01);/清屏cmd_w

34、rt(0x0c);/開顯示,不顯示光標(biāo),不閃爍cmd_wrt(0x06);/光標(biāo)左移顯示不發(fā)生移位cmd_wrt(0x38);/16*2顯示,8位數(shù)據(jù)接口,5*7點(diǎn)陣/*LCD顯示位置*/void lcd_start(uchar start)cmd_wrt(start|0x80);/確保顯示在LCD上的位置/*數(shù)據(jù)處理程序*/uchar dat_adj(int dat1)uchar i;dis_buf0=(int)(dat1/1000);/千位dis_buf1=(int)(dat1%1000)/100);/百位dis_buf2=(int)(dat1%100)/10);/十位dis_buf3=1

35、0;/小數(shù)點(diǎn)dis_buf4=(int)(dat1%10);/小數(shù)點(diǎn)后個位for(i=0;i<2;i+) if(dis_bufi!=0)/明確顯示位數(shù) break;return(i);/*LCD顯示程序*/void disp(int dat,uchar k)uchar temp,j;temp=dat_adj(dat);lcd_start(k+temp);/確定顯示位置for(j=temp;j<5;j+) dat_wrt(disdis_bufj);/寫顯示數(shù)據(jù)void print(uchar *str)while(*str!='0')/直到字符串結(jié)束 dat_wrt(

36、*str); str+;/指向下一個字符/*主函數(shù)*/void main()P0=0;init_1602();/初始化液晶lcd_start(0x00);/確定顯示起始位置 第一行print(dis1);/顯示文字templcd_start(0x40);/確定顯示起始位置 第二行print(dis2);/顯示文字humiwhile(1) comp_temp_humi();/測溫濕度并轉(zhuǎn)換 /disp(temp,0x06);/第一行顯示溫度 /disp(humi,0x46);/第二行顯示濕度delay(200);五、總結(jié)與心得這次課程設(shè)計(jì)的電路是比較復(fù)雜的。感覺DXP2004軟件比Protel9

37、9SE更靈活易用,熟練以后十分順手。在整個電路的設(shè)計(jì)過程中,花費(fèi)時間最多的是各個單元電路的設(shè)計(jì)及軟件程序的編寫上,在多種方案的選擇中,我們仔細(xì)比較分析其原理以及可行的原因,最后還是在通過多次對電路的改進(jìn),上機(jī)仿真以及調(diào)試,終于使整個電路可穩(wěn)定工作。設(shè)計(jì)過程中,我深刻的體會到在設(shè)計(jì)過程中,需要反復(fù)實(shí)踐,其過程很可能相當(dāng)煩瑣,有時花很長時間設(shè)計(jì)出來的電路還是需要重做,那時心中未免有點(diǎn)灰心,有時還特別想放棄,此時更加需要靜下心,查找原因。設(shè)計(jì)思路是最重要的,只要你的設(shè)計(jì)思路是成功的,那你的設(shè)計(jì)已經(jīng)成功了一半。因此我們應(yīng)該在設(shè)計(jì)前做好充分的準(zhǔn)備,像查找詳細(xì)的資料,為我們設(shè)計(jì)的成功打下堅(jiān)實(shí)的基礎(chǔ)。設(shè)計(jì)單

38、元電路階段,這個階段可以說是考察單片機(jī)書本知識的階段。很多的設(shè)計(jì)方法還有過程步驟在單片機(jī)書上都有。這個階段遇到的主要問題就是以前學(xué)習(xí)的只是理論層面,而沒有應(yīng)用于實(shí)踐,所以做設(shè)計(jì)的時候要經(jīng)常參考別人的成功案例,多學(xué)習(xí)別人的長處并汲取成功案例的設(shè)計(jì)經(jīng)驗(yàn)。將理論與實(shí)踐相結(jié)合,在進(jìn)一步加深理論學(xué)習(xí)的同時,也加強(qiáng)的自己的動手實(shí)踐能力。總之,通過這次實(shí)習(xí)我有了很多收獲。在摸索該如何設(shè)計(jì)電路、編寫程序使之實(shí)現(xiàn)所需功能的過程中,培養(yǎng)了設(shè)計(jì)思維,增強(qiáng)了動手能力。在改進(jìn)電路、程序的過程中,同學(xué)們共同探討,最后的電路已經(jīng)比初期設(shè)計(jì)有了很大改進(jìn)。在讓我體會到了設(shè)計(jì)電路和編寫程序的艱辛的同時,更讓我體會到成功的喜悅和快

39、樂。六、附錄元器件明細(xì)表:CommentDescriptionDesignatorFootprintQuantityBuzzer蜂鳴器BZ1RB.2/.4120pCapacitorC1, C3, C6, C1208054100uPolarized CapacitorC2, C13, C18C5*7C30.1uFCapacitorC4, C5, C7, C8, C9, C10, C11, C14, C16, C19, C20, C21, C22, C23080514100nFCapacitorC15, C170805210uFPolarized CapacitorCP1C5*7C147uFPol

40、arized Capacitor (Radial)CP2, CP3, CP4, CP5C5*7C44148穩(wěn)壓管D1, D2, D3, D4, D512105FUSE保險(xiǎn)絲F118121CON8ConnectorJ1, J2, J5, J6SIP84USB-BUSB B型插座J3USB2.01RS-232串口J4DB9/M1UARTconnectJ7HDR2X31PWRConnectorJ8BODUANKAIGUAN1LCD_CSConnectorJ10SIP3122uHInductorL1, L2DIANGAN2LCD1602ConnectorLCD1SIP161LCD12864Connec

41、torLCD2SIP161LEDLEDLED1, LED2, LED3, LED408054Header 5X2AHeader, 5-Pin, Dual rowP1HDR2X5_CEN1DIANYUANbatteryP2DIANYUAN19012三極管Q1, Q3SOT-2329013三極管Q2SOT-23110KResistor, 電阻R1, R2, R18, R21, R26, R3008056CommentDescriptionDesignatorFootprintQuantity1KResistorR3, R8, R9, R15, R16, R19, R20, R27, R310805

42、94.7KResistor, 電阻R4, R5, R6, R7, R10, R130805618ResistorR11, R12, R170805310KResistorR14R141100KResistorR22, R2308052150KResistorR24, R2508052256KResistorR28, R2908052KEYSwitchS1BODUANKAIGUAN1SW-PBSwitchS2ANJIAN1AD電路測試點(diǎn)TP1TP-S1DA電路測試點(diǎn)TP2TP-S1STC89C52單片機(jī)U1DIP401PL2303USB-UARTU2SOL-281PCF8591AD/DAU3SO

43、J-161SHT11傳感器U4SHT111MAX1675EUADC-DC ConverterU5, U6MOSP8212MHz晶振Y1XTAL1111.0592MHz晶振Y2XTAL11七、參考文獻(xiàn)1 楊振江 馮軍·單片機(jī)原理與實(shí)踐指導(dǎo)·北京:中國電力出版社2 譚浩強(qiáng)·C程序設(shè)計(jì)(第三版)·北京:清華大學(xué)出版社3 閻石·數(shù)字電子技術(shù)基礎(chǔ)(第四版)M·北京:高等教育出版社4 呂東 彭鈞·濕度控制技術(shù)的智能化J·武漢化工學(xué)院學(xué)報(bào)5 馮顯英 葛榮雨·基于數(shù)字溫濕度傳感器SHT11的溫濕度測控系統(tǒng)J·自動化儀表6 馮達(dá) 余軒 黃景峰·單片數(shù)字式溫濕度傳感器SHT11的應(yīng)用J·電子產(chǎn)品世界 7 張艷麗 楊仁弟·數(shù)字溫濕度傳感器SHT11及其應(yīng)用J·工礦自動化8 王漢芝 劉振全·基于CMOSens(R)技術(shù)的數(shù)字濕度/溫度傳感器SHT11及其應(yīng)用J ·傳感器世界

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!