單片機(jī)中定時/計數(shù)器在消除瞬時干擾中的應(yīng)用
軟件具體編制方法如下:把定時/計數(shù)器選作定時器用,設(shè)置好工作方式,在程序運行過程中不產(chǎn)生中段請求信號,選擇內(nèi)存中的某一單元(例如R0),在其中設(shè)一初始值(如果初始值大于255,則需要兩個內(nèi)存單元),使得此初始值對應(yīng)的機(jī)器周期的時間比干擾信號的作用時間長,而比實際所需采樣信號的作用時間短(由于干擾信號與實際所需信號作用時間存在很大的差異,做到這一點并不困難)。由CPU對A/D輸入信號進(jìn)行處理,當(dāng)檢測到被采樣信號有上升趨勢時啟動定時器,并將定時器的初值設(shè)為0,在被采樣信號到達(dá)最大值時,讀回定時器中十六位計數(shù)器的值,以之與R0初始值比較。若比初始值小,說明采集到的是干擾信號的幅值,應(yīng)該舍去,并給計數(shù)器清零,重新返回采樣;若比初始值大,則可確定此時采集到的為所需的測量值,可以存儲起來或者通過顯示、打印輸出。
由于十六位計數(shù)器最多只能計時216個機(jī)器周期,如果系統(tǒng)晶振為12MHz,則其最長計時時間為66.5毫秒,對于作用時間比較長的采樣系統(tǒng)就顯得不夠。由于實際信號作用時間長,當(dāng)采樣到最大值時加法計數(shù)器可能早已溢出,此時我們就不能確定計數(shù)器里的值與R0中所設(shè)初始值的大小了。為了解決這個問題,可對上述程序做些修改,具體如下:將定時器設(shè)為中斷工作方式,定時初值為0,R0中設(shè)初始值A(chǔ),在檢測干擾信號時,由于干擾信號作用時間短,檢測到干擾信號幅值時計數(shù)器中的值小于R0中的初始值A(chǔ);而在檢測實際作用信號時,定時器會產(chǎn)生溢出。定時器溢出時向CPU發(fā)出中斷請求。在中斷程序中給定時器設(shè)立另一初值B,使B>A,中斷返回后計數(shù)器從B開始計數(shù),當(dāng)測試到被測信號的最大值時,加法計數(shù)器中的值一定比初始值A(chǔ)大。因此我們就可以通過比較加法計數(shù)器中的值和R0中的初始值A(chǔ)來區(qū)分干擾信號和實際測量信號。
三、應(yīng)用實例
下面介紹這種設(shè)計思想在生鐵團(tuán)礦壓力實驗儀中的應(yīng)用。
在高爐煉鐵中,鐵礦粉不能直接加入爐內(nèi)冶煉,而應(yīng)先制成球團(tuán),稱為生鐵團(tuán)礦。為了保證生鐵團(tuán)礦在運輸和裝爐過程中不至碎裂,必須測出其抗壓強(qiáng)度。團(tuán)礦壓力實驗儀要求能準(zhǔn)確地測出生鐵團(tuán)礦的破碎壓力值,并顯示和打印出來。筆者設(shè)計的生鐵團(tuán)礦壓力實驗儀中單片機(jī)采樣和控制系統(tǒng)框圖如圖3所示,該實驗儀的工作過程如下:團(tuán)礦放置在生鐵團(tuán)礦壓力實驗儀的托盤上,電機(jī)正轉(zhuǎn),托盤上升,球團(tuán)礦與傳感器接觸并受壓,傳感器壓力信號通過A/D轉(zhuǎn)換后輸入單片機(jī),由單片機(jī)通過計算求出最大值。得到最大值后立即停止電機(jī)運轉(zhuǎn),顯示、打印破碎壓力值。然后電機(jī)反轉(zhuǎn),托盤下降,進(jìn)行下一次實驗。
圖3 壓力實驗儀單片機(jī)系統(tǒng)框圖
在球團(tuán)礦壓力實驗儀中,存在著電機(jī)頻繁地啟動與停止,在電機(jī)啟動與停止的瞬時,由于電路中存在能量的突變,產(chǎn)生了嚴(yán)重的電磁干擾,給采樣信號造成很大的影響,從而引起電機(jī)的誤動作。但干擾作用時間很短,一般為十幾微秒到幾十微秒,而球團(tuán)礦從受壓到破碎這一過程一般在10~50ms。此干擾不易為一般的RC濾波器所濾除。筆者使用上述軟件方法,基本上使此干擾得到控制。軟件的程序流程圖如圖4。
圖4 生鐵團(tuán)礦壓力實驗儀單片機(jī)控制程序流程圖
塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
評論