【正文】
ned by the following procedure. First, read the temperature, and truncate the 176。 it will send back a “1” if it is powered from the VDD pin. If the master receives a “0”, it knows that it must supply the strong pull–up on the I/O line during temperature conversions. See “Memory Command Functions” section for more detail on this mand protocol.OPERATION – MEASURING TEMPERATUREThe DS1820 measures temperature through the use of an on–board proprietary temperature measurement technique. A block diagram of the temperature measurement circuitry is shown in Figure 4. The DS1820 measures temperature by counting the number of clock cycles that an oscillator with a low temperature coefficient goes through during a gate period determined by a high temperature coefficient oscillator. The counter is preset with a base count that corresponds to –55176。:北京航空航天出版社,2002[13] :高等教育出版社,2002[14] 劉書明、[M] .西安:西安電子科技大學(xué)出版社,2000.[15] 涂玲英.肖俊武.張宇.智能型溫濕度測控儀研究與實(shí)踐.湖北工學(xué)院學(xué)報(bào).2002.[16] 蔡美琴.MCS一51系列單片機(jī)系統(tǒng)及其應(yīng)用.高等教育出社.1992.附 錄 溫度、相對濕度檢測儀的電路原理圖外文資料原文DS1820FEATURES? Unique 1–WireTM interface requires only one port pinfor munication? Multidrop capability simplifies distributed temperaturesensing applications? Requires no external ponents? Can be powered from data line? Zero standby power required? Measures temperatures from –55176。在這次設(shè)計(jì)中本設(shè)計(jì)也遇到不少問題,也正是對這些問題的逐步解決該檢測儀順利設(shè)計(jì)完成。本設(shè)計(jì)沒有BCD碼譯碼器,必須通過軟件查表把要顯示的數(shù)據(jù)轉(zhuǎn)變成BCD碼,對于有小數(shù)點(diǎn)和無小數(shù)點(diǎn)的,本設(shè)計(jì)就得寫兩個(gè)不同的表用來查詢。當(dāng)然鍵盤掃描時(shí)還要通過延時(shí)消去鍵盤抖動(dòng),延時(shí)定時(shí)器的延遲時(shí)間等于初值乘上時(shí)間判斷間隔時(shí)間,通過確定延時(shí)定時(shí)器的延遲時(shí)間達(dá)到去除鍵盤抖動(dòng)的對正常的影響,一般延時(shí)時(shí)間在30ms~50ms之間,在實(shí)驗(yàn)中確定具體的延遲時(shí)間。本設(shè)計(jì)的鍵盤就在此基礎(chǔ)上設(shè)計(jì)的,同時(shí)也為了節(jié)約單片機(jī)的硬件資源,具體流程如下:圖37 鍵盤掃描子程序流程圖該檢測儀采用18矩陣式鍵盤,關(guān)于它的具體硬件組成電路這里就不多做介紹,在檢測有無鍵按下方面主要用的是開機(jī)自動(dòng)掃描方式,該方式是利用單片機(jī)運(yùn)行程序初始化后自動(dòng)掃描鍵盤,如果沒有鍵按下則繼續(xù)掃描,若有鍵按下即可出對應(yīng)的鍵值,再由鍵值跳轉(zhuǎn)到相應(yīng)的子程序,從而實(shí)現(xiàn)鍵盤掃描,鍵盤掃描子程序流程圖如圖37所示。在設(shè)計(jì)之初,本設(shè)計(jì)想跳過與f0的比較,這樣程序也簡單一點(diǎn)。程序首先從存儲器中讀取溫度補(bǔ)償過的頻率f,把它賦給一個(gè)事先定義好的變量。然后讀取溫濕度檢測儀測得的環(huán)境溫度值T,根據(jù)溫度補(bǔ)償系數(shù)計(jì)算出應(yīng)該補(bǔ)償?shù)念l率,補(bǔ)償后的頻率值為f =fo+(25T)同時(shí),相對濕度受環(huán)境溫度的影響比較大。 實(shí)驗(yàn)得出相對濕度(RH)與濕度傳感電路輸出的振蕩頻率(f)在環(huán)境溫度為25℃時(shí)的關(guān)系曲線,如圖34所示:圖34 在25℃時(shí)相對濕度RH與振蕩率f的關(guān)系曲線表31給出了該關(guān)系曲線上的10個(gè)點(diǎn)的數(shù)據(jù)。 濕度檢測模塊程序設(shè)計(jì)1. 程序欲解決問題分析濕度測量電路是由濕度傳感器THS11和NE555構(gòu)成的振蕩電路組成。在P1M0、P1M1中對相應(yīng)的位進(jìn)行設(shè)置。模擬/ 數(shù)字轉(zhuǎn)換結(jié)果計(jì)算公式如下:結(jié)果 ( ADC_DATA[7:0],ADC_LOW2[1:0] ) = 1024 x Vin / VccVin 為模擬輸入通道輸入電壓,Vcc 為單片機(jī)實(shí)際工作電壓,用單片機(jī)工作電壓作為模擬參考電壓。由于V0、KT準(zhǔn)確與否直接影響溫度測量的精度,可通過以下方法進(jìn)行校正:用其它高精度的測溫儀測量環(huán)境溫度T1,輸入本儀表,單片機(jī)同時(shí)記錄下相應(yīng)的A/D轉(zhuǎn)換的數(shù)字量V1。t為絕對溫度,單位為K。它的內(nèi)容包括主程序的起始地址,中斷服務(wù)程序的起始地址,有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序調(diào)用等等。從LED 顯示器的顯示原理可知,為了顯示字母數(shù)字,必須最終轉(zhuǎn)換成相應(yīng)段選碼。167。濕度檢測電路通過濕度傳感器THS11采集環(huán)境中的相對濕度。AD590是一種電流輸出型二端式集成溫度傳感器,其主要技術(shù)參數(shù):測溫范圍-55℃~+150℃;工作電壓+4V~+30V;精度177。隨著電容的充電,RST腳上的電壓才慢慢下降。STC12C5410AD單片機(jī)的引腳排列如圖21。 溫濕度檢測儀應(yīng)用軟件系統(tǒng)的設(shè)計(jì)方案該儀表的系統(tǒng)程序設(shè)計(jì)采用模塊化的程序設(shè)計(jì)方法,其結(jié)構(gòu)見圖12:圖12 軟件設(shè)計(jì)模塊圖檢測儀的應(yīng)用軟件系統(tǒng)包括:主程序模塊、溫度檢測模塊、相對濕度檢測模塊、鍵盤和顯示模塊等。可通過鍵盤電路來選擇檢測濕度或者檢測溫度,也可以自動(dòng)檢測溫度和濕度。該設(shè)計(jì)主要分為硬件設(shè)計(jì)和軟件部分的設(shè)計(jì),下面先總體介紹設(shè)計(jì)的性能指標(biāo)和軟硬件的總體設(shè)計(jì)方案。本文介紹的濕度檢測儀就是以STV12C5410AD單片機(jī)作為核心控制器設(shè)計(jì)的,它具有體積小、操作簡單、性能穩(wěn)定、測量精度高和抗干擾能力強(qiáng)等優(yōu)點(diǎn),可廣泛應(yīng)用于需要對溫濕度進(jìn)行測控的領(lǐng)域中。 溫濕度檢測模塊程序設(shè)計(jì) 12167。 溫濕度檢測儀的硬件設(shè)計(jì)總體結(jié)構(gòu)方案 3167?;诖藛纹瑱C(jī)的溫濕度檢測儀可以實(shí)時(shí)、準(zhǔn)確的測量環(huán)境中的溫度和相對濕度。該溫濕度檢測儀能夠基本完成的溫濕度檢測,但由于個(gè)人經(jīng)驗(yàn)不足等因素,本設(shè)計(jì)還有一些不足之處,離產(chǎn)品實(shí)用還有一定的差距,還有一些方面需要進(jìn)一步完善。 溫濕度檢測儀的硬件電路設(shè)計(jì) 7167。 鍵盤掃描和LED顯示模塊程序設(shè)計(jì) 19167。論文的第一章介紹了溫濕度檢測儀的主要性能指標(biāo)及其工作原理,主要介紹了溫濕度檢測儀的硬件設(shè)計(jì)總體方案和溫濕度檢測儀的應(yīng)用軟件系統(tǒng)的總體設(shè)計(jì)方案;第二章主要介紹了溫濕度檢測儀的硬件電路設(shè)計(jì),重點(diǎn)介紹了溫度檢測電路、鍵盤LED顯示電路和濕度檢測電路;第三章主要介紹了基于STC12C5410AD單片機(jī)的濕度檢測儀的軟件設(shè)計(jì),軟件設(shè)計(jì)部分采用模塊化設(shè)計(jì),重點(diǎn)介紹了濕度檢測模塊程序設(shè)計(jì)中鍵盤掃描、LED顯示以及對濕度的頻率的線性化處理和溫度補(bǔ)償。 性能指標(biāo)1. 相對濕度測量精度和范圍: 177。電阻的電壓輸入到STC12C5410AD單片機(jī)中,經(jīng)ADC轉(zhuǎn)換為數(shù)字量,有應(yīng)用軟件處理得到環(huán)境溫度。鍵盤、顯示模塊完成檢測儀的檢測數(shù)據(jù)的顯示功能,反映出要檢測的的數(shù)據(jù)。工作電壓: – (5V 單片機(jī))、具有通用I/O 口(27/23 個(gè)),復(fù)位后為: 準(zhǔn)雙向口/ 弱上拉(普通8051 傳統(tǒng)I/O 口) 分別可設(shè)置成四種模式:準(zhǔn)雙向口/ 弱上拉,推挽/ 強(qiáng)上拉,僅為輸入/ 高阻,開漏,同時(shí)每個(gè)I/O 口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不得超過55mA;STC12C5410AD 單片機(jī)I S P (在系統(tǒng)可編程)/ I A P (在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口()直接下載用戶程序,數(shù)秒即可完成一片;時(shí)鐘源:外部高精度晶體/ 時(shí)鐘,內(nèi)部R/C 振蕩器,用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C 振蕩器還是外部晶體/ 時(shí)鐘,常溫下內(nèi)部R/C 振蕩器頻率為: ~ ,精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,應(yīng)認(rèn)為是4MHz ~ 8MHz?;赟TC12C5410AD單片機(jī)的溫濕度檢測儀的原理圖見附錄。通過AD590的參數(shù)可以看出,它完全適合本設(shè)計(jì)的需要,同時(shí)AD590性能穩(wěn)定,即便經(jīng)過很長一段時(shí)間它的漂移量也很小,而且工作電路簡單直觀。綜合以上優(yōu)點(diǎn)本設(shè)計(jì)采用次傳感器作為濕度檢測的傳感器。2口通過電阻、三極管與數(shù)碼管的共陽極連接。LED顯示電路圖如圖212所示。初始化對單片機(jī)的工作非常重要,因?yàn)閱纹瑱C(jī)經(jīng)過復(fù)位以后一些狀態(tài)字,寄存器的初值可能是隨機(jī)分配的值也可能是全置0或置1,程序在運(yùn)行過程中,程序狀態(tài)字起著重要的作用,為了不影響程序的正常運(yùn)行初始化是十分必要的。R儀表的應(yīng)用軟件根據(jù)KT=(T1T2)/(V1V2)和V0=VT1T1/KT計(jì)算出KT和V0 的值,并存儲在單片機(jī)的EEPROM數(shù)據(jù)存儲器中,既完成該儀表的溫度測量精度的校正。結(jié)果 ADC_DATA[7:0] = 256 x Vin / Vcc。當(dāng)AD轉(zhuǎn)換器將采樣的電壓值轉(zhuǎn)變?yōu)閿?shù)字值后,單片機(jī)將這個(gè)數(shù)字值進(jìn)行簡單的處理就可以得到要檢測的溫度值,本設(shè)計(jì)將溫度對電壓的變化大體堪為近似的線性關(guān)系,把采集到的數(shù)字量是將5V的電壓分成1024個(gè)等分,則每變化一個(gè)溫度就可以對應(yīng)一個(gè)數(shù)字電壓量的變化,就可以通過這個(gè)數(shù)字量直接對應(yīng)出環(huán)境溫度,當(dāng)然這里的溫度值是熱力學(xué)溫度值,還要進(jìn)一步的轉(zhuǎn)化常用的攝氏度溫度來顯示。當(dāng)環(huán)境中的相對濕度不同時(shí),相同溫度條件下的振蕩頻率差異比較大,且這種差異是非線性的。當(dāng)相對濕度值升高時(shí),振蕩器輸出頻率會隨之降低,而且它們之間的這種變化是非線性的。對于頻率的測量,單片機(jī)由多種測量方法,大體由中斷測量和定時(shí)計(jì)數(shù)兩大方式。然后把頻率曲線上相鄰的兩點(diǎn)依次用直線相連,就得到一條新的濕度頻率曲線,它與實(shí)際曲線幾乎重合在一起,所以可以使用該曲線產(chǎn)生進(jìn)行線性化處理。如果差值大于0,則說明測得頻率超出檢測儀的測量范圍,轉(zhuǎn)入報(bào)告出錯(cuò)子程序,告訴用戶出錯(cuò)。如果前面比較的結(jié)果值還是小于零,說明該振蕩頻率f不在該段,就把比較次數(shù)f加1后,從表中再次取值,繼續(xù)進(jìn)行的比較,直至比較結(jié)果大于零。由于74HC164是工作在上升沿,所以本設(shè)計(jì)可以在其數(shù)據(jù)端輸入一個(gè)等待送出的數(shù)字,然后通過在其時(shí)鐘輸入端送入一個(gè)上升沿,就可以實(shí)現(xiàn)把等待送出的數(shù)字發(fā)送出去。(2).LED的靜態(tài)顯示 LED的靜態(tài)顯示就是在LED上送入待顯示的內(nèi)容后,LED的管腳的狀態(tài)一直保持不變,即在LED上穩(wěn)定靜止的顯示出待顯示的內(nèi)容,該種設(shè)計(jì)軟件編寫簡單,單片機(jī)軟件資源占用少,但相應(yīng)的在沒加輔助顯示芯片,使電路復(fù)雜,I/O口占用過多。 在進(jìn)行軟件設(shè)計(jì)時(shí),先寫完各個(gè)模塊的程序,當(dāng)每個(gè)模塊的程序都調(diào)試通過后,在根據(jù)設(shè)計(jì)的要求,按照最先實(shí)際的總的程序流程圖來完成子程序之間的相互協(xié)調(diào)調(diào)用來實(shí)現(xiàn)整個(gè)程序的調(diào)試工作,通過多次反復(fù)的調(diào)試修改,當(dāng)總程序能夠?qū)崿F(xiàn)設(shè)計(jì)要求時(shí),程序的設(shè)計(jì)才大體完成。在指導(dǎo)老師的悉心輔導(dǎo)下和查閱大量資料之后,然后采用了STC12C5410AD數(shù)據(jù)采集芯片并配合其它一些元器件的硬件設(shè)計(jì)方案,使以上問題得到了很好解決 。C increments. Fahrenheit equivalent is –67176。C. At the same time, the counter is then preset with a value determined by the slope accumulator circuitry. This circuitry is needed to pensate for the parabolic behavior of the oscillators over temperature. The counter is then clocked again until it reaches zero.If the gate period is still not finished, then this process repeats. The slope accumulator is used to pensate for the non–linear behavior of the oscillators over temperature, yielding a high resolution temperature measurement. This is done by changing the number of counts necessary for the counter to go through for each incremental degree in temperature. To obtain the desired resolution, therefore, both the value of the counter and the number of counts per degree C (the value of the slope accumulator) at a given temperature must be known.Internally, this calculation is done inside the DS1820 to provide 176