📄 jrdmdysjcl.asm
字号:
;
; ****** 读 A/D D/A 打印板数据 ******
;
ReadFarData: MOV CallAddr,#33 ; A/D D/A 转换板地址
MOV FuncCode,#SendCpu1Func25;
LCALL DataToFarCpu ; 发送一条记录到远程CPU
LCALL DL100MS
RET
;
; ****** 写 A/D D/A 打印板数据 ******
;
WriteFarData: MOV R1,#SendBuf
MOV A,DataH
MOVX @R1,A
INC R1
MOV A,DataL
MOVX @R1,A
MOV CallAddr,#33 ; A/D D/A 转换板地址
MOV FuncCode,#SendCpu1Func26;
LCALL DataToFarCpu ; 发送一条记录到远程CPU
LCALL DL100MS
RET
;
; ****** 显示电流自动换量程与单位 ******
;
XsDlZdHlcYdw:
RET
XsDlZdHlcYdw2: SETB XlDlDwF ; 泄漏电流单位: XlDlDwF = 0 电流为 mA , XlDlDwF = 1 电流为 uA
RET
;
; ****** 施加电压输出增量 ******
;
SjDyScZl:
RET
SjDyScZl1:
RET
SjDyScZl2:
RET
SjDyScZl3:
RET
SjDyScZl4:
RET
SjDyScZl5:
RET
SjDyScZl6:
RET
SjDyScZl7:
RET
SjDyScZl8:
RET
SjDyScZl9:
RET
SjDyScZl10:
RET
SjDyScZl11:
SjDyScZl12: RET
;
; ****** 获得输出电压值 ******
;
GetScDyz:
RET
;
; ****** 获得输出电流值 ******
;
GetScDlz: MOV R1,#AdHexBuf+2 ; A/D 数据缓冲区(16Byte) 以HEX码形式存放
MOVX A,@R1
MOV ScDlH,A ; 输出电流高8位
INC R1
MOVX A,@R1
MOV ScDlL,A ; 输出电流低8位
MOV A,ScDlL
CLR C
SUBB A,#33H ; 对应电压一伏:0333H = 819D
MOV ScDlL,A
MOV A,ScDlH
SUBB A,#03H
MOV ScDlH,A
JNC GetScDlz1
MOV ScDlL,#0
MOV ScDlH,#0
GetScDlz1: MOV R2,ScDlH
MOV R3,ScDlL
MOV R6,#03H ; 0320H = 800D 安
MOV R7,#20H
LCALL TowByteNMUL ; 双字节无符号乘法
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#0CH ; 0CCCH = 3276D = (4095 - 819)
MOV R7,#0CCH
LCALL TowByteNDIV ; 双字节无符号除法
MOV A,R4
MOV ScDlH,A ; 输出电流高8位
MOV A,R5
MOV ScDlL,A ; 输出电流低8位
RET
;
; ****** 获得输出泄流值 ******
;
GetScXlz: MOV R1,#AdHexBuf+4 ; A/D 数据缓冲区(16Byte) 以HEX码形式存放
MOVX A,@R1
MOV ScXlH,A ; 输出泄流高8位
INC R1
MOVX A,@R1
MOV ScXlL,A ; 输出泄流低8位
MOV A,ScXlL
CLR C
SUBB A,#33H ; 对应电压一伏:0333H = 819D
MOV ScXlL,A
MOV A,ScXlH
SUBB A,#03H
MOV ScXlH,A
JNC GetScXlz1
MOV ScXlL,#0
MOV ScXlH,#0
GetScXlz1: MOV R2,ScXlH
MOV R3,ScXlL
MOV R6,#01H ; 01F4H = 500D mA
MOV R7,#0F4H
LCALL TowByteNMUL ; 双字节无符号乘法
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#0CH ; 0CCCH = 3276D = (4095 - 819)
MOV R7,#0CCH
LCALL TowByteNDIV ; 双字节无符号除法
MOV A,R4
MOV ScXlH,A ; 输出泄流高8位
MOV A,R5
MOV ScXlL,A ; 输出泄流低8位
RET
;
; ****** 获得施加电压值 ******
;
GetSjDyz: MOV R1,#AdHexBuf+6 ; A/D 数据缓冲区(16Byte) 以HEX码形式存放
MOVX A,@R1
MOV SjDyH,A ; 施加电压高8位
INC R1
MOVX A,@R1
MOV SjDyL,A ; 施加电压低8位
MOV A,SjDyL
CLR C
SUBB A,#33H ; 对应电压一伏:0333H = 819D
MOV SjDyL,A
MOV A,SjDyH
SUBB A,#03H
MOV SjDyH,A
JNC GetSjDyz1
MOV SjDyL,#0
MOV SjDyH,#0
GetSjDyz1: MOV R2,SjDyH
MOV R3,SjDyL
MOV R6,#03H ; 03E8H = 1000D 伏
MOV R7,#0E8H
LCALL TowByteNMUL ; 双字节无符号乘法
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#0CH ; 0CCCH = 3276D = (4095 - 819)
MOV R7,#0CCH
LCALL TowByteNDIV ; 双字节无符号除法
MOV A,R4
MOV SjDyH,A ; 施加电压高8位
MOV A,R5
MOV SjDyL,A ; 施加电压低8位
; MOV SjDyH,#03H ; 施加电压650V 调试
; MOV SjDyL,#52H
RET
;
; ****** 获得绝缘泄流值 ******
;
GetJyXlz: JB XlDlDwF,GetJyXlz2 ; 泄漏电流单位: XlDlDwF = 0 电流为 mA , XlDlDwF = 1 电流为 uA
MOV R1,#AdHexBuf+8 ; 使用大量程电流传感器 ( 500 mA )
MOVX A,@R1
MOV JyXlH,A
INC R1
MOVX A,@R1
MOV JyXlL,A
MOV A,JyXlL
CLR C
SUBB A,#33H ; 对应电压一伏:0333H = 819D
MOV JyXlL,A
MOV A,JyXlH
SUBB A,#03H
MOV JyXlH,A
JNC GetJyXlz1
MOV JyXlL,#0
MOV JyXlH,#0
GetJyXlz1: MOV R2,JyXlH
MOV R3,JyXlL
MOV R6,#01H ; 01F4H = 500D mA
MOV R7,#0F4H
LCALL TowByteNMUL ; 双字节无符号乘法
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#0CH ; 0CCCH = 3276D = (4095 - 819)
MOV R7,#0CCH
LCALL TowByteNDIV ; 双字节无符号除法
MOV A,R4
MOV JyXlH,A ; 绝缘泄流高8位
MOV A,R5
MOV JyXlL,A ; 绝缘泄流低8位
RET
GetJyXlz2: MOV R1,#AdHexBuf+10
MOVX A,@R1 ; 使用小量程电流传感器 ( 50 mA )
MOV JyXlH,A
INC R1
MOVX A,@R1
MOV JyXlL,A
MOV A,JyXlL
CLR C
SUBB A,#33H ; 对应电压一伏:0333H = 819D
MOV JyXlL,A
MOV A,JyXlH
SUBB A,#03H
MOV JyXlH,A
JNC GetJyXlz3
MOV JyXlL,#0
MOV JyXlH,#0
GetJyXlz3: MOV R2,JyXlH
MOV R3,JyXlL
MOV R6,#0C3H ; 0C350H = 50000D uA
MOV R7,#50H
LCALL TowByteNMUL ; 双字节无符号乘法
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#0CH ; 0CCCH = 3276D = (4095 - 819)
MOV R7,#0CCH
LCALL TowByteNDIV ; 双字节无符号除法
MOV A,R4
MOV JyXlH,A ; 绝缘泄流高8位
MOV A,R5
MOV JyXlL,A ; 绝缘泄流低8位
; MOV JyXlH,#03h ; 绝缘泄流 6500 uA 调试
; MOV JyXlL,#0e8h
RET
;
; ****** 获得最高输出电压、电流 ******
;
GetMaxVI: MOV R1,#CxZgDyL ; 最高电压低8位
MOVX A,@R1
MOV B,ScDyL ; 输出电压低8位
CLR C
SUBB A,B
MOV R1,#CxZgDyH ; 最高电压高8位
MOVX A,@R1
MOV B,ScDyH ; 输出电压高8位
SUBB A,B
JNC GetMaxVI1
MOV R1,#CxZgDyL
MOV A,ScDyL
MOVX @R1,A
MOV R1,#CxZgDyH
MOV A,ScDyH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -