【正文】
D 轉(zhuǎn)換的單片機在P1 口,有8 路10 位高速A/D 轉(zhuǎn)換器, 速度可達100KHz。本設(shè)計中用的是靜態(tài)LED顯示,所以可以在顯示送完數(shù)以后繼續(xù)做別的事情不會相互影響。要準(zhǔn)確地測量濕度,必須對振蕩頻率作溫度補償。如果本設(shè)計將檢測到頻率直接送給顯示器顯示的話,得到的結(jié)果將與環(huán)境中的實際濕度值存在很大差別,無法達到性能指標(biāo)中所要求的測量精度和分辨力。對于定時計數(shù)是將單片機的定時器一個設(shè)為定時狀態(tài)來確定要計數(shù)的時間,把另外一個定時器設(shè)為計數(shù)狀態(tài),在它的輸入口接待檢測的波形頻率的輸出端,而工作在邊沿觸發(fā)狀態(tài),這樣就可以個對這個端口輸入的波形頻率進行技術(shù),定時器可以通過設(shè)定時間來確定度波形個數(shù)的時長,本設(shè)計中要用波形的頻率,所以最好是讀一秒中波形的個數(shù),但單片機的計數(shù)器最多是十六位的,達不到計數(shù)一秒的要求,這時就得把若干個定時疊加起來,就是每定時中斷若干次采讀一個波形頻率,試驗證明能夠?qū)嵭斜驹O(shè)計的要求,單片機計數(shù)的波形的周期必須大于單片機工作的機械周期,通過查閱資料知道,設(shè)計中用的傳感器的波形周期遠大于單片機的機械周期,故能這樣來檢測頻率。圖35 濕度檢測模塊程序流程圖在線性化處理之前,需要在單片機的數(shù)據(jù)存儲器里存儲一個頻率表,即由fn組成的數(shù)據(jù)表格。如果兩者差值小于0,則將n 值加1,繼續(xù)拿f與fn作比較??衫孟率接嬎愠霏h(huán)境的相對濕度:RH=RHn1+△RH然后把結(jié)果存到單片機的存儲單元中,以供數(shù)據(jù)顯示程序處理。又因為該芯片是8位并行輸出串行移位寄存器,所以這個送數(shù)過程要連續(xù)重復(fù)8次才能夠?qū)崿F(xiàn)一個單元的數(shù)據(jù)完全送出。通過以上兩種方法的比較,本設(shè)計選用靜態(tài)顯示的方式,同時選用8位串進并出移位寄存器74HC164來輔助顯示,其功能用法在鍵盤掃描過程中也詳細(xì)介紹過了,這里就不在重述。結(jié) 論該檢測儀適用于需要對溫濕度實時檢測的多種場合。此檢測儀還可以與溫度濕度發(fā)生裝置連接來實現(xiàn)對溫度濕度的調(diào)整功能,加上報警裝置后就可以對環(huán)境溫度超過上下限時發(fā)出警報,本設(shè)計中通過進一步改進軟件程序能夠?qū)崿F(xiàn)溫濕度的同時檢測功能。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 consists of a 1–Wire bus with multiple slaves attached. The 1–Wire bus requires a pullup resistor of approximately 5KW.The idle state for the 1–Wire bus is high. If for any reason a transaction needs to be suspended, the bus MUST be left in the idle state if the transaction is to resume. Infinite recovery time can occur between bits so long as the 1–Wire bus is in the inactive (high) state during the recovery period. If this does not occur and the bus is left low for more than 480 ms, all ponents on the bus will be reset. TRANSACTION SEQUENCEThe protocol for accessing the DS1820 via the 1–Wire port is as follows:? Initialization? ROM Function Command? Memory Function Command? Transaction/DataINITIALIZATIONAll transactions on the 1–Wire bus begin with an initialization sequence. The initialization sequence consists of a reset pulse transmitted by the bus master followed by presence 。C value, is incremented, indicating that the temperature is higher than –55176。C in176。軟件設(shè)計中面臨的主要問題是環(huán)境溫濕度數(shù)據(jù)的采集方法,相對濕度的溫度補償和線性化處理。DISPLAY: LJMP JIANZHISAOMIAO: /*將要待顯示的數(shù)送到74HC164中并通過數(shù)碼管顯示 MOV A,R1 MOV R2,08HXS: JB ,XS1 CLR AJMP CLKXS1: SETB CLK: CLR NOP SETB RR A DJNZ R2,XSRETJIANZHI: MOV R1,0EEH /*0的BCD碼 LCALL SAOMIAO MOV R1,028H /*1的BCD碼 LCALL SAOMIAO MOV R1,0CDH /*2的BCD碼 LCALL SAOMIAO MOV R1,06DH /*3的BCD碼 LCALL SAOMIAO MOV R1,02BH /*4的BCD碼 LCALL SAOMIAO 以上是顯示部分的子程序,通過給R1送入不同的數(shù)值就可以在LED上把送入的數(shù)字顯示出來,這種模塊化的程序設(shè)計思想十分重要,任何一個大的程序都是由各個小程序相互調(diào)用來完成的。 LED顯示部分程序設(shè)計1. LED顯示器應(yīng)用程序設(shè)計總體方案(1).LED的動態(tài)顯示LED的動態(tài)顯示是利用人眼的視力暫留效果來設(shè)計的,就是在LED上面連續(xù)送出要顯示的內(nèi)容,當(dāng)每秒掃描顯示的次數(shù)達到一定的次數(shù)后,人眼就可以認(rèn)為是連續(xù)顯示的,此種設(shè)計的優(yōu)點就是節(jié)約I/O口,電路連接簡單,但相應(yīng)的也造成了軟件開支過大,因為需要不斷的進行定時掃描或中斷掃描等。具體是用單片機的一個I/O口連接到該芯片的時鐘輸入端,作為該芯片的工作時鐘,用另一根數(shù)據(jù)接到74HC164的數(shù)據(jù)端口A、B兩端。當(dāng)f落在f1之前時,檢測儀會由于沒有合適比較對象而出錯。接下來就要對比較次數(shù)n賦初值(n=0),根據(jù)變量n去STC12C5410AD的ROM中的頻率表中取出頻率值f0,然后將溫度補償過振蕩頻率f與從表中取得的表頻率f0作減法運算,并檢查相減結(jié)果是否大于0。(fRH/ f RH0)線性化處理: 首先根據(jù)實驗得出的相對濕度與振蕩頻率關(guān)系曲線,將測量范圍內(nèi)的濕度RH劃分為N等份,每份為△RH,每個濕度分隔點對應(yīng)的頻率值設(shè)為fn。具體方案如圖35。表31 在25℃環(huán)境溫度時相對濕度(RH)與振蕩頻率(f)的關(guān)系顯然,振蕩頻率受環(huán)境濕度的影響比較大。實驗得出振蕩電路的輸出頻率(f)與環(huán)境溫度(T)的關(guān)系曲線,如圖33所示:圖33 振蕩頻率f與溫度T的關(guān)系曲線由上圖可知,在環(huán)境相對濕度不變的條件下,溫度和振蕩頻率呈近似的線性關(guān)系,所以忽略非線性誤差不影響測量的精度。 本設(shè)計中為了使編程盡量簡潔所選取的阻值非常特殊:AD590變化的電流通過這個特定阻值的電阻時,轉(zhuǎn)變?yōu)橐粋€變化的電壓,這個電壓變化一個毫安對應(yīng)溫度變化一度,這樣大大化簡了程序中對的溫度的算法。如果舍棄ADC_LOW2 的低2 位,只用ADC_DATA 寄存器的8 位,則A/D 轉(zhuǎn)換結(jié)果為8 位精度。為保證校準(zhǔn)精度,環(huán)境溫度應(yīng)在25℃左右變化,并且變化的范圍盡可能大一些。AD590輸出電流信號經(jīng)電阻R轉(zhuǎn)換為電壓信號,其電壓為:VR = Kt主程序初始化的具體內(nèi)容包括:時間中斷的初始化、外部中斷源的初始化、單片機I/O口初始化、RAM初始化、LED初始化、對各個子程序的調(diào)用,然后對溫度和濕度進行檢測并將結(jié)果顯示在LED上。其中的共陽極接法在設(shè)計中得以應(yīng)用,單片機信號通過移位寄存器74HC164輸出,經(jīng)過八個電阻在LED數(shù)碼管上顯示出來。本設(shè)計中采用五個數(shù)碼管進行靜態(tài)顯示,所以要用五個74HC164分別控制五個數(shù)碼管的顯示和選通,前一個74HC164的QH與后一個74HC164的輸入端相連,74HC164的輸出端QA~QH通過電阻連到數(shù)碼管上,控制數(shù)碼管選通的信號為P1。%RH);具有極好的線性輸出等特性。即-273℃時AD590的輸出電流為0μA,0℃時輸出約為273μA。SW1按下時是按鍵手動復(fù)位電路,RST端通過R1與VCC電源接通,通過電阻的分壓就可以實現(xiàn)單片機的復(fù)位。STC12C5410AD 單片機采用增強型 8051 CPU,1T,單時鐘/ 機器周期,指令代碼完全兼容傳統(tǒng)8051的高速單片機。溫度檢測模塊主要是完成測溫電路所得電壓與實際溫度的轉(zhuǎn)換,和對溫度數(shù)據(jù)的存儲、顯示;相對濕度檢測模塊除了要實現(xiàn)對濕度數(shù)據(jù)的存儲 、顯示外,還要對濕度信號進行溫度補償和線性化處理。 溫濕度檢測儀的硬件設(shè)計總體結(jié)構(gòu)方案該檢測儀采用STC12C5410AD單片機為核心,整個硬件系統(tǒng)分為以下幾個部件,具體如圖11所示:圖11 硬件電路框圖溫度檢測電路由半導(dǎo)體集成傳感器AD590和電阻構(gòu)成,AD590輸出電流通過電阻進入模擬地,產(chǎn)生相應(yīng)的電阻電壓。 溫濕度檢測儀的主要性能指標(biāo)及其工作原理167。它是以單片機的在控制方面的突出優(yōu)勢,并綜合運用現(xiàn)代檢測技術(shù)、微控制技術(shù)、數(shù)據(jù)處理和通信技術(shù)以及LED顯示技術(shù)而設(shè)計的數(shù)字溫濕度檢測系統(tǒng),可以實時、準(zhǔn)確的測量環(huán)境中的溫度和相對濕度,對生產(chǎn)生活有較好的知道意義。 濕度檢測模塊程序設(shè)計 14167。 溫濕度檢測儀STC12C5410AD單片機電路的設(shè)計 5167。軟件部分則采用采用模塊化的方法將其分成幾個部分,然后逐模塊設(shè)計程序,用匯編語言來實現(xiàn),使各部分結(jié)合起來協(xié)調(diào)工作,最終實現(xiàn)對環(huán)境中溫濕度的實時檢測。本檢測儀的硬件部分的設(shè)計采用了以帶有A/D轉(zhuǎn)換器的STC12C5410AD單片機為核心控制器件,以高靈敏度AD590電流輸出型的二端式集成溫度傳感器為溫度數(shù)據(jù)獲取元件和濕度傳感器THS11采集環(huán)境中的相對濕度,模擬輸入接口接入鍵盤實現(xiàn)人機交換功能,并用LED作為顯示設(shè)備的硬件設(shè)計方案。 溫濕度檢測儀應(yīng)用軟件系統(tǒng)的設(shè)計方案 3167。 溫度檢測模塊程序設(shè)計 12167。先根據(jù)實際生產(chǎn)生活的需要提出溫濕度檢測儀的設(shè)計功能要求,然后由這些具體要求和現(xiàn)有的設(shè)計條件設(shè)計出了適合的硬件原理圖,盡量采用模塊化的方法將其分成幾個部分,然后分模塊設(shè)計程序,最使各部分結(jié)合起來協(xié)調(diào)工作,實現(xiàn)功能要求。167。 167。主程序的內(nèi)容包括:主程序的起始地址,中斷服務(wù)程序的起始地址,有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序相互調(diào)用,主程序是整個程序的框架,決定了檢測儀的工作性能。,并對濕度的頻率進行線性化處理和補償,從而獲得溫度和相對濕度數(shù)據(jù),分別將這些數(shù)據(jù)存儲于數(shù)據(jù)存儲器中, ,并可以用LED顯示屏顯示出來。選擇合理的充電常數(shù),就能保證在開關(guān)按下時是RST端有兩個機器周期以上的高電平從而使STC12C5410AD內(nèi)部復(fù)位。℃;靈敏度1μA/℃,溫度每變化1℃,其輸出電流變化1μA;輸出零點為熱力學(xué)溫標(biāo)零點。THS11是一種電容式濕度傳感器,它的電容值隨環(huán)境濕度的變化而變化,它具有:測量范圍廣(0~100%)RH;適用性好,可在(-40℃~100℃)溫度下工作;精度高(2%);響應(yīng)速度快(5s),恢復(fù)時間短(10s);長期穩(wěn)定好(年漂移量僅為177。 其它模塊電路設(shè)計鍵盤模塊采用動態(tài)掃描的方式,鍵盤掃描電路輸出端和LED顯示器段碼控制端口共用74HC164的輸出Q0~Q7。這種轉(zhuǎn)換可以通過硬件譯碼器或軟件進行譯碼。主程序設(shè)計框圖如上圖31。Kt為轉(zhuǎn)換系數(shù),單位為1uA/K。當(dāng)環(huán)境溫度從T1變化到T2時,重復(fù)以上過程,單片機同時記錄下相應(yīng)的A/D轉(zhuǎn)換的數(shù)字量V2。取ADC_DATA