【正文】
, LED, Temperature and humidity目 錄前 言 1第1章 溫濕度檢測儀總體技術(shù)方案 2167?;诖藛纹瑱C的溫濕度檢測儀可以實時、準確的測量環(huán)境中的溫度和相對濕度。本溫濕度檢測儀是以STC12C540AD單片機的為核心控制芯片,該單片機自帶A/D轉(zhuǎn)換器、有很好的抗干擾能力、響應(yīng)速度快。該溫濕度檢測儀能夠基本完成的溫濕度檢測,但由于個人經(jīng)驗不足等因素,本設(shè)計還有一些不足之處,離產(chǎn)品實用還有一定的差距,還有一些方面需要進一步完善。 溫濕度檢測儀的工作原理 2167。 溫濕度檢測儀的硬件電路設(shè)計 7167。 主程序模塊設(shè)計 11167。 鍵盤掃描和LED顯示模塊程序設(shè)計 19167。在這個發(fā)展過程中,以單片機為核心控制器的溫濕度檢測以體積小、操作簡單、性能穩(wěn)定、測量精度高等諸多有點正逐步進入生產(chǎn)生活的各個方面。論文的第一章介紹了溫濕度檢測儀的主要性能指標及其工作原理,主要介紹了溫濕度檢測儀的硬件設(shè)計總體方案和溫濕度檢測儀的應(yīng)用軟件系統(tǒng)的總體設(shè)計方案;第二章主要介紹了溫濕度檢測儀的硬件電路設(shè)計,重點介紹了溫度檢測電路、鍵盤LED顯示電路和濕度檢測電路;第三章主要介紹了基于STC12C5410AD單片機的濕度檢測儀的軟件設(shè)計,軟件設(shè)計部分采用模塊化設(shè)計,重點介紹了濕度檢測模塊程序設(shè)計中鍵盤掃描、LED顯示以及對濕度的頻率的線性化處理和溫度補償。在此設(shè)計過程中,本設(shè)計綜合分析了不同用戶在不同場合的不同需求,經(jīng)研究之后,采用了以含有A/D轉(zhuǎn)換器的STC12C5410AD單片機為核心控制器件,以高靈敏度溫度傳感器和濕度傳感器為數(shù)據(jù)獲取元件的方案。 性能指標1. 相對濕度測量精度和范圍: 177。 溫濕度檢測儀的工作原理加載有相應(yīng)程序的STC12C5410AD單片機定時采集溫度測量電路電壓信號和相對濕度測量電路輸出的頻率信號,并對濕度的頻率進行線性化處理和溫度補償,從而獲得溫度和相對濕度數(shù)據(jù),分別將這些數(shù)據(jù)存儲于數(shù)據(jù)存儲器中, 然后送LED顯示屏顯示。電阻的電壓輸入到STC12C5410AD單片機中,經(jīng)ADC轉(zhuǎn)換為數(shù)字量,有應(yīng)用軟件處理得到環(huán)境溫度。167。鍵盤、顯示模塊完成檢測儀的檢測數(shù)據(jù)的顯示功能,反映出要檢測的的數(shù)據(jù)。 溫濕度檢測儀STC12C5410AD單片機電路的設(shè)計該檢測儀的設(shè)計是以STC12C5410AD單片機為核心部件,STC12C5410AD單片機是與MCS51單片機完全兼容的高速單片機,它包含了高性能的8路10位或8位ADC、80C51MCU內(nèi)核、10KB EEPROM程序存儲器、512B EEPROM數(shù)據(jù)存儲器、等片內(nèi)資源,同時還具有PWM波形輸出的功能,它可以說是傳統(tǒng)51單片機的升級版,在與傳統(tǒng)51的兼容的前提下加入了更多的功能,這些硬件資源大大簡化了本設(shè)計的電路設(shè)計。工作電壓: – (5V 單片機)、具有通用I/O 口(27/23 個),復位后為: 準雙向口/ 弱上拉(普通8051 傳統(tǒng)I/O 口) 分別可設(shè)置成四種模式:準雙向口/ 弱上拉,推挽/ 強上拉,僅為輸入/ 高阻,開漏,同時每個I/O 口驅(qū)動能力均可達到20mA,但整個芯片最大不得超過55mA;STC12C5410AD 單片機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)認為是4MHz ~ 8MHz。圖21 STC12C5410AD單片機的引腳排列和基本外圍電路圖STC12C5410AD單片機的復位電路采用的開關(guān)復位電路,開關(guān)S9未按下是上電復位電路,上電復位電路在上電的瞬間,由于電容上的電壓不能突變,電容處于充電(導通)狀態(tài),故RST腳的電壓與VCC相同。基于STC12C5410AD單片機的溫濕度檢測儀的原理圖見附錄。 溫度檢測電路溫度檢測電路主要由AD590傳感器、電阻和放大器組成,具體電路圖如圖12所示。通過AD590的參數(shù)可以看出,它完全適合本設(shè)計的需要,同時AD590性能穩(wěn)定,即便經(jīng)過很長一段時間它的漂移量也很小,而且工作電路簡單直觀。 濕度檢測電路相對濕度測量電路如圖23所示,它由NE555構(gòu)成的振蕩器組成,濕度傳感器THS11的電容隨環(huán)境相對濕度的變化而變化,從而導致振蕩器的振蕩頻率變化。綜合以上優(yōu)點本設(shè)計采用次傳感器作為濕度檢測的傳感器。不足之處是相對濕度傳感器THS11及其它元件的離散性導致了調(diào)試困難,需進一步研究解決。2口通過電阻、三極管與數(shù)碼管的共陽極連接。用LED 顯示器顯示十六進制數(shù)和空白及小數(shù)點的顯示段碼。LED顯示電路圖如圖212所示。 主程序模塊設(shè)計主程序是控制和管理的核心,主要完成在系統(tǒng)上電后進行定時和中斷圖31 主程序流程圖處理操作的初始化。初始化對單片機的工作非常重要,因為單片機經(jīng)過復位以后一些狀態(tài)字,寄存器的初值可能是隨機分配的值也可能是全置0或置1,程序在運行過程中,程序狀態(tài)字起著重要的作用,為了不影響程序的正常運行初始化是十分必要的。t式中I為AD590輸出電流信號,單位為1uA電流。R它們均作為常量存儲在單片機的片內(nèi)數(shù)據(jù)EEPROM中。儀表的應(yīng)用軟件根據(jù)KT=(T1T2)/(V1V2)和V0=VT1T1/KT計算出KT和V0 的值,并存儲在單片機的EEPROM數(shù)據(jù)存儲器中,既完成該儀表的溫度測量精度的校正。由于本單片機可以提供8位和10位兩種AD轉(zhuǎn)化,但是在本設(shè)計中為求檢測結(jié)果的精確性本設(shè)計選用了10位AD轉(zhuǎn)換器,其轉(zhuǎn)化精度要比8位高出數(shù)倍,同時又采用穩(wěn)定的5V電源為單片機供電,進一步確保了檢測的準確性。結(jié)果 ADC_DATA[7:0] = 256 x Vin / Vcc。需作為A/D 使用的口需先將其設(shè)置為高阻輸入或開漏模式。當AD轉(zhuǎn)換器將采樣的電壓值轉(zhuǎn)變?yōu)閿?shù)字值后,單片機將這個數(shù)字值進行簡單的處理就可以得到要檢測的溫度值,本設(shè)計將溫度對電壓的變化大體堪為近似的線性關(guān)系,把采集到的數(shù)字量是將5V的電壓分成1024個等分,則每變化一個溫度就可以對應(yīng)一個數(shù)字電壓量的變化,就可以通過這個數(shù)字量直接對應(yīng)出環(huán)境溫度,當然這里的溫度值是熱力學溫度值,還要進一步的轉(zhuǎn)化常用的攝氏度溫度來顯示。167。當環(huán)境中的相對濕度不同時,相同溫度條件下的振蕩頻率差異比較大,且這種差異是非線性的。(fRH/fRH0)式中Δf RH0的值為297/65(Hz/℃);fRH0是溫度為0℃時相對濕度為0%RH的振蕩頻率,其值為7588(Hz);fRHX是溫度為0℃時相對濕度為X%RH的振蕩頻率。當相對濕度值升高時,振蕩器輸出頻率會隨之降低,而且它們之間的這種變化是非線性的。由于振蕩頻率隨環(huán)境相對濕度變化是非線性的,這給濕度轉(zhuǎn)換帶來了困難,因此需要對其進行線性化處理。對于頻率的測量,單片機由多種測量方法,大體由中斷測量和定時計數(shù)兩大方式。在濕度檢測模塊程序的開始,首先讀取經(jīng)過A/D轉(zhuǎn)換的相對濕度的振蕩頻率fo,并把得到的相對濕度頻率值存儲于STC12C5410AD的一個變量單元中。然后把頻率曲線上相鄰的兩點依次用直線相連,就得到一條新的濕度頻率曲線,它與實際曲線幾乎重合在一起,所以可以使用該曲線產(chǎn)生進行線性化處理。線性化處理程序子程序流程圖如36所示。如果差值大于0,則說明測得頻率超出檢測儀的測量范圍,轉(zhuǎn)入報告出錯子程序,告訴用戶出錯。因為這一比較涉及到,檢測儀報錯功能,更重要的是接下來的頻率比較必須以第一次比較為參考。如果前面比較的結(jié)果值還是小于零,說明該振蕩頻率f不在該段,就把比較次數(shù)f加1后,從表中再次取值,繼續(xù)進行的比較,直至比較結(jié)果大于零。 鍵盤掃描 鍵盤是人機交換的橋梁,一個好的鍵盤能夠讓用戶方便的使用儀表。由于74HC164是工作在上升沿,所以本設(shè)計可以在其數(shù)據(jù)端輸入一個等待送出的數(shù)字,然后通過在其時鐘輸入端送入一個上升沿,就可以實現(xiàn)把等待送出的數(shù)字發(fā)送出去。然后本設(shè)計再一列一列的掃描鍵值,具體過程如下:首先通過164輸出一個11111110B后,讀入鍵盤的行,如果為0,則表示是第一個鍵按下,如果不為0,則表示不是第一個鍵按下,然后再在164端輸出一個11111101B再進行上述掃描過程直至行線為0即掃描到鍵值,即完成了鍵盤的掃描過程。(2).LED的靜態(tài)顯示 LED的靜態(tài)顯示就是在LED上送入待顯示的內(nèi)容后,LED的管腳的狀態(tài)一直保持不變,即在LED上穩(wěn)定靜止的顯示出待顯示的內(nèi)容,該種設(shè)計軟件編寫簡單,單片機軟件資源占用少,但相應(yīng)的在沒加輔助顯示芯片,使電路復雜,I/O口占用過多。本設(shè)計采用靜態(tài)顯示一次必須送完一幀5位數(shù)據(jù),這樣對單個數(shù)據(jù)的修改就比較麻煩,尤其是在碰到有小數(shù)點顯示的時候,不能夠只改變一位來實現(xiàn),必須得5位數(shù)據(jù)全部重新送數(shù)。 在進行軟件設(shè)計時,先寫完各個模塊的程序,當每個模塊的程序都調(diào)試通過后,在根據(jù)設(shè)計的要求,按照最先實際的總的程序流程圖來完成子程序之間的相互協(xié)調(diào)調(diào)用來實現(xiàn)整個程序的調(diào)試工作,通過多次反復的調(diào)試修改,當總程序能夠?qū)崿F(xiàn)設(shè)計要求時,程序的設(shè)計才大體完成。但是STC12C5410AD單片機工作頻率較高,并且只有環(huán)境濕度較高時才會出現(xiàn)處理時間延長現(xiàn)象,因此并不影響檢測儀的實時檢測指標。在指導老師的悉心輔導下和查閱大量資料之后,然后采用了STC12C5410AD數(shù)據(jù)采集芯片并配合其它一些元器件的硬件設(shè)計方案,使以上問題得到了很好解決 。2004[9] :北京航空航天大學出版社,1990[10] :電子工業(yè)出版社,2003[11] [M].西安:西安交通大學出版社,2000[12] 余永權(quán)。C increments. Fahrenheit equivalent is –67176。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。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。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