畢業(yè)設(shè)計(jì)--基于單片機(jī)技術(shù)的數(shù)字溫濕度計(jì)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論