版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、浙江工業(yè)職業(yè)技術學院畢業(yè)論文(2012 屆)學生姓名學號分院專業(yè)扌旨導教師 完成日期 2012年3月s基于單片 機技術的數(shù)字 溫濕度計 設計摘 要 本論文介紹了一種以單片機為主要控制器件,以dht91為溫濕度傳感器的數(shù)字溫濕度計。主要包括硬件電路的設計和軟件程序的設計。硬件電路主要包括主控制器,測溫濕度電路和顯示電路三部分組成。主控制器采用單片機at89c52 ,溫濕度傳感器采用,顯示電路采用位共陽極led數(shù)碼管,驅動電路用八個 pnp型的三極管(s9012)。軟件程序主要包括主程序,測溫濕度子程序,顯示子程序和按鍵子程序等。另外,還介紹了軟件的調試分析。本設計中采用了溫濕度傳感器 dht91
2、作為檢測元件,該傳感器包括一個 電容性聚合體測濕敏感元件、一個用能隙材料制成的測溫元件,并在同一芯片上, 與14位的a/d轉換器以及串行接口電路實現(xiàn)無縫連接。因此,它具有品質卓 越、超快響應、抗干擾能力強、極高的性價比等優(yōu)點。每個傳感器芯片都在極為 精確的濕度腔室中進行標定,在標定的過程中使用。傳感器在檢測信號的處理過 程中要調用這些校準系數(shù)。兩線制的串行接口與內部的電壓調整,使外圍系統(tǒng)集 成變得快速而簡單。微小的體積、極低的功耗。它具有很好的發(fā)展前景。關鍵詞溫濕度測量 at89c52 dht91目錄第一章數(shù)字溫濕度計的設計依據(jù)和意義 11.1數(shù)字溫濕度計的設計依據(jù)11.2數(shù)字溫濕度計的設計意
3、義1第二章總體設計要求及方案論證分析 22.1 總體設計要求22.2方案論證分析 22.2.1方案論證22.2.2方案設計32.3元器件的選擇42.3.1 主控制器芯片42.3.2 數(shù)字溫濕度傳感器62.4 驅動顯示電路62.5溫濕度測量的方法及分析7第三章 硬件電路的設計 93.1主控制電路和測溫濕控制電路 93.2驅動顯示電路第四章軟件設計及分析4.1 dht91傳輸時序和指令集 4.1.1 通訊復位時序4.1.2 啟動傳輸時序4.1.3 數(shù)據(jù)傳輸和指令集 4.1.4 濕度的測量時序4.1.5 輸出轉換為物理量 4.1.6 dht91 的 dc 特性。4.2 程序流程圖1 .7.4.3 程
4、序的設計4.3.1 通訊復位子程序4.3.2 傳輸啟動子程序4.3.3 一個字節(jié)子程序4.3.4 讀一個字節(jié)子程序4.3.5 數(shù)據(jù)處理子程序2.0.4.3.6 顯示子程序2.0.4.3.7 按鍵子程序2.2.4.3.8 中斷刷新顯示數(shù)碼管子程序2.3.4.3.9 軟件在硬件上的調試分析2.4.結論2.6.致謝2.7.參考文獻2.8.附錄2.9 引 言溫度和濕度的測量和控制是目前眾多行業(yè)的重要工作目標之一,可謂與我們的生活息息相關。無論是在工農(nóng)業(yè)生產(chǎn)、氣象部門,還是 在環(huán)保、國防、科研等方面,常需對環(huán)境溫度與濕度進行測量和控制?,F(xiàn)在準確測量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關重要的。測
5、量溫濕度的關鍵是溫濕度傳感器。過去測量溫度與濕度是分開 的,隨著技術的進步及人們生活的需要出現(xiàn)了溫濕度傳感器。溫度傳感器的發(fā)展經(jīng)歷了 3個階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫 度傳感器、智能集成溫度傳感器。目前,國際上新型溫度傳感器正從 模擬式向數(shù)字式、從集成化向智能化、網(wǎng)絡化的方向發(fā)展。濕度傳感 器也是經(jīng)歷了這樣一個階段逐漸走向數(shù)字智能化??傊敬卧O計運用 dht91傳感器,結合其優(yōu)點,將制作一個便攜式常用數(shù)字溫濕度計,必定對生產(chǎn)方面有一定作用。第一章數(shù)字溫濕度計的設計依據(jù)和意義1.1數(shù)字溫濕度計的設計依據(jù)溫度與濕度與人們的生活息息相關。在工農(nóng)業(yè)生產(chǎn)、氣象、環(huán)保、 國防、科研等部門,經(jīng)
6、常需要對環(huán)境溫度與濕度進行測量及控制。準 確測量溫濕度在生物制藥、食品加工、造紙等行業(yè)更是至關重要的。1.2數(shù)字溫濕度計的設計意義傳統(tǒng)的溫度計是用水銀柱來顯示的,雖然結構簡單、價格便宜,但是它的精確度不高,不易讀數(shù)。傳統(tǒng)的濕度計采用干濕球顯示法, 不僅復雜而且測量精度不高。而采用單片機對溫濕度進行控制,不僅 具有控制方便,簡單和靈活等優(yōu)點,而且可以大幅度提高溫度控制的 技術指標。用led來顯示溫濕度的數(shù)字看起來更加直觀。dht91傳感器具有超快響應,抗干擾能力強,性價比高等優(yōu)點。dht91傳感器可以直接讀出被測的溫濕度值。同時單片機可以把測 量出的數(shù)據(jù)通過串口傳到計算機上, 來完成工業(yè)中的自動
7、控制,給工 業(yè)生產(chǎn)帶來了極大的便利。用單片機控制的溫濕度計不僅硬件電路簡 單,而且測量精度比較高。用數(shù)碼管顯示測量值看起來比較美觀。無論在日常生活中還是在工業(yè)、 農(nóng)業(yè)方面都不可避免的對周圍環(huán) 境進行溫濕度的測量。因此,研究溫濕度的控制和測量具有重要意義。第二章總體設計要求及方案論證分析2.1總體設計要求設計一個以單片機為核心的溫濕度測量系統(tǒng),可實現(xiàn)的功能為:(1) 測量溫度值精度為±0.4°c,測量濕度值精確±3%;(2) 系統(tǒng)允許的誤差范圍為"tc和1%以內;(3) 系統(tǒng)可由用戶預設溫度值和濕度值,測溫范圍一40°c +128°c,
8、測濕范圍 0 100%;(4) 超出預設值時系統(tǒng)會自動報警,即發(fā)光二極管亮;(5) 系統(tǒng)采用數(shù)碼管顯示,能顯示設定溫濕度值和測得的實際 溫濕度值。濕度精度(只巴溫度精度(°c25)2.2方案論證分析2.2.1方案論證方案一,采用單片機at89c51與shtxx溫濕度傳感器相連組成外圍 電路。方案二,采用dht91數(shù)字溫濕度傳感器與單片機at89c52相連外圍 電路。經(jīng)過之前的知識,我比較之后選擇采用第2個方案。由于采用dht91數(shù)字溫濕度傳感器與單片機 at89c52相連外圍電路比較簡單。dht91數(shù)字溫濕度傳感器作為檢測元件,能夠同時測試溫度和 濕度。這類傳感器不僅易于焊接,而且只
9、有四針管腳,減少了外圍電 路的設計。且 at89c52與at89c51不同之處是,p1.0和p1.1還可 分別作為定時/計數(shù)器2的外部計數(shù)輸入(p1.0/t2)和輸入(p 1.1/t2ex),這樣可以方便報警系統(tǒng)的設計。 所以,本次設計以dht91 數(shù)字溫濕度傳感器為例,介紹基于單片機的數(shù)字溫濕度計的設計。2.2.2方案設計按照系統(tǒng)設計功能的要求,確定系統(tǒng)由 5個模塊組成:主控制器,數(shù) 字溫濕度傳感器,報警電路,按鍵電路及驅動顯示電路。溫濕度傳感器圖2-1總體電路框圖主控制器的功能由單片機來完成,主要負責處理由數(shù)字溫濕度傳 感器送來數(shù)據(jù),并把處理好的數(shù)據(jù)送向顯示模塊。 數(shù)字溫濕傳感器主 要用來
10、采集周圍環(huán)境參數(shù),并把所采集來的參數(shù)送向主控制器。 按鍵電路主要用來完成單片機的復位操作和溫濕度初始值的設定。這里需要四個按鍵,一個用來完成單片機的復位操作,一個用來切換顯示的 數(shù)據(jù)(是設定值還是實際測得的值),另外兩個分別用來設定初始溫 度和初始濕度的個位和十位。報警電路就是用一個發(fā)光二極管來實現(xiàn) 的,用來判斷周圍環(huán)境的溫度或者濕度是否超出設定值了,任何一個超出設定值發(fā)光二極管就會被點亮。 驅動顯示電路主要用來驅動八位 數(shù)碼管發(fā)光的。由于單片機的輸出電流太小(只有幾毫安)不能驅使 數(shù)碼管發(fā)光,所以這里必須增加一個驅動顯示模塊。2.3元器件的選擇2.3.1主控制器芯片主控制器模塊選用單片機 a
11、t89c52oat89c52是美國atmel公 司生產(chǎn)的低電平,高性能cmos 8位單片機,片內含8k bytes的可反 復擦寫的只讀程序存儲器(perom)和256 bytes的隨機存取數(shù)據(jù)存儲 器(ram ),器件采用atmel公司的高密度、非易失性存儲技術生產(chǎn), 與標準mcs51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內置通用8位中 央處理器(cpu)和flash存儲單元,32個可編程i/o 口線,3個16位定 時/計數(shù)器,低功耗空閑和掉電模式。功能強大的 at89c52單片機適 合于許多較為復雜控制應用場合。at89c52共有6個中斷向量:兩個外中斷(into和int1) , 3個 定時器中
12、斷(定時器0, 1,2),串行口中斷和四個雙向i/o 口。p0 口: p0 口是一組8位漏極開路型雙向i/o 口,也即地址/數(shù)據(jù) 總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個ttl 邏輯門電路,對端口 p0寫“出寸”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數(shù)據(jù)總線復位,應為輸出驅動級的漏極開路,所以必須外 接上拉電阻,否則不能正常工作。p1 口:p1是一個帶內部上拉電阻的8位雙向i/o 口,p1的輸出緩 沖級可驅動(吸收或輸出電流)4個tte邏輯門電路。對端口寫“4”通 過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用
13、時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一 個電流(ill) o表2-1 p1.0和p1.1的第二功能引腳號功能特性p10t2(定時/計數(shù)器2外部計數(shù)脈沖輸入),時忡輸出p1.1t2ex (定時/計數(shù)2捕獲/賀裝我觸發(fā)和方向控制)p2 口:p2是一個帶有內部上拉電阻的 8位雙向i/o 口,p2的輸出 緩沖級可驅動(吸收或輸出電流)4個ttl邏輯門電路。對端口 p2寫“1, ”通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作 輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時 會輸出一個電流(ill)。p3 口:p3 口是一組帶有內部上拉電阻的 8位雙向i/o 口
14、。p3 口輸 出緩沖級可驅動(吸收或輸出電流)4個ttl邏輯門電路。對p3 口寫 入“的”,它們被內部上拉電阻拉高并可作為輸入端口。此時,被外led數(shù)碼管型號較多,規(guī)格尺寸也各異,顯示顏色有紅、綠、橙等。led數(shù)碼管的主要特點如下:(1) 發(fā)光響應時間極短(小于0. 1s)高頻特性好,單色性好,亮度 高。(2) 能在低電壓、小電流條件下驅動發(fā)光,能與cmos、itl電路兼容。(3) 壽命長,使用壽命在10萬小時以上,甚至可達100萬小時。成本 低。(4) 體積小,重量輕,抗沖擊性能好。因此它被廣泛用作數(shù)字儀器儀表、數(shù)控裝置、計算機的數(shù)顯器件。小電壓大電流的小功率放大三極管 s9012的放大倍數(shù)
15、共分六級:d 級:64-91e 級:7&x2f 級:96-135g 級:112-166h 級:144-220i 級:190-3002.5溫濕度測量的方法及分析dht91是一個兩線串行接口的數(shù)字溫濕度傳感器,一個接口是時鐘線,一個接口是數(shù)據(jù)線(支持雙向傳輸)。它是四針單排封裝, 一個接電源,一個接地線,另兩個直接和單片機的p0_5和p0_6相連。 不過數(shù)據(jù)線和時鐘線上需要接兩個 10k的上拉電阻,因為at89c52 的p0 口內部沒有上拉電阻。單片機通過 p0_5和p0_6向dht91發(fā) 送命令,dht91接收到命令后做出相應的應答。由于 dht91內部包 含一個14位a/d轉換器,所以
16、單片機接收到就是數(shù)字信號,只需要 做相應的處理就能得到所需要的數(shù)據(jù)。這里減少了很多外部的電路的 連接,用起來比較方便。第三章硬件電路的設計3.1主控制電路和測溫濕控制電路本次硬件設計的核心就是 at89c52,其他部件都是圍繞它設計 的。數(shù)字溫濕度傳感器 dht91的data 口和sck 口分別與at89c52 的p0_5 口和p0_6 口相連。因為p0 口內部沒有上拉電阻,所以這里 在data和sck傳輸線上分別加了一個10k的上拉電阻。預置數(shù)電 路就是三個按鍵分別與 at89c52的p0_1,p0_2和p0_3 口相連,為了 降低at89c52的功耗在按鍵和單片機的端口間加了個10k的限流
17、電阻。當有按鍵按下時單片機收到有效的信號,s1鍵用來切換顯示的模式(分別顯示實際所測得的溫濕度,預置的溫度值和預置的濕度 值),s2鍵用來設置初始溫度或者濕度的十位,s3鍵用來設置初始溫 度或者濕度的個位。報警電路就是把個發(fā)光二極管和at89c52的p0_4 口相連,當p0_4 口為低電平時放光二極管被點亮。發(fā)光二極管 的壓降一般為1.52.0 v,其工作電流一般取1020 ma為宜。使用 led作指示電路時,應該串接限流電阻,該電阻的阻值大小應根據(jù) 不同的使用電壓和led所需工作電流來選擇。這個電流能使放光二 極管正常放光。如果電流小于10ma放光二極管的亮度會減弱,如果 電流大于20ma發(fā)
18、光二極管亮度會更強,但是會有損發(fā)光二級管的壽 命有時候甚至會直接燒毀發(fā)光二極管。單片機復位有兩種:一種是上電復位,一種是按鍵復位。下圖用 的就是按鍵復位,當按鍵按下時單片機的rst 口從低電平變?yōu)楦唠娖?,從而進入復位狀態(tài)。當按鍵松開后, vcc給電容c3充電,從而 把rst 口拉至電平,單片機進入工作狀態(tài)。只要把下圖的 reset按鍵和r2電阻去掉就成了上電復位了。at89c52中有一個用于構成內部振蕩器的高增益反相放大器,引腳xtal1和xtal2分別是該放大器的輸入端和輸出端。這個放大 器與作為反饋元件的片外石英晶體或陶瓷諧振器構成自激振蕩器。夕卜接石英晶體(或陶瓷諧振器)及電容 c1.
19、c2接在放大器的反饋回路 中構成并聯(lián)振蕩電路,對外接電容c1> c2雖然沒有十分嚴格的要求, 但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定 性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pf± 10pf,而如果使用陶瓷諧振器,建議選擇40pf± lopfo這里用到的是12m的石英晶體振蕩器和兩個30pf的電容。3.2驅動顯示電路數(shù)碼管的顯示有兩種方法:一種是靜態(tài)顯示,一種是動態(tài)掃描顯 示。靜態(tài)顯示就是數(shù)碼管的段選端一對一與單片機的i/o相連,位選端則根據(jù)數(shù)碼管的極型來接地(gnd)或者是高電平(vcc)。靜態(tài) 顯示實現(xiàn)起來比較簡單
20、,但是浪費了單片機的i/o 口資源。動態(tài)掃描顯示就是幾個數(shù)碼管的段選端可以同時接到單片機的i/o 口,位選端一對一的接到單片機的其它i/o 口,當位選信號選中某個數(shù)碼管時, 那個數(shù)碼管就被點亮,而其它數(shù)碼管不亮。動態(tài)掃描顯示節(jié)省了單片 機的i/o資源。 采用動態(tài)顯示方案,設計中使用八個共陰極數(shù)碼管作為顯示載體,通過八路并口傳輸,共使用了十六個 i/o 口。顯示時采用循環(huán)移 位法,即八位數(shù)碼管依次循環(huán)點亮,利用人眼睛的視覺暫留效果達到 連續(xù)顯示,主程序每運行一遍便調用一次顯示子程序,將數(shù)據(jù)顯示出 來。顯示部分為八位共陽極數(shù)碼管(四位一組),數(shù)碼管的段端a,b,c,d,e,f,g和dp與ta89c
21、52的p1 口相連,順序可以根據(jù)硬件接 線方便而定。數(shù)碼管的字段通過八個 pnp型的小功率放大三極管s9012與ta89c52的p2 口相連。因為at89c52的端口輸出電流太小(只有幾ma)不能點亮這八位數(shù)碼管,所以這里用了八個 s9012來驅動它們。具體原理圖見附錄一。圖4/通訊復位時序第四章 軟件設計及分析4.1 dht91傳輸時序和指令集4.1.1通訊復位時序data串行時鐘輸入(sck)用于微處理器與dth91之間的通訊同步。 由于接口包含了完全靜態(tài)邏輯,因而不存在最小sck頻率。串行數(shù)據(jù)(data)三態(tài)門用于數(shù)據(jù)的讀取。data在sck時鐘下降沿到來 之后改變狀態(tài),并僅在sck時鐘
22、上升沿有效。數(shù)據(jù)傳輸期間,在sck 時鐘高電平時,data必須保持穩(wěn)定。為避免信號沖突,微處理器應 驅動data在低電平。需要一個外部的上拉電阻(例如:10k q)將信號提拉至高電平。如果與dth91通訊中斷,下列信號時序可以復位串口:當data 保持高電平時,觸發(fā)sck時鐘9次或更多。這些時序只復位串口, 狀態(tài)寄存器內容仍然保留。圖4-2啟動傳輸時序4.1.2啟動傳輸時序datasck用一組“啟動傳輸”時序,來表示數(shù)據(jù)傳輸?shù)某跏蓟Kǎ寒?sck時鐘高電平時data翻轉為低電平,緊接著sck變?yōu)榈碗娖剑?隨后是在sck時鐘高電平時 data翻轉為高電平。在下一次指令 前,發(fā)送一個“傳輸啟
23、動”時序。啟動傳輸時序如上圖42所示。4.1.3數(shù)據(jù)傳輸和指令集后續(xù)命令包含三個地址位(目前只支持“ 000), ”和五個命令位。dth 91會以下述方式表示已正確地接收到指令:在第 8個sck時 鐘的下降沿之后,將data下拉為低電平(ack位)。在第9個sck 時鐘的下降之后,釋放 data (恢復高電平)。發(fā)布一組測量命令( 00000101表示相對濕度 rh, '000000t1表示溫度t)后,控制器要等待測量結束。這個過程需要大約20/80/320ms ,分別對應8/12/14bit測量。確切時間隨內部晶振速度的變化而變化,最多可能 有30%的變化。dth91通過下拉data
24、至低電平并進入空閑模式, 表示測量的結束??刂破髟谠俅斡|發(fā)sck時鐘前,必須等待這個數(shù) 據(jù)備妥”信號來讀出數(shù)據(jù)。檢測數(shù)據(jù)可以先被存儲,這樣控制器可以 繼續(xù)執(zhí)行其它任務在需要時再讀出數(shù)據(jù)。 接著傳輸2個字節(jié)的測量數(shù) 據(jù)和1個字節(jié)的crc奇偶校驗。uc需要通過下拉data為低電平, 以確認每個字節(jié)。所有的數(shù)據(jù)從 msb開始,右值有效(例如:對于 12bit數(shù)據(jù),從第5個sck時鐘起算作msb;而對于8bit數(shù)據(jù),首 字節(jié)則無意義)。用crc數(shù)據(jù)的確認位,表明通訊結束。如果不使用 crc-8校 驗,控制器可以在測量值 lsb后,通過保持確認位ack高電平,來 中止通訊。在測量和通訊結束后,dth91
25、自動轉入休眠模式。4.1.4濕度的測量時序圖4-3測量濕度的時序4.1.5輸出轉換為物理量由能隙材料ptat (正比于絕對溫度)研發(fā)的溫度傳感器具有極 好的線性。為了補償濕度傳感器的非線性以獲取準確數(shù)據(jù),建議使用如下公式1修正輸出數(shù)值:2rhiinear = c1 + c2 .sorh + c3 sorh(4-1)",c2和c3值如下表4-1所示。表4/濕度轉換系數(shù)iorh irnprnrnf 12 bit00405-2.8* 10-6 i| 8bit |0.64872訶 |濕度傳感器相對濕度的溫度補償實際測量溫度與25°c (-77°f)相差較大時,應考慮濕度傳
26、感器的溫度修正系數(shù):rhtrue = (t c-25).(t1 + t2 .sorh) + rhiineart1和t2的值如下表42所示。表42溫度補償系數(shù)sorh |tit2|12 bit ii 0.010.00008 i8 bit | 0010.00128 |rhtrue:測量的濕度值。4.1.6 dht91 的 dc 特性。dht91的dc特性如下表43所示。表43 dht91的dc特性4-2程序流程圖啟動傳輸定時器初始化sck=o;_nop_();sck=1;_nop_();data=o;_nop_();sck=o;_nop_();_nop_();_nop_();sck=1;_nop_
27、();data=1;_nop_();sck=o;傳輸啟動子程序是用來表示數(shù)據(jù)傳輸?shù)某跏蓟C看螌鞲衅鬟M行寫命令或者讀命令前先進行以上程序方可。4.3.3一個字節(jié)子程序char s_write_byte(unsigned char value)unsigned char i,error=0;for(i=0x80;i>0;i/=2)if(i&value)data=1;elsedata=o;sck=1;_nop_();_nop_();_nop_();sck=o;data=1;sck=1;error=data;sck=o;return error;可以通過寫一個字節(jié)子程序對傳感器進行寫
28、指令操作。若想讀岀濕度值就向傳感器寫入'0000010讀出溫度值就向傳感器寫入'00000011 '4.3.4讀一個字節(jié)子程序char s read_byte(unsigned char ack) unsigned char i,val=o;data=1;for(i=0x80;i>0;i/=2)sck=1;if (data)val=(val|i);sck=o;data=!ack;sck=1;_nop_();_nop_();_nop_();sck=o;data=1;return val;把相應的通過讀一個字節(jié)子程序從傳感器讀出溫度值或濕度值,數(shù)據(jù)送到單片機的寄存器中
29、。4.3.5數(shù)據(jù)處理子程序void calc_sth 11 (float *p_humidity,float *p_temperature)const float 6=40;const float c2=0.0405;const float c3=-0.000002&const float t1 =0.01;const float t2=0.00008;float rh=*p_humidity;float t=*p_temperature;float rhji n; float rh_true;float t_c; t_c=t*0.01-40;rh_lin=c3*rh*rh+c2*rh
30、+c1;rh_true=(t_c-25)*(t1+t2*rh)+rh_lin;if(rh_true<0.1) rh_true=0.1;*p_temperature=t_c;*p_humidity=rh_true;把從傳感器讀出的二進制數(shù)轉換成相應的十進制數(shù)。4.3.6顯示子程序void display(float humi,float temp)int humil,tempi; humi1=(humi*10); tempi =(temp*10);if(temp1<0)dispbuf0=10;tempi =abs(temp1);elsedispbuf0=11; if(cnt=o)di
31、spbuf1=temp1/100; dispbuf2=temp1/10% 10;dispbuf3=temp1%10; dispbuf4=11;dispbuf5=humi1/100;dispbuf6=humi1/10% 10;dispbuf7=humi1%10; if(humi>humiset)|(te mp>tempset)p0_4=0;elsep0_4=,z,;elif(cnt=1)if(temph>9)dispbuf0=10;elsedispbuf0=11;dispbuf1=temph%10;dispbuf2=templ%10;dispbuf3=11;dispbuf4=1
32、1;dispbuf5=11;dispbuf6=11;dispbuf7=11;elsedispbuf0=11;dispbuf1=11;dispbuf2=11;dispbuf3=11;dispbuf4=11; dispbuf5=humih%10;dispbuf6=humil%10; dispbuf7=11;當cnt=0時數(shù)碼管顯示實際的溫濕度值,當 cnt=1時數(shù)碼管顯示設定溫度值,當cnt=2時數(shù)碼管顯示設定濕度值。4.3.7按鍵子程序void key()if(po_o=o) for(i=5;i>0;i-) for(j=248;j>0;j-); if(po_o=o)cnt+; if(
33、cnt>2) cnt=0; while(p0_0=0);if(cnt=1) jf(po_1=o) for(i=5;i>0;i-) for(j=248;j>0;j-); if(po_l=o)temph+; if(temph=15) temph=0; while(p0_ 仁=0); if(p0_2=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(p0_2=0) templ+; if(templ=10) templ=0; while(p0_2=0);elseif(cnt=2)if(po_ 仁=0)for(i=5;i>0;i-) f
34、or(j 二248;j>0;j); if(p0_1=0)humih+;if(humih=10)humih=o;while(po_ 仁=0);if(p0_2=0)for(i=5;i>0;i-)for(j=248;j>0;j-);if(p0_2=0)humil+;if(humil=10)humil=0;while(p0_2=0);if(temph<10)tempset=temph*10+templ; elsetempset=(10-temph)-templ;humiset=humih*10+humil;s1鍵對應p0_0,s2鍵對應p0_1 ,s3鍵對應p0_2o每按一次s
35、1鍵,變量ent加1,當cnt>2時cnt=0o當cnt=1時每按一次s2鍵,temph加 當 temph>14 時 temph=0,當 temph 為 10, 11, 12, 13, 14 時分別對應的是-1, -2, -3, -4,每按一次s3鍵,tempi力口 1,當templ>9時 templ=0o 當 cnt=2 時 s2,s3 鍵調的是 humih 和 humil4.3.中斷刷新顯示數(shù)碼管子程序void to(void) interrupt 1mstcnt+;if(mstcnt=8)mstcnt=0;if(dispbitcnt=2)|(dispbitcnt=6)p
36、1= dispcodedispbufdispbitcnt&oxfb;elsep1 =dispcodedispbufdispbitc nt; p2=dispbitcodedispbitcnt;dispbitcnt+; if(dispbitcnt=8)dispbitcnt=0;每2ms刷新數(shù)碼管一次,人眼的視覺暫留時間大概是 0.1s,所以可以讓人感覺到每個數(shù)碼管都在顯示。第三和七個數(shù)碼管分別為溫 度和濕度的個位,所以讓這兩個數(shù)碼管的小數(shù)點位一直顯示。4.3.9軟件在硬件上的調試分析軟件在keil里編譯通過以后還得在硬件電路上調試,讓數(shù)碼管 顯示正確的溫濕度值,按鍵能夠設定初始值,led發(fā)
37、光二極管能夠指 示報警,這些功能都實現(xiàn),本設計才能算基本完成。硬件電路是我本 著連線簡單的原則焊接的,數(shù)碼管的段選信號端(a,b,c,d,e,f,g,dp) 并不是與單片機的p1 口(從0-7)正好相互對應的。所以這里我們需 要對數(shù)碼管所要顯示的0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 和“不顯示” 從新編碼。在開始調試的時候我就忽略了這一點,我用的是資料書中 常用到那種,所以數(shù)碼管顯示的是亂碼。我以為是硬件電路出了錯誤, 我用萬用表把每根線從新測了一遍, 發(fā)現(xiàn)硬件電路一切正常啊。這時我才忽然想到,是編碼這邊出現(xiàn)了錯誤。我根據(jù)硬件的連線從新對0,1, 2,3, 4, 5, 6
38、, 7,9, 和“不顯示”進行了編碼。顯示的數(shù)值還是不正確,但是數(shù)碼管中顯示的數(shù)和我想要顯示的數(shù)有幾分相似。在編碼時我又忽略的一點,我們總是習慣性的從左往右寫數(shù),我就在 紙上從左往右一次寫了 p1_0, p1_1,p1_2, p1_3, p1_4, p1_5, p1_6和p1_7 o所以編出的結果與實際所要的結果高位與低位正好錯了位so這次畢業(yè)設計讓我認識到了一般的設計流程以及設計中所要注意到的一些細節(jié)。在設計開始,應該先要認識到這次設計所要完成的 功能。接著大致分析一下所要用到的元器件??傮w思路清晰以后就要畫原理圖。根據(jù)原理圖焊接電路板,焊接的時候應該怎樣布線簡單怎 樣焊接,盡量達到布線少,
39、布線短,跳線少,美觀大方。硬件電路沒 有任何問題后就可以根據(jù)我們所設計好的電路進行軟件編程了。結論本次單片機的數(shù)字溫濕度的設計,包括硬件和軟件設計兩部分。我先是在軟件上完全做好的基礎上再實行硬件電路的設計。在軟件設計過程中我是先編出數(shù)字鐘控制程序后,我才開始根據(jù)dht91的時序圖進行軟件的編寫程序。在軟件設計過程中我也遇到 了問題,經(jīng)過柳老師的指點和同學之間的討論,終于解決并學到了編 程技巧及一些編程思想。由于材料有限,本設計中的有些電容和電阻 的數(shù)值并不是原理圖中設計的大小,但是不影響結果。在畫原理圖和 制作pcb版圖的過程中我熟練掌握了 altium designer的基本應用。 在制作p
40、cb版圖方面,我的pcb版圖在布線方面還不夠完美,但是 我會不斷努力爭取做的更好。經(jīng)過軟件在硬件電路上的調試后,基本功能都能實現(xiàn)。溫度和濕 度都是顯示到小數(shù)點后一位。如果手放到數(shù)字溫濕度傳感器 dth 91 上,數(shù)碼管上顯示的溫度和濕度會立即發(fā)生變化, 測出其溫度和濕度。本電路還是存在一些不足及需要改進的地方,如可以加計算機串 口傳輸,掉電存儲等模塊。致謝本畢業(yè)設計是在柳老師的精心指導下完成,首先我要對柳斌老師表示最真誠的謝意。在論文設計這幾個月來的學習過程中柳老師在設 計上給予我耐心的指導,同時我也學會了如何把專業(yè)知識應用于實際 當中,為今后走上工作崗位打下了堅實的基礎。在我即將結束大學學習之際,我真心感謝三年來所有教過我的老 師們,謝謝你們給予我的指導和關懷;同時我也感謝三年來在一起學 習、生活的同窗好友們,謝謝你們給予我的照顧和關心。畢業(yè)設計結束后,我將踏上工作崗位,三年時間學習到的知識與 經(jīng)驗將成為我走向崗位的墊腳石。相信我定會更加努力拼搏,創(chuàng)造出 我的世界。最后,懇請所有讀到本畢業(yè)設計的老
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學暑假實習報告范文集合四篇
- 春季開學典禮校長演講稿集合5篇
- 大學畢業(yè)生自我鑒定(8篇)
- 幼兒教師辭職申請書集錦9篇
- 地理教師教學工作計劃范文
- 順馳太陽城二期可行性研究報告
- 休閑食品的品牌戰(zhàn)略比較
- 七年級語文下冊教學工作總結
- 借款約束協(xié)議書(2篇)
- 2025年果蔬自動清選、分級設備合作協(xié)議書
- 2024-2025學年上學期福建高二物理期末卷2
- 2024四川阿壩州事業(yè)單位和州直機關招聘691人歷年管理單位遴選500模擬題附帶答案詳解
- 麻醉科工作計劃
- 2024年新進員工試用期考核標準3篇
- 《英美文化概況》課件
- 四川省2023年普通高中學業(yè)水平考試物理試卷 含解析
- 2024-2025學年人教版八年級上學期數(shù)學期末復習試題(含答案)
- 【MOOC】中級財務會計-北京交通大學 中國大學慕課MOOC答案
- 2024年醫(yī)院康復科年度工作總結(4篇)
- 《園林政策與法規(guī)》課件
- 揚塵防治(治理)監(jiān)理實施細則(范本)
評論
0/150
提交評論