一、軟件設(shè)計總體思路及主程序流程圖
本系統(tǒng)的軟件編程采用C語言和匯編語言混合編寫,軟件結(jié)構(gòu)采用模塊化結(jié)構(gòu),將各功能程序以子程序的形式寫好,分配好它們之間的寄存器地址,以避免寄存器與I/O間的相互沖突,使用時只需在主程序中調(diào)入即可。編程時,盡可能多地采用子程序調(diào)用指令取代跳轉(zhuǎn)指令,避免程序結(jié)構(gòu)的復(fù)雜化,以功能模塊編寫程序可使程序結(jié)構(gòu)的邏輯清晰且便于調(diào)試、改和維護。如圖18所示,整個軟件程序由主程序、DHT21多點溫濕度檢測子程序、矩陣鍵盤掃描子程序、LCD 1602溫濕度循環(huán)顯示子程序、中斷控制子程序、溫濕度數(shù)據(jù)存儲于U盤的子程序組成。每個子程序只有一個入口及出口,且相互間的邏輯關(guān)系獨立,防止因某個子程序模塊出錯而導(dǎo)致整個系統(tǒng)癱瘓。
二、測量溫濕度模塊
程序主要是完成干燥箱和集熱器中6個點的溫濕度檢測。為了將干燥箱與集熱器的數(shù)據(jù)獨立存儲,分為兩條通道,每條通道的單總線掛接3個DHT21傳感器。兩個通道之間采用巡檢方式,即當(dāng)拉高P2.0口而將其屏蔽,檢測P2.1口,這時檢測的是集熱器內(nèi)3個測量點的溫濕度。單片機在單總線上檢測3個傳感器的溫濕度數(shù)據(jù)步驟是:主機發(fā)出復(fù)位脈沖→主機檢測存在脈沖→主機發(fā)出Search ROM命令→主機發(fā)出Match ROM命令→主機發(fā)出讀暫存寄存器命令→主機讀溫濕度寄存器→主機發(fā)出復(fù)位脈沖→主機發(fā)出忽略ROM命令→主機發(fā)出啟動溫濕度轉(zhuǎn)換命令→主機發(fā)出復(fù)位脈沖。同理,檢測干燥箱內(nèi)溫濕度,只需將P2.1拉高,令P2.0低電平即可。其流程圖如圖19所示。
三、矩陣鍵盤掃描模塊
這部分程序主要完成的功能是按鍵處理程序通過掃描按鍵情況,讀取鍵值,完成各點溫濕度傳感器上下限報警參數(shù)設(shè)置。這部分程序設(shè)計主要分三個步驟:
1)判斷有無鍵按下;
2)軟件延時10ms去抖動;
3)求鍵的位置(行、列)。
其流程圖如圖20所示。http://www.frameer.com
聯(lián)系人:賈小姐
廣東省東莞市寮步鎮(zhèn)嶺安街2號