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