




已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
信息與電氣工程學(xué)院課程設(shè)計說明書(2015 /2016 學(xué)年第 2 學(xué)期) 課程名稱 : 單片機應(yīng)用課程設(shè)計 題 目 : 溫濕度監(jiān)測系統(tǒng) 專業(yè)班級 : 自動化3班 學(xué)生姓名 : 學(xué) 號: 指導(dǎo)教師 :苗敬利、王立國、王靜爽、侯帥、何明星、趙奇 設(shè)計周數(shù) : 2周 設(shè)計成績 : 2016 年 7 月 6 日摘要 本設(shè)計實現(xiàn)的是單片機溫濕度測量與控制系統(tǒng),通過在LCD1602上實時顯示室內(nèi)環(huán)境的溫度和相對濕度。系統(tǒng)采用集溫濕度傳感器與A/D轉(zhuǎn)換器為一體的DHT90傳感器芯片,通過單片機AT89C52處理進行顯示,其它模塊包括了實時時鐘/日期產(chǎn)生電路和超限報警處理電路,對所測量的值進行實時顯示和報警處理。 本文介紹了基于ATMEL公司的AT89C52系列單片機的溫濕度實時測量與控制系統(tǒng)和顯示系統(tǒng)的設(shè)計,包括介紹了硬件結(jié)構(gòu)原理,并分析了相應(yīng)的軟件的設(shè)計及其要點,包括軟件設(shè)計流程及其程序?qū)崿F(xiàn)。 系統(tǒng)結(jié)構(gòu)簡單、實用,提高了測量精度和效率。 關(guān)鍵詞: 溫濕度;SHT10傳感器;單片機;DHT11傳感器1設(shè)計目的:制定溫濕度監(jiān)測系統(tǒng)的操作流程,指導(dǎo)溫濕度監(jiān)測系統(tǒng)的正確使用和維護,防止溫濕度監(jiān)測系統(tǒng)操作不當而造成損壞,并保證測試的數(shù)據(jù)準確。2 溫濕度檢測的簡介2.1 系統(tǒng)的概述 溫濕度測量技術(shù)在當今的工廠加工、醫(yī)療區(qū)域、農(nóng)業(yè)區(qū)域中已經(jīng)起來重要的位子,例如資源的節(jié)約、產(chǎn)品質(zhì)量的提高、產(chǎn)品數(shù)目的提高,這些問題現(xiàn)在已經(jīng)越來越受到外界的關(guān)注了。當今,知識信息和知識的工業(yè)化已經(jīng)開始了飛一般的進步,溫度與濕度的問題影響的范圍距離已經(jīng)不再之前談到的那些方面,它還體現(xiàn)在科技發(fā)展、衛(wèi)生用品、醫(yī)藥衛(wèi)生、國家安全基礎(chǔ)等多種方面。就上述幾個問題和情況,溫濕度檢測的準確性、穩(wěn)定性、快速性、安全性這些方面的設(shè)計要求變得尤其重要。在最近幾年中,使用SHT10控制的溫濕度傳感器和溫濕度數(shù)據(jù)的網(wǎng)上直接檢驗技術(shù)現(xiàn)已成為當下的一種發(fā)展方向和追求。本次畢業(yè)設(shè)計介紹和實現(xiàn)了一種單片機與自動化溫濕度傳感器互相結(jié)合,它們兩就組成了一種簡單的溫濕度檢測器系統(tǒng)。這種檢測系統(tǒng)具有以下的特點:易操作、制作成本低、準確性較高、持續(xù)時間長、較為穩(wěn)定。2.2 系統(tǒng)設(shè)計選題的背景2.2.1國內(nèi)外研究現(xiàn)狀 關(guān)于我國國內(nèi)溫濕度研究的時間相對于國外還是比較晚的,畢竟我國對于溫濕度檢測技術(shù)的研究才剛剛起步 。初期我國只運用了相對落后的溫濕度的微機控制測量技術(shù),而這門技術(shù)還是在參考當時國外發(fā)展國家的檢測技術(shù)的基礎(chǔ)上,這門技術(shù)局限于測量單方面環(huán)境因素,不支持復(fù)雜、多項的環(huán)境控制。我國關(guān)于溫濕度檢測技術(shù)從對國外發(fā)達技術(shù)的學(xué)習(xí),經(jīng)過慢慢時間的不斷地實驗,現(xiàn)已經(jīng)發(fā)展到微測量計算機應(yīng)用的層次上。目前,國內(nèi)用的技術(shù)基本上包括單片機,這種技術(shù)是利用單片機控制的溫濕度檢測的系統(tǒng),過程與步驟都比較簡單,還不能實現(xiàn)多參數(shù)多回路的溫濕度控制系統(tǒng),相對于那些發(fā)達的國家,技術(shù)還是比較落后。我國的溫濕度測量存在著下列問題:實現(xiàn)功能少、產(chǎn)量水平低,操作檢修步驟繁瑣。2.2.2國外外研究現(xiàn)狀 關(guān)于國外溫濕度研究的時間相對于國內(nèi)來說還是較早。國外初期首先設(shè)計出通過組合的形式的模擬式器件,運用了就地取材的方法,將其收集的信號進行一系列的指示并加以記錄。近階段世界各國都在研究與開發(fā)基于計算機的控制溫濕度系統(tǒng),此系統(tǒng)受多因子的控制,其主要特點為精確性高、穩(wěn)定性強。以后溫濕度發(fā)展趨勢向著無人操作化、精度穩(wěn)定化發(fā)展。2.3系統(tǒng)的分類 水汽壓型:測出大氣中對某一裝置的總壓力,然后再測出大氣中的水汽對同一裝置的壓力,將測出的兩個壓力進行百分比的對比壓力,即可以得出溫濕度的大小值。 電阻式濕度片:通過外界溫濕度變化與電阻值的關(guān)系的來設(shè)計出的測量儀器。當外界的溫濕度改變時,與其用電路連接的電阻也隨之改變。溫濕度片就是這里的核心器件,它可以感應(yīng)到外界溫濕度的變化。 干濕球溫度表:通過兩只完全相同的溫度表,使他們并列在一起,其中用一只溫度表測量氣溫,另外一支溫度表表頭需要纏繞著浸透過純蒸餾水的脫脂紗布,這兩種溫度表結(jié)合起來就是干濕球溫度表。2.4 系統(tǒng)設(shè)計的內(nèi)容與要求 對某一特定環(huán)境下用溫室度傳感器感受到溫度和濕度變化,把這種變化轉(zhuǎn)化為電信號輸入到單片機中,然后進行各端口的控制使其數(shù)據(jù)顯示在LCD顯示屏上,完成了對倉庫額的溫室與濕度的測量。要求誤差在上下10%之內(nèi)。3 數(shù)據(jù)采集部分 3.1溫度傳感器 采用熱電阻溫度傳感器。熱電阻是利用導(dǎo)體的電阻隨溫度變化的特性制成的測溫元件?,F(xiàn)應(yīng)用較多的有鉑、銅、鎳等熱電阻。其主要的特點為精度高、測量范圍大、便于遠距離測量。 鉑的物理、化學(xué)性能極穩(wěn)定,耐氧化能力強,易提純,復(fù)制性好,工業(yè)性好,電阻率較高,因此,鉑電阻用于工業(yè)檢測中高精密測溫和溫度標準。缺點是價格貴,溫度系數(shù)小,受到磁場影響大,在還原介質(zhì)中易被玷污變脆。按IEC標準測溫范圍-200650,百度電阻比W(100)=1.3850時,R0為100和10,其允許的測量誤差A(yù)級為(0.15+0.002|t|),B級為(0.3+0.005|t|)。 銅電阻的溫度系數(shù)比鉑電阻大,價格低,也易于提純和加工;但其電阻率小,在腐蝕性介質(zhì)中使用穩(wěn)定性差。在工業(yè)中用于-50180測溫。 3.2濕度傳感器 測量空氣濕度的方式很多,其原理是根據(jù)某種物質(zhì)從其周圍的空氣吸收水分后引起的物理或化學(xué)性質(zhì)的變化,間接地獲得該物質(zhì)的吸水量及周圍空氣的濕度。電容式、電阻式和濕漲式濕敏原件分別是根據(jù)其高分子材料吸濕后的介電常數(shù)、電阻率和體積隨之發(fā)生變化而進行濕度測量的。 采用HS1100/HS1101濕度傳感器。HS1100/HS1101電容傳感器,在電路構(gòu)成中等效于一個電容器件,其電容量隨著所測空氣濕度的增大而增大。不需校準的完全互換性,高可靠性和長期穩(wěn)定性,快速響應(yīng)時間,專利設(shè)計的固態(tài)聚合物結(jié)構(gòu),由頂端接觸(HS1100)和側(cè)面接觸(HS1101)兩種封裝產(chǎn)品,適用于線性電壓輸出和頻率輸出兩種電路,適宜于制造流水線上的自動插件和自動裝配過程等。相對濕度在1%100%RH范圍內(nèi);電容量由16pF變到200pF,其誤差不大于2%RH;響應(yīng)時間小于5s;溫度系數(shù)為0.04 pF/。 3.3采用的傳感器 大連北方測控工程有限公司生產(chǎn)的溫濕度傳感器DHT90,將兩者的功能集成在一起,并且輸出的是數(shù)字信號,不需要再進行A/D轉(zhuǎn)換,其溫度測量的范圍為-40123.8,分辨率為0.01;測濕范圍為0100%RH,分辨率為0.03%RH。 綜合上面各種設(shè)計的技術(shù)要求和傳感器的特性,考慮到設(shè)計簡約化,選擇使用傳感器DHT90,輸出的是數(shù)字信號,不需要進行A/D轉(zhuǎn)換,簡化了系統(tǒng)設(shè)計。4系統(tǒng)設(shè)計方案4.1系統(tǒng)框架圖本系統(tǒng)由單片機主控電路,DHT11溫濕度采集模塊,1602液晶顯示模塊3部分組成,下圖為框架圖。液晶顯示1602單片機AT89C52傳感器 4.2.1方案一:采用溫濕度一體化的傳感器DHT11采集溫濕度數(shù)據(jù),DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。DHT11原理圖 DHT11實物圖4.2.2方案二:由于本實驗proteus庫中無dht11模塊,使用sht11代替。為了營造無人看守狀態(tài),本次設(shè)計中還應(yīng)用了遠程通信系統(tǒng)。方案一中系統(tǒng)的控制核心是AT89C52單片機,它的主要作用是讀取溫濕度傳感器工作時的內(nèi)部參數(shù),測試的結(jié)果可以顯示在LCD上面。 4.3系統(tǒng)功能模塊設(shè)計4.3.1 中央控制單元本次溫濕度檢測系統(tǒng)設(shè)計中,由單片機組成的中央控制單元有十分重要的作用。這是整個系統(tǒng)的大腦,它發(fā)出操作命令指揮系統(tǒng)工作。該單片機不僅可以控制LCD顯示屏幕的工作狀態(tài),還可以時時刻刻管理著監(jiān)測著外部環(huán)境的溫濕度的變化的溫濕度傳感器的工作狀態(tài)。依照所需設(shè)計的要求和控制的目的,本次畢業(yè)設(shè)計選擇了AT89C52芯片,該芯片里面包含4k Bytes ISP的能多次燒入的Flash器件,是一類簡單高效率的CMOS 8位芯片。AT89C52芯片是使用了ATMEL公司廠家中的較為先進高級的控制與制作技術(shù)做為支持動力。AT89C52芯片還包括MCS-52系統(tǒng)的操作命令與89C52管腳的排列,其中較重要的8位CPU和ISP Flash存儲單元是它的核心部件。AT89C52芯片的系統(tǒng)功能具有巨大的優(yōu)勢,它可以滿足設(shè)計中系統(tǒng)穩(wěn)定運行的基本要求。AT89C52芯片具16位可編程定時計數(shù)器3個,有引腳40個,全雙工串行通信口2個,外部雙向輸入/輸出(I/O)端口32個,外中斷口2個,讀寫口線2個,AT89C52芯片的管腳結(jié)構(gòu)如下圖所示:單片機4.3.2 晶振電路模塊與復(fù)位電路模塊晶振電路模塊:單片機的工作條件是要在時鐘驅(qū)動的作用下才可以穩(wěn)定的進行工作,所需的電容大小通常為30PF。單片機工作時需要一個信號脈沖,晶振的作用就是提供這個信號脈沖。在時鐘驅(qū)動作用下,晶振電路所提供的信號脈沖就是單片機的工作速度。舉個例子來說明,一個頻率為12MHZ的晶振電路芯片,它的工作速度是12MHZ每秒的運行速度,和我們使用的電腦手機的CPU一個道理。就于多大的頻率才能使單片機更好的更穩(wěn)點的工作的問題,一般情況下其工作時所需要的頻率在24MHZ左右,超過這個值,系統(tǒng)工作就不穩(wěn)定了。單片機系統(tǒng)的工作速度取決于時鐘信號,其內(nèi)部鑲有時鐘振蕩電路,在單片機的外部接通一個振蕩源就可以工作了。復(fù)位電路模塊:復(fù)位電路在設(shè)計的系統(tǒng)中起著重要的作用,它保障了設(shè)計的系統(tǒng)可以在穩(wěn)定的環(huán)境下工作,復(fù)位電路的主要作用功能就是上電復(fù)位。當復(fù)位信號消除的時候,系統(tǒng)微機電路才可以穩(wěn)定高效的工作,消除復(fù)位信號的條件是VCC的電壓在4.7V與5.2V之間,只有在提供穩(wěn)定無誤差的時鐘信號才能實現(xiàn)本次的設(shè)計。下圖為其仿真圖: 晶振電路和復(fù)位電路4.3.3顯示模塊 LCD顯示電路是本系統(tǒng)的功能具體體現(xiàn)的重要模塊,實現(xiàn)了對溫濕度檢測的液晶屏控制的功能。溫濕度顯示電路的組成有SHT10溫濕度傳感器、LCD液晶顯示屏幕。其顯示模塊先接受來自單片機處理后的信號,再將其結(jié)果顯示在液晶屏幕。STC89C52的P2口接1602的8位數(shù)據(jù)線,通過輸出數(shù)據(jù)控制1602顯示不同的提示字符。1602本身內(nèi)置各種字符,還可以自定義顯示字符。本設(shè)計中根據(jù)不同場合1602會顯示各種提示字符。 P0.0P0.2接1602控制端,其中P0.0接使能端E,寫操作時,使能端下降沿有效。P0.1接讀寫控制端R/W,R/W=0,讀操作;R/W=1,寫操作。P0.2接寄存器選擇端RS,RS=0,寫操作時指向指令寄存器,讀操作時指向地址寄存器;RS=1,無論讀操作還是寫操作都指向數(shù)據(jù)寄存器。 LCD1602的VSS為電源地,需接地;VDD為電源電壓;V0為LCD驅(qū)動電壓,接電位器,通過調(diào)節(jié)電位器控制顯示的亮度,使LCD顯示清晰而無黑影。背光電源線LCD正負兩端分別接電源和地即可。下圖為其仿真圖:顯示模塊4.3.4溫濕度傳感器 利用型號為SHT10的溫濕度傳感器來測試倉庫的溫度和濕度。下圖為其仿真圖: 溫濕度傳感器 仿真圖上三個按鍵: 來控制操作。當打到左邊時為濕度的調(diào)節(jié),當打到右邊的時候為溫度的調(diào)節(jié);是增大按鍵,是減小按鍵。5系統(tǒng)的仿真與調(diào)試5.1Proteus對系統(tǒng)仿真根據(jù)設(shè)計要求,從Proteus元件庫中找到所需要用到的元件,畫好電路圖并且檢查有無錯誤。最后通過keil uVision軟件編寫的C語言程序,轉(zhuǎn)換成HEX文件下載到畫好的的電路上進行調(diào)試。以下是系統(tǒng)的仿真電路圖:系統(tǒng)運行圖5.2LCD的仿真Lcd運行圖5.3硬件運行結(jié)果運行結(jié)果圖實物運行圖6總結(jié) 歷經(jīng)兩周的課設(shè),又懂得了很多的知識,在這兩周的時間里,感受良多吧可以算是。因為我們做的課設(shè)里面因為proteus庫中沒有DHT11元件,導(dǎo)致我們做了將近一個星期的課設(shè)全部推翻。無奈的對著那一堆程序沒日沒夜的改著。從一開始的不了解,覺得很復(fù)雜,有傳感器、單片機和1602,最麻煩的是還要編程序;到最后的完成,對各個模塊都有了更深認知。 本設(shè)計綜合利用單片機技術(shù)、傳感器技術(shù)、數(shù)字電子技術(shù)和LCD顯示等科學(xué)知識,完成了單片機控制的溫度、濕度和顯示裝置的設(shè)計,比較系統(tǒng)地介紹了硬件的組成及設(shè)計方法并利用單片機C語言完成了系統(tǒng)軟件的設(shè)計。 1. 把傳感器技術(shù)應(yīng)用到單片機控制系統(tǒng)中,實現(xiàn)了對環(huán)境溫度和濕度的數(shù)據(jù)采集和讀取。 2. 利用LCD液晶的顯示技術(shù)完成了環(huán)境溫度、濕度及顯示電路的設(shè)計。3. 在本設(shè)計的基礎(chǔ)上皆有繼電器模塊,可以外接調(diào)溫調(diào)濕電器,把功能擴展延伸為實現(xiàn)對環(huán)境溫濕度的控制。 4. 整個系統(tǒng)軟硬件搭配合理,設(shè)計、開發(fā)、維護方便,性價比高 原理圖的繪制使我從新學(xué)習(xí)了一次proteus, 對軟件種元器件更加熟悉,畫仿真圖時更為流暢。在進行設(shè)計之前有著很多要解決的問題,比如元器件的選擇問題、各個模塊的設(shè)計和主程序的編程。通過這次設(shè)計,我從到圖書館的網(wǎng)站查找相應(yīng)的資料應(yīng)用到對應(yīng)電路參與設(shè)計的思考。每個模塊都要經(jīng)過多次的設(shè)計,不斷的試驗,讓我對之前在學(xué)校所學(xué)的書本上的理論知識有了更為深刻的了解。在完成畢業(yè)設(shè)計的過程是一次難得的理論與實際相結(jié)合的過程,在這段時間我更為深刻的理解和掌握了大學(xué)期間所學(xué)的一些知識,例如C語言的編程、數(shù)字模擬電路、單片機的簡單應(yīng)用、proteus和keil軟件的使用與設(shè)計。 在設(shè)計過程中,由于時間和本人能力的限制,設(shè)計中存在一些需要改進和優(yōu)化的地方。測量精度有待進一步提高,軟件設(shè)計也存在不合理之處。但從設(shè)計過程中,對于單片機有更進一步的認識,對用于單片機仿真的軟件操作能力也明顯提高,通過此設(shè)計,本人受益頗豐。 參考文獻 1 李全利等編著. 單片機原理及應(yīng)用.北京:清華大學(xué)出版社,2006.02:1436. 2 楊西明, 朱騏主編. 單片機編程與應(yīng)用入門.北京:機械工業(yè)出版社,2004.06:2438. 3 先鋒工作室編著. 單片機程序設(shè)計實例.北京:清華大學(xué)出版社,2003.01:6878. 4 謝宜仁主編. 單片機實用技術(shù)問答.北京:人民郵電出版社, 2003.02:1120. 5 孫江宏,李良玉等編著. Protel99電路設(shè)計與應(yīng)用.北京:機械工業(yè)出版社,2004.07. 6 房小翠,王金鳳編著. 單片機實用系統(tǒng)設(shè)計技術(shù).北京:國防工業(yè)出版社,1999.06. 7 南建輝等編著. MCS-51單片機原理及其應(yīng)用實例.北京:清華大學(xué)出版社,2004.03. 8 何宏主編. 單片機原理與接口技術(shù).北京:國防工業(yè)出版社,2006.07:1530 9 葉健斌. 基于單片機嵌入式系統(tǒng)的GPS應(yīng)用.電子質(zhì)量,2008:(7)1624. 10 王靜. 通用庫房溫濕度測控系統(tǒng).青島:中國海洋大學(xué),2009.05:3033. 11 劉寶元,張玉虹. 基于單片機的溫濕度監(jiān)控系統(tǒng)設(shè)計.國外電子測量技術(shù),2009.12.12 陳汝全. 實用微機與單片機控制技術(shù).成都:電子科技大學(xué)出版,2005.06:1617. 附錄1:DHT11程序/ 濕度20-90 溫度0-50 采樣間隔1S #include #include lcd.hsbit DQ=P37; /DTH11uchar code ASCII=0123456789%c;uchar code table0= Hum:00;uchar code table1= Tem:00;uchar tem;uchar hum; display02=0,0;display12=0,0;/*延時函數(shù)void delay_ms(uint z) uint x,y; for(x=z;x0;x-) for(y=114;y0;y-);/*初始化DTH11bit Init_DTH11() bit flag; uchar num; DQ=0; delay_ms(19); / 18ms DQ=1; for(num=0;num10;num+); / 20-40us 34.7us for(num=0;num12;num+); flag=DQ; for(num=0;num11;num+); /DTH響應(yīng)80us for(num=0;num24;num+); /DTH拉高80us return flag;/*讀DTH11數(shù)據(jù)uchar DTH11_RD_CHAR() uchar byte=0; uchar num; uchar num1; while(DQ=1); for(num1=0;num18;num1+) while(DQ=0); byte=1; /高位在前 for(num=0;DQ=1;num+); if(num10) byte|=0x00; else byte|=0x01; return byte;/*讀取DTH11溫度和濕度void DTH11_DUSHU() uchar num; if(Init_DTH11()=0) hum=DTH11_RD_CHAR(); /比正常值高7度左右 DTH11_RD_CHAR(); tem=DTH11_RD_CHAR(); DTH11_RD_CHAR(); DTH11_RD_CHAR(); for(num=0;num17;num+); /最后BIT輸出后拉低總線50us DQ=1; /*顯示函數(shù)void Display_DTH11() display01=hum/10%10; display00=hum%10; LcdShowStr(0, 0, table0); DisplayOneChar (8, 0, ASCII display01 ); DisplayOneChar (9, 0, ASCII display00 ); DisplayOneChar (10, 0, ASCII10 ); /顯示濕度 display11=tem/10%10; display10=tem%10; LcdShowStr(0, 1, table1); DisplayOneChar (8, 1, ASCII display11 ); DisplayOneChar (9, 1, ASCII display10 ); DisplayOneChar (10, 1, 0xdf ); DisplayOneChar (11, 1, ASCII11 ); /顯示溫度 /*主函數(shù)main() tem=0; hum=0; delay_ms(1000); /DTH11開始1s有錯誤輸出 InitLcd1602(); while(1) DTH11_DUSHU(); Display_DTH11(); delay_ms(2000); 附錄2:SHT10程序#include#include #define uchar unsigned char#define noACK 0/繼續(xù)傳輸數(shù)據(jù),用于判斷是否結(jié)束通訊#define ACK 1 /結(jié)束數(shù)據(jù)傳輸;/地址 命令 讀/寫#define STATUS_REG_W 0x06 /000 0011 0#define STATUS_REG_R 0x07 /000 0011 1#define MEASURE_TEMP 0x03 /000 0001 1#define MEASURE_HUMI 0x05 /000 0010 1#define RESET 0x1e /000 1111 0enum TEMP,HUMI;sbit DATA = P25;sbit SCK = P24;sbit RS = P20;sbit RW = P21;sbit E = P22;sfr DBPort = 0x80; /P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數(shù)據(jù)端口/* DS1602函數(shù)聲明 */void LCD_Initial();void GotoXY(unsigned char x, unsigned char y);void Print(unsigned char *str);void LCD_Write(bit style, unsigned char input);/* SHT10函數(shù)聲明 */void s_connectionreset(void);char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);void calc_sth10(float *p_humidity ,float *p_temperature);/float calc_dewpoint(float h,float t);/*/寫字節(jié)程序char s_write_byte(unsigned char value) unsigned char i,error=0; for (i=0x80;i0;i=1) /高位為1,循環(huán)右移 if (i&value) DATA=1; /和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位 else DATA=0; SCK=1; _nop_();_nop_();_nop_(); /延時3us SCK=0;DATA=1; /釋放數(shù)據(jù)線SCK=1; error=DATA; /檢查應(yīng)答信號,確認通訊正常_nop_();_nop_();_nop_();SCK=0; DATA=1;return error; /error=1 通訊錯誤/讀字節(jié)程序char s_read_byte(unsigned char ack)/- unsigned char i,val=0;DATA=1; /釋放數(shù)據(jù)線for(i=0x80;i0;i=1) /高位為1,循環(huán)右移 SCK=1; if(DATA) val=(val|i); /讀一位數(shù)據(jù)線的值 SCK=0; DATA=!ack; /如果是校驗,讀取完后結(jié)束通訊;SCK=1; _nop_();_nop_();_nop_(); /延時3us SCK=0; _nop_();_nop_();_nop_(); DATA=1; /釋放數(shù)據(jù)線return val;/啟動傳輸void s_transstart(void)/ generates a transmission start / _ _/ DATA: |_|/ _ _/ SCK : _| |_| |_ DATA=1; SCK=0; /準備 _nop_(); SCK=1; _nop_(); DATA=0; _nop_(); SCK=0; _nop_();_nop_();_nop_(); SCK=1; _nop_(); DATA=1; _nop_(); SCK=0; /連接復(fù)位void s_connectionreset(void)/ communication reset: DATA-line=1 and at least 9 SCK cycles followed by transstart/ _ _/ DATA: |_|/ _ _ _ _ _ _ _ _ _ _ _/ SCK : _| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_ unsigned char i; DATA=1; SCK=0; /準備for(i=0;i=1 in case of no response form the sensor */ /溫濕度測量char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)/ 進行溫度或者濕度轉(zhuǎn)換,由參數(shù)mode決定轉(zhuǎn)換內(nèi)容; /enum TEMP,HUMI; /已經(jīng)在頭文件中定義unsigned error=0;unsigned int i;s_transstart(); /啟動傳輸switch(mode) /選擇發(fā)送命令 case TEMP : error+=s_write_byte(MEASURE_TEMP); break; /測量溫度 case HUMI : error+=s_write_byte(MEASURE_HUMI); break; /測量濕度 default : break; for (i=0;i100)rh_true=100; /濕度最大修正if(rh_true0.1)rh_true=0.1; /濕度最小修正*p_temperature=t_C; /返回溫度結(jié)果*p_humidity=rh_true; /返回濕度結(jié)果/從相對溫度和濕度計算露點/*float calc_dewpoint(float h,float t)float logEx,dew_point;logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2);dew_point = (logEx - 0.66077)*237.3/(0.66077+7.5-logEx);return dew_point; */*/DS1602程序(1602.c):/#include/內(nèi)部等待函數(shù)*unsigned char LCD_Wait(void) RS=0; RW=1; _nop_(); E=1; _nop_(); E=0; return DBPort; /向LCD寫入命令或數(shù)據(jù)*#define LCD_COMMAND 0 / Command#define LCD_DATA 1 / Data#define LCD_CLEAR_SCREEN 0x01 / 清屏#define LCD_HOMING 0x02 / 光標返回原點void LCD_Write(bit style, unsigned char input) E=0; RS=style; RW=0; _nop_(); DBPort=input; _nop_();/注意順序 E=1; _nop_();/注意順序 E=0; _nop_(); LCD_Wait(); /設(shè)置顯示模式*#define LCD_SHOW 0x04 /顯示開#define LCD_HIDE 0x00 /顯示關(guān) #define LCD_CURSOR 0x02 /顯示光標#define LCD_NO_CURSOR 0x00 /無光標 #define LCD_FLASH 0x01 /光標閃動#define LCD_NO_FLASH 0x00 /光標不閃動void LCD_SetDisplay(unsigned char DisplayMode) LCD_Write(LCD_COMMAND, 0x08|DisplayMode); /設(shè)置輸入模式*#define LCD_AC_UP 0x02#define LCD_AC_DOWN 0x00 / default#define LCD_MOVE 0x01 / 畫面可平移#define LCD_NO_MOVE 0x00 /defaultvoid LCD_SetInput(unsigned char InputMode) LCD_Write(LCD_COMMAND, 0x04|InputMode);/初始化LCD*void LCD_Initial() E=0; LCD_Write(LCD_COMMAND,0x38); /8位數(shù)據(jù)端口,2行顯示,5*7點陣 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); /開啟顯示, 無光標 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC遞增, 畫面不動/液晶字符輸入的位置*void GotoXY(unsigne
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年脲醛塑料項目申請報告
- 【呼倫貝爾】2025年內(nèi)蒙古大興安嶺農(nóng)墾(集團)有限責任公司招錄人才45人筆試歷年典型考題及考點剖析附帶答案詳解
- 文庫發(fā)布:護理課件
- 文庫發(fā)布:勞動法課件
- 腎超聲教學(xué)課件
- 車床教學(xué)課件
- 歌曲小船教學(xué)課件
- 事故案例071課件
- 中餐烹飪教學(xué)課件
- 【惠州】2025年廣東惠州市文化廣電旅游體育局下屬事業(yè)單位招聘工作人員惠州市文化廣電旅游體育局下屬事業(yè)單位2025年公開招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 煤礦隱蔽致災(zāi)因素普查成果礦井自查表
- 2025年重慶市中考語文試卷(含解析)
- 廣東省中山市2023-2024學(xué)年八年級下學(xué)期語文期末試卷(含答案)
- 2025至2030中國處方呼吸藥物行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年河南高考真題化學(xué)試題含答案
- 情趣玩具品類出海指南-上海api+expo官方合作版-雨果跨境-202506
- 電大:試述辛亥革命的歷史意義和局限性是什么?參考答案
- 工程監(jiān)理資料管理制度
- 2025年法律職業(yè)資格考試民法專項練習(xí)卷:公司法真題匯編
- 2025-2030鋁材行業(yè)市場深度調(diào)研及發(fā)展策略研究報告
- 危險性較大的分部分項工程專項施工方案嚴重缺陷清單(試行)2025解讀
評論
0/150
提交評論