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