版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、鄭州輕工業(yè)學院課程設計說明書題目: 智能儀器儀表設計與實踐 姓 名: 徐萍 院 (系): 電氣信息工程學院 專業(yè)班級: 自動化 01班 學 號: 541101010144 指導教師: 李銀華 齊汝賓 成 績: 時間:2015年01月05日至 2015年01月23日鄭州輕工業(yè)學院課 程 設 計 任 務 書題目 濕度測量儀設計 專業(yè)、班級:自動化11-01 學號 :541101010144姓名 徐萍 主要內(nèi)容、基本要求、主要參考資料等:主要內(nèi)容l 實現(xiàn)單片機和濕度傳感器完成濕度測量功能。l 相對濕度(探頭)范圍: 5 95%。l 具有數(shù)字顯示功能l 參數(shù)設置功能和數(shù)據(jù)通信功能基本要求l 明確課程設
2、計任務,復習和查閱相關資料。l 按照要求對設計進行說明,給出總體設計方案,設計原理。l 軟件編程必須有流程圖,程序必須加注釋,各程序段的開始要注明該段功能和作用。l 寫出體會和總結(jié)要求使用B5打印稿或16開紙手寫,不少于5000字。格式遵照學校規(guī)定。主要參考資料孫環(huán),滕召勝基于SHT10單片集成傳感器溫濕度檢測模塊設計J國外電子測量技術(shù),2006,25(6)樊建明,陳淵?;赟HT10的溫室多點測量系統(tǒng)設計J國外電子測量技術(shù),2006,25(11)陳釗,郭永彩,高潮,等微環(huán)境溫濕度智能化測量儀研究J儀器儀表學報,2004,25(5)完 成 期 限: 2015年1月23日 指導教師簽名: 課程負
3、責人簽名: 2015年 1 月 5 日摘要溫濕度測量儀是對環(huán)境溫濕度進行現(xiàn)場檢測的常用儀表,討論了一種基于SHT10的數(shù)字溫濕度測量儀的設計方法。該溫濕度測量儀的控制系統(tǒng)采用AT89S51單片機,溫濕度傳感器采用SHT11為主要硬件,實現(xiàn)簡易數(shù)字式溫濕度測量儀的硬件電路與軟件程序的設計。實踐證明該溫濕度測量儀具有測量精度高等特點,具有一定的實用價值。采用單片機和溫濕度傳感器構(gòu)成的數(shù)字溫濕度測量儀顯得非常重要,數(shù)字溫濕度測量儀已被廣泛應用于電子測量、儀表自動化、溫室大棚、自動控制等多個智能化領域中。在過去某些場合經(jīng)常采用熱敏電阻和濕度電容來分別測量環(huán)境的溫濕度,這種測量系統(tǒng)普遍精度不高,而且在多
4、點測量時系統(tǒng)設計較為復雜。而采用SHT10這種集溫濕度傳感器于一體的數(shù)字集成式傳感器,則會使得系統(tǒng)大大降低成本,簡化設計。關鍵詞:SHT10;AT89S51;濕度傳感器目 錄1緒論11.1數(shù)字式濕度測量儀設計的意義11.2國內(nèi)外研究現(xiàn)狀11.3設計主要任務32總體設計方案32.1系統(tǒng)綜述32.2方案選擇42.3總體設計方案設計53系統(tǒng)的硬件設計63.1系統(tǒng)的硬件電路63.2單片機與SHT10連接電路圖83.3 LED顯示電路的設計93.4報警電路103.5鍵盤模塊114系統(tǒng)的軟件設計114.1主程序框圖114.2數(shù)據(jù)顯示程序框圖12總結(jié)14參考文獻15附錄116附錄2241緒論 在日常生活或者
5、工農(nóng)業(yè)生產(chǎn)中,經(jīng)常會需要檢測環(huán)境的溫濕度,因此采用單片機和溫濕度傳感器構(gòu)成的數(shù)字溫濕度測量儀顯得非常重要,數(shù)字溫濕度測量儀已被廣泛應用于電子測量、儀表自動化、溫室大棚、自動控制等多個智能化領域中。在過去某些場合經(jīng)常采用熱敏電阻和濕度電容來分別測量環(huán)境的溫濕度,這種測量系統(tǒng)普遍精度不高,而且在多點測量時系統(tǒng)設計較為復雜。而采用SHT10這種集溫濕度傳感器于一體的數(shù)字集成式傳感器,則會使得系統(tǒng)大大降低成本,簡化設計。1.1數(shù)字式濕度測量儀設計的意義隨著工業(yè)自動化的愈趨完善,各種各樣的傳感器被用在了各式各樣的場合。而濕度這個重要的參數(shù)成為了實現(xiàn)過程控制自動化必不可少的過程。換言之,問題具體化為了選擇
6、怎樣的傳感器及如何去檢測濕度的變化,并根據(jù)檢測結(jié)果調(diào)整系統(tǒng)以使之保持在最佳工作狀態(tài)。此外,單片機技術(shù)的不斷發(fā)展完善使單片機已經(jīng)成為科技領域的重要工具,廣泛應用于各種儀表中,由于單片機具有體積小、耗能小、功能強的特點,引入單片機可使儀表數(shù)字化、智能化、微型化,提高測試的自動化程度和精度。將單片機和SHT10結(jié)合的數(shù)字式濕度測量儀,大大提高了觀測精度,數(shù)值顯示清晰度,將會取得很好的應用效果。總之,環(huán)境濕度的檢測與調(diào)節(jié)儀器的設計和開發(fā)具有非常大的市場前景和實用價值。1.2國內(nèi)外研究現(xiàn)狀濕度由于受到溫度、大氣壓強的影響,其標準是個難題。從早期的毛發(fā)濕度計到后來發(fā)展起來的電阻式、電容式溫度計,由于他們存
7、在著熱敏元件的長期穩(wěn)定性差,需要常常進行表面的清洗及校準,造成使用不方便,而且精度較差的缺陷,因此,最常采用的方法依然是干濕球間接測濕法,但是干濕球溫度與濕度的關系比較復雜,模擬儀表難以實現(xiàn)這種轉(zhuǎn)換,通常是借助人工計算或查表求出相對濕度,隨著單片機的發(fā)展,使一些繁重而復雜的人工計算自動完成。后來發(fā)展到利用濕空氣光學特性的紅外、紫外吸收濕度計乃至光纖濕度計,但是到目前為止,全世界還沒有一種完全理想的測濕材料,原因在于濕敏元件的線性化一直是困擾人們的一個難題,測量儀表數(shù)字化后,要求相對濕度與顯示值線性化的對應關系才能保證濕度的測量精確度。目前,國外生產(chǎn)集成濕度傳感器的主要廠家及典型產(chǎn)品分別為Hon
8、eywell公司(HIH-3602、HIH-3605、HIH-3610型),Humirel公司(HM1500、HM1520、HF3223、HTF3223型),Sensiron公司(SHT11、SHT15型)。這些產(chǎn)品可分成以下三種類型: (1)線性電壓輸出式集成濕度傳感器;典型產(chǎn)品有HIH3605/3610、HM1500/1520。其主要特點是采用恒壓供電,內(nèi)置放大電路,能輸出與相對濕度呈比例關系的伏特級電壓信號,響應速度快,重復性好,抗污染能力強。 (2)線性頻率輸出集成濕度傳感器;典型產(chǎn)品為HF3223型。它采用模塊式結(jié)構(gòu),屬于頻率輸出式集成濕度傳感器,在55%RH時的
9、輸出頻率為8750Hz(型值),當上對濕度從10%變化到95%時,輸出頻率就從9560Hz減小到8030Hz。這種傳感器具有線性度好、抗干擾能力強、便于配數(shù)字電路或單片機、價格低等優(yōu)點。 (3)頻率/溫度輸出式集成濕度傳感器;典型產(chǎn)品為HTF3223型。它除具有HF3223的功能以外,還增加了溫度信號輸出端,利用負溫度系數(shù)(NTC)熱敏電阻作為溫度傳感器。當環(huán)境溫度變化時,其電阻值也相應改變并且從NTC端引出,配上二次儀表即可測量出溫度值。 2002年Sensiron公司在世界上率先研制成功SHT11、 SHT15型智能化溫度/溫度傳感器,其外形尺寸僅為7.6(
10、mm)×5(mm)×2.5(mm),體積與火柴頭相近。出廠前,每只傳感器都在溫度室中做過精密標準,標準系數(shù)被編成相應的程序存入校準存儲器中,在測量過程中可對相對濕度進行自動校準。它們不僅能準確測量相對溫度,還能測量溫度和露點。測量相對溫度的范圍是0100%,分辨力達0.03%RH,最高精度為±2%RH。測量溫度的范圍是-40123.8,分辨力為0.01。1.3設計主要任務1.設計的主要內(nèi)容:(1) 實現(xiàn)單片機和濕度傳感器完成濕度測量功能。(2) 相對濕度(探頭)范圍: 5 95%。(3) 具有數(shù)字顯示功能。(4) 參數(shù)設置功能和數(shù)據(jù)通信功能。 2.系統(tǒng)硬件電路設計
11、,給出總體設計框圖,而且詳細描述各組成電路的設計原理及方法。3.系統(tǒng)軟件設計與實現(xiàn),介紹數(shù)據(jù)采集程序、參數(shù)存儲及校正程序、數(shù)碼管顯示程序、鍵盤程序等設計,給出了系統(tǒng)主程序框圖及數(shù)據(jù)顯示程序框圖。2總體設計方案2.1系統(tǒng)綜述 根據(jù)本設計內(nèi)容要求的性能指標,方案設計時不僅要考慮怎么樣實現(xiàn)測量一定精度的溫濕度信號值的基本功能,還要考慮溫濕度超限時系統(tǒng)的報警功能。 根據(jù)設計要實現(xiàn)的功能,還要考慮系統(tǒng)控制芯片擴展口分配方案。 選擇AT89S51單片機就能夠滿足設計要求。作為工業(yè)用的環(huán)境檢測類儀器,系統(tǒng)工作的可靠性,實用性,長久性指標也是系統(tǒng)在設計時值得考慮的幾個因素。2
12、.2方案選擇 (1)數(shù)字式 這種方案在信號的采樣、放大電路、報警設置以及報警電路等環(huán)節(jié)與第一種方案區(qū)別不大,只是在放大電路后采用了A/D轉(zhuǎn)換電路,它將模擬量轉(zhuǎn)換成數(shù)字量,然后經(jīng)過驅(qū)動電路進行數(shù)碼顯示,它最大的好處是顯示直觀,這是模擬式產(chǎn)品向智能式產(chǎn)品過渡的中間型產(chǎn)品,屬于第二代儀表,在上個世紀80年代的設計中大都采用這種結(jié)構(gòu)的方案,在日常生活中看到的大都是未被替換的產(chǎn)品。在目前的設計中,基本上是不采用這種方案。 (2)智能式 這是目前檢測類儀器首選的方案,利用目前成熟的計算機技術(shù),依靠計算機強大的處理能力,對數(shù)據(jù)前向通道采集到的濕度,溫度數(shù)據(jù)進行判斷、處理、存儲,
13、并可采用十分簡單的方法通過顯示驅(qū)動芯片將顯示信息送出進行數(shù)碼顯示。對測量所得結(jié)果超限時的報警處理可以按照測量時間的不同情況分別設置不同的報警值。系統(tǒng)將會對測量回路巡回監(jiān)測。目前國內(nèi)外對溫度和濕度測量產(chǎn)品有很多,但是大部分的產(chǎn)品都是用紅外熱輻射的傳感器制作的。這種產(chǎn)品結(jié)構(gòu)復雜,價格昂貴并不適用于大氣的測量。本設計使用比較常見的溫濕度傳感器和價格便宜的電子元器件,實現(xiàn)檢測系統(tǒng)的智能化。它還具有較高的安全性,可靠性,適用于一般的家庭。鑒于國外歐美等國家微電子技術(shù)的發(fā)展,在不少的測試領域,將一個系統(tǒng)的所有電路,包括CPU都集成在一塊芯片上,構(gòu)成一個集成的系統(tǒng),況且這也是目前儀表發(fā)展的方向。所以本設計采
14、用集成芯片SHT10作為溫濕度傳感器。鑒于以上情況,本課題考慮到國內(nèi)目前的現(xiàn)狀,構(gòu)成器件的來源以及微電子技術(shù)的發(fā)展趨勢,本設計決定采用智能化的設計方案設計。2.3總體設計方案設計該系統(tǒng)主要由AT89S51單片機系統(tǒng),電源電路,復位及振蕩電路,LED顯示電路,通信模塊,鍵盤模塊和報警電路等部分組成。如圖2.1所示為總體方案設計框圖。本方案采用單片數(shù)字溫濕度集成傳感器將濕度轉(zhuǎn)換成數(shù)字信號,然后通過總線將信號傳遞給CPU。SHT10采用CMOS 過程微加工專利技術(shù),確保產(chǎn)品具有極高的可靠性。SHT10將檢測的濕度通過內(nèi)部的AD轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號,然后將信號輸入單片機進入顯示電路顯示,期間可以按下按
15、鍵定點顯示此時刻濕度值,若此環(huán)境的濕度值低于或者超過設限范圍并進入報警電路,蜂鳴器能響起。圖2-1 總體設計方案圖3系統(tǒng)的硬件設計本設計的原理是一個基于單片機AT89S51與濕度傳感器SHT10等技術(shù)相結(jié)合主體,利用模擬濕度傳感器SHT10對某一環(huán)境的濕度進行檢測,實現(xiàn)對此環(huán)境濕度的測控,并將它的輸出由單片機的軟件對其進行校正處理,所得到的結(jié)果最終送給四位數(shù)碼管顯示,切帶有濕度上下限的報警。該系統(tǒng)主要由AT89S51單片機系統(tǒng),電源電路,復位及振蕩電路,LED顯示電路,通信模塊,鍵盤模塊和報警電路等部分組成。3.1系統(tǒng)的硬件電路AT89S51單片機的最小系統(tǒng)由時鐘電路、復位電路、電源電路及單片
16、機構(gòu)成。單片機的時鐘信號用來提供單片機片內(nèi)各種操作的時間基準,復位操作則使單片機的片內(nèi)電路初始化,使單片機從一種確定的初態(tài)開始運行。3.1.1單片機的電源模塊直流電源的輸入為220V的電網(wǎng)電壓,所需直流電壓的數(shù)值和電網(wǎng)電壓的有效值相差較大,因而需要通過電源變壓器降壓。再通過整流電路將正弦波電壓轉(zhuǎn)換為單一方向的脈動電壓。為了減小電壓的脈動,需通過低通濾波電路濾波,使輸出電壓平滑。理想情況下是可以將交流分量全部濾掉,但是因為受負載影響,加之濾波電路并不能達到理想效果。還需要加入穩(wěn)壓電路,使輸出直流電壓基本不受電網(wǎng)電壓波動和負載電阻變化的影響。如圖3.1電源電路所示。3.1.2晶振及復位電路單片機的
17、時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大器,當外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。當5l系列單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。根據(jù)應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關復位。上電復位要求接通電源后,自動實現(xiàn)復位操作。上電或開關復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位
18、。單片機的復位操作使單片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。系統(tǒng)復位是任何微機系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認的硬件狀態(tài)下。51單片機的復位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內(nèi)部復位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。如圖3.2所示。圖3-1 單片機的供電電源電路圖3-2 單片機的晶振電路及復位電路3.2單片機與SHT10連接電路圖SHTxx 單片數(shù)字溫
19、濕度集成傳感器采用CMOS 過程微加工專利技(CMOSens technology),確保產(chǎn)品具有極高的可靠性和出色的長期穩(wěn)定性。該傳感器由1 個電容式聚合體測濕元件和1 個能隙式測溫元件組成,并與1 個14 位A/D 轉(zhuǎn)換器以及1 個2-wire 數(shù)字接口在單芯片中無縫結(jié)合,使得該產(chǎn)品具有功耗低、反應快、抗干擾能力強等優(yōu)點。SHT10 的特點主要包括以下幾個方面:相對濕度和溫度的測量兼有露點輸出;全部校準,數(shù)字輸出;接口簡單(2-wire),響應速度快;超低功耗,自動休眠;出色的長期穩(wěn)定性;超小體積(表面貼裝); 測濕精度±4.5%RH,測溫精度±0.5(25)。 SHT
20、10只需要通過兩條線與AT89S51單片機的管腳連接即可進行串行通信,如圖3.5,其中單片機的P2.2 口與SHT10的DATA 端相連,P2.1與SCK 端相連,SHT10的VDD接電源,GND接地。如圖3.3單片機與SHT10連接圖所示。圖3-3 單片機與濕度傳感器連接圖3.3 LED顯示電路的設計本方案采用LED顯示方式濕度示數(shù),所有位的段選線并聯(lián)起來,由一個8位I/O端口控制,而各位的陽極或陰極分別由相應的I/O端口控制,形成各位的輪流選通,即LED顯示器分時輪流工作,每次只能使一個器件顯示15ms。由于人的視覺暫留現(xiàn)象和發(fā)光二極管的余暉效應,人眼仍感覺所有的器件同時顯示,獲得穩(wěn)定的視
21、覺效果。此種顯示方式的優(yōu)點是占用I/O端口少,隨著高亮度LED數(shù)碼管的出現(xiàn),動態(tài)顯示同樣可以達到很好的顯示效果。如圖3.4所示為LED動態(tài)顯示電路,LED顯示器采用共陰極接法,單片機P0口作為段碼輸出口,P2.4P2.7口作為位碼輸出口。每次顯示時,單片機將段碼送至P0口,經(jīng)過驅(qū)動器74LS244提供必要的驅(qū)動電流,送到各個LED顯示器的相應段;然后將位碼送入P2.4P2.7口,再經(jīng)過6反相驅(qū)動器,使其中一個LED的陰極變?yōu)榈碗娖?,這樣對應該為顯示器的段碼有效,而其他位無效。一段時間以后,程序更換段碼和位碼,使下一個顯示器選中并顯示相應內(nèi)容。如圖3.4 LED顯示電路圖所示。圖3-4 LED顯
22、示電路圖3.4報警電路報警電路由蜂鳴器,電阻,三極管組成,如圖3.5報警電路圖所示,當濕度值超過上下限范圍時進入報警電路,蜂鳴器響。圖 3-5 報警電路圖3.5鍵盤模塊鍵盤部分如圖3.6所示。由于整體電路不需要很多按鍵,所以用不到矩陣鍵盤的方案。單片機只需要檢測哪個按鍵有了低電平,即可確定哪個按鍵被按下了。圖3-6 鍵盤部分電路圖4系統(tǒng)的軟件設計4.1主程序框圖程序數(shù)據(jù)的一種理想方法是結(jié)構(gòu)化程序設計方法。結(jié)構(gòu)化程序設計是對利用到的控制結(jié)構(gòu)類程序做適當?shù)南拗?,特別是限制轉(zhuǎn)向語句(或指令)的使用,從而控制了程序的復雜性,力求程序的上、下文順序與執(zhí)行流程保持一致性,使程序易讀易理解,減少邏輯錯誤和易
23、于修改、調(diào)試。根據(jù)系統(tǒng)的控制任務,本系統(tǒng)的軟件設計主要由主程序、初始化程序、顯示子程序、數(shù)據(jù)采集子程序和延時程序等組成。主程序框圖:SHT10溫濕度子程序主要包括:SHT10啟動程序、應答位檢測、濕度測量、濕度數(shù)據(jù)處理等,其主要流程圖如圖4.1所示。4-1 SHT10溫濕度子程序流程圖4.2數(shù)據(jù)顯示程序框圖 數(shù)據(jù)顯示程序框圖如圖4.2所示。顯示子程序主要是來判斷是否需要顯示,以及如何去顯示,也是十分重要的程序之一。而顯示子程序是其他程序所需要調(diào)用的程序之一,因此,顯示子程序的設計就顯得舉足輕重,必須認真細心的編寫。圖4-2 數(shù)據(jù)采集顯示程序框圖總結(jié) 在完成課程設計的過程中,我在圖書館查閱了老師
24、任務書上給出的相關資料,懂得了濕度測量儀的工作過程,并且能夠和自己學過的知識很好的結(jié)合。本次課設是濕度測量儀設計,主要作用是實現(xiàn)單片機和濕度傳感器完成濕度測量功能,且具有數(shù)字顯示功能。課程設計旨在鍛煉每位同學對所學知識的運用能力,自己設計一個合理的方案,不僅需要對該生產(chǎn)過程有最基本的理解,而且需要考慮采用何種方案,如何實現(xiàn)預期的效果,通過幾天緊張的忙碌,對過程控制這門課有了更深的了解,對上課中老師所講的單片機及程序設計有了進一步了解,同時對各種不同系統(tǒng)選用什么樣的電阻,電容有了進一步的理解,特別是SHT10溫濕度傳感器的使用及工作原理有了深刻理解,就像老師說的,我們都應該對自己嚴格要求,只有把
25、所學的知識牢牢掌握,才能適應不同工況下對產(chǎn)品的需求。參考文獻1孫環(huán),滕召勝基于SHT10單片集成傳感器溫濕度檢測模塊設計J國外電子測量技術(shù),2006,25(6):43-462樊建明,陳淵?;赟HT11的溫室多點測量系統(tǒng)設計J國外電子測量技術(shù),2006,25(11):4-83謝敏,徐會冬智能傳感器SHT11在單片機嵌入式系統(tǒng)中的應用J現(xiàn)代電子技術(shù),2005,28(14):89-91,944陳釗,郭永彩,高潮,等微環(huán)境溫濕度智能化測量儀研究J儀器儀表學報,2004,25(5):620-6235微機原理及應用 黃冰等編著 重慶:重慶大學出版社 ,20036譚浩強,C程序設計M.清華大學出版社,19
26、98,1.附錄1系統(tǒng)的主程序及子程序001.#include <reg52.h> 002.#include <intrins.h> 003. 004./* 005. 宏定義 006.*/007.#define uint unsigned int 008.#define uchar unsigned char 009.#define noACK 0 010.#define ACK 1
27、160; 011.#define STATUS_REG_W 0x06 012.#define STATUS_REG_R 0x07 013.#define MEASURE_TEMP 0x03 014.#define MEASURE_HUMI 0x05 015.#define RESET &
28、#160; 0x1e 016. 017.enum TEMP,HUMI; 018. 019.typedef union /定義共用同類型 020. 021.unsigned int i; 022.float
29、f; 023. value; 025. 026./* 027.位定義 028.*/029.sbit lcdrs=P10; 030.sbit lcdrw=P11; 031.sbit lcden=P12; 032.sbit SCK = P22; 033.sbit DATA = P21; 034. 035./* 036.變量定義 037.*/038.uchar table2="SHT11 溫濕度檢測" 039.uchar table3=&qu
30、ot;溫度為: " 040.uchar table4="濕度為:" 041.uchar table5="." 042.uchar wendu6; 043.uchar shidu6;
31、60; 044. 045./* 046.1ms延時函數(shù) 047.*/048.void delay(int z) 049. 050.int x,y; 051.for(x=z;x>0;x-) 052.for(y=125;y>0;y-); 053. 054. 055./* 056.50u
32、s延時函數(shù) 057.*/058.void delay_50us(uint t) 059. 060.uint j; 061.for(;t>0;t-) 062.for(j=19;j>0;j-); 063. 064. 065./* 066.50ms延時函數(shù) 067.*/068.void delay_50ms(uint t) 069. 070.uint j; 071.for(;t>0;t-) 072.for(j=6245;j&
33、gt;0;j-); 073. 074. 192./* 193.LED顯示函數(shù) 194.*/195.void displayshidu(void) 196. 197.uchar i; 198.write_com(0x8C); 199.for(i=0;i<3;i+) 200. 201.write_dat(shidui); 202.delay_50us(1);
34、203. 204.for(i=0;i<1;i+) 205. 206.write_dat(table5i); 207.delay_50us(1); 208. 209.for(i=4;i<5;i+) 210. 211.write_dat(shidui); 212.delay_50us(1); 213. 214. 215. 216./*
35、60;217.SHT10寫字節(jié)程序 218.*/219.char s_write_byte(unsigned char value) 220. 221.unsigned char i,error=0; 222.for (i=0x80;i>0;i>>=1) /高位為1,
36、循環(huán)右移 223. 224.if (i&value) DATA=1; /和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位 225.else DATA=0;
37、; 226.SCK=1; 227._nop_();_nop_();_nop_(); /延時3us 228.SCK=0; 229.&
38、#160;230.DATA=1; /釋放數(shù)據(jù)線 231.SCK=1;
39、0; 232.error=DATA; /檢查應答信號,確認通訊正常 233._nop_();_nop_();_nop_(); 234.SCK=0;
40、60; 235.DATA=1; 236.return error; /error=1 通訊錯誤 237. 238. 239./* 240.SHT10讀字節(jié)程序 241.*/242.char
41、;s_read_byte(unsigned char ack) 243. 244.unsigned char i,val=0; 245.DATA=1; /釋放數(shù)據(jù)線 246.for(i=
42、0x80;i>0;i>>=1) /高位為1,循環(huán)右移 247. 248.SCK=1;
43、249.if(DATA) val=(val|i); /讀一位數(shù)據(jù)線的值 250.SCK=0; 251. 252.DATA=!ack;
44、0; /如果是校驗,讀取完后結(jié)束通訊 ; 253.SCK=1; 254._nop_();_nop_();_nop_();
45、60; /延時3us 255.SCK=0; 256._nop_();_nop_();_nop_(); 257.DATA=1;
46、160; /釋放數(shù)據(jù)線 258.return val; 259. 260. 261./* 262.SHT10啟動傳輸 263.*/264.void s_transstart(void) 265. 266.DATA=1; SCK=0;
47、60; /準備 267._nop_(); 268.SCK=1; 269._nop_(); 270.DATA=0; 271._nop_(); 272.SCK=0; 273._nop_();_nop_();_nop_(); 274.SCK=1; 275._nop_(); 276.DATA=1; 277._nop_(); 278.SCK=0;
48、 279. 280. 281. 282./* 283.SHT10連接復位 284.*/285.void s_connectionreset(void) 286. 287.unsigned char i; 288.DATA=1; SCK=0;
49、 /準備 289.for(i=0;i<9;i+) /DATA保持高,SCK時鐘觸發(fā)9次,發(fā)送啟動傳輸,通迅即復位 290. 291.SCK=1; 292.SCK=0; 293. 294.s_transstart();
50、; /啟動傳輸 295. 296. 297./* 298.SHT10溫濕度檢測 299.*/300.char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode) 301.
51、 302.unsigned error=0; 303.unsigned int i; 304. 305.s_transstart(); /啟動傳輸 306.switch(mode)
52、160; /選擇發(fā)送命令 307. 308.case TEMP : error+=s_write_byte(MEASURE_TEMP); break; /測量溫度 309.case HUMI : error+=s_write_byte(MEAS
53、URE_HUMI); break; /測量濕度 310.default : break; 311. 312.for (i=0;i<65535;i+) if(DATA=0) break; /等待測量結(jié)束 313.if(DAT
54、A) error+=1; / 如果長時間數(shù)據(jù)線沒有拉低,說明測量錯誤 314.*(p_value) =s_read_byte(ACK); /讀第一個字節(jié),高字節(jié) (MSB) 315.*(p_value+1)=s_
55、read_byte(ACK); /讀第二個字節(jié),低字節(jié) (LSB) 316.*p_checksum =s_read_byte(noACK); /read CRC校驗碼 317.return error;
56、 / error=1 通訊錯誤 318. 319./* 320.SHT11溫濕度值標度變換及溫度補償 321.*/322.void calc_sth10(float *p_humidity ,float *p_temperature) 323. 324.const float C1=-4.0;
57、60; / 12位濕度精度 修正公式 325.const float C2=+0.0405; / 12位濕度精度 修正公式 326.const float C3=-0.0000028; / 12位濕度精度 修正公式 327.const float
58、160;T1=+0.01; / 14位溫度精度 5V條件 修正公式 328.const float T2=+0.00008; / 14位溫度精度 5V條件 修正公式 329. 330.float rh=*p_humidity;
59、60; / rh: 12位 濕度 331.float t=*p_temperature; / t: 14位 溫度 332.float rh_lin;
60、0; / rh_lin: 濕度 linear值 333.float rh_true; / rh_true
61、: 濕度 ture值 334.float t_C; / t_C : 溫度 335. 336.t_C=t*0.01 - 40;
62、160; /補償溫度 337.rh_lin=C3*rh*rh + C2*rh + C1; /相對濕度非線性補償 338.rh_true=(t_C-25)*(T1+T2*rh)+rh_lin; /相對濕度對于溫度依賴性補償 339.if(rh_true>100)rh_true=100; /濕度最大修正
63、0;340.if(rh_true<0.1)rh_true=0.1; /濕度最小修正 341. 342.*p_temperature=t_C; /返回溫度結(jié)果 343.*p_humidity=rh_true; &
64、#160; /返回濕度結(jié)果 344. 345./* 346.主函數(shù) 347.*/ 348.void main(void) 349. 350.unsigned int temp,humi; 351.valu
65、e humi_val,temp_val; /定義兩個共同體,一個用于濕度,一個用于溫度 352.unsigned char error; /用于檢驗是否出現(xiàn)錯誤 353.unsigned char checksum;
66、160; /CRC 354.init12864lcd(); 355.display1(); 356.display2(); 357.display3(); 358.s_connectionreset();
67、 /啟動連接復位 359.while(1) 360. 361.error=0; /初始化error=0,即沒有錯誤 362.error+=s_measure(unsig
68、ned char*)&temp_val.i,&checksum,TEMP); /溫度測量 363.error+=s_measure(unsigned char*)&humi_val.i,&checksum,HUMI); /濕度測量 364.if(error!=0) s_connectionreset(); /如果發(fā)生錯誤,系統(tǒng)復位 365.else366. 367.humi_val.f=(float)humi_val.i;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工企業(yè)2025年春節(jié)節(jié)后復工復產(chǎn)工作專項方案 (合計3份)
- 下午考前囑咐囑咐什么?發(fā)言提綱
- 古詩文初賽答案(正稿)
- 《電路原理圖繪制》課件
- 傳統(tǒng)服飾設計師職責概述
- 鋼鐵結(jié)構(gòu)設計師職責說明
- 煤炭行業(yè)美工工作總結(jié)
- 特需科護士工作總結(jié)
- 財務工作資金管理總結(jié)
- 專業(yè)技能與教研水平
- 中醫(yī)臨床路徑眼科
- 甲狀腺細針穿刺細胞學檢查
- 一年級上數(shù)學教案解決問題復習課_人教版
- 行進間單手低手上籃教案
- 簡約中國風蘭花信紙背景模板
- 安利培訓體系介紹
- 推薦-挖掘機檢驗報告精品
- 排洪溝工程設計說明
- 關于礦棉裝飾吸聲板檢驗報告加圖標版
- 23、PFMEA檢查表
- CSX購倂Conrail之后能夠產(chǎn)生的綜效(synergy)列示
評論
0/150
提交評論