📄 modbus.asm
字号:
LDB BUFREG,SBUFRX
CMPB BUFREG,#02H
JNE SENDGZX8 ;1231 RETURNXXX
SJMP SP_RX00E1 ;031119
SENDGZX8:
LJMP RETURN ;031119
SP_RX00A2X:
LJMP SP_RX00A2 ;030807
SP_RX00E1:
;031119
CLR AX
;031119
SP_RX00F:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE SENDGZX8
;031119
JBC INT_PEND,6,SP_RX00F
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,SBADDR
JNE SENDGZX8
;031119
CLR AX
;031119
SP_RX00A1:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE SENDGZX8
;031119
JBC INT_PEND,6,SP_RX00A1
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#06H
JNE SP_RX00A2X ;030807
;ACK 清标志
;030807***************************
;031119
CLR AX
;031119
SP_RX00A11:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE SENDGZX8
;031119
JBC INT_PEND,6,SP_RX00A11
ANDB INT_PEND,#0BFH
STB AL,WDTADDR[0] ;030417
LDB BUFREG,SBUFRX
CMPB BUFREG,#02H
JNE SENDGZX8
;031119
CLR AX
;031119
SP_RX00A12:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE SENDGZX8
;031119
JBC INT_PEND,6,SP_RX00A12
ANDB INT_PEND,#0BFH
CLRB CRC1
ADDB CRC,SBADDR,#08H
ADDCB CRC1,#00H
LDB BUFREG,SBUFRX
CMPB BUFREG,CRC ;
JNE SENDGZX7
;031119
CLR AX
;031119
SP_RX00A13:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE SENDGZX7
;031119
JBC INT_PEND,6,SP_RX00A13
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,CRC1 ;
JNE SENDGZX7
;031119
CLR AX
;031119
SP_RX00A14:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE SENDGZX7
;031119
JBC INT_PEND,6,SP_RX00A14
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#03H ;
JNE SENDGZX7
;030807***************************
STB AL,WDTADDR[0] ;030417
SP_RX00A1X:
LD I2CADDR,#FSFLAGADDR ;1109
LCALL OUTPUT_SJ
LDB FSFLAG,ZYBUFAL
JBC FSFLAG,0,SENDGZX0
ANDB FSFLAG,#0FEH
SJMP SENDGZXX
SENDGZX7:
LJMP RETURN
SENDGZX0:
JBC FSFLAG,1,SENDGZX1
ANDB FSFLAG,#0FDH
SJMP SENDGZXX
SENDGZX1:
JBC FSFLAG,2,SENDGZX2
ANDB FSFLAG,#0FBH
SJMP SENDGZXX
SENDGZX2:
JBC FSFLAG,3,SENDGZX3
ANDB FSFLAG,#0F7H
SJMP SENDGZXX
SENDGZX3:
JBC FSFLAG,4,SENDGZX4
ANDB FSFLAG,#0EFH
SJMP SENDGZXX
SENDGZX4:
JBC FSFLAG,5,SENDGZX5
ANDB FSFLAG,#0DFH
SJMP SENDGZXX
SENDGZX5:
JBC FSFLAG,6,SENDGZX6
ANDB FSFLAG,#0BFH
SJMP SENDGZXX
SENDGZX6:
JBC FSFLAG,7,SENDGZX7
ANDB FSFLAG,#07FH
SJMP SENDGZXX
SENDGZXX:
STB AL,WDTADDR[0] ;030417
STB AL,WDTADDR[0] ;030417
LDB ZYBUFAL,FSFLAG
LD I2CADDR,#FSFLAGADDR ;1109
LCALL INPUT_SJ1
RETURNXXXX:
LJMP RETURN
SP_RX00A2:
CMPB BUFREG,#15H ;NOACK 重发本次事件
JNE RETURNXXXX
;030807***************************
;031119
CLR AX
;031119
SP_RX00A21:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXX
;031119
JBC INT_PEND,6,SP_RX00A21
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#02H
JNE RETURNXXXX
;031119
CLR AX
;031119
SP_RX00A22:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXX
;031119
JBC INT_PEND,6,SP_RX00A22
ANDB INT_PEND,#0BFH
CLRB CRC1
ADDB CRC,SBADDR,#017H
ADDCB CRC1,#00H
LDB BUFREG,SBUFRX
CMPB BUFREG,CRC ;
JNE RETURNXXXX
;031119
CLR AX
;031119
SP_RX00A23:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXX
;031119
JBC INT_PEND,6,SP_RX00A23
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,CRC1 ;
JNE RETURNXXXX
;031119
CLR AX
;031119
SP_RX00A24:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXXX
;031119
JBC INT_PEND,6,SP_RX00A24
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#03H ;
JNE RETURNXXXXX
;030807***************************
STB AL,WDTADDR[0] ;030417
LJMP SP_RX005X1
SP_RX007XX:
;030807*******************************************
CLRB CRC1
LDB CRC,SBADDR
;030807*******************************************
LJMP SP_RX007X
RETURNXXXXX: ;030807
LJMP RETURN ;060807
SP_RX006:
CMPB BUFREG,#04FH
JNE SP_RX007XX
;动作复归
;030807 LDB CRC,BUFREG
CLRB CRC1
ADDB BUFREG,SBADDR
ADDCB CRC1,#00H
LDB CRC,BUFREG ;030807
;031119
CLR AX
;031119
SP_RX0061:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXXX
;031119
JBC INT_PEND,6,SP_RX0061
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#002H
JNE RETURNXXXXX
ADDB CRC,BUFREG
ADDCB CRC1,#00H
;031119
CLR AX
;031119
SP_RX0062:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXXX
;031119
JBC INT_PEND,6,SP_RX0062
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,CRC
JNE RETURNXXXXX
;031119
CLR AX
;031119
SP_RX0063:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXXX
;031119
JBC INT_PEND,6,SP_RX0063
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,CRC1
JNE RETURNXXXXX
;031119
CLR AX
;031119
SP_RX0064:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXXXXX
;031119
JBC INT_PEND,6,SP_RX0064
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#03
JNE RETURNXXXXXXXX ;031119
SJMP SP_RX00641 ;031119
RETURNXXXXXXXX:
LJMP RETURN
SP_RX00641: ;动作复归
;030506 CLRB KGREG1
ANDB KGREG1,#0C0H ;030611 E0H ;030506
ORB KGREG1,#LEDHBYTE
LD ADDRBUF8155,#IO8155ADDR ;1219
STB KGREG1,1H[ADDRBUF8155] ;1219 开A口继电器
;030930 SC ADD
STB AL,WDTADDR[0] ;030417
STB AL,WDTADDR[0] ;030417
CLRB GZBH2L
; LCALL SC
; LCALL SC
;030930SC ADD
SP_ACK:
LDB AH,P2
LDB AL,#10100000B ;p2.7_input pin /busy P2.5=1 TXD ;AL,BL,CL
ORB AH,#10100000B
ANDB AH,AL
LDB P2,AH
MULB AX,AL,#00H ;>5US
MULB AX,AL,#00H
MULB AX,AL,#00H
MULB AX,AL,#00H
NOP
NOP
LDB SBUFTX,#0EBH ; 发ACK 向上位机
SP_RX0065:
JBC INT_PEND,6,SP_RX0065
ANDB INT_PEND,#0BFH
LDB SBUFTX,#090H ; 把数据从外部存储器A区发向上位机
SP_RX0066:
JBC INT_PEND,6,SP_RX0066
ANDB INT_PEND,#0BFH
LDB SBUFTX,#0EBH ; 把数据从外部存储器A区发向上位机
SP_RX0067:
JBC INT_PEND,6,SP_RX0067
ANDB INT_PEND,#0BFH
LDB SBUFTX,#090H ; 把数据从外部存储器A区发向上位机
SP_RX0068:
JBC INT_PEND,6,SP_RX0068
ANDB INT_PEND,#0BFH
LDB SBUFTX,#02H ; 把数据从外部存储器A区发向上位机
SP_RX0069:
JBC INT_PEND,6,SP_RX0069
ANDB INT_PEND,#0BFH
LDB SBUFTX,SBADDR ; 把数据从外部存储器A区发向上位机
SP_RX006A:
JBC INT_PEND,6,SP_RX006A
ANDB INT_PEND,#0BFH
LDB SBUFTX,#06H ; 把数据从外部存储器A区发向上位机
SP_RX006A1:
JBC INT_PEND,6,SP_RX006A1
ANDB INT_PEND,#0BFH
LDB SBUFTX,#02H ; 把数据从外部存储器A区发向上位机
SP_RX006A2:
JBC INT_PEND,6,SP_RX006A2
ANDB INT_PEND,#0BFH
CLRB CRC1
ADDB CRC,SBADDR,#08H
ADDCB CRC1,#00H
LDB SBUFTX,CRC ; 把数据从外部存储器A区发向上位机
SP_RX006A3:
JBC INT_PEND,6,SP_RX006A3
ANDB INT_PEND,#0BFH
LDB SBUFTX,CRC1 ; 把数据从外部存储器A区发向上位机
SP_RX006A4:
JBC INT_PEND,6,SP_RX006A4
ANDB INT_PEND,#0BFH
LDB SBUFTX,#03H ; 把数据从外部存储器A区发向上位机
SP_RX006B:
JBC INT_PEND,6,SP_RX006B
ANDB INT_PEND,#0BFH
LJMP RETURN
RETURNXX:
LJMP RETURN
SP_RX007:
CMPB BUFREG,#04H
JNE RETURNXX
;对时
;030807*******************************************
ADDB CRC,BUFREG ;SBADDR
ADDCB CRC1,#00H
;030807*******************************************
;030807 LDB CRC,BUFREG
;030807 CLRB CRC1
;031119
CLR AX
;031119
SP_RX0071:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXX
;031119
JBC INT_PEND,6,SP_RX0071
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
CMPB BUFREG,#00BH
JNE RETURNXX
ADDB CRC,BUFREG
ADDCB CRC1,#00H
;031119
CLR AX
;031119
SP_RX0072:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXX
;031119
JBC INT_PEND,6,SP_RX0072
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
LDB YEAR,BUFREG ;年
ADDB CRC,BUFREG
ADDCB CRC1,#00H
;031119
CLR AX
;031119
SP_RX0073:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXX
;031119
JBC INT_PEND,6,SP_RX0073
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
;LDB YEAR,BUFREG
ADDB CRC,BUFREG
ADDCB CRC1,#00H
;031119
CLR AX
;031119
SP_RX0074:
INC AX
STB AL,WDTADDR[0]
CMP AX,#0FFFFH
JE RETURNXX
;031119
JBC INT_PEND,6,SP_RX0074
ANDB INT_PEND,#0BFH
LDB BUFREG,SBUFRX
LDB MONTH,BUFREG ;月
ADDB CRC,BUFREG
ADDCB CRC1,#00H
;031119
CLR AX
;031119
SP_RX0075:
INC AX
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -