📄 ev1527.asm
字号:
;
; 中断接收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 ;高频信号接收口
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 ;高低电位标志?
Lowsignalcounterincrease:
INC CLOW ;计时低电位时间
JNB HEAD_OK,IT0P_EXIT1 ;同步信号接收成功?
MOV A,CLOW
SUBB A,#18H ;2.0MS 17
JNC Signalerror
AJMP IT0P_EXIT
Reselowsignalcounter: ;高标志清除
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 ;设同步信号成功标志
setb SIGANLHL
MOV CDATA,#18H ;接收信号的位数
IT0P_EXIT1:
ajmp IT0P_EXIT
Signalanalysis:
MOV A,CHIGH ;信号的分辩
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: ;信号数据为1
SETB C
AJMP addonesignal
L_datazerosignal:
MOV A,CHIGH
SUBB A,#01H
JC checkdataeffective
datazerosignal: ;信号数据为0
CLR C
addonesignal:
MOV A,DATA1_1 ;存储数据
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 ;设接收成功标志
CLR HEAD_OK
AJMP IT0P_EXIT2
reselighsignalcounter:
setb SIGANLHL ;复位
mov CHIGH,#00H
ajmp IT0P_EXIT
Highsignalcounterincreasc:
INC CHIGH
AJMP IT0P_EXIT
checkdataeffective:
SETB SIGANLHL
Signalerror:
clr SIGNAL_OK ;接收信号错误
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -