利用定時(shí)中斷抗干擾
單片機(jī)應(yīng)用系統(tǒng)開發(fā)完成后,在工作現(xiàn)場,由于系統(tǒng)本身的噪聲干擾、電磁干擾、過壓干擾以及環(huán)境干擾等原因,往往會(huì)出現(xiàn)“死機(jī)”現(xiàn)象。解決的辦法有多種,這里介紹利用定時(shí)中斷防止“死機(jī)”的方法。
設(shè)計(jì)思想是先估算系統(tǒng)主程序執(zhí)行一次循環(huán)所需的時(shí)間t,然后把定時(shí)器To或T1的
定時(shí)時(shí)間取得比t稍大,并在主程序中包含對定時(shí)器的初始化程序,這樣,如果系統(tǒng)主程序運(yùn)行正常,因定時(shí)時(shí)間比t大,故在定時(shí)時(shí)間還未到時(shí),主程序已完成一次循環(huán),To或Tl被重新初始化,使定時(shí)時(shí)間常數(shù)重新置入其中,故不會(huì)產(chǎn)生溢出中斷。若應(yīng)用系統(tǒng)由于干擾失控,主程序不能正常循環(huán)運(yùn)行,To或T1不能被及時(shí)初始化,則經(jīng)過時(shí)間t后,T0或T1必將產(chǎn)生溢出中斷,轉(zhuǎn)入中斷服務(wù)程序,這表示程序運(yùn)行出現(xiàn)故障,用戶可安排中斷服務(wù)程序跳轉(zhuǎn)回主程序需要的地址,以此重新使主程序運(yùn)行。
將T1設(shè)置為工作方式2,晶體振蕩頻率為6MHz,防止“死機(jī)”的程序如下:
評論