📄 jrdmdydy.asm.bak
字号:
;
;
;
;
; ****** 写远程打印数据 ******
;
PrintString: MOV CallAddr,#33 ; A/D D/A 转换板地址
MOV FuncCode,#SendCpu1Func27; 发送打印数据
LCALL DataToFarCpu ; 发送一条记录到远程CPU
MOV A,#1
LCALL SecDelay
RET
;
; ****** 装载一个打印字符串程序 ******
;
LoadString: MOV R1,#SendBuf
MOV LcdCount1,#0
MOV A,LcdShowC
MOV LcdCount2,A
LoadString1: MOV A,LcdCount1
MOVC A,@A+DPTR
MOVX @R1,A
INC R1
INC LcdCount1
DJNZ LcdCount2,LoadString1
RET
;
; ****** 打印试验报告 ******
;
PrintReport: MOV A,RelayStatus2
ORL A,#10000000B ; 合上打印机电源 J16
MOV RelayStatus2,A
MOV CallAddr,#01H
MOV FuncCode,#SendCpu1Func15; 继电器位控
LCALL FarModuleJdqWk ; 远程模块继电器位控
MOV A,#3
LCALL SecDelay
LCALL PrinterInit ; 打印机初始化
; LCALL PrintBlank
; LCALL PrintBlank
; LCALL PrintDyRq ; 打印"打印日期:"
; LCALL PrintDyRqSj ; 打印:打印日期数据
LCALL PrintJdDz ; 打印“接地电阻:”
LCALL PrintJl2JddzSj ; 打印:交流2接地电阻数据
LCALL PrintJl2Jd ; 打印“交流2接地:”
LCALL PrintJl2DzSj ; 打印:交流2接地动作数据
;*******************************************************
LCALL PrintJdDz ; 打印“接地电阻:”
LCALL PrintJl1JddzSj ; 打印:交流1接地电阻数据
LCALL PrintJl1Jd ; 打印“交流1接地:”
LCALL PrintJl1DzSj ; 打印:交流1接地动作数据
;*******************************************************
LCALL PrintJdDz ; 打印“接地电阻:”
LCALL PrintDkqJddzSj ; 打印:电抗器端接地电阻数据
LCALL PrintFdDy ; 打印“负端电压:”
LCALL PrintDkqFdySj ; 打印:电抗器端负电压数据
LCALL PrintZdDy ; 打印“正端电压:”
LCALL PrintDkqZdySj ; 打印:电抗器端正电压数据
LCALL PrintDkqJd ; 打印“电抗器接地:”
LCALL PrintDkqDzSj ; 打印:电抗器接地动作数据
;*******************************************************
LCALL PrintJdDz ; 打印“接地电阻:”
LCALL PrintFdJddzSj ; 打印:负端接地电阻数据
LCALL PrintFdDy ; 打印“负端电压:”
LCALL PrintFdFdySj ; 打印:负端负电压数据
LCALL PrintZdDy ; 打印“正端电压:”
LCALL PrintFdZdySj ; 打印:负端正电压数据
LCALL PrintFjd ; 打印“负接地:”
LCALL PrintFdDzSj ; 打印:负接地动作数据
;*******************************************************
LCALL PrintJdDz ; 打印“接地电阻:”
LCALL PrintZdJddzSj ; 打印:正端接地电阻数据
LCALL PrintFdDy ; 打印“负端电压:”
LCALL PrintZdFdySj ; 打印:正端负电压数据
LCALL PrintZdDy ; 打印“正端电压:”
LCALL PrintZdZdySj ; 打印:正端正电压数据
LCALL PrintZjd ; 打印“正接地:”
LCALL PrintZdDzSj ; 打印:正接地动作数据
;********************************************************
LCALL PrintBcZZ ; 打印“被测装置:”
LCALL PrintBcZZsj ; 打印“被测装置数据”
LCALL PrintJcSj ; 打印“检测时间:”
LCALL PrintJcSjsj ; 打印“检测时间数据”
LCALL PrintJcRq ; 打印“检测日期:”
LCALL PrintJcRqSj ; 打印“检测日期数据”
LCALL PrintXhxA ; 打印"===================="
LCALL PrintXhxB ; 打印"===================="
LCALL PrintWyJd ; 打印“无源接地检测装置测试结果”
LCALL PrintCsJg
LCALL PrintBlank
LCALL PrintBlank
; LCALL PrintYxBg ; 打印"运行报告"
MOV A,#8
LCALL SecDelay
MOV A,RelayStatus2
ANL A,#01111111B ; 关闭打印机电源 J16
MOV RelayStatus2,A
MOV CallAddr,#01H
MOV FuncCode,#SendCpu1Func15; 继电器位控
LCALL FarModuleJdqWk ; 远程模块继电器位控
RET
;
; ****** 打印机初始化 ******
;
PrinterInit: MOV DPTR,#PrtInitTab
MOV LcdShowC,#8
LCALL LoadString
LCALL PrintString
RET
PrtInitTab: DB 01BH,040H,00DH,00AH,028D,038D,000H,000H ; 打印机初始化,回车,换行,进入汉字打印方式,结束标志.
;
; ****** 打印机打印空白行 ******
;
PrintBlank: MOV DPTR,#PrtBlankTab
MOV LcdShowC,#6
LCALL LoadString
LCALL PrintString
RET
PrtBlankTab: DB 00DH,00AH,01BH,066H,000H,000H ;
;
; ****** 打印"直流600伏地面电源" ******
;
PrintWyJd: MOV DPTR,#PrtWyJdTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtWyJdTab: DB "无","源","接","地","检","测","装","置","测","试"
DB 000H,000H
; ****** 打印"测试结果"" ******
;
PrintCsJg: MOV DPTR,#PrtCsJgTab
MOV LcdShowC,#11
LCALL LoadString
LCALL PrintString
RET
PrtCsJgTab: DB "结","果"
DB 00DH,00AH,000H
;
; ****** 打印"====================" ******
;
PrintXhxA: MOV DPTR,#PrtXhxATab
MOV LcdShowC,#24
LCALL LoadString
LCALL PrintString
RET
PrtXhxATab: DB "=","=","=","=","=","=","=","="
DB "=","=","=","=","=","=","=","="
DB "=","=","=","=","=","=","=","="
;
; ****** 打印"====================" ******
;
PrintXhxB: MOV DPTR,#PrtXhxBTab
MOV LcdShowC,#24
LCALL LoadString
LCALL PrintString
RET
PrtXhxBTab: DB "=","=","=","=","=","=","=","="
DB "=","=","=","=","=","=","=","="
DB 00DH,00AH,000H,000H,000H,000H,000H,000H
;
; ****** 打印"打印日期:" ******
;
PrintDyRq: MOV DPTR,#PrtDyRqTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtDyRqTab: DB "打","印","日","期",":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“正接地:” ******
;
PrintZjd: MOV DPTR,#PrtZjdTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtZjdTab: DB "正","接","地",":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“负接地:” ******
;
PrintFjd: MOV DPTR,#PrtFjdTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtFjdTab: DB "负","接","地",":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“电抗器接地:” ******
;
PrintDkqjd: MOV DPTR,#PrtDkqjdTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtDkqjdTab: DB "电","抗","器","接","地",":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“交流1接地:” ******
;
PrintJl1jd: MOV DPTR,#PrtJl1jdTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtJl1jdTab: DB "交","流","1","接","地",":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“交流2接地:” ******
;
PrintJl2jd: MOV DPTR,#PrtJl2jdTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtJl2jdTab: DB "交","流","2","接","地",":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“动作” ******
;
PrintDz: MOV DPTR,#PrtDzTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtDzTab: DB "动","作"
;DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00DH,00AH,000H
;
; ****** 打印“不动作” ******
;
PrintNoDz: MOV DPTR,#PrtNoDzTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtNoDzTab: DB "不","动","作"
; DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 00DH,00AH,000H
;
; ****** 打印“正端电压:” ******
;
PrintZdDy: MOV DPTR,#PrtZdDyTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtZdDyTab: DB "正","端","电","压"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“负端电压:” ******
;
PrintFdDy: MOV DPTR,#PrtFdDyTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtFdDyTab: DB "负","端","电","压"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“接地电阻:” ******
;
PrintJdDz: MOV DPTR,#PrtJdDzTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtJdDzTab: DB "接","地","电","阻"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“被测装置:” ******
;
PrintBcZz: MOV DPTR,#PrtBcZzTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtBcZzTab: DB "被","测","装","置"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“检测日期:” ******
;
PrintJcRq: MOV DPTR,#PrtJcRqTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtJcRqTab: DB "检","测","日","期"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“检测时间:” ******
;
PrintJcSj: MOV DPTR,#PrtJcSjTab
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtJcSjTab: DB "检","测","时","间"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印“被测装置:” ******
;
PrintBcZZh: MOV DPTR,#PrtBcZZTabh
MOV LcdShowC,#22
LCALL LoadString
LCALL PrintString
RET
PrtBcZZTabh: DB "被","测","装","置"":"
DB 000H,000H,000H,000H,000H,000H,000H,000H
;
; ****** 打印:正端正电压数据 ******
;
PrintZdZdySj: MOV R0,#VoltBuf+0
MOVX A,@R0
MOV Variable1,A ; 取输出电压高8位
INC R0
MOVX A,@R0
MOV Variable2,A ; 取输出电压低8位
INC R0
MOV A,Variable1
MOV R2,A
MOV A,Variable2
MOV R3,A
; 调用BinToBcd子程序时,16位二进制整数存放于R2(高8位)R3(低8位)
; 从BinToBcd返回时,三字节压缩BCD码结果在R4,R5,R6其中高位R4,低位R6
; ****** 双字节二进制数转换为BCD数子程序 ******
LCALL BinToBcd
MOV A,R5
MOV Variable1,A
MOV A,R6
MOV Variable2,A
MOV R0,#SendBuf
MOV A,Variable1
ANL A,#0FH
LCALL Character
MOV A,Variable2
ANL A,#0F0H
SWAP A
LCALL Character
MOV A,Variable2
ANL A,#0FH
LCALL Character
MOV A,#0B7H
MOVX @R0,A ; 伏
INC R0
MOV A,#0FCH
MOVX @R0,A
INC R0
MOV A,#0DH ; 回车
MOVX @R0,A
INC R0
MOV A,#0AH ; 换行
MOVX @R0,A
INC R0
MOV A,#00H ; 结束
MOVX @R0,A
LCALL PrintString
RET
;
; ****** 打印:正端负电压数据 ******
;
PrintZdFdySj:
MOV R0,#VoltBuf+2
MOVX A,@R0
MOV Variable1,A ; 取输出电压高8位
INC R0
MOVX A,@R0
MOV Variable2,A ; 取输出电压低8位
INC R0
MOV A,Variable1
MOV R2,A
MOV A,Variable2
MOV R3,A
; 调用BinToBcd子程序时,16位二进制整数存放于R2(高8位)R3(低8位)
; 从BinToBcd返回时,三字节压缩BCD码结果在R4,R5,R6其中高位R4,低位R6
; ****** 双字节二进制数转换为BCD数子程序 ******
LCALL BinToBcd
MOV A,R5
MOV Variable1,A
MOV A,R6
MOV Variable2,A
MOV R0,#SendBuf
MOV A,Variable1
ANL A,#0FH
LCALL Character
MOV A,Variable2
ANL A,#0F0H
SWAP A
LCALL Character
MOV A,Variable2
ANL A,#0FH
LCALL Character
MOV A,#0B7H
MOVX @R0,A ; 伏
INC R0
MOV A,#0FCH
MOVX @R0,A
INC R0
MOV A,#0DH ; 回车
MOVX @R0,A
INC R0
MOV A,#0AH ; 换行
MOVX @R0,A
INC R0
MOV A,#00H ; 结束
MOVX @R0,A
LCALL PrintString
RET
;
; ****** 打印:正端接地电阻数据 ******
;
PrintZdJddzSj: MOV R0,#LinkG_R_buf+0
MOVX A,@R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -