BTFSSPORTB,VT;判斷VT管腳高低
GOTOKEY_DOWN;為低
BTFSCSYS_FLAG,VT_UP;為高,判斷標(biāo)志位VT_UP是否為低
GOTOUP_UP;為高,進(jìn)入按鍵高處理
BSFSYS_FLAG,GR_UP;為低,設(shè)高干擾標(biāo)志
BTFSCSYS_FLAG,GR_DOWN;是否有低干擾標(biāo)志
CLRFGR_TIME;有則清干擾計(jì)數(shù)器
BTFSSSYS_FLAG,MS10_F;系統(tǒng)是否經(jīng)過(guò)10MS,
RETURN;未經(jīng)過(guò)10MS返回
INCFGR_TIME;對(duì)計(jì)數(shù)器加一
MOVLW.3;判斷是否經(jīng)過(guò)30MS
SUBWFGR_TIME,W
BTFSSSTATUS,C
RETURN
;確認(rèn)為上升沿
BCFSYS_FLAG,GR_UP;清高干擾標(biāo)志
CLRFGR_TIME
BSFSYS_FLAG,VT_UP;設(shè)置VT_UP高標(biāo)志
;確認(rèn)為高電平,
UP_UP:CLRFGR_TIME;清干擾計(jì)數(shù)器
KEY_DOWN:BTFSSSYS_FLAG,VT_UP;判斷VT_UP是否為高
GOTODOWN_DOWN;為低,進(jìn)入低電平處理
BSFSYS_FLAG,GR_DOWN;為高,設(shè)低干擾標(biāo)志
BTFSCSYS_FLAG,GR_UP;判斷是否有高干擾標(biāo)志
CLRFGR_TIME;有則清干擾計(jì)數(shù)器
BTFSSSYS_FLAG,MS10_F;判斷系統(tǒng)是否經(jīng)過(guò)10MS
RETURN;未經(jīng)過(guò)10MS
INCFGR_TIME;干擾計(jì)數(shù)器加一
MOVLW.3
SUBWFGR_TIME;系統(tǒng)是否經(jīng)過(guò)30MS
BTFSSSTATUS,C
RETURN
BCFSYS_FLAG,GR_DOWN;確認(rèn)為下降沿,清低干擾標(biāo)志
CLRFGR_TIME;清干擾計(jì)數(shù)器
BCFSYS_FLAG,VT_UP;清VT_UP標(biāo)志
;確認(rèn)為低電平
DOWN_DOWN:CLRFGR_TIME;清干擾計(jì)數(shù)器
變量說(shuō)明:
PORTB-----------P16C54C的RB口
VT-----------PT2270的VT引腳
SYS_FLAG-----------系統(tǒng)標(biāo)志位寄存器
VT_UP-----------VT引腳的實(shí)際確認(rèn)狀態(tài)
GR_DOWN-----------VT引腳的低電平暫態(tài)標(biāo)志
GR_UP-----------VT引腳的高電平暫態(tài)標(biāo)志
MS10_F-----------系統(tǒng)10MS標(biāo)志
GR_TIME-----------時(shí)間計(jì)數(shù)器