基于EFM32TG840F16 MCU的室內甲醛檢測儀設計
圖 2:主程序結構框圖
系統上電后,進(jìn)行初始化和中斷處理操作,主要完成系統自檢和復位。初始化完成后,開(kāi)始采樣濃度值,并判斷是否有按鍵按下。如果有按鍵按下,則進(jìn)行相應數據處理,并執行功能指令,然后在液晶顯示屏上顯示相應信息。如果沒(méi)有按鍵按下,則顯示當前實(shí)測濃度值,等待用戶(hù)進(jìn)行下一步操作,系統轉入定時(shí)計時(shí)階段。
2.2 低功耗中斷子程序
為減小系統功耗,延長(cháng)電池的使用時(shí)間,設計時(shí)考慮設備在較長(cháng)時(shí)間段內處于待機狀態(tài)時(shí),應盡量降低功耗。系統設計低功耗中斷子程序(見(jiàn)圖3)
圖3:低功耗中斷子程序結構框圖
這里采用一個(gè)定時(shí)器。當定時(shí)器大于0 時(shí),系統處于開(kāi)機狀態(tài);當定時(shí)器倒數到0 時(shí),系統自動(dòng)進(jìn)入低功耗模式,并關(guān)閉LCD 模塊和A/D 模塊。其中定時(shí)器是通過(guò)軟件對控制寄存器進(jìn)行設置實(shí)現的。具體操作是這樣:開(kāi)機時(shí),對定時(shí)器初始化一個(gè)大于0 的值,比如60,并且在每按一次有效鍵時(shí),系統重新初始化這個(gè)值。因此,當沒(méi)有按任何有效鍵時(shí),60s 后就會(huì )自動(dòng)進(jìn)入休眠狀態(tài),從而實(shí)現降耗目的。在休眠期間,若有按鍵按下,微處理器響應中斷,系統退出休眠狀態(tài),返回到正常工作狀態(tài)。
2.3 采樣數據處理子程序
為提高檢測精度,采樣數據處理軟件設計是關(guān)鍵。系統采用采樣數據排隊與中值濾波法。數據排隊就是在給定的數據暫存區內不斷地用最新數據取代最早數據的過(guò)程;利用軟件進(jìn)行數據排隊具有通用性和靈活性。原理(見(jiàn)圖4)。
圖4:采樣數據更新排隊的雙倍暫存區擴展法
由圖4 可見(jiàn), 將暫存區的空間擴大為需要保存數據空間的2 倍, 并將暫存區等分為前后相連的2 個(gè)區, 每個(gè)區的長(cháng)度與需保存數據長(cháng)度相等。當前采樣得到的一組新數據同時(shí)存入2 個(gè)區的對應位置,這樣2 組相同采樣數據之間剛好間隔1 個(gè)區的長(cháng)度, 間隔內的全部數據連同最后1 個(gè)最新數據即為當前排隊結果。以后每組新采樣數據依次向后存入暫存區, 存滿(mǎn)后再從頭開(kāi)始。每次采樣周期中完成相應的排隊更新任務(wù)后記下當前隊列的首(或末)地址作為指針并保存,供處理程序取數時(shí)使用,這樣一來(lái)就滿(mǎn)足實(shí)時(shí)排序的要求。
對排隊后的數據采取中位值濾波算法。算法的具體實(shí)現過(guò)程:取N 個(gè)連續采樣數據,并按照遞增或遞減順序排列,取中間值作為本次采樣值。中位值濾波算法能有效地克服因偶然因素引起的干擾或波動(dòng)而產(chǎn)生的誤差。即提高系統的檢測精度。
3 結束語(yǔ)
本甲醛檢測儀采用EFM32TG840F16 單片機作為核心控制單元,電路結構簡(jiǎn)單、外設功能模塊豐富,功耗低,待機時(shí)間長(cháng),支持IAP 功能,軟件升級方便,另外該MCU 性能強勁,可升級空間極大。
網(wǎng)線(xiàn)測試儀相關(guān)文章:網(wǎng)線(xiàn)測試儀原理
評論