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

上傳人:gfy****yf 文檔編號:42748911 上傳時間:2021-11-27 格式:DOC 頁數(shù):30 大?。?55.50KB
收藏 版權(quán)申訴 舉報 下載
基于單片機(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頁珍藏版)》請在裝配圖網(wǎng)上搜索。

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

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

3、 接口電路; 4. 其它相關(guān)電路的設(shè)計或方案(電源、通信等) 四、軟件設(shè)計 1. 分配系統(tǒng)資源,編寫系統(tǒng)初始化和主程序模塊; 2. 編寫相關(guān)子程序; 3. 其它程序模塊(顯示與鍵盤等處理程序)。 五、編寫課程設(shè)計說明書,繪制完整的系統(tǒng)電路圖(A3幅面)。 目 錄 一、設(shè)計要求 1 二、設(shè)計目的 1 三、設(shè)計方案的選擇論證 2 四、設(shè)計的具體實(shí)現(xiàn) 4 1、硬件電路的設(shè)計 4 1.1 主控制電路設(shè)計 4 1.2 傳感器電路設(shè)計 5 1.3 顯示電路設(shè)計 7 1.4 電源電路設(shè)計 10 1.5 串口電路設(shè)計 12 1.6 報警電路設(shè)計 14 2、軟件設(shè)計 14

4、 2.1 軟件設(shè)計流程圖 14 2.2 軟件設(shè)計程序 16 五、總結(jié)與心得 24 六、附錄 25 七、參考文獻(xiàn) 27 2 基于單片機(jī)的溫濕度自動控制系統(tǒng)的設(shè)計報告 一、設(shè)計要求 設(shè)計一個基于單片機(jī)的溫濕度自動控制系統(tǒng),具體功能要求如下: 1、具有溫濕度采集功能; 2、對數(shù)據(jù)實(shí)時處理并能夠顯示; 3、當(dāng)溫度或濕度高于(低于)設(shè)定值時能夠自動調(diào)節(jié); 4、超限報警電路,當(dāng)環(huán)境溫度或濕度高于(低于)極限值時,系統(tǒng)能夠發(fā)出聲光報警,提示工作人員進(jìn)行相應(yīng)的應(yīng)急處理; 5、自動斷電功能,當(dāng)環(huán)境溫度或濕度高于(低于)極限值時,系統(tǒng)能夠自動切斷電源; 6、當(dāng)檢測電路電壓低即供電

5、不足時,電路發(fā)出報警,提示工作人員對檢測電路電源進(jìn)行更換。 二、設(shè)計目的 1、掌握用溫濕度傳感器SHT11和STC89C52單片機(jī)來設(shè)計高精度的溫濕度檢測及自動控制系統(tǒng); 2、提出系統(tǒng)設(shè)計方案,包括電路原理圖和流程圖以及程序; 3、掌握溫濕度檢測系統(tǒng)的系統(tǒng)調(diào)試,實(shí)現(xiàn)要求的檢測及控制方式; 4、掌握系統(tǒng)調(diào)試方法,實(shí)現(xiàn)檢測及控制要求; 5、提高查閱文獻(xiàn)與論文撰寫的能力。 三、設(shè)計方案的選擇論證 隨著人們對生活質(zhì)量的要求顯著提高,對美麗的植被和花卉的需求量也急劇上升,這對以種植植被為生計的園林工人是一個機(jī)遇,同時也對傳統(tǒng)的手工植被種植是一個挑戰(zhàn),而基于單片機(jī)的溫濕度控制系統(tǒng)對解決

6、這些問題有重要的意義。 方案一:采用熱電阻溫度傳感器。熱電阻是利用導(dǎo)體的電阻隨溫度變化的特性制成的測溫元件?,F(xiàn)應(yīng)用較多的有鉑、銅、鎳等熱電阻。其主要的特點(diǎn)為精度高、測量范圍大、便于遠(yuǎn)距離測量。采用HOS-201濕敏傳感器。HOS-201濕敏傳感器為高濕度開關(guān)傳感器,它的工作電壓為交流1V以下,頻率為50HZ-1KHZ,測量濕度范圍為0-100%RH工作溫度范圍為0-50℃,阻抗在75%RH-25℃時為1MΩ。這種傳感器原是用于開關(guān)的傳感器不能在寬頻帶范圍內(nèi)檢測濕度。因此,主要用于判斷規(guī)定值以上或以下的濕度電平。然而這種傳感器只限于一定范圍內(nèi)使用時具有良好的線性可有效地利用其線性特性。 方案

7、二:采用SHT11溫濕度傳感器。SHT11是瑞士Scnsirion公司推出的一款數(shù)字溫濕度傳感器芯片。該芯片廣泛應(yīng)用于暖通空調(diào)、汽車、消費(fèi)電子、自動控制等領(lǐng)域。其主要特點(diǎn)如下: 高度集成,將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個芯片上; 提供二線數(shù)字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗(yàn),傳輸可靠性高; 測量精度可編程調(diào)節(jié),內(nèi)置A/D轉(zhuǎn)換器(分辨率為8-12位,可以通過對芯片內(nèi)部寄存器編程選擇); 測量精確度高,由于同時集成溫濕度傳感器,可以提供溫度補(bǔ)償?shù)臐穸葴y量值和高質(zhì)量的露點(diǎn)計算功能; 封裝尺寸超?。?.62 mm×5.08mm

8、×2.5 mm),測量和通信結(jié)束后,自動轉(zhuǎn)入低功耗模式; 高可靠性采用CMOSens工藝,測量時可將感測頭完全浸于水中。 綜合這兩種方案,從性能的比較,測量精度,市場的使用情況,以及該設(shè)計的可操作性方案二中的SHT11溫濕度傳感器都表現(xiàn)出它的優(yōu)勢,因此本設(shè)計采用方案二。 本次溫濕度采集及自動控制系統(tǒng)就以STC89C52單片機(jī)為主體與SHT11等技術(shù)相結(jié)合實(shí)現(xiàn)高性能的環(huán)境溫濕度測控。 利用STC89C52單片機(jī)在P3.4、P3.5口接溫濕度控制電路;P1.5、P1.6口接溫濕度傳感器SHT11;P0口接LCD1602的D0~D7管腳;當(dāng)溫濕度不在范圍內(nèi),P3.4、P3.5輸出低

9、電平,控制電路導(dǎo)通對其進(jìn)行控制并在LCD顯示。結(jié)構(gòu)框圖如1所示。 圖1 硬件電路框圖 由單片機(jī)最小系統(tǒng),外加數(shù)據(jù)采集模塊、控制模塊、顯示模塊及其報警部分構(gòu)成溫濕度檢測和自動控制系統(tǒng)。 四、設(shè)計的具體實(shí)現(xiàn) 1、硬件電路的設(shè)計 1.1 主控制電路設(shè)計 單片機(jī)是系統(tǒng)的控制核心,所以單片機(jī)的性能關(guān)系到整個系統(tǒng)的好壞。因此單片機(jī)的選擇,對所設(shè)計的系統(tǒng)的實(shí)現(xiàn)一機(jī)功能的擴(kuò)展有著很大的影響。STC89C52是Intel公司于80年代初推出的8位嵌入式微控制器,它與MCS-96系統(tǒng)中的其它芯片相比,具有性能高、功能全、售價低廉、使用方便(48PINDIP)等優(yōu)點(diǎn)。STC89C52在工業(yè)應(yīng)用方面有

10、許多明顯的特點(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雙列直插式封裝結(jié)構(gòu)。STC89C52系統(tǒng)CPU中的主要組件有:高速寄存器陣列、特殊功能寄存器(SFR)、寄存器控制器和算術(shù)邏輯單元(RALU)。它與外部通訊是通過特殊功能寄存器SFR或存儲器,控制器進(jìn)行的。STC89C52系統(tǒng)的CPU的主要特色

11、是體積小、重量輕、抗干擾能力強(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ù)總線。CPU對片內(nèi)RAM訪問是直接訪問和通過寄存器R0、R1間接訪問的。 STC89C52工作時所需的時鐘可通過其XTALL輸入引腳由外部輸入,也可采用芯片內(nèi)部的振蕩器。其工作頻率為6-12MHz。在本系統(tǒng)中采用11.0592MHz頻率。

12、 圖2 單片機(jī)電路 1.2 傳感器電路設(shè)計 SHT11是瑞士Scnsirion公司推出的一款數(shù)字溫濕度傳感器芯片。該芯片廣泛應(yīng)用于暖通空調(diào)、汽車、消費(fèi)電子、自動控制等領(lǐng)域。共主要優(yōu)點(diǎn)如下: ① 高度集成,將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個芯片上; ② 提供二線數(shù)字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗(yàn),傳輸可靠性高; ③ 測量精度可編程調(diào)節(jié),內(nèi)置A/D轉(zhuǎn)換器(分辨率為8~12位,可以通過對芯片內(nèi)部寄存器編程米選擇); ④ 測量精確度高,由于同時集成溫濕度傳感器,可以提供溫度補(bǔ)償?shù)臐穸葴y量值和高質(zhì)量的露點(diǎn)計算功能; ⑤ 封裝尺寸超

13、小(7.62 mm×5.08mm×2.5 mm),測量和通信結(jié)束后,自動轉(zhuǎn)入低功耗模式; ⑥ 高可靠性,采用CMOSens工藝,測量時可將感測頭完全浸于水中。 SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式接口非常簡單,如圖3所示。 圖3 傳感器電路 SHT11工作原理: 溫濕度傳感器SHT11將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個芯片上。該芯片包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件。這兩個敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號,該電信號首先進(jìn)入微弱信號放大器進(jìn)行放大,然后進(jìn)入一個14位的A/

14、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)證兩個傳感器元件的性能。在高濕(>95RH)環(huán)境中,加熱傳感器可預(yù)防傳感器結(jié)露,同時縮短響應(yīng)時間,提高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會略有差異。然而在改變溫度的同時濕度也會略微變化,因?yàn)闈穸葴y量測的是相對濕度,相對濕

15、度跟溫度相關(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è)計 在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計算器、萬用表、電子表及很多家用

16、電子產(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)的接口更加簡單可靠,操作更加方便。 ③ 體積小、重量輕:液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的

17、目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。 ④ 功耗低:相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。 為使其具有更廣泛的適用性,本系統(tǒng)設(shè)計時可采用兩款液晶顯示器顯示LCD1602與LCD12864,其接口電路如下圖所示: 圖4 液晶接口電路 LCD1602主要技術(shù)參數(shù): 顯示容量:16×2個字符 芯片工作電壓:4.5—5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95×4.35(W×H)mm 1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶

18、背光)接口,各引腳接口說明如表1所示。 表1 LCD1602引腳功能 編號 符號 引腳說明 編號 符號 引腳說明 1 VSS 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù)/命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀/寫選擇 13 D6 數(shù)據(jù) 6 E 使能信號 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負(fù)極 LCD1602液晶模塊內(nèi)部的控制器共有11條控制指

19、令如表2所示: 表2 控制命令表 序號 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清顯示 0 0 0 0 0 0 0 0 0 1 2 光標(biāo)返回 0 0 0 0 0 0 0 0 1 * 3 置輸入模式 0 0 0 0 0 0 0 1 I/D S 4 顯示開/關(guān)控制 0 0 0 0 0 0 1 D C B 5 光標(biāo)或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL

20、 N F * * 7 置字符發(fā)生存貯器地址 0 0 0 1 字符發(fā)生存貯器地址 8 置數(shù)據(jù)存貯器地址 0 0 1 顯示數(shù)據(jù)存貯器地址 9 讀忙標(biāo)志或地址 0 1 BF 計數(shù)器地址 10 寫數(shù)到CGRAM或DDRAM) 1 0 要寫的數(shù)據(jù)內(nèi)容 11 從CGRAM或DDRAM讀數(shù) 1 1 讀出的數(shù)據(jù)內(nèi)容 圖5 寫操作時序 圖6 1602LCD內(nèi)部顯示地址 1.4 電源電路設(shè)計 該設(shè)計所用到的電源有兩種形式,一種為USB供電(5.0V);一種為干電池供電(3.0V)。由于本采用兩節(jié)干電池供電電壓為3.0V,而電路中

21、各芯片所用到的電壓為5.0V,必須將干電池所提供的3.0V電壓轉(zhuǎn)換為適合電路需要的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)。輸入電壓范

22、圍為0.7V至5.5V,開啟電壓可低至1.1V。其優(yōu)點(diǎn)還包括0.1uA電流關(guān)機(jī)模式、輸入電壓檢測、電池反接保護(hù)等。 圖7 USB供電電路 圖8 外接供電模塊 1.5 串口電路設(shè)計 本設(shè)計中串口電路可采用兩種形式進(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)器

23、控制信號的UART, 只需外接幾只電容就可實(shí)現(xiàn)USB 信號與RS232 信號的轉(zhuǎn)換,能夠方便嵌入到各種設(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è)計。 圖9 USB-UART轉(zhuǎn)換電路 圖10 USB接口電路 圖11 USB電源去耦及UART切換電路 圖12 RS232串口電路 1.6 報警電路設(shè)計 煤礦井下氣體環(huán)境是易燃易爆的混合性氣體,其對溫度、濕度的要求十分嚴(yán)格,當(dāng)溫濕度

24、參數(shù)超過其正常范圍時就會導(dǎo)致混合性氣體爆炸,危害礦井工人的生命安全。所以必須設(shè)置報警電路。當(dāng)電路采集到的溫濕度超過正常范圍時,使其觸發(fā)聲光報警電路,使其報警,從而及時的提醒工作人員進(jìn)行處理,而不至于發(fā)生爆炸性危害。本設(shè)計電路采用的蜂鳴器報警電路工作原理為:當(dāng)煤礦井下溫濕度參數(shù)超過正常范圍時,觸發(fā)BUZZ信號,使其變?yōu)楦唠娖?,LED等亮,并且使三極管Q3導(dǎo)通驅(qū)動蜂鳴器,使蜂鳴器發(fā)聲,從而實(shí)現(xiàn)聲光報警。P1.7為高電平,報警燈亮。聲光報警電路如下圖所示: 圖13 聲光報警電路 2、軟件設(shè)計 2.1 軟件設(shè)計流程圖 溫濕度判斷控制模塊也是系統(tǒng)的核心模塊之一。所謂判斷控制模塊,就是對用戶輸

25、入的溫度和濕度與當(dāng)前溫室內(nèi)的實(shí)際溫濕度進(jìn)行比較,先進(jìn)行判斷,然后再進(jìn)行控制,控制模塊是決定系統(tǒng)將要進(jìn)行什么工作的。如溫度高于上限時需要降溫,低于下限時需要升溫,同時還要啟動警報等等。程序流程如圖14所示。 圖14 軟件流程圖 本流程分為溫度和適度監(jiān)控,我們以溫度的監(jiān)控為例闡述該流程:首先系統(tǒng)初始化由SHT11傳感器讀取環(huán)境溫度并自身將其轉(zhuǎn)換成數(shù)字信號,然后送入51單片機(jī),如果該數(shù)據(jù)低于預(yù)設(shè)最低值或高于預(yù)設(shè)最高值,則報警電路和控制電路將被接通,起到提醒和控制的作用,并將數(shù)據(jù)送入51單片機(jī),在LCD上顯示。如果溫度正常即處于預(yù)設(shè)范圍,則報警電路和控制電路不會動作,并將數(shù)據(jù)送入單片機(jī),在L

26、CD上顯示,之后進(jìn)入下次的監(jiān)控流程。濕度的監(jiān)控流程和溫度基本一致。 2.2 軟件設(shè)計程序 /*頭文件*/ 第 28 頁 #include<reg52.h> #include<intrins.h> #include<stdio.h> #include<math.h> #include<string.h> /*宏定義*/ #define uchar unsigned char #define uint unsigned int #define uiong unsigned long /*位聲明*/ sbit

27、 DAT=P1^5;//SHT11數(shù)據(jù) sbit SCK=P1^6;//SHT11時鐘 sbit lcden=P1^3;//LCD使能端 sbit lcdrs=P1^0;//lcd指令/數(shù)據(jù)寄存器選擇端 /*定義變量*/ uchar error;//全局錯誤變量 uchar ack;//全局應(yīng)答變量 uchar data_h;//數(shù)據(jù)高位 uchar data_l;//數(shù)據(jù)低位 int temp;//溫度顯值 int humi;//濕度顯值 int dis_buf[5];//顯示緩沖區(qū) /*定義數(shù)據(jù)表*/ uchar code dis1[]={"temp:&

28、quot;};//第一行顯示表頭 uchar code dis2[]={"Humi:"};//第二行顯示表頭 uchar code dis[]={"0123456789."};//顯示數(shù)值 /*定義溫濕度命令*/ #define TEMP_ML 0x03//000 0001 1 溫度命令 #define HUMI_ML 0x05//000 0010 1 濕度命令 /*延時函數(shù)*/ void delay(uint count) { uint i,j; for(i=count;i>0;i--) for(j=110;j>

29、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; for(i=0;i<9;i++) { SCK=1; S

30、CK=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,無為1 SCK=1;//第九個脈沖 _nop_();_nop_();

31、_nop_();//脈沖寬度為5us SCK=0;DAT=1;//釋放數(shù)據(jù)總線 data_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_();//脈沖寬度為5us SCK=0; DAT=1;//釋放數(shù)據(jù)總線 data_l=val; } /*寫一個字節(jié)并返回應(yīng)答

32、信號*/ 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 & 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

33、;//高電平表示未應(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)答 { sht11_rest();//復(fù)位 write(m1);//再次寫入 } for(i=0;i<55535;i++)//判斷是否處于忙狀態(tài) { if(DAT==0)//有應(yīng)答就退出 bre

34、ak; else disp(temp,0x06);//第一行顯示溫度 disp(humi,0x46);//第二行顯示濕度 } read();//度溫度或濕度 } /*溫度計算程序*/ 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計算 { temp_zi=0; } temp_zi=temp_zi*10;//保留一位 te

35、mp=(int)temp_zi;//溫度 /*溫度控制程序*/ if(temp>24||temp<15) { P1_7=1; } /*溫度報警電路程序*/ if(temp>32||temp<11) { BUZZ=1; } } /*濕度計算程序*/ 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

36、=((float)(temp)/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; } /*濕度報警電路程序*/ if(humi>60||humi<40) { BUZZ=1; } } void comp_temp_humi(void)//溫濕度處理 { error=0; ack=0; sht11_rest();//復(fù)位 measur

37、e(TEMP_ML);//測溫度 comp_temp();//計算溫度 measure(HUMI_ML);//測濕度 comp_humi();//計算濕度 } /*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);

38、 lcdrs=0;//RS=1;為寫命令 delay(5); P1=cmd;//寫入命令 delay(5); lcden=1;//上升沿寫入 delay(5); lcden=0; } void init_1602(void) { cmd_wrt(0x01);//清屏 cmd_wrt(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(st

39、art|0x80);//確保顯示在LCD上的位置 } /*數(shù)據(jù)處理程序*/ uchar dat_adj(int dat1) { uchar i; dis_buf[0]=(int)(dat1/1000);//千位 dis_buf[1]=(int)((dat1%1000)/100);//百位 dis_buf[2]=(int)((dat1%100)/10);//十位 dis_buf[3]=10;//小數(shù)點(diǎn) dis_buf[4]=(int)(dat1%10);//小數(shù)點(diǎn)后個位 for(i=0;i<2;i++) { if(dis_buf[i]!=0)//明確顯示位數(shù)

40、 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(dis[dis_buf[j]]);//寫顯示數(shù)據(jù) } void print(uchar *str) { while(*str!='\0')//直到字符串結(jié)束 { dat_wrt(*str); str++;//指向下一個字

41、符 } } /*主函數(shù)*/ void main() { P0=0; init_1602();//初始化液晶 lcd_start(0x00);//確定顯示起始位置 第一行 print(dis1);//顯示文字temp lcd_start(0x40);//確定顯示起始位置 第二行 print(dis2);//顯示文字humi while(1) { comp_temp_humi();//測溫濕度并轉(zhuǎn)換 //disp(temp,0x06);//第一行顯示溫度 //disp(humi,0x46);//第二行顯示濕度 } delay(200); }

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

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

44、比初期設(shè)計有了很大改進(jìn)。在讓我體會到了設(shè)計電路和編寫程序的艱辛的同時,更讓我體會到成功的喜悅和快樂。 六、附錄 元器件明細(xì)表: Comment Description Designator Footprint Quantity Buzzer 蜂鳴器 BZ1 RB.2/.4 1 20p Capacitor C1, C3, C6, C12 0805 4 100u Polarized Capacitor C2, C13, C18 C5*7C 3 0.1uF Capacitor C4, C5, C7, C8, C9, C10, C11, C14, C1

45、6, C19, C20, C21, C22, C23 0805 14 100nF Capacitor C15, C17 0805 2 10uF Polarized Capacitor CP1 C5*7C 1 47uF Polarized Capacitor (Radial) CP2, CP3, CP4, CP5 C5*7C 4 4148 穩(wěn)壓管 D1, D2, D3, D4, D5 1210 5 FUSE 保險絲 F1 1812 1 CON8 Connector J1, J2, J5, J6 SIP8 4 USB-B USB

46、B型插座 J3 USB2.0 1 RS-232 串口 J4 DB9/M 1 UART connect J7 HDR2X3 1 PWR Connector J8 BODUANKAIGUAN 1 LCD_CS Connector J10 SIP3 1 22uH Inductor L1, L2 DIANGAN 2 LCD1602 Connector LCD1 SIP16 1 LCD12864 Connector LCD2 SIP16 1 LED LED LED1, LED2, LED3, LED4 0805 4

47、Header 5X2A Header, 5-Pin, Dual row P1 HDR2X5_CEN 1 DIANYUAN battery P2 DIANYUAN 1 9012 三極管 Q1, Q3 SOT-23 2 9013 三極管 Q2 SOT-23 1 10K Resistor, 電阻 R1, R2, R18, R21, R26, R30 0805 6 Comment Description Designator Footprint Quantity 1K Resistor R3, R8, R9, R15, R16, R19,

48、 R20, R27, R31 0805 9 4.7K Resistor, 電阻 R4, R5, R6, R7, R10, R13 0805 6 18 Resistor R11, R12, R17 0805 3 10K Resistor R14 R14 1 100K Resistor R22, R23 0805 2 150K Resistor R24, R25 0805 2 256K Resistor R28, R29 0805 2 KEY Switch S1 BODUANKAIGUAN 1 SW-PB Switch

49、 S2 ANJIAN 1 AD 電路測試點(diǎn) TP1 TP-S 1 DA 電路測試點(diǎn) TP2 TP-S 1 STC89C52 單片機(jī) U1 DIP40 1 PL2303 USB-UART U2 SOL-28 1 PCF8591 AD/DA U3 SOJ-16 1 SHT11 傳感器 U4 SHT11 1 MAX1675EUA DC-DC Converter U5, U6 MOSP8 2 12MHz 晶振 Y1 XTAL1 1 11.0592MHz 晶振 Y2 XTAL1 1 七、參考文獻(xiàn) [1

50、] 楊振江 馮軍·單片機(jī)原理與實(shí)踐指導(dǎo)·北京:中國電力出版社 [2] 譚浩強(qiáng)·C程序設(shè)計(第三版)·北京:清華大學(xué)出版社 [3] 閻石·數(shù)字電子技術(shù)基礎(chǔ)(第四版)[M]·北京:高等教育出版社 [4] 呂東 彭鈞·濕度控制技術(shù)的智能化[J]·武漢化工學(xué)院學(xué)報 [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),我們立即給予刪除!