freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于stc12c5410ad單片機溫濕度檢測儀畢業(yè)論文(編輯修改稿)

2024-07-24 18:50 本頁面
 

【文章內容簡介】 濕度頻率f轉換為相對濕度的工作。由于振蕩頻率隨環(huán)境相對濕度變化是非線性的,這給濕度轉換帶來了困難,因此需要對其進行線性化處理。同時,相對濕度受環(huán)境溫度的影響比較大。不同溫度條件下,在同一測量場合測得的濕度差異很大,所以還需要對測量頻率作溫度補償。具體方案如圖35。對于頻率的測量,單片機由多種測量方法,大體由中斷測量和定時計數兩大方式。對于定時計數是將單片機的定時器一個設為定時狀態(tài)來確定要計數的時間,把另外一個定時器設為計數狀態(tài),在它的輸入口接待檢測的波形頻率的輸出端,而工作在邊沿觸發(fā)狀態(tài),這樣就可以個對這個端口輸入的波形頻率進行技術,定時器可以通過設定時間來確定度波形個數的時長,本設計中要用波形的頻率,所以最好是讀一秒中波形的個數,但單片機的計數器最多是十六位的,達不到計數一秒的要求,這時就得把若干個定時疊加起來,就是每定時中斷若干次采讀一個波形頻率,試驗證明能夠實行本設計的要求,單片機計數的波形的周期必須大于單片機工作的機械周期,通過查閱資料知道,設計中用的傳感器的波形周期遠大于單片機的機械周期,故能這樣來檢測頻率。 中斷計數是將波源輸入到單片機的中斷入口中去,通過檢測一段時間內中都的次數也能夠檢測出波形的頻率,具體工作原理入下,先用一個定時器來實現計時功能,然后開中斷,讓中斷工作在邊沿觸發(fā)狀態(tài),這樣中斷就可以對高低變換的頻率波形進行計數,本設計中是來檢測波形頻率的所以最好的計一秒鐘采樣一次,同樣的問題,單片機必須的計若干次數才采集一個中斷次數,這樣才可以實現一秒采集數據。綜合上述兩種方法,本設計中選用第二鐘方法,因為定時器還得用到鍵盤掃描中去,為了避免沖突選用第二中方法。在濕度檢測模塊程序的開始,首先讀取經過A/D轉換的相對濕度的振蕩頻率fo,并把得到的相對濕度頻率值存儲于STC12C5410AD的一個變量單元中。然后讀取溫濕度檢測儀測得的環(huán)境溫度值T,根據溫度補償系數計算出應該補償的頻率,補償后的頻率值為f =fo+(25T)△f RH0(fRH/ f RH0)線性化處理: 首先根據實驗得出的相對濕度與振蕩頻率關系曲線,將測量范圍內的濕度RH劃分為N等份,每份為△RH,每個濕度分隔點對應的頻率值設為fn。然后把頻率曲線上相鄰的兩點依次用直線相連,就得到一條新的濕度頻率曲線,它與實際曲線幾乎重合在一起,所以可以使用該曲線產生進行線性化處理。圖35 濕度檢測模塊程序流程圖在線性化處理之前,需要在單片機的數據存儲器里存儲一個頻率表,即由fn組成的數據表格。因為線性化處理的過程中需要將實測頻率與fn進行多次比較。生成頻率表之后就可以進行線性化處理了。線性化處理程序子程序流程圖如36所示。程序首先從存儲器中讀取溫度補償過的頻率f,把它賦給一個事先定義好的變量。同時取出△RH,定義計數量n,分別存入不同變量。接下來就要對比較次數n賦初值(n=0),根據變量n去STC12C5410AD的ROM中的頻率表中取出頻率值f0,然后將溫度補償過振蕩頻率f與從表中取得的表頻率f0作減法運算,并檢查相減結果是否大于0。如果差值大于0,則說明測得頻率超出檢測儀的測量范圍,轉入報告出錯子程序,告訴用戶出錯。如果兩者差值小于0,則將n 值加1,繼續(xù)拿f與fn作比較。如果(ff1)的值大于0,說明實測頻率在濕度頻率曲線的第一段內,這時的環(huán)境濕度值:RH=△RH (f f0)/( f1 f0)。圖36線性化處理程序流程圖這里需要說明的是,f與f0的比較是非常必要的。因為這一比較涉及到,檢測儀報錯功能,更重要的是接下來的頻率比較必須以第一次比較為參考。在設計之初,本設計想跳過與f0的比較,這樣程序也簡單一點。但是后來分析發(fā)現如果不進行這一比較會影響到儀表的正常工作。當f落在f1之前時,檢測儀會由于沒有合適比較對象而出錯。如果前面比較的結果值還是小于零,說明該振蕩頻率f不在該段,就把比較次數f加1后,從表中再次取值,繼續(xù)進行的比較,直至比較結果大于零??衫孟率接嬎愠霏h(huán)境的相對濕度:RH=RHn1+△RH然后把結果存到單片機的存儲單元中,以供數據顯示程序處理。 167。 鍵盤掃描和LED顯示模塊程序設計167。 鍵盤掃描 鍵盤是人機交換的橋梁,一個好的鍵盤能夠讓用戶方便的使用儀表。本設計的鍵盤就在此基礎上設計的,同時也為了節(jié)約單片機的硬件資源,具體流程如下:圖37 鍵盤掃描子程序流程圖該檢測儀采用18矩陣式鍵盤,關于它的具體硬件組成電路這里就不多做介紹,在檢測有無鍵按下方面主要用的是開機自動掃描方式,該方式是利用單片機運行程序初始化后自動掃描鍵盤,如果沒有鍵按下則繼續(xù)掃描,若有鍵按下即可出對應的鍵值,再由鍵值跳轉到相應的子程序,從而實現鍵盤掃描,鍵盤掃描子程序流程圖如圖37所示。由于本設計為了節(jié)約I/O口,只用一根數據線來實現鍵盤的列掃描,是通過8位并行輸出串行移位寄存器74HC164來實現的。具體是用單片機的一個I/O口連接到該芯片的時鐘輸入端,作為該芯片的工作時鐘,用另一根數據接到74HC164的數據端口A、B兩端。由于74HC164是工作在上升沿,所以本設計可以在其數據端輸入一個等待送出的數字,然后通過在其時鐘輸入端送入一個上升沿,就可以實現把等待送出的數字發(fā)送出去。又因為該芯片是8位并行輸出串行移位寄存器,所以這個送數過程要連續(xù)重復8次才能夠實現一個單元的數據完全送出。SAOMIAO: MOV A,R1 MOV R2,08HXS: JB ,XS1 CLR AJMP CLKXS1: SETB CLK: CLR NOP SETB RR A DJNZ R2,XSRET本段程序就是將一個單元8位二進制數送出的子程序,,。本設計用的鍵盤是18矩陣式鍵盤,在鍵盤掃描之前,先在鍵盤的行線上輸出一個1,再在74HC164是輸出8個0,然后再讀入行線到單片機,如果行線是1,則表示沒有鍵按下,就返回到鍵盤掃描狀態(tài)重新掃描,反之如果行線為0,則有鍵按下。然后本設計再一列一列的掃描鍵值,具體過程如下:首先通過164輸出一個11111110B后,讀入鍵盤的行,如果為0,則表示是第一個鍵按下,如果不為0,則表示不是第一個鍵按下,然后再在164端輸出一個11111101B再進行上述掃描過程直至行線為0即掃描到鍵值,即完成了鍵盤的掃描過程。當然鍵盤掃描時還要通過延時消去鍵盤抖動,延時定時器的延遲時間等于初值乘上時間判斷間隔時間,通過確定延時定時器的延遲時間達到去除鍵盤抖動的對正常的影響,一般延時時間在30ms~50ms之間,在實驗中確定具體的延遲時間。鍵盤掃描去抖動和鍵值掃描的核心程序如下:ScanKey: SETB KeyRow /*鍵盤的行置1 MOV Data_OutputBuf, 00H /*鍵盤的列置0,掃描的初始狀態(tài) LCALL Data_Output /*調用顯示子程序,將掃描初始值送出 MOV A, P1 /*將P1口狀態(tài)讀入到單片機 JB ,NoKey /*判斷是否有鍵按下,有則繼續(xù)執(zhí)行,沒有則返回 LCALL DELAY10ms /*調用延時程序消除鍵盤抖動,一般10 ms足夠 MOV A,P1 JB ,NoKey MOV ArrangeNum,00H /*列設定初始值 MOV A,07FH /*列掃描的初始值GetKey1: /*列掃描子程序 SETB KeyRow MOV R5, A /*列掃描的初始值,暫時存在R5中 MOV Data_OutputBuf, A LCALL Data_Output MOV A, P1 JNB ,GetKeyValue MOV A,R5 RR A /*列掃描值右移,從而實現鍵盤的列掃描 INC ArrangeNum /*列號加1 JB ,GetKey1 LJMP NoKey 167。 LED顯示部分程序設計1. LED顯示器應用程序設計總體方案(1).LED的動態(tài)顯示LED的動態(tài)顯示是利用人眼的視力暫留效果來設計的,就是在LED上面連續(xù)送出要顯示的內容,當每秒掃描顯示的次數達到一定的次數后,人眼就可以認為是連續(xù)顯示的,此種設計的優(yōu)點就是節(jié)約I/O口,電路連接簡單,但相應的也造成了軟件開支過大,因為需要不斷的進行定時掃描或中斷掃描等。(2).LED的靜態(tài)顯示 LED的靜態(tài)顯示就是在LED上送入待顯示的內容后,LED的管腳的狀態(tài)一直保持不變,即在LED上穩(wěn)定靜止的顯示出待顯示的內容,該種設計軟件編寫簡單,單片機軟件資源占用少,但相應的在沒加輔助顯示芯片,使電路復雜,I/O口占用過多。通過以上兩種方法的比較,本設計選用靜態(tài)顯示的方式,同時選用8位串進并出移位寄存器74HC164來輔助顯示,其功能用法在鍵盤掃描過程中也詳細介紹過了,這里就不在重述。 , 通過該芯片來輔助LED的顯示,就能夠節(jié)約I/O口資源,又能夠減少軟件的開支,所以比較適合本設計的需要。此外,本設計采用5位LED的顯示,分別各用一個74HC164連接一個LED數碼管顯示器,并且從低位到高位把每個74HC164接連起來,利用它的移位功能來實現LED的一幀數據的顯示。本設計采用靜態(tài)顯示一次必須送完一幀5位數據,這樣對單個數據的修改就比較麻煩,尤其是在碰到有小數點顯示的時候,不能夠只改變一位來實現,必須得5位數據全部重新送數。本設計沒有BCD碼譯碼器,必須通過軟件查表把要顯示的數據轉變成BCD碼,對于有小數點和無小數點的,本設計就得寫兩個不同的表用來查詢。在本設計中實現鍵盤掃描的74HC164跟LED顯示的第一位顯示的數據是同一個,所以在鍵盤掃描時本設計可通過軟件將顯示器關閉,以免按鍵和顯示相互影響,同樣在程序運行過程中,本設計也避免顯示和鍵盤掃描同時進行,例如,本設計程序開始執(zhí)行時,總是先掃描鍵盤直到有鍵盤按下來確定用戶需要檢測濕度還是溫度,然后根據鍵值跳轉到相應的子程序來進行檢測,這時才將檢測結果在LED上顯示出來。DISPLAY: LJMP JIANZHISAOMIAO: /*將要待顯示的數送到74HC164中并通過數碼管顯示 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送入不同的數值就可以在LED上把送入的數字顯示出來,這種模塊化的程序設計思想十分重要,任何一個大的程序都是由各個小程序相互調用來完成的。 在進行軟件設計時,先寫完各個模塊的程序,當每個模塊的程序都調試通過后,在根據設計的要求,按照最先實際的總的程序流程圖來完成子程序之間的相互協(xié)調調用來實現整個程序的調試工作,通過多次反復的調試修改,當總程序能夠實現設計要求時,程序的設計才大體完成。結 論該檢測儀適用于需要對溫濕度實時檢測的多種場合。由于采用了測量范圍廣、精度高、響應速度快的電容式濕度傳感器來進行濕度采樣,使用溫度補償、線性化處理的方法提高檢測精度,因此該檢測儀基本上達到技術指標中對相對濕度測量精度和分辨力的要求。該檢測儀在濕度的線性化上用的時間可能會稍長一些。但是STC12C5410AD單片機工作頻率較高,并且只有環(huán)境濕度較高時才會出現處理時間延長現象,因此并不影響檢測儀的實時檢測指標。在這次設計中本設計也遇到不少問題,也正是對這些問題的逐步解決該檢測儀順利設計完成。本設計的設計主要面臨著硬件設計和軟件設計的兩大問題,以及硬件和軟件的結合。軟件設計中面臨的主要問題是環(huán)境溫濕度數據的采集方法,相對濕度的溫度補償和線性化處理。在指導老師的悉心輔導下和查閱大量資料之后,然后采用了STC12C5410AD數據采集芯片并配合其它一些
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1