?? ev1527.asm
字號(hào):
;
; 中斷接收EV1527的程序
;
;###########################################################################
CLOW EQU 20H
CHIGH EQU 21H
CDATA EQU 22H
DATA1_1 EQU 23H
DATA1_2 EQU 24H
DATA1_3 EQU 25H
FLAGS_RF EQU 26H
RF_CHK_P EQU P1.1 ;高頻信號(hào)接收口
HEAD_OK EQU FLAGS_RF.0
SIGANLHL EQU FLAGS_RF.1
SIGNAL_OK EQU FLAGS_RF.2
;===========================================================================
; 中斷子程序
;===========================================================================
ORG 0000H
JMP IT0P
ORG 0030H
IT0P:
PUSH ACC
PUSH PSW
JB RF_CHK_P,SIGNAL_H
SIGNAL_L:
JB SIGANLHL,Reselowsignalcounter ;高低電位標(biāo)志?
Lowsignalcounterincrease:
INC CLOW ;計(jì)時(shí)低電位時(shí)間
JNB HEAD_OK,IT0P_EXIT1 ;同步信號(hào)接收成功?
MOV A,CLOW
SUBB A,#18H ;2.0MS 17
JNC Signalerror
AJMP IT0P_EXIT
Reselowsignalcounter: ;高標(biāo)志清除
CLR SIGANLHL
MOV CLOW,#00H
AJMP IT0P_EXIT
;=================================================
SIGNAL_H:
JB SIGANLHL,Highsignalcounterincreasc ;高電位
catchsynchronization:
jb HEAD_OK,Signalanalysis
mov A,CLOW
subb A,#95H ;
jnc checkdataeffective
mov C,CLOW
subb A,#14H ;2.4MS
jc checkdataeffective
setb HEAD_OK ;設(shè)同步信號(hào)成功標(biāo)志
setb SIGANLHL
MOV CDATA,#18H ;接收信號(hào)的位數(shù)
IT0P_EXIT1:
ajmp IT0P_EXIT
Signalanalysis:
MOV A,CHIGH ;信號(hào)的分辯
SUBB A,#08H ;07
JC L_datazerosignal
MOV A,CHIGH
SUBB A,#18H
JNC checkdataeffective
L_dataonesignal:
MOV A,CHIGH
SUBB A,#08H ;08
JC checkdataeffective
dataonesignal: ;信號(hào)數(shù)據(jù)為1
SETB C
AJMP addonesignal
L_datazerosignal:
MOV A,CHIGH
SUBB A,#01H
JC checkdataeffective
datazerosignal: ;信號(hào)數(shù)據(jù)為0
CLR C
addonesignal:
MOV A,DATA1_1 ;存儲(chǔ)數(shù)據(jù)
RLC A
MOV DATA1_1,A
MOV A,DATA1_2
RLC A
MOV DATA1_2,A
MOV A,DATA1_3
RLC A
MOV DATA1_3,A
DJNZ CDATA,reselighsignalcounter
SETB SIGNAL_OK ;設(shè)接收成功標(biāo)志
CLR HEAD_OK
AJMP IT0P_EXIT2
reselighsignalcounter:
setb SIGANLHL ;復(fù)位
mov CHIGH,#00H
ajmp IT0P_EXIT
Highsignalcounterincreasc:
INC CHIGH
AJMP IT0P_EXIT
checkdataeffective:
SETB SIGANLHL
Signalerror:
clr SIGNAL_OK ;接收信號(hào)錯(cuò)誤
CLR HEAD_OK
MOV DATA1_1,#00H
MOV DATA1_2,#00H
MOV DATA1_3,#00H
IT0P_EXIT2:
MOV CHIGH,#00H ;清除返回
MOV CLOW,#00H
MOV CDATA,#00H
IT0P_EXIT:
POP PSW
POP ACC
RETI
;======================================================================
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -