📄 jrdmdysjcl.asm
字号:
MOVX @R1,A
GetMaxVI1: MOV R1,#CxZgDlL ; 最高电流低8位
MOVX A,@R1
MOV B,ScDlL ; 输出电流低8位
CLR C
SUBB A,B
MOV R1,#CxZgDlH ; 最高电流高8位
MOVX A,@R1
MOV B,ScDlH ; 输出电流高8位
SUBB A,B
JC GetMaxVI2
RET
GetMaxVI2: MOV R1,#CxZgDlL
MOV A,ScDlL
MOVX @R1,A
MOV R1,#CxZgDlH
MOV A,ScDlH
MOVX @R1,A
RET
;
; ****** 获得工作中最高泄漏电流 ******
;
GetMaxXlDl: MOV R1,#CxZgXlL ; 最高泄流低8位
MOVX A,@R1
MOV B,ScXlL ; 输出泄流低8位
CLR C
SUBB A,B
MOV R1,#CxZgXlH ; 最高泄流高8位
MOVX A,@R1
MOV B,ScXlH ; 输出泄流高8位
SUBB A,B
JC GetMaxXlDl1
RET
GetMaxXlDl1: MOV R1,#CxZgXlL
MOV A,ScXlL
MOVX @R1,A
MOV R1,#CxZgXlH
MOV A,ScXlH
MOVX @R1,A
RET
;
; ****** 获得供电系统开机关机时间 ******
;
GetGdXtKjSj: MOV R1,#CxKjNf ; 开机时间:年
MOV A,Year
MOVX @R1,A
MOV R1,#CxKjYf ; 开机时间:月
MOV A,Month
MOVX @R1,A
MOV R1,#CxKjRq ; 开机时间:日
MOV A,Day
MOVX @R1,A
MOV R1,#CxKjXs ; 开机时间:时
MOV A,Hour
MOVX @R1,A
MOV R1,#CxKjFz ; 开机时间:分
MOV A,Min
MOVX @R1,A
RET
;
; ****** 获得供电系统关机时间 ******
;
GetGdXtGjSj: MOV R1,#CxGjNf ; 关机时间:年
MOV A,Year
MOVX @R1,A
MOV R1,#CxGjYf ; 关机时间:月
MOV A,Month
MOVX @R1,A
MOV R1,#CxGjRq ; 关机时间:日
MOV A,Day
MOVX @R1,A
MOV R1,#CxGjXs ; 关机时间:时
MOV A,Hour
MOVX @R1,A
MOV R1,#CxGjFz ; 关机时间:分
MOV A,Min
MOVX @R1,A
RET
;
; ****** 获得正常输出电压、电流值 ******
;
GetZcDyDlZ: MOV A,KglStatus ; 开关量状态寄存器
JNB ACC.1,GetZcDyDlZ1 ; KglStatus.1 = 0 开机 , KglStatus.1 = 1 关机
RET
GetZcDyDlZ1: MOV A,MinTimerB
CLR C
SUBB A,#1 ; 工作 5 分钟存储一次输出电压、电流值
JNC GetZcDyDlZ2
RET
GetZcDyDlZ2: MOV MinTimerB,#0
MOV R1,#CxScDyH ; 备份输出电压高8位
; MOV A,ScDyH ; 动态输出电压高8位
MOVX @R1,A
MOV R1,#CxScDyL ; 备份输出电压低8位
MOV A,ScDyL ; 动态输出电压低8位
MOVX @R1,A
MOV R1,#CxScDlH ; 备份输出电流高8位
MOV A,ScDlH ; 动态输出电流高8位
MOVX @R1,A
MOV R1,#CxScDlL ; 备份输出电流低8位
MOV A,ScDlL ; 动态输出电流低8位
MOVX @R1,A
RET
;
; ****** 运行参数存盘 ******
;
SaveRunData: MOV BNUM,#2
MOV BADR,#TempBuf
MOV DPTR,#YxBgAdrPoint ; 运行报告数据区地址指针
LCALL RD_BLK
MOV R0,#TempBuf
MOV A,@R0
MOV DataH,A
INC R0
MOV A,@R0
MOV DataL,A
JB MinSaveF,SaveRunData2 ; 若分存储标志为"1" , 则存原地址不变.
MOV A,DataL
ADD A,#1
MOV DataL,A
MOV A,DataH
ADD A,#0
MOV DataH,A
; ****** 若地址指针超过 500 则置 0 ******
MOV A,DataL
CLR C
SUBB A,#0F4H
MOV A,DataH
SUBB A,#01H ; 01F4H = 500D
JC SaveRunData1
MOV DataH,#0
MOV DataL,#0
SaveRunData1: MOV R0,#TempBuf ; 临时数据缓冲区(32Byte)
MOV A,DataH
MOV @R0,A
INC R0
MOV A,DataL
MOV @R0,A
MOV BNUM,#2 ; 写2个字节
MOV BADR,#TempBuf ; 临时数据缓冲区(32Byte)
MOV DPTR,#YxBgAdrPoint ; 运行报告数据区地址指针
LCALL WR_BLK
SaveRunData2: MOV A,DataH
MOV R2,A
MOV A,DataL
MOV R3,A
MOV R6,#0
MOV R7,#32
; 将 (高R2,R3)和(高R6,R7)中双字节无符号整数相乘,
; 乘积送(高)R4,R5,R6,R7(低) 中
; ****** 双字节无符号乘法 ******
LCALL TowByteNMUL ; 地址指针*32
MOV DPTR,#ReportDatArea ; 记录报告数据区
MOV A,R7
ADD A,DPL
MOV DPL,A
MOV A,R6
ADDC A,DPH
MOV DPH,A
MOV R0,#TempBuf ; 临时数据缓冲区(32Byte)
MOV A,DataH
MOV @R0,A
INC R0
MOV A,DataL
MOV @R0,A
INC R0
MOV R1,#CxKjNf ; 开机时间:年
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxKjYf ; 开机时间:月
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxKjRq ; 开机时间:日
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxKjXs ; 开机时间:时
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxKjFz ; 开机时间:分
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxGjNf ; 关机时间:年
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxGjYf ; 关机时间:月
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxGjRq ; 关机时间:日
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxGjXs ; 关机时间:时
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxGjFz ; 关机时间:分
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxScDyH ; 输出电压高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxScDyL ; 输出电压低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxScDlH ; 输出电流高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxScDlL ; 输出电流低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZgXlH ; 最高泄流高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZgXlL ; 最高泄流低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZdDzH ; 正地电阻高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZdDzL ; 正地电阻低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxXjDzH ; 线间电阻高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxXjDzL ; 线间电阻低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxFdDzH ; 负地电阻高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxFdDzL ; 负地电阻低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZgDyH ; 最高电压高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZgDyL ; 最高电压低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZgDlH ; 最高电流高8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxZgDlL ; 最高电流低8位
MOVX A,@R1
MOV @R0,A
INC R0
MOV R1,#CxBcCcH ; 本次车次高8位
MOVX A,@R1
MOV @R0,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -