版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)論文</b></p><p><b> (2012 屆)</b></p><p> 基于單片機(jī)技術(shù)的數(shù)字溫濕度計(jì)設(shè)計(jì)</p><p> 學(xué)生姓名 </p><p> 學(xué) 號(hào) </p>&l
2、t;p> 分 院 </p><p> 專 業(yè) </p><p> 指導(dǎo)教師 </p><p> 完成日期 2012年3月 日 </p><p> 基于單片機(jī)技術(shù)的數(shù)字溫濕度計(jì)設(shè)計(jì)</p><p> 摘 要 本論文介紹了
3、一種以單片機(jī)為主要控制器件,以DHT91為溫濕度傳感器的數(shù)字溫濕度計(jì)。主要包括硬件電路的設(shè)計(jì)和軟件程序的設(shè)計(jì)。硬件電路主要包括主控制器,測(cè)溫濕度電路和顯示電路三部分組成。主控制器采用單片機(jī)AT89C52,溫濕度傳感器采用,顯示電路采用8位共陽(yáng)極LED數(shù)碼管,驅(qū)動(dòng)電路用八個(gè)PNP型的三極管(S9012)。軟件程序主要包括主程序,測(cè)溫濕度子程序,顯示子程序和按鍵子程序等。另外,還介紹了軟件的調(diào)試分析。 本設(shè)計(jì)中采用了溫濕度傳感器DH
4、T91作為檢測(cè)元件,該傳感器包括一個(gè)電容性聚合體測(cè)濕敏感元件、一個(gè)用能隙材料制成的測(cè)溫元件,并在同一芯片上,與14 位的A/D 轉(zhuǎn)換器以及串行接口電路實(shí)現(xiàn)無(wú)縫連接。因此,它具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、極高的性價(jià)比等優(yōu)點(diǎn)。每個(gè)傳感器芯片都在極為精確的濕度腔室中進(jìn)行標(biāo)定,在標(biāo)定的過(guò)程中使用。傳感器在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。兩線制的串行接口與內(nèi)部的電壓調(diào)整,使外圍系統(tǒng)集成變得快速而簡(jiǎn)單。微小的體積、極低的功耗。它具有
5、很好的發(fā)展前景。</p><p> 關(guān)鍵詞 溫濕度測(cè)量 AT89C52 DHT91</p><p><b> 目 錄</b></p><p> 第一章 數(shù)字溫濕度計(jì)的設(shè)計(jì)依據(jù)和意義1</p><p> 1.1 數(shù)字溫濕度計(jì)的設(shè)計(jì)依據(jù)1</p><p> 1.2 數(shù)字溫濕度計(jì)
6、的設(shè)計(jì)意義1</p><p> 第二章 總體設(shè)計(jì)要求及方案論證分析2</p><p> 2.1 總體設(shè)計(jì)要求2</p><p> 2.2 方案論證分析2</p><p> 2.2.1 方案論證2</p><p> 2.2.2 方案設(shè)計(jì)3</p><p> 2.3元器件
7、的選擇4</p><p> 2.3.1 主控制器芯片4</p><p> 2.3.2 數(shù)字溫濕度傳感器6</p><p> 2.4 驅(qū)動(dòng)顯示電路6</p><p> 2.5 溫濕度測(cè)量的方法及分析7</p><p> 第三章 硬件電路的設(shè)計(jì)9</p><p>
8、3.1主控制電路和測(cè)溫濕控制電路9</p><p> 3.2驅(qū)動(dòng)顯示電路10</p><p> 第四章 軟件設(shè)計(jì)及分析12</p><p> 4.1 DHT91傳輸時(shí)序和指令集12</p><p> 4.1.1 通訊復(fù)位時(shí)序12</p><p> 4.1.2 啟動(dòng)傳輸時(shí)序13</p&
9、gt;<p> 4.1.3 數(shù)據(jù)傳輸和指令集13</p><p> 4.1.4 濕度的測(cè)量時(shí)序14</p><p> 4.1.5 輸出轉(zhuǎn)換為物理量14</p><p> 4.1.6 DHT91的DC特性。16</p><p> 4.2 程序流程圖17</p><p> 4.
10、3 程序的設(shè)計(jì)18</p><p> 4.3.1 通訊復(fù)位子程序18</p><p> 4.3.2 傳輸啟動(dòng)子程序18</p><p> 4.3.3 一個(gè)字節(jié)子程序19</p><p> 4.3.4 讀一個(gè)字節(jié)子程序19</p><p> 4.3.5 數(shù)據(jù)處理子程序20</p&g
11、t;<p> 4.3.6 顯示子程序20</p><p> 4.3.7 按鍵子程序22</p><p> 4.3.8 中斷刷新顯示數(shù)碼管子程序23</p><p> 4.3.9 軟件在硬件上的調(diào)試分析24</p><p><b> 結(jié) 論26</b></p>&l
12、t;p><b> 致 謝27</b></p><p><b> 參考文獻(xiàn)28</b></p><p><b> 附 錄29</b></p><p><b> 引 言</b></p><p> 溫度和濕度的測(cè)量和控制是目前眾多行業(yè)
13、的重要工作目標(biāo)之一,可謂與我們的生活息息相關(guān)。無(wú)論是在工農(nóng)業(yè)生產(chǎn)、氣象部門(mén),還是在環(huán)保、國(guó)防、科研等方面,常需對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量和控制。現(xiàn)在準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。</p><p> 測(cè)量溫濕度的關(guān)鍵是溫濕度傳感器。過(guò)去測(cè)量溫度與濕度是分開(kāi)的,隨著技術(shù)的進(jìn)步及人們生活的需要出現(xiàn)了溫濕度傳感器。溫度傳感器的發(fā)展經(jīng)歷了3個(gè)階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、
14、智能集成溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式、從集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。濕度傳感器也是經(jīng)歷了這樣一個(gè)階段逐漸走向數(shù)字智能化。</p><p> 總之,本次設(shè)計(jì)運(yùn)用DHT91傳感器,結(jié)合其優(yōu)點(diǎn),將制作一個(gè)便攜式常用數(shù)字溫濕度計(jì),必定對(duì)生產(chǎn)方面有一定作用。</p><p> 第一章 數(shù)字溫濕度計(jì)的設(shè)計(jì)依據(jù)和意義</p><p> 1
15、.1 數(shù)字溫濕度計(jì)的設(shè)計(jì)依據(jù)</p><p> 溫度與濕度與人們的生活息息相關(guān)。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、國(guó)防、科研等部門(mén),經(jīng)常需要對(duì)環(huán)境溫度與濕度進(jìn)行測(cè)量及控制。準(zhǔn)確測(cè)量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關(guān)重要的。</p><p> 1.2 數(shù)字溫濕度計(jì)的設(shè)計(jì)意義</p><p> 傳統(tǒng)的溫度計(jì)是用水銀柱來(lái)顯示的,雖然結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜,但是它的精
16、確度不高,不易讀數(shù)。傳統(tǒng)的濕度計(jì)采用干濕球顯示法,不僅復(fù)雜而且測(cè)量精度不高。而采用單片機(jī)對(duì)溫濕度進(jìn)行控制,不僅具有控制方便,簡(jiǎn)單和靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的技術(shù)指標(biāo)。用LED來(lái)顯示溫濕度的數(shù)字看起來(lái)更加直觀。</p><p> DHT91傳感器具有超快響應(yīng),抗干擾能力強(qiáng),性價(jià)比高等優(yōu)點(diǎn)。DHT91傳感器可以直接讀出被測(cè)的溫濕度值。同時(shí)單片機(jī)可以把測(cè)量出的數(shù)據(jù)通過(guò)串口傳到計(jì)算機(jī)上,來(lái)完成工業(yè)中的自動(dòng)
17、控制,給工業(yè)生產(chǎn)帶來(lái)了極大的便利。用單片機(jī)控制的溫濕度計(jì)不僅硬件電路簡(jiǎn)單,而且測(cè)量精度比較高。用數(shù)碼管顯示測(cè)量值看起來(lái)比較美觀。</p><p> 無(wú)論在日常生活中還是在工業(yè)、農(nóng)業(yè)方面都不可避免的對(duì)周圍環(huán)境進(jìn)行溫濕度的測(cè)量。因此,研究溫濕度的控制和測(cè)量具有重要意義。</p><p> 第二章 總體設(shè)計(jì)要求及方案論證分析</p><p> 2.1 總體設(shè)計(jì)要
18、求</p><p> 設(shè)計(jì)一個(gè)以單片機(jī)為核心的溫濕度測(cè)量系統(tǒng),可實(shí)現(xiàn)的功能為:</p><p> ?。?)測(cè)量溫度值精度為±0.4℃,測(cè)量濕度值精確3%;</p><p> ?。?)系統(tǒng)允許的誤差范圍為1℃和1%以內(nèi);(3)系統(tǒng)可由用戶預(yù)設(shè)溫度值和濕度值,測(cè)溫范圍-40℃—+128℃,測(cè)濕范圍 0 —100%; </p><p>
19、; ?。?)超出預(yù)設(shè)值時(shí)系統(tǒng)會(huì)自動(dòng)報(bào)警,即發(fā)光二極管亮;</p><p> ?。?)系統(tǒng)采用數(shù)碼管顯示,能顯示設(shè)定溫濕度值和測(cè)得的實(shí)際溫濕度值。</p><p> {濕度精度(%RH) 溫度精度(°C@25)} </p><p> 2.2 方案論證分析</p><p>
20、 2.2.1 方案論證</p><p> 方案一,采用單片機(jī)AT89C51與SHTxx溫濕度傳感器相連組成外圍電路。</p><p> 方案二,采用DHT91數(shù)字溫濕度傳感器與單片機(jī)AT89C52相連外圍電路。</p><p> 經(jīng)過(guò)之前的知識(shí),我比較之后選擇采用第2個(gè)方案。由于采用DHT91數(shù)字溫濕度傳感器與單片機(jī)AT89C52相連外圍電路比較簡(jiǎn)單。DHT9
21、1數(shù)字溫濕度傳感器作為檢測(cè)元件,能夠同時(shí)測(cè)試溫度和濕度。這類傳感器不僅易于焊接,而且只有四針管腳,減少了外圍電路的設(shè)計(jì)。且AT89C52與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P 1.1/T2EX),這樣可以方便報(bào)警系統(tǒng)的設(shè)計(jì)。 所以,本次設(shè)計(jì)以DHT91數(shù)字溫濕度傳感器為例,介紹基于單片機(jī)的數(shù)字溫濕度計(jì)的設(shè)計(jì)。</p><p> 2.2.
22、2 方案設(shè)計(jì)</p><p> 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由5個(gè)模塊組成:主控制器,數(shù)字溫濕度傳感器,報(bào)警電路,按鍵電路及驅(qū)動(dòng)顯示電路。</p><p> 圖2-1 總體電路框圖</p><p> 主控制器的功能由單片機(jī)來(lái)完成,主要負(fù)責(zé)處理由數(shù)字溫濕度傳感器送來(lái)數(shù)據(jù),并把處理好的數(shù)據(jù)送向顯示模塊。數(shù)字溫濕傳感器主要用來(lái)采集周圍環(huán)境參數(shù),并把所采集來(lái)的參數(shù)
23、送向主控制器。按鍵電路主要用來(lái)完成單片機(jī)的復(fù)位操作和溫濕度初始值的設(shè)定。這里需要四個(gè)按鍵,一個(gè)用來(lái)完成單片機(jī)的復(fù)位操作,一個(gè)用來(lái)切換顯示的數(shù)據(jù)(是設(shè)定值還是實(shí)際測(cè)得的值),另外兩個(gè)分別用來(lái)設(shè)定初始溫度和初始濕度的個(gè)位和十位。報(bào)警電路就是用一個(gè)發(fā)光二極管來(lái)實(shí)現(xiàn)的,用來(lái)判斷周圍環(huán)境的溫度或者濕度是否超出設(shè)定值了,任何一個(gè)超出設(shè)定值發(fā)光二極管就會(huì)被點(diǎn)亮。驅(qū)動(dòng)顯示電路主要用來(lái)驅(qū)動(dòng)八位數(shù)碼管發(fā)光的。由于單片機(jī)的輸出電流太?。ㄖ挥袔缀涟玻┎荒茯?qū)使數(shù)
24、碼管發(fā)光,所以這里必須增加一個(gè)驅(qū)動(dòng)顯示模塊。</p><p><b> 2.3元器件的選擇</b></p><p> 2.3.1 主控制器芯片</p><p> 主控制器模塊選用單片機(jī)AT89C52。AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電平,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM
25、)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM ),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,32個(gè)可編程I/O口線, 3個(gè)16位定時(shí)/計(jì)數(shù)器, 低功耗空閑和掉電模式。功能強(qiáng)大的AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。</p><p> AT89C52共有6個(gè)中斷向量:兩個(gè)外中斷
26、(INT0和INT1),3個(gè)定時(shí)器中斷(定時(shí)器0, 1, 2),串行口中斷和四個(gè)雙向I/0口。</p><p> P0口:P0口是一組8位漏極開(kāi)路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門(mén)電路,對(duì)端口P0寫(xiě)“1”時(shí)可作為高阻抗輸入端用。</p><p> 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線
27、復(fù)位,應(yīng)為輸出驅(qū)動(dòng)級(jí)的漏極開(kāi)路,所以必須外接上拉電阻,否則不能正常工作。</p><p> P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTE邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(ILL)。</p><p> 表2-
28、1 P1.0和P1.1的第二功能</p><p> P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)端口P2寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(ILL)。</p><p> P3口:P3口是一組帶有內(nèi)部上拉電阻的8
29、位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)P3口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(ILL)。</p><p> 2.3.2 數(shù)字溫濕度傳感器</p><p> 測(cè)溫濕模塊選用數(shù)字溫濕度傳感器DHT91?,F(xiàn)今國(guó)內(nèi)外用的最多的溫濕度傳感器是SHTxx系列。不過(guò)很多客戶都反應(yīng)SHTxx不
30、方便手工焊接,很容易在焊接的時(shí)候,由于溫度過(guò)高造成傳感器直接損害,因此利用SHTxx傳感器重新在國(guó)內(nèi)封裝得到了DHT 9x系列。SHTxx系列單芯片傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專利的工業(yè)COMS過(guò)程微加工技術(shù)(CMOSens®),具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè)14位的A/D器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接,從而具有超
31、快響應(yīng),抗干擾能力強(qiáng),性價(jià)比高等優(yōu)點(diǎn)。</p><p> 2.4 驅(qū)動(dòng)顯示電路</p><p> 驅(qū)動(dòng)顯示模塊選用八位共陽(yáng)極數(shù)碼管和八個(gè)小功率放大三極管S9012。由于單片機(jī)的端口輸出電流太小,這里必須由外界電路來(lái)驅(qū)動(dòng)數(shù)碼管顯示。S9012就是用來(lái)驅(qū)動(dòng)這八位數(shù)碼管顯示的。</p><p> LED數(shù)碼管也稱半導(dǎo)體數(shù)碼管,是目前數(shù)字電路中最常用的顯示器件。它是
32、以發(fā)光二極管作段并按共陰極方式或共陽(yáng)極方式連接后封裝而成的。圖2-2所示是兩種LED數(shù)碼管的外形與內(nèi)部結(jié)構(gòu),+、-分別表示公共陽(yáng)極和公共陰極,a~g是7個(gè)段電極,DP為小數(shù)點(diǎn)。LED數(shù)碼管型號(hào)較多,規(guī)格尺寸也各異,顯示顏色有紅、綠、橙等。</p><p> LED數(shù)碼管的主要特點(diǎn)如下:</p><p> (1) 發(fā)光響應(yīng)時(shí)間極短(小于0.1μs),高頻特性好,單色性好,亮度高。<
33、/p><p> (2)能在低電壓、小電流條件下驅(qū)動(dòng)發(fā)光,能與CMOS、ITL電路兼容。 </p><p> (3) 壽命長(zhǎng),使用壽命在10萬(wàn)小時(shí)以上,甚至可達(dá)100萬(wàn)小時(shí)。成本低。 </p><p> (4)體積小,重量輕,抗沖擊性能好。</p><p> 因此它被廣泛用作數(shù)字儀器儀表、數(shù)控裝置、計(jì)算機(jī)的數(shù)顯器件。小電壓大電流的小功率放大
34、三極管S9012的放大倍數(shù)共分六級(jí):</p><p><b> D級(jí):64-91 </b></p><p> E級(jí):78-112 </p><p> F級(jí):96-135 </p><p> G級(jí):112-166 </p><p> H級(jí):144-220 </p><p
35、> I級(jí):190-300</p><p> 2.5 溫濕度測(cè)量的方法及分析</p><p> DHT91是一個(gè)兩線串行接口的數(shù)字溫濕度傳感器,一個(gè)接口是時(shí)鐘線,一個(gè)接口是數(shù)據(jù)線(支持雙向傳輸)。它是四針單排封裝,一個(gè)接電源,一個(gè)接地線,另兩個(gè)直接和單片機(jī)的P0_5和P0_6相連。不過(guò)數(shù)據(jù)線和時(shí)鐘線上需要接兩個(gè)10K的上拉電阻,因?yàn)锳T89C52的P0口內(nèi)部沒(méi)有上拉電阻。單片機(jī)
36、通過(guò)P0_5和P0_6向DHT91發(fā)送命令,DHT91接收到命令后做出相應(yīng)的應(yīng)答。由于DHT91內(nèi)部包含一個(gè)14位A/D轉(zhuǎn)換器,所以單片機(jī)接收到就是數(shù)字信號(hào),只需要做相應(yīng)的處理就能得到所需要的數(shù)據(jù)。這里減少了很多外部的電路的連接,用起來(lái)比較方便。</p><p> 第三章 硬件電路的設(shè)計(jì) </p><p> 3.1主控制電路和測(cè)溫濕控制電路</p><p>
37、 本次硬件設(shè)計(jì)的核心就是AT89C52,其他部件都是圍繞它設(shè)計(jì)的。數(shù)字溫濕度傳感器DHT91的DATA口和SCK口分別與AT89C52的P0_5口和P0_6口相連。因?yàn)镻0口內(nèi)部沒(méi)有上拉電阻,所以這里在DATA和SCK傳輸線上分別加了一個(gè)10K的上拉電阻。預(yù)置數(shù)電路就是三個(gè)按鍵分別與AT89C52的P0_1,P0_2和P0_3口相連,為了降低AT89C52的功耗在按鍵和單片機(jī)的端口間加了個(gè)10K的限流電阻。當(dāng)有按鍵按下時(shí)單片機(jī)收到有效的
38、信號(hào),S1鍵用來(lái)切換顯示的模式(分別顯示實(shí)際所測(cè)得的溫濕度,預(yù)置的溫度值和預(yù)置的濕度值),S2鍵用來(lái)設(shè)置初始溫度或者濕度的十位,S3鍵用來(lái)設(shè)置初始溫度或者濕度的個(gè)位。報(bào)警電路就是把個(gè)發(fā)光二極管和AT89C52的P0_4口相連,當(dāng)P0_4口為低電平時(shí)放光二極管被點(diǎn)亮。發(fā)光二極管的壓降一般為1.5—2.0 V,其工作電流一般取10—20 mA為宜。使用LED作指示電路時(shí),應(yīng)該串接限流電阻,該電阻的阻值大小應(yīng)根據(jù)不同的使用電壓和LED所需工作
39、電流來(lái)選擇。這個(gè)電流能使放光二極管正常放光。如果電流小于10mA放光二極管的亮度會(huì)減弱,如果電流大于20mA發(fā)光二極管亮度</p><p> 單片機(jī)復(fù)位有兩種:一種是上電復(fù)位,一種是按鍵復(fù)位。下圖用的就是按鍵復(fù)位,當(dāng)按鍵按下時(shí)單片機(jī)的RST口從低電平變?yōu)楦唠娖?,從而進(jìn)入復(fù)位狀態(tài)。當(dāng)按鍵松開(kāi)后,VCC給電容C3充電,從而把RST口拉至電平,單片機(jī)進(jìn)入工作狀態(tài)。只要把下圖的RESET按鍵和R2電阻去掉就成了上電復(fù)位
40、了。</p><p> AT89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器構(gòu)成自激振蕩器。外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路,對(duì)外接電容C1、C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及
41、溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF士10pF,而如果使用陶瓷諧振器,建議選擇40pF士l0pF。這里用到的是12M的石英晶體振蕩器和兩個(gè)30pF的電容。</p><p><b> 3.2驅(qū)動(dòng)顯示電路</b></p><p> 數(shù)碼管的顯示有兩種方法:一種是靜態(tài)顯示,一種是動(dòng)態(tài)掃描顯示。靜態(tài)顯示就是數(shù)碼管的段選端一對(duì)一與單片機(jī)的I/O相連,位選端
42、則根據(jù)數(shù)碼管的極型來(lái)接地(GND)或者是高電平(VCC)。靜態(tài)顯示實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,但是浪費(fèi)了單片機(jī)的I/O口資源。動(dòng)態(tài)掃描顯示就是幾個(gè)數(shù)碼管的段選端可以同時(shí)接到單片機(jī)的I/O口,位選端一對(duì)一的接到單片機(jī)的其它I/O口,當(dāng)位選信號(hào)選中某個(gè)數(shù)碼管時(shí),那個(gè)數(shù)碼管就被點(diǎn)亮,而其它數(shù)碼管不亮。動(dòng)態(tài)掃描顯示節(jié)省了單片機(jī)的I/O資源。</p><p> 采用動(dòng)態(tài)顯示方案,設(shè)計(jì)中使用八個(gè)共陰極數(shù)碼管作為顯示載體,通過(guò)八路并口
43、傳輸,共使用了十六個(gè)I/O口。顯示時(shí)采用循環(huán)移位法,即八位數(shù)碼管依次循環(huán)點(diǎn)亮,利用人眼睛的視覺(jué)暫留效果達(dá)到連續(xù)顯示,主程序每運(yùn)行一遍便調(diào)用一次顯示子程序,將數(shù)據(jù)顯示出來(lái)。顯示部分為八位共陽(yáng)極數(shù)碼管(四位一組),數(shù)碼管的段端A,B,C,D,E,F,G和DP與TA89C52的P1口相連,順序可以根據(jù)硬件接線方便而定。數(shù)碼管的字段通過(guò)八個(gè)PNP型的小功率放大三極管S9012與TA89C52的P2口相連。因?yàn)锳T89C52的端口輸出電流太?。ㄖ?/p>
44、有幾mA)不能點(diǎn)亮這八位數(shù)碼管,所以這里用了八個(gè)S9012來(lái)驅(qū)動(dòng)它們。具體原理圖見(jiàn)附錄一。</p><p> 第四章 軟件設(shè)計(jì)及分析</p><p> 4.1 DHT91傳輸時(shí)序和指令集</p><p> 4.1.1 通訊復(fù)位時(shí)序</p><p> 圖4-1通訊復(fù)位時(shí)序</p><p> 串行時(shí)鐘輸入
45、(SCK)用于微處理器與DTH91之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK 頻率。串行數(shù)據(jù) (DATA) 三態(tài)門(mén)用于數(shù)據(jù)的讀取。DATA 在SCK 時(shí)鐘下降沿到來(lái)之后改變狀態(tài),并僅在SCK 時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK 時(shí)鐘高電平時(shí),DATA 必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA 在低電平。需要一個(gè)外部的上拉電阻(例如:10kΩ)將信號(hào)提拉至高電平。</p><p&g
46、t; 如果與DTH91 通訊中斷,下列信號(hào)時(shí)序可以復(fù)位串口:當(dāng)DATA 保持高電平時(shí),觸發(fā)SCK 時(shí)鐘9 次或更多。這些時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。</p><p> 4.1.2 啟動(dòng)傳輸時(shí)序</p><p> 圖4-2啟動(dòng)傳輸時(shí)序</p><p> 用一組“啟動(dòng)傳輸”時(shí)序,來(lái)表示數(shù)據(jù)傳輸?shù)某跏蓟?。它包括:?dāng)SCK 時(shí)鐘高電平時(shí)DATA 翻轉(zhuǎn)為
47、低電平,緊接著SCK 變?yōu)榈碗娖剑S后是在SCK 時(shí)鐘高電平時(shí)DATA 翻轉(zhuǎn)為高電平。在下一次指令前,發(fā)送一個(gè)“傳輸啟動(dòng)”時(shí)序。啟動(dòng)傳輸時(shí)序如上圖4-2所示。</p><p> 4.1.3 數(shù)據(jù)傳輸和指令集</p><p> 后續(xù)命令包含三個(gè)地址位(目前只支持“000”),和五個(gè)命令位。DTH 91 會(huì)以下述方式表示已正確地接收到指令:在第8個(gè)SCK 時(shí)鐘的下降沿之后,將DATA 下
48、拉為低電平(ACK 位)。在第9個(gè)SCK 時(shí)鐘的下降之后,釋放DATA(恢復(fù)高電平)。發(fā)布一組測(cè)量命令(‘00000101 ’表示相對(duì)濕度RH,‘00000011 ’表示溫度T)后,控制器要等待測(cè)量結(jié)束。這個(gè)過(guò)程需要大約20/80/320ms ,分別對(duì)應(yīng)8/12/14bit 測(cè)量。確切時(shí)間隨內(nèi)部晶振速度的變化而變化,最多可能有-30%的變化。DTH91 通過(guò)下拉DATA 至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束??刂破髟谠俅斡|發(fā)SCK 時(shí)
49、鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號(hào)來(lái)讀出數(shù)據(jù)。檢測(cè)數(shù)據(jù)可以先被存儲(chǔ),這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀出數(shù)據(jù)。接著傳輸2個(gè)字節(jié)的測(cè)量數(shù)據(jù)和1個(gè)字節(jié)的CRC 奇偶校驗(yàn)。uC 需要通過(guò)下拉DATA 為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從MSB開(kāi)始,右值有效(例如:對(duì)于12bit 數(shù)據(jù),從第5個(gè)SCK 時(shí)鐘起算作MSB;而對(duì)于 8bit 數(shù)據(jù),首字節(jié)則無(wú)意義)。</p><p> 用CRC 數(shù)據(jù)的確認(rèn)位,表明
50、通訊結(jié)束。如果不使用CRC-8 校驗(yàn),控制器可以在測(cè)量值LSB 后,通過(guò)保持確認(rèn)位ack 高電平,來(lái)中止通訊。在測(cè)量和通訊結(jié)束后,DTH91自動(dòng)轉(zhuǎn)入休眠模式。</p><p> 4.1.4 濕度的測(cè)量時(shí)序</p><p> 圖4-3測(cè)量濕度的時(shí)序</p><p> 4.1.5 輸出轉(zhuǎn)換為物理量</p><p> 由能隙材料PTAT
51、 (正比于絕對(duì)溫度) 研發(fā)的溫度傳感器具有極好的線性。</p><p> 為了補(bǔ)償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),建議使用如下公式1修正輸出數(shù)值:</p><p> RHlinear = c1 + c2 .SORH + c3 .SORH (4-1)</p><p> c1,c2和c3值如下表4-1所示。</p>
52、<p> 表4-1 濕度轉(zhuǎn)換系數(shù)</p><p> 濕度傳感器相對(duì)濕度的溫度補(bǔ)償實(shí)際測(cè)量溫度與25℃ (-77℉)相差較大時(shí),應(yīng)考慮濕度傳感器的溫度修正系數(shù):</p><p> RHtrue = (T°C -25).(t1 + t2 .SORH) + RHlinear</p><p> t1和t2的值如下表4-2所示。</p&g
53、t;<p> 表4-2 溫度補(bǔ)償系數(shù)</p><p> RHtrue:測(cè)量的濕度值。</p><p> 4.1.6 DHT91的DC特性。</p><p> DHT91的DC特性如下表4-3所示。</p><p> 表4-3 DHT91的DC特性</p><p> 4.2 程序流程圖<
54、;/p><p> 圖4-4主程序流程圖</p><p> 圖4-5報(bào)警程序流程圖</p><p> 4.3 程序的設(shè)計(jì)</p><p> 4.3.1 通訊復(fù)位子程序</p><p> void s_connectionreset(void)</p><p><b> {&l
55、t;/b></p><p> unsigned char i;</p><p><b> DATA=1;</b></p><p><b> SCK=0;</b></p><p> for(i=0;i<9;i++)</p><p><b> {&
56、lt;/b></p><p><b> SCK=1;</b></p><p><b> SCK=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> 通訊復(fù)位子程
57、序用來(lái)復(fù)位串口的,當(dāng)傳輸中斷或者傳輸過(guò)程中發(fā)生了錯(cuò)誤時(shí)就需要從新對(duì)串口進(jìn)行復(fù)位操作。</p><p> 4.3.2 傳輸啟動(dòng)子程序</p><p> void s_transstart(void)</p><p><b> {</b></p><p><b> DATA=1;</b><
58、;/p><p><b> SCK=0;</b></p><p><b> _nop_();</b></p><p><b> SCK=1;</b></p><p><b> _nop_();</b></p><p><b&
59、gt; DATA=0;</b></p><p><b> _nop_();</b></p><p><b> SCK=0;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b>
60、</p><p><b> _nop_();</b></p><p><b> SCK=1;</b></p><p><b> _nop_();</b></p><p><b> DATA=1;</b></p><p>&l
61、t;b> _nop_();</b></p><p><b> SCK=0;</b></p><p><b> }</b></p><p> 傳輸啟動(dòng)子程序是用來(lái)表示數(shù)據(jù)傳輸?shù)某跏蓟?。每次?duì)傳感器進(jìn)行寫(xiě)命令或者讀命令前先進(jìn)行以上程序方可。</p><p> 4.3.3 一
62、個(gè)字節(jié)子程序</p><p> char s_write_byte(unsigned char value)</p><p><b> {</b></p><p> unsigned char i,error=0;</p><p> for(i=0x80;i>0;i/=2)</p><p
63、><b> {</b></p><p> if(i&value)</p><p><b> DATA=1;</b></p><p><b> else</b></p><p><b> DATA=0;</b></p>
64、<p><b> SCK=1;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> SC
65、K=0;</b></p><p><b> }</b></p><p><b> DATA=1;</b></p><p><b> SCK=1;</b></p><p> error=DATA;</p><p><b>
66、SCK=0;</b></p><p> return error;</p><p><b> }</b></p><p> 可以通過(guò)寫(xiě)一個(gè)字節(jié)子程序?qū)鞲衅鬟M(jìn)行寫(xiě)指令操作。若想讀出濕度值就向傳感器寫(xiě)入‘00000101’如想讀出溫度值就向傳感器寫(xiě)入‘00000011’。</p><p> 4.3.4
67、 讀一個(gè)字節(jié)子程序</p><p> char s_read_byte(unsigned char ack)</p><p><b> {</b></p><p> unsigned char i,val=0;</p><p><b> DATA=1;</b></p><
68、p> for(i=0x80;i>0;i/=2)</p><p><b> {</b></p><p><b> SCK=1;</b></p><p><b> if(DATA) </b></p><p><b> {</b></
69、p><p> val=(val|i);</p><p><b> }</b></p><p><b> SCK=0;</b></p><p><b> }</b></p><p> DATA=!ack;</p><p>&l
70、t;b> SCK=1;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> SCK=0;</b&
71、gt;</p><p> DATA=1; </p><p> return val;</p><p><b>
72、; }</b></p><p> 通過(guò)讀一個(gè)字節(jié)子程序從傳感器讀出溫度值或濕度值,把相應(yīng)的數(shù)據(jù)送到單片機(jī)的寄存器中。</p><p> 4.3.5 數(shù)據(jù)處理子程序</p><p> void calc_sth11(float *p_humidity,float *p_temperature)</p><p><b&
73、gt; {</b></p><p> const float C1=-4.0;</p><p> const float C2=0.0405;</p><p> const float C3=-0.0000028;</p><p> const float T1=0.01;</p><p> c
74、onst float T2=0.00008;</p><p> float rh=*p_humidity;</p><p> float t=*p_temperature;</p><p> float rh_lin;</p><p> float rh_true;</p><p> float t_c;&l
75、t;/p><p> t_c=t*0.01-40;</p><p> rh_lin=C3*rh*rh+C2*rh+C1;</p><p> rh_true=(t_c-25)*(T1+T2*rh)+rh_lin;</p><p> if(rh_true<0.1) rh_true=0.1;</p><p> *p
76、_temperature=t_c;</p><p> *p_humidity=rh_true;</p><p><b> }</b></p><p> 把從傳感器讀出的二進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù)。</p><p> 4.3.6 顯示子程序</p><p> void display(
77、float humi,float temp)</p><p><b> {</b></p><p> int humi1,temp1;</p><p> humi1=(humi*10); </p><p> temp1=(temp*10);</p><p> if(temp1<0)
78、</p><p><b> {</b></p><p> dispbuf[0]=10;</p><p> temp1=abs(temp1);</p><p><b> }</b></p><p><b> else</b></p>
79、<p><b> {</b></p><p> dispbuf[0]=11;</p><p><b> }</b></p><p> if(cnt==0)</p><p><b> {</b></p><p> dispbuf[1
80、]=temp1/100;</p><p> dispbuf[2]=temp1/10%10;</p><p> dispbuf[3]=temp1%10;</p><p> dispbuf[4]=11;</p><p> dispbuf[5]=humi1/100;</p><p> dispbuf[6]=humi
81、1/10%10;</p><p> dispbuf[7]=humi1%10;</p><p> if((humi>humiset)||(temp>tempset))</p><p><b> {</b></p><p><b> P0_4=0;</b></p>&l
82、t;p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> P0_4='Z';</b></p><p><b> }</b>
83、</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(cnt==1)</p><p><b> {</b></p>
84、<p> if(temph>9)</p><p><b> {</b></p><p> dispbuf[0]=10;</p><p><b> }</b></p><p><b> else</b></p><p><b
85、> {</b></p><p> dispbuf[0]=11;</p><p><b> }</b></p><p> dispbuf[1]=temph%10;</p><p> dispbuf[2]=templ%10;</p><p> dispbuf[3]=11;
86、</p><p> dispbuf[4]=11;</p><p> dispbuf[5]=11;</p><p> dispbuf[6]=11;</p><p> dispbuf[7]=11;</p><p><b> }</b></p><p><b>
87、; else</b></p><p><b> {</b></p><p> dispbuf[0]=11;</p><p> dispbuf[1]=11;</p><p> dispbuf[2]=11;</p><p> dispbuf[3]=11;</p>
88、<p> dispbuf[4]=11;</p><p> dispbuf[5]=humih%10;</p><p> dispbuf[6]=humil%10;</p><p> dispbuf[7]=11;</p><p><b> }</b></p><p><b>
89、; }</b></p><p><b> }</b></p><p> 當(dāng)cnt=0時(shí)數(shù)碼管顯示實(shí)際的溫濕度值,當(dāng)cnt=1時(shí)數(shù)碼管顯示設(shè)定溫度值,當(dāng)cnt=2時(shí)數(shù)碼管顯示設(shè)定濕度值。</p><p> 4.3.7 按鍵子程序</p><p> void key()</p><
90、p><b> {</b></p><p> if(P0_0==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_
91、0==0)</p><p><b> {</b></p><p><b> cnt++;</b></p><p><b> if(cnt>2)</b></p><p><b> {</b></p><p><b&
92、gt; cnt=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> while(P0_0==0);</p><p><b> }</b></p><p> if(cnt==1
93、)</p><p><b> {</b></p><p> if(P0_1==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p>
94、<p> if(P0_1==0)</p><p><b> {</b></p><p><b> temph++;</b></p><p> if(temph==15)</p><p><b> {</b></p><p><b
95、> temph=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> while(P0_1==0);</p><p><b> }</b></p><p> if(P0_
96、2==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_2==0)</p><p><b> {</b></p&g
97、t;<p><b> templ++;</b></p><p> if(templ==10)</p><p><b> {</b></p><p><b> templ=0;</b></p><p><b> }</b></p
98、><p><b> }</b></p><p> while(P0_2==0);</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p>&
99、lt;p> if(cnt==2)</p><p><b> {</b></p><p> if(P0_1==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>
100、0;j--);</p><p> if(P0_1==0)</p><p><b> {</b></p><p><b> humih++;</b></p><p> if(humih==10)</p><p><b> {</b></p&
101、gt;<p><b> humih=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> while(P0_1==0);</p><p><b> }</b></p>
102、<p> if(P0_2==0)</p><p><b> {</b></p><p> for(i=5;i>0;i--)</p><p> for(j=248;j>0;j--);</p><p> if(P0_2==0)</p><p><b>
103、{</b></p><p><b> humil++;</b></p><p> if(humil==10)</p><p><b> {</b></p><p><b> humil=0;</b></p><p><b>
104、 }</b></p><p><b> }</b></p><p> while(P0_2==0);</p><p><b> }</b></p><p><b> }</b></p><p> if(temph<10)&l
105、t;/p><p><b> {</b></p><p> tempset=temph*10+templ;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&
106、lt;/p><p> tempset=(10-temph)-templ;</p><p><b> }</b></p><p> humiset=humih*10+humil;</p><p><b> }</b></p><p> S1鍵對(duì)應(yīng)P0_0,S2鍵對(duì)應(yīng)P0_
107、1,S3鍵對(duì)應(yīng)P0_2。每按一次S1鍵,變量cnt加1,當(dāng)cnt>2時(shí)cnt=0。當(dāng)cnt=1時(shí)每按一次S2鍵,temph加1,當(dāng)temph>14時(shí)temph=0,當(dāng)temph為10,11,12,13,14時(shí)分別對(duì)應(yīng)的是-,-1,-2,-3,-4,每按一次S3鍵,templ加1,當(dāng)templ>9時(shí)templ=0。當(dāng)cnt=2時(shí)S2,S3鍵調(diào)的是humih和humil。</p><p> 4.3
108、.8 中斷刷新顯示數(shù)碼管子程序</p><p> void t0(void) interrupt 1 </p><p><b> {</b></p><p><b> mstcnt++;</b></p><p> if(mstcnt==8)</p><p><
109、b> {</b></p><p><b> mstcnt=0;</b></p><p> if((dispbitcnt==2)||(dispbitcnt==6))</p><p><b> {</b></p><p> P1=dispcode[dispbuf[dispbi
110、tcnt]]&0xfb;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> P1=dispcode[dispbuf[dispbitcnt]];</p><
111、p><b> }</b></p><p> P2=dispbitcode[dispbitcnt];</p><p> dispbitcnt++;</p><p> if(dispbitcnt==8)</p><p><b> {</b></p><p> d
112、ispbitcnt=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 每2mS刷新數(shù)碼管一次,人眼的視覺(jué)暫留時(shí)間大概是0.1S,所以可以讓人感覺(jué)到每個(gè)數(shù)碼管都在顯示。第三和七個(gè)數(shù)碼管
113、分別為溫度和濕度的個(gè)位,所以讓這兩個(gè)數(shù)碼管的小數(shù)點(diǎn)位一直顯示。</p><p> 4.3.9 軟件在硬件上的調(diào)試分析</p><p> 軟件在Keil里編譯通過(guò)以后還得在硬件電路上調(diào)試,讓數(shù)碼管顯示正確的溫濕度值,按鍵能夠設(shè)定初始值,led發(fā)光二極管能夠指示報(bào)警,這些功能都實(shí)現(xiàn),本設(shè)計(jì)才能算基本完成。硬件電路是我本著連線簡(jiǎn)單的原則焊接的,數(shù)碼管的段選信號(hào)端(A,B,C,D,E,F,G
114、,DP)并不是與單片機(jī)的P1口(從0-7)正好相互對(duì)應(yīng)的。所以這里我們需要對(duì)數(shù)碼管所要顯示的0,1,2,3,4,5,6,7,8,9,-和“不顯示”從新編碼。在開(kāi)始調(diào)試的時(shí)候我就忽略了這一點(diǎn),我用的是資料書(shū)中常用到那種,所以數(shù)碼管顯示的是亂碼。我以為是硬件電路出了錯(cuò)誤,我用萬(wàn)用表把每根線從新測(cè)了一遍,發(fā)現(xiàn)硬件電路一切正常啊。這時(shí)我才忽然想到,是編碼這邊出現(xiàn)了錯(cuò)誤。我根據(jù)硬件的連線從新對(duì)0,1,2,3,4,5,6,7,8,9,-和“不顯示”
115、進(jìn)行了編碼。顯示的數(shù)值還是不正確,但是數(shù)碼管中顯示的數(shù)和我想要顯示的數(shù)有幾分相似。在編碼時(shí)我又忽略的一點(diǎn),我們總是習(xí)慣性的從左往右寫(xiě)數(shù),我就在紙上從左往右一次寫(xiě)了P1_0, P1_1,P1_2, P1_3, P1_4, P1_5, P1_6和 P1_7 。所以編出的結(jié)果與實(shí)際所要的結(jié)果高位與低位正好錯(cuò)了位置。</p><p> 這次畢業(yè)設(shè)計(jì)讓我認(rèn)識(shí)到了一般的設(shè)計(jì)流程以及設(shè)計(jì)中所要注意到的一些細(xì)節(jié)。在設(shè)計(jì)開(kāi)始,應(yīng)
116、該先要認(rèn)識(shí)到這次設(shè)計(jì)所要完成的功能。接著大致分析一下所要用到的元器件。總體思路清晰以后就要畫(huà)原理圖。根據(jù)原理圖焊接電路板,焊接的時(shí)候應(yīng)該怎樣布線簡(jiǎn)單怎樣焊接,盡量達(dá)到布線少,布線短,跳線少,美觀大方。硬件電路沒(méi)有任何問(wèn)題后就可以根據(jù)我們所設(shè)計(jì)好的電路進(jìn)行軟件編程了。</p><p><b> 結(jié) 論</b></p><p> 本次單片機(jī)的數(shù)字溫濕度的設(shè)計(jì),包括硬
117、件和軟件設(shè)計(jì)兩部分。我先是在軟件上完全做好的基礎(chǔ)上再實(shí)行硬件電路的設(shè)計(jì)。</p><p> 在軟件設(shè)計(jì)過(guò)程中我是先編出數(shù)字鐘控制程序后,我才開(kāi)始根據(jù)DHT91的時(shí)序圖進(jìn)行軟件的編寫(xiě)程序。在軟件設(shè)計(jì)過(guò)程中我也遇到了問(wèn)題,經(jīng)過(guò)xx老師的指點(diǎn)和同學(xué)之間的討論,終于解決并學(xué)到了編程技巧及一些編程思想。由于材料有限,本設(shè)計(jì)中的有些電容和電阻的數(shù)值并不是原理圖中設(shè)計(jì)的大小,但是不影響結(jié)果。在畫(huà)原理圖和制作PCB版圖的過(guò)程中
118、我熟練掌握了ALTIUM designer的基本應(yīng)用。在制作PCB版圖方面,我的PCB版圖在布線方面還不夠完美,但是我會(huì)不斷努力爭(zhēng)取做的更好。</p><p> 經(jīng)過(guò)軟件在硬件電路上的調(diào)試后,基本功能都能實(shí)現(xiàn)。溫度和濕度都是顯示到小數(shù)點(diǎn)后一位。如果手放到數(shù)字溫濕度傳感器DTH 91上,數(shù)碼管上顯示的溫度和濕度會(huì)立即發(fā)生變化,測(cè)出其溫度和濕度。</p><p> 本電路還是存在一些不足及
119、需要改進(jìn)的地方,如可以加計(jì)算機(jī)串口傳輸,掉電存儲(chǔ)等模塊。</p><p><b> 致 謝</b></p><p> 本畢業(yè)設(shè)計(jì)是在xx老師的精心指導(dǎo)下完成,首先我要對(duì)xx老師表示最真誠(chéng)的謝意。在論文設(shè)計(jì)這幾個(gè)月來(lái)的學(xué)習(xí)過(guò)程中xx老師在設(shè)計(jì)上給予我耐心的指導(dǎo),同時(shí)我也學(xué)會(huì)了如何把專業(yè)知識(shí)應(yīng)用于實(shí)際當(dāng)中,為今后走上工作崗位打下了堅(jiān)實(shí)的基礎(chǔ)。</p>
120、<p> 在我即將結(jié)束大學(xué)學(xué)習(xí)之際,我真心感謝三年來(lái)所有教過(guò)我的老師們,謝謝你們給予我的指導(dǎo)和關(guān)懷;同時(shí)我也感謝三年來(lái)在一起學(xué)習(xí)、生活的同窗好友們,謝謝你們給予我的照顧和關(guān)心。</p><p> 畢業(yè)設(shè)計(jì)結(jié)束后,我將踏上工作崗位,三年時(shí)間學(xué)習(xí)到的知識(shí)與經(jīng)驗(yàn)將成為我走向崗位的墊腳石。相信我定會(huì)更加努力拼搏,創(chuàng)造出我的世界。</p><p> 最后,懇請(qǐng)所有讀到本畢業(yè)設(shè)計(jì)的老師
121、多提寶貴意見(jiàn),不吝賜教。</p><p> 再次表示衷心的感謝!</p><p><b> 參考文獻(xiàn)</b></p><p> 靳桅,潘育山,鄔芝權(quán).單片機(jī)原理及應(yīng)用.西南交通大學(xué)出版社,2002.</p><p> 李光飛,樓然苗,胡佳文等.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京:北京航空航天大學(xué)出版社,2004.<
122、;/p><p> 凌玉華.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì).長(zhǎng)沙:中南大學(xué)出版社,2006.</p><p> 劉華東.單片機(jī)原理與應(yīng)用.北京:電子工業(yè)出版社,2003.</p><p> 高鵬,安濤,寇懷成等.電路設(shè)計(jì)與制版--Protel99入門(mén)與提高.北京:人民郵電出版社,2004.</p><p> 王守剛.電路原理圖與電路板設(shè)計(jì)教程.北
123、京:北京希望電子出版社,2000.</p><p> 姚四改.Protel99SE電子線路設(shè)計(jì)教程.上海:上海交通大學(xué)出版社,2000.</p><p> 余家春.Protel99SE電路設(shè)計(jì)實(shí)用教程.北京:中國(guó)鐵道出版社,2004.</p><p> 肖金球.單片機(jī)原理與接口技術(shù).北京:清華大學(xué)出版社,2004.</p><p>
124、余永權(quán).FLASH單片機(jī)原理及應(yīng)用.北京: 電子工業(yè)出版社,1997.</p><p> 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京: 北京航空航天大學(xué)出版社,1996.</p><p><b> 附 錄</b></p><p><b> 附錄1 電路原理圖</b></p><p> 附錄2 元器
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)-- 單片機(jī)的溫濕度計(jì)設(shè)計(jì)
- 數(shù)字溫濕度計(jì)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)--數(shù)字溫濕度計(jì)的設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的室內(nèi)溫濕度計(jì)的設(shè)計(jì)
- 單片機(jī)溫濕度畢業(yè)設(shè)計(jì)
- 數(shù)字溫濕度計(jì)--硬件設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)(論文)+基于msp430單片機(jī)的便攜式溫濕度計(jì)設(shè)計(jì)與開(kāi)發(fā)
- 畢業(yè)設(shè)計(jì)--多功能空氣溫濕度計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)--多功能空氣濕度計(jì)設(shè)計(jì)
- 基于單片機(jī)的溫濕度檢測(cè)儀【畢業(yè)設(shè)計(jì)】
- 單片機(jī)無(wú)線溫濕度測(cè)量系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的倉(cāng)庫(kù)溫濕度檢測(cè)系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的大棚溫濕度光強(qiáng)監(jiān)測(cè)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的溫濕度控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 多功能溫濕度計(jì)設(shè)計(jì)畢業(yè)論文
- 多功能溫濕度計(jì)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的倉(cāng)庫(kù)溫濕度檢測(cè)系統(tǒng)
- 畢業(yè)設(shè)計(jì)_基于單片機(jī)的環(huán)境溫濕度檢測(cè)系統(tǒng)
- 基于單片機(jī)的溫濕度監(jiān)測(cè)與控制畢業(yè)設(shè)計(jì)
- 單片機(jī)的溫濕度檢測(cè)儀畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論