【正文】
C increments. For Fahrenheit usage, a lookup table or conversion factor must be used.Note that temperature is represented in the DS1820 in terms of a 1/2176。C, since it may not be able to sustain munications given the higher leakage currents the DS1820 exhibits at these temperatures. For applications in which such temperatures are likely, it is strongly remended that VDD be applied to the DS1820. For situations where the bus master does not know whether the DS1820’s on the bus are parasite powered or supplied with external VDD, a provision is made in the DS1820 to signal the power supply scheme used. The bus master can determine if any DS1820’s are on the bus which require the strong pull–up by sending a SkipROM protocol, then issuing the read power supply mand. After this mand is issued, the master then issues read time slots. The DS1820 will send back “0” on the 1–Wire bus if it is parasite powered。在這次設(shè)計中也得到了周圍同學(xué)的大力支持和熱心幫助,他們對本檢測儀的設(shè)計提出了許多有益的建議和意見,在此一并致謝。由于這次設(shè)計的時間較短,該檢測儀的主要功能已經(jīng)實現(xiàn),要達(dá)到實用,還需繼續(xù)進(jìn)一步進(jìn)行研究設(shè)計。結(jié) 論該檢測儀適用于需要對溫濕度實時檢測的多種場合。通過以上兩種方法的比較,本設(shè)計選用靜態(tài)顯示的方式,同時選用8位串進(jìn)并出移位寄存器74HC164來輔助顯示,其功能用法在鍵盤掃描過程中也詳細(xì)介紹過了,這里就不在重述。又因為該芯片是8位并行輸出串行移位寄存器,所以這個送數(shù)過程要連續(xù)重復(fù)8次才能夠?qū)崿F(xiàn)一個單元的數(shù)據(jù)完全送出??衫孟率接嬎愠霏h(huán)境的相對濕度:RH=RHn1+△RH然后把結(jié)果存到單片機(jī)的存儲單元中,以供數(shù)據(jù)顯示程序處理。如果兩者差值小于0,則將n 值加1,繼續(xù)拿f與fn作比較。圖35 濕度檢測模塊程序流程圖在線性化處理之前,需要在單片機(jī)的數(shù)據(jù)存儲器里存儲一個頻率表,即由fn組成的數(shù)據(jù)表格。對于定時計數(shù)是將單片機(jī)的定時器一個設(shè)為定時狀態(tài)來確定要計數(shù)的時間,把另外一個定時器設(shè)為計數(shù)狀態(tài),在它的輸入口接待檢測的波形頻率的輸出端,而工作在邊沿觸發(fā)狀態(tài),這樣就可以個對這個端口輸入的波形頻率進(jìn)行技術(shù),定時器可以通過設(shè)定時間來確定度波形個數(shù)的時長,本設(shè)計中要用波形的頻率,所以最好是讀一秒中波形的個數(shù),但單片機(jī)的計數(shù)器最多是十六位的,達(dá)不到計數(shù)一秒的要求,這時就得把若干個定時疊加起來,就是每定時中斷若干次采讀一個波形頻率,試驗證明能夠?qū)嵭斜驹O(shè)計的要求,單片機(jī)計數(shù)的波形的周期必須大于單片機(jī)工作的機(jī)械周期,通過查閱資料知道,設(shè)計中用的傳感器的波形周期遠(yuǎn)大于單片機(jī)的機(jī)械周期,故能這樣來檢測頻率。如果本設(shè)計將檢測到頻率直接送給顯示器顯示的話,得到的結(jié)果將與環(huán)境中的實際濕度值存在很大差別,無法達(dá)到性能指標(biāo)中所要求的測量精度和分辨力。要準(zhǔn)確地測量濕度,必須對振蕩頻率作溫度補(bǔ)償。當(dāng)AD轉(zhuǎn)換器將采樣的電壓值轉(zhuǎn)變?yōu)閿?shù)字值后,單片機(jī)將這個數(shù)字值進(jìn)行簡單的處理就可以得到要檢測的溫度值,本設(shè)計將溫度對電壓的變化大體堪為近似的線性關(guān)系,把采集到的數(shù)字量是將5V的電壓分成1024個等分,則每變化一個溫度就可以對應(yīng)一個數(shù)字電壓量的變化,就可以通過這個數(shù)字量直接對應(yīng)出環(huán)境溫度。結(jié)果 ADC_DATA[7:0] = 256 x Vin / Vcc。儀表的應(yīng)用軟件根據(jù)KT=(T1T2)/(V1V2)和V0=VT1T1/KT計算出KT和V0 的值,并存儲在單片機(jī)的EEPROM數(shù)據(jù)存儲器中,既完成該儀表的溫度測量精度的校正。R初始化對單片機(jī)的工作非常重要,因為單片機(jī)經(jīng)過復(fù)位以后一些狀態(tài)字,寄存器的初值可能是隨機(jī)分配的值也可能是全置0或置1,程序在運(yùn)行過程中,程序狀態(tài)字起著重要的作用,為了不影響程序的正常運(yùn)行初始化是十分必要的。LED顯示電路圖如圖212所示。2口通過電阻、三極管與數(shù)碼管的共陽極連接。綜合以上優(yōu)點本設(shè)計采用次傳感器作為濕度檢測的傳感器。通過AD590的參數(shù)可以看出,它完全適合本設(shè)計的需要,同時AD590性能穩(wěn)定,即便經(jīng)過很長一段時間它的漂移量也很小,而且工作電路簡單直觀。基于STC12C5410AD單片機(jī)的溫濕度檢測儀的原理圖見附錄。工作電壓: – (5V 單片機(jī))、具有通用I/O 口(27/23 個),復(fù)位后為: 準(zhǔn)雙向口/ 弱上拉(普通8051 傳統(tǒng)I/O 口) 分別可設(shè)置成四種模式:準(zhǔn)雙向口/ 弱上拉,推挽/ 強(qiáng)上拉,僅為輸入/ 高阻,開漏,同時每個I/O 口驅(qū)動能力均可達(dá)到20mA,但整個芯片最大不得超過55mA;STC12C5410AD 單片機(jī)I S P (在系統(tǒng)可編程)/ I A P (在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口()直接下載用戶程序,數(shù)秒即可完成一片;時鐘源:外部高精度晶體/ 時鐘,內(nèi)部R/C 振蕩器,用戶在下載用戶程序時,可選擇是使用內(nèi)部R/C 振蕩器還是外部晶體/ 時鐘,常溫下內(nèi)部R/C 振蕩器頻率為: ~ ,精度要求不高時,可選擇使用內(nèi)部時鐘,但因為有制造誤差和溫漂,應(yīng)認(rèn)為是4MHz ~ 8MHz。鍵盤、顯示模塊完成檢測儀的檢測數(shù)據(jù)的顯示功能,反映出要檢測的的數(shù)據(jù)。電阻的電壓輸入到STC12C5410AD單片機(jī)中,經(jīng)ADC轉(zhuǎn)換為數(shù)字量,有應(yīng)用軟件處理得到環(huán)境溫度。 性能指標(biāo)1. 相對濕度測量精度和范圍: 177。論文的第一章介紹了溫濕度檢測儀的主要性能指標(biāo)及其工作原理,主要介紹了溫濕度檢測儀的硬件設(shè)計總體方案和溫濕度檢測儀的應(yīng)用軟件系統(tǒng)的總體設(shè)計方案;第二章主要介紹了溫濕度檢測儀的硬件電路設(shè)計,重點介紹了溫度檢測電路、鍵盤LED顯示電路和濕度檢測電路;第三章主要介紹了基于STC12C5410AD單片機(jī)的濕度檢測儀的軟件設(shè)計,軟件設(shè)計部分采用模塊化設(shè)計,重點介紹了濕度檢測模塊程序設(shè)計中鍵盤掃描、LED顯示以及對濕度的頻率的線性化處理和溫度補(bǔ)償。 鍵盤掃描和LED顯示模塊程序設(shè)計 20167。 溫濕度檢測儀的硬件電路設(shè)計 7167。該溫濕度檢測儀能夠基本完成的溫濕度檢測,但由于個人經(jīng)驗不足等因素,本設(shè)計還有一些不足之處,離產(chǎn)品實用還有一定的差距,還有一些方面需要進(jìn)一步完善。基于此單片機(jī)的溫濕度檢測儀可以實時、準(zhǔn)確的測量環(huán)境中的溫度和相對濕度。 溫濕度檢測儀的硬件設(shè)計總體結(jié)構(gòu)方案 3167。 溫濕度檢測模塊程序設(shè)計 12167。本文介紹的濕度檢測儀就是以STV12C5410AD單片機(jī)作為核心控制器設(shè)計的,它具有體積小、操作簡單、性能穩(wěn)定、測量精度高和抗干擾能力強(qiáng)等優(yōu)點,可廣泛應(yīng)用于需要對溫濕度進(jìn)行測控的領(lǐng)域中。該設(shè)計主要分為硬件設(shè)計和軟件部分的設(shè)計,下面先總體介紹設(shè)計的性能指標(biāo)和軟硬件的總體設(shè)計方案??赏ㄟ^鍵盤電路來選擇檢測濕度或者檢測溫度,也可以自動檢測溫度和濕度。 溫濕度檢測儀應(yīng)用軟件系統(tǒng)的設(shè)計方案該儀表的系統(tǒng)程序設(shè)計采用模塊化的程序設(shè)計方法,其結(jié)構(gòu)見圖12:圖12 軟件設(shè)計模塊圖檢測儀的應(yīng)用軟件系統(tǒng)包括:主程序模塊、溫度檢測模塊、相對濕度檢測模塊、鍵盤和顯示模塊等。STC12C5410AD單片機(jī)的引腳排列如圖21。隨著電容的充電,RST腳上的電壓才慢慢下降。AD590是一種電流輸出型二端式集成溫度傳感器,其主要技術(shù)參數(shù):測溫范圍-55℃~+150℃;工作電壓+4V~+30V;精度177。濕度檢測電路通過濕度傳感器THS11采集環(huán)境中的相對濕度。167。從LED 顯示器的顯示原理可知,為了顯示字母數(shù)字,必須最終轉(zhuǎn)換成相應(yīng)段選碼。它的內(nèi)容包括主程序的起始地址,中斷服務(wù)程序的起始地址,有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序調(diào)用等等。t為絕對溫度,單位為K。由于V0、KT準(zhǔn)確與否直接影響溫度測量的精度,可通過以下方法進(jìn)行校正:用其它高精度的測溫儀測量環(huán)境溫度T1,輸入本儀表,單片機(jī)同時記錄下相應(yīng)的A/D轉(zhuǎn)換的數(shù)字量V1。模擬/ 數(shù)字轉(zhuǎn)換結(jié)果計算公式如下:結(jié)果 ( ADC_DATA[7:0],ADC_LOW2[1:0] ) = 1024 x Vin / VccVin 為模擬輸入通道輸入電壓,Vcc 為單片機(jī)實際工作電壓,用單片機(jī)工作電壓作為模擬參考電壓。在P1M0、P1M1中對相應(yīng)的位進(jìn)行設(shè)置。濕度傳感器THS11的電容值隨溫度的變化導(dǎo)致振蕩器的振蕩頻率發(fā)生變化,所以可以通過測量振蕩器輸出頻率,獲得相對濕度值。從圖3可以看出,相對濕度在20%RH—80%RH范圍內(nèi)線性度較好,兩端的線性較差。不同溫度條件下,在同一測量場合測得的濕度差異很大,所以還需要對測量頻率作溫度補(bǔ)償?!鱢 RH0同時取出△RH,定義計數(shù)量n,分別存入不同變量。但是后來分析發(fā)現(xiàn)如果不進(jìn)行這一比較會影響到儀表的正常工作。圖37 鍵盤掃描子程序流程圖由于本設(shè)計為了節(jié)約I/O口,只用一根數(shù)據(jù)線來實現(xiàn)鍵盤的列掃描,是通過8位并行輸出串行移位寄存器74HC164來實現(xiàn)的。鍵盤掃描去抖動和鍵值掃描的核心程序如下:ScanKey: SETB KeyRow /*鍵盤的行置1 MOV Data_OutputBuf, 00H /*鍵盤的列置0,掃描的初始狀態(tài) LCALL Data_Output /*調(diào)用顯示子程序,將掃描初始值送出 MOV A, P1 /*將P1口狀態(tài)讀入到單片機(jī) JB ,NoKey /*判斷是否有鍵按下,有則執(zhí)行,無則返回 LCALL DELAY10ms /*調(diào)用延時程序消除鍵盤抖動,一般10 ms足夠 MOV A,P1 JB ,NoKey MOV ArrangeNum,00H /*列設(shè)定初始值 MOV A,07FH /*列掃描的初始值GetKey1: /*列掃描子程序 SETB KeyRow MOV R5, A /*列掃描的初始值,暫時存在R5中 MOV Data_OutputBuf, A LCALL Data_Output MOV A, P1JNB ,GetKeyValue MOV A,R5 RR A /*列掃描值右移,實現(xiàn)鍵盤列掃描 INC ArrangeNum /*列號加1 JB ,GetKey1 LJMP NoKey 167。在本設(shè)計中實現(xiàn)鍵盤掃描的74HC164跟LED顯示的第一位顯示的數(shù)據(jù)是同一個,所以在鍵盤掃描時本設(shè)計可通過軟件將顯示器關(guān)閉,以免按鍵和顯示相互影響,同樣在程序運(yùn)行過程中,本設(shè)計也避免顯示和鍵盤掃描同時進(jìn)行,例如,本設(shè)計程序開始執(zhí)行時,總是先掃描鍵盤直到有鍵盤按下來確定用戶需要檢測濕度還是溫度,然后根據(jù)鍵值跳轉(zhuǎn)到相應(yīng)的子程序來進(jìn)行檢測,這時才將檢測結(jié)果在LED上顯示出來。本設(shè)計的設(shè)計主要面臨著硬件設(shè)計和軟件設(shè)計的兩大問題,以及硬件和軟件的結(jié)合。老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和扎實的、深厚的理論水平都使我受益匪淺。F to +257176。C resolution. The temperature reading is provided in a 16–bit, sign–extended two’s plement reading. Table 1 describes the exact relationship of output data to measured temperature. The data is transmitted serially over the 1–Wire interface. The DS1820 can measure temperature over the range of –55176。 it is important that each device on the bus be able to drive it at the appropriate time. To facilitate this, each device attached to the 1–Wire bus must have open drain or 3–state outputs.The 1–Wire port of the DS1820 (I/Opin) is open drain with an internal circuit equivalent to that shown in Figure 9. A multidrop bus