📄 jrdmdytx.asm
字号:
MOVX A,@R1
MOV HOUR,A
INC R1
MOVX A,@R1
MOV DAY,A
INC R1
MOVX A,@R1
MOV MONTH,A
INC R1
MOVX A,@R1
MOV WEEK,A
INC R1
MOVX A,@R1
MOV YEAR,A
INC R1
LCALL HtWriteClock
LCALL HtWriteDate
RET
;
; ****** 发送系统密码到远程终端 ******
;
ReadSysPass: MOV R1,#SendBuf
MOVX @R1,A
MOV BNUM,#PassNum
MOV BADR,#SendBuf+1
MOV DPTR,#SysPassAdr ; 系统密码首地址
LCALL RD_BLK
PUSH PSW
CLR PSW.3 ; RX : PAGE 2
SETB PSW.4
MOV CallAddr,#FarPcAdr ; 远程控制PC地址
MOV FuncCode,#SendCpu1Func17; 发送数据到远程终端功能码
LCALL DataToFarPC ; 发送一条记录到远程(PC)终端
POP PSW
RET
;
; ****** 接收远程终端系统密码设置 ******
;
WriteSysPass: MOV BNUM,#PassNum
MOV BADR,#RecvBuf+3
MOV DPTR,#SysPassAdr
LCALL WR_BLK
RET
;
; ****** 发送用户密码到远程终端 ******
;
ReadUserPass:
MOV R1,#SendBuf
MOVX @R1,A
MOV BNUM,#PassNum
MOV BADR,#SendBuf+1
MOV DPTR,#UserPassAdr ; 用户密码首地址
LCALL RD_BLK
PUSH PSW
CLR PSW.3 ; RX : PAGE 2
SETB PSW.4
MOV CallAddr,#FarPcAdr ; 远程控制PC地址
MOV FuncCode,#SendCpu1Func17; 发送数据到远程终端功能码
LCALL DataToFarPC ; 发送一条记录到远程(PC)终端
POP PSW
RET
;
; ****** 接收远程终端用户密码设置 ******
;
WriteUserPass: MOV BNUM,#PassNum
MOV BADR,#RecvBuf+3
MOV DPTR,#UserPassAdr ; 用户密码首地址
LCALL WR_BLK
RET
;
; ****** 接收远程终端的复位设置 ******
;
ReadSysReset:
MOV R1,#SendBuf
MOVX @R1,A
PUSH PSW
CLR PSW.3 ; RX : PAGE 2
SETB PSW.4
MOV CallAddr,#FarPcAdr ; 远程控制PC地址
MOV FuncCode,#SendCpu1Func17; 发送数据到远程终端功能码
LCALL DataToFarPC ; 发送一条记录到远程(PC)终端
POP PSW
RET
;
;****** 将接收下位机采集的 A/D 值装入 A/D 缓冲区 ******
;
GetAdData: MOV R0,#RecvBuf+2 ; 通信接收缓冲区(32Byte)
MOV R1,#AdBcdBuf
MOV R2,#16
GetAdData1: MOVX A,@R0
INC R0
MOVX @R1,A
INC R1
DJNZ R2,GetAdData1
RET
;
; ****** 发送一条记录到远程CPU ******
;
DataToFarCpu: CLR ES
CLR ComCtrl
CLR A
MOV B,#DataHead ; 发送数据贞头
MOV SBUF,B ;
ADD A,B
DataToFarCpu1: JNB TI,DataToFarCpu1 ;
CLR TI
MOV B,#DataHead ; 发送数据贞头
MOV SBUF,B ;
ADD A,B
DataToFarCpu2: JNB TI,DataToFarCpu2 ;
CLR TI
MOV B,CallAddr ; 发送被呼的主机地址
MOV SBUF,B ;
ADD A,B
DataToFarCpu3: JNB TI,DataToFarCpu3 ;
CLR TI
MOV B,#SelfAddr ; 发送本机地址
MOV SBUF,B ;
ADD A,B
DataToFarCpu4: JNB TI,DataToFarCpu4 ;
CLR TI
MOV B,FuncCode ; 发送功能码
MOV SBUF,B ;
ADD A,B
DataToFarCpu5: JNB TI,DataToFarCpu5 ;
CLR TI
MOV R1,#SendBuf
MOV R2,#SendNum-5
DataToFarCpu6: XCH A,B
MOVX A,@R1
XCH A,B
INC R1
MOV SBUF,B ;
ADD A,B
DataToFarCpu7: JNB TI,DataToFarCpu7 ;
CLR TI
DJNZ R2,DataToFarCpu6
MOV SBUF,A ;
DataToFarCpu8: JNB TI,DataToFarCpu8 ;
CLR TI
SETB ComCtrl
SETB ES
LCALL DL100MS
RET
;
; ****** 发送一条记录到远程(PC)终端 ******
;
DataToFarPC: CLR ES
CLR A
MOV B,#DataHead ; 发送数据贞头
MOV SBUF,B ;
ADD A,B
DataToFarPC1: JNB TI,DataToFarPC1 ;
CLR TI
MOV B,#DataHead ; 发送数据贞头
MOV SBUF,B ;
ADD A,B
DataToFarPC2: JNB TI,DataToFarPC2 ;
CLR TI
MOV B,CallAddr ; 发送被呼的主机地址
MOV SBUF,B ;
ADD A,B
DataToFarPC3: JNB TI,DataToFarPC3 ;
CLR TI
MOV B,#SelfAddr ; 发送本机地址
MOV SBUF,B ;
ADD A,B
DataToFarPC4: JNB TI,DataToFarPC4 ;
CLR TI
MOV B,FuncCode ; 发送功能码
MOV SBUF,B ;
ADD A,B
DataToFarPC5: JNB TI,DataToFarPC5 ;
CLR TI
MOV R1,#SendBuf
MOV R2,#SendNum-5
DataToFarPC6: XCH A,B
MOVX A,@R1
XCH A,B
INC R1
MOV SBUF,B ;
ADD A,B
DataToFarPC7: JNB TI,DataToFarPC7 ;
CLR TI
DJNZ R2,DataToFarPC6
MOV SBUF,A ;
DataToFarPC8: JNB TI,DataToFarPC8 ;
CLR TI
SETB ES
LCALL DL100MS
RET
;
; ****** 将RecvBuf的数据转发到远程终端(PC) ******
;
ZfSjDPC: MOV R0,#RecvBuf
MOV R1,#SendBuf
MOV R2,#32
ZfSjDPC1: MOVX A,@R0
INC R0
MOVX @R1,A
INC R1
DJNZ R2,ZfSjDPC1
CLR ES
CLR A
MOV B,#DataHead ; 发送数据贞头
MOV SBUF,B ;
ADD A,B
ZfSjDPC2: JNB TI,ZfSjDPC2 ;
CLR TI
MOV B,#DataHead ; 发送数据贞头
MOV SBUF,B ;
ADD A,B
ZfSjDPC3: JNB TI,ZfSjDPC3 ;
CLR TI
MOV B,#FarPcAdr ; 远程控制PC地址 ; 发送被呼的主机地址
MOV SBUF,B ;
ADD A,B
ZfSjDPC4: JNB TI,ZfSjDPC4 ;
CLR TI
MOV R1,#SendBuf
MOV R2,#SendNum-3
ZfSjDPC5: XCH A,B
MOVX A,@R1
XCH A,B
INC R1
MOV SBUF,B ;
ADD A,B
ZfSjDPC6: JNB TI,ZfSjDPC6 ;
CLR TI
DJNZ R2,ZfSjDPC5
MOV SBUF,A ;
ZfSjDPC7: JNB TI,ZfSjDPC7 ;
CLR TI
SETB ES
LCALL DL100MS
RET
ModemPortInit: MOV R1,#ShowBuf
MOV A,#41H ; Send "A"
MOVX @R1,A
INC R1
MOV A,#54H ; Send "T"
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#43H ; Send "C"
MOVX @R1,A
INC R1
MOV A,#30H
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#44H ; Send "D"
MOVX @R1,A
INC R1
MOV A,#30H ; Send "0" Modem 忽略 DTR
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#4BH ; Send "K"
MOVX @R1,A
INC R1
MOV A,#30H ; Send "0" 禁止流控
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#52H ; Send "R"
MOVX @R1,A
INC R1
MOV A,#31H ; Send "1" 当 Modem 在线时,CTS 一直有效 (NO) 忽略 RTS 信号
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#53H ; Send "S"
MOVX @R1,A
INC R1
MOV A,#30H ; Send "0" DSR 一直有效(NO) (默认值)
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#57H ; Send "W"
MOVX @R1,A
INC R1
MOV A,#0DH ; Send "CR" ENTER
MOVX @R1,A
INC R1
MOV A,#20 ; SendNum = 7
LCALL ModemInit ; 调制解调器初始化
RET
ModemZdYd: MOV R1,#ShowBuf
MOV A,#41H ; Send "A"
MOVX @R1,A
INC R1
MOV A,#54H ; Send "T"
MOVX @R1,A
INC R1
MOV A,#53H ; Send "S"
MOVX @R1,A
INC R1
MOV A,#30H ; Send "0"
MOVX @R1,A
INC R1
MOV A,#3DH ; Send "="
MOVX @R1,A
INC R1
MOV A,#31H ; Send "1" ASCII CODE 振铃次数为“1”次
MOVX @R1,A
INC R1
MOV A,#0DH ; Send "CR" ENTER
MOVX @R1,A
INC R1
MOV A,#7 ; SendNum = 7
LCALL ModemInit ; 调制解调器初始化
RET
ModemLkGj: MOV R1,#ShowBuf
MOV A,#41H ; Send "A"
MOVX @R1,A
INC R1
MOV A,#54H ; Send "T"
MOVX @R1,A
INC R1
MOV A,#48H ; Send "H"
MOVX @R1,A
INC R1
MOV A,#30H ; Send "0"
MOVX @R1,A
INC R1
MOV A,#0DH ; Send "CR" ENTER
MOVX @R1,A
INC R1
MOV A,#5 ; SendNum = 7
LCALL ModemInit ; 调制解调器初始化
RET
ModemHfCjPz: MOV R1,#ShowBuf
MOV A,#41H ; Send "A"
MOVX @R1,A
INC R1
MOV A,#54H ; Send "T"
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#46H ; Send "F"
MOVX @R1,A
INC R1
MOV A,#26H ; Send "&"
MOVX @R1,A
INC R1
MOV A,#57H ; Send "W"
MOVX @R1,A
INC R1
MOV A,#0DH ; Send "CR" ENTER
MOVX @R1,A
INC R1
MOV A,#7 ; SendNum = 7
LCALL ModemInit ; 调制解调器初始化
RET
ModemInit: CLR ES
CLR ComCtrl
MOV R1,#ShowBuf
MOV R2,A
ModemInit1: MOVX A,@R1
INC R1
MOV SBUF,A ;
ModemInit2: JNB TI,ModemInit2 ;
CLR TI
DJNZ R2,ModemInit1
SETB ComCtrl
SETB ES
LCALL DL100MS
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -