📄 f200asm.asm
字号:
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
NOP ;1
NOP ;1
MOV A,BAND_DELAY_SAM ;1
CLR C ;1
RRC A ;1
MOV R0,A ;1
DJNZ R0,$ ;2
RECEIVESAM_BYTE2:
MOV C,SAM_IO ;BIT0 ;1
JNB PROMISE_SAM,RECEIVESAM_BYTE20 ;2
CPL C ;1
RLC A ;1
LJMP RECEIVESAM_BYTE21 ;2
RECEIVESAM_BYTE20:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE21:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;3
RECEIVESAM_BYTE3:
MOV C,SAM_IO ;BIT1 ;1
JNB PROMISE_SAM,RECEIVESAM_BYTE30 ;2
CPL C ;1
RLC A ;1
LJMP RECEIVESAM_BYTE31 ;2
RECEIVESAM_BYTE30:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE31:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;3
RECEIVESAM_BYTE4:
MOV C,SAM_IO ;BIT2 ;1
JNB PROMISE_SAM,RECEIVESAM_BYTE40 ;2
CPL C ;1
RLC A ;1
LJMP RECEIVESAM_BYTE41 ;2
RECEIVESAM_BYTE40:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE41:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
RECEIVESAM_BYTE5:
MOV C,SAM_IO ;BIT3 ;1
JNB PROMISE_SAM,RECEIVESAM_BYTE50 ;2
CPL C ;1
RLC A ;1
LJMP RECEIVESAM_BYTE51 ;2
RECEIVESAM_BYTE50:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE51:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RECEIVESAM_BYTE6:
MOV C,SAM_IO ;BIT4
JNB PROMISE_SAM,RECEIVESAM_BYTE60
CPL C
RLC A
LJMP RECEIVESAM_BYTE61
RECEIVESAM_BYTE60:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE61:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RECEIVESAM_BYTE7:
MOV C,SAM_IO ;BIT5
JNB PROMISE_SAM,RECEIVESAM_BYTE70
CPL C
RLC A
LJMP RECEIVESAM_BYTE71
RECEIVESAM_BYTE70:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE71:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RECEIVESAM_BYTE8:
MOV C,SAM_IO ;BIT6
JNB PROMISE_SAM,RECEIVESAM_BYTE80
CPL C
RLC A
LJMP RECEIVESAM_BYTE81
RECEIVESAM_BYTE80:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE81:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RECEIVESAM_BYTE9:
MOV C,SAM_IO ;BIT7 ;2
JNB PROMISE_SAM,RECEIVESAM_BYTE90 ;4
CPL C ;1
RLC A ;1
LJMP RECEIVESAM_BYTE91 ;2
RECEIVESAM_BYTE90:
RRC A ;1
NOP ;1
NOP ;1
NOP ;1
RECEIVESAM_BYTE91:
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
RECEIVESAM_BYTE10: ;奇偶校验位判断
MOV C,SAM_IO ;2
JNB P,RECEIVESAM_BYTE101 ;4
CPL C ;1
RECEIVESAM_BYTE101:
MOV R3,R3BAK
JNC RECEIVESAM_BYTEOK ;4
MOV R0,BAND_DELAY_SAM; ;2奇偶校验位错误
DJNZ R0,$ ;3
CLR SAM_IO ;2 10.5个ETU处拉低SAM_IO电平2个ETU
MOV R0,BAND_DELAY_SAM; ;2
DJNZ R0,$ ;3
MOV R0,BAND_DELAY_SAM; ;2
DJNZ R0,$ ;3
DJNZ VER_TIME,RECEIVESAM_BYTEAGAIN ;3 重新接收数据4次
MOV R3,#0H
LJMP RECEIVESAM_BYTEC
RECEIVESAM_BYTEAGAIN:
LJMP RECEIVESAM_BYTESTAR
RECEIVESAM_BYTEOK: ;奇偶校验位正确
PUSH ACC ;2
MOV A,BAND_DELAY_SAM; ;1
CLR C ;1
RRC A ;1
MOV R0,A ;1
DJNZ R0,$ ;2
POP ACC ;2
SETB SAM_IO ;1
SETB C ;1 ;if over time,c=0
RET ;2
;****************************************************************************
DELAY_SAM: ;t=0==>320;t=1==>160
JB PROTOCOL_SAM,DELAY_SAM0 ;2
NOP ;1
MOV R0,#8 ;1
DJNZ R0,$ ;2
MOV R0,BAND_DELAY_SAM ;2
DELAY_SAMA:
NOP
NOP
DJNZ R0,DELAY_SAMA ;2
LJMP DELAY_SAM1 ;2
DELAY_SAM0: ;extra_protect_time
NOP ;1
MOV R0,#3 ;1
DJNZ R0,$ ;2
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
DELAY_SAM1:
MOV A,PROTECT_TIME_SAM ;1
MOV R4,A ;1
JNZ DELAY_SAM2 ;2
RET
DELAY_SAM2:
NOP ;1
MOV R0,#4 ;1
DJNZ R0,$ ;2
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
DJNZ R4,DELAY_SAM2 ;2
RET
;****************************************************************************
SENDSAM_BYTE:
MOV VER_TIME,#04H
SENDSAM_BYTESTAR:
PUSH ACC
CLR SAM_IO;START ;2
JNB PROMISE_SAM,SENDSAM_BYTE0 ;4
NOP ;1
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
RLC A ;1
CPL C ;1
LJMP SENDSAM_BYTE01 ;2
SENDSAM_BYTE0:
NOP
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
RRC A ;1
SENDSAM_BYTE01:
MOV SAM_IO,C;BIT0 ;2
JNB PROMISE_SAM,SENDSAM_BYTE1 ;2
NOP ;1
NOP ;1
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
RLC A ;1
CPL C ;1
LJMP SENDSAM_BYTE11 ;2
SENDSAM_BYTE1: ;
NOP ;
NOP ;
NOP ;
NOP ;
NOP ;
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE11:
MOV SAM_IO,C ;BIT1
JNB PROMISE_SAM,SENDSAM_BYTE2
NOP
NOP
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RLC A
CPL C
LJMP SENDSAM_BYTE21
SENDSAM_BYTE2:
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE21:
MOV SAM_IO,C ;BIT2
JNB PROMISE_SAM,SENDSAM_BYTE3
NOP
NOP
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RLC A
CPL C
LJMP SENDSAM_BYTE31
SENDSAM_BYTE3:
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE31:
MOV SAM_IO,C ;BIT3
JNB PROMISE_SAM,SENDSAM_BYTE4
NOP
NOP
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RLC A
CPL C
LJMP SENDSAM_BYTE41
SENDSAM_BYTE4:
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE41:
MOV SAM_IO,C ;BIT4
JNB PROMISE_SAM,SENDSAM_BYTE5
NOP
NOP
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RLC A
CPL C
LJMP SENDSAM_BYTE51
SENDSAM_BYTE5:
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE51:
MOV SAM_IO,C ;BIT5
JNB PROMISE_SAM,SENDSAM_BYTE6
NOP
NOP
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RLC A
CPL C
LJMP SENDSAM_BYTE61
SENDSAM_BYTE6:
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE61:
MOV SAM_IO,C ;BIT6
JNB PROMISE_SAM,SENDSAM_BYTE7
NOP
NOP
MOV R0,BAND_DELAY_SAM
DJNZ R0,$
RLC A
CPL C
LJMP SENDSAM_BYTE71
SENDSAM_BYTE7:
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$
RRC A
SENDSAM_BYTE71:
MOV SAM_IO,C ;BIT7 ;2
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
POP ACC ;2
JB P,SENDSAM_BYTE8 ;2
CLR SAM_IO;PARITY ;2
SJMP SENDSAM_BYTE9 ;2
SENDSAM_BYTE8:
SETB SAM_IO;PARITY ;2
NOP
NOP
SENDSAM_BYTE9:
NOP
NOP
NOP
NOP
NOP
NOP
MOV R0,BAND_DELAY_SAM ;2
DJNZ R0,$ ;2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -