⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jrdmdydy.asm.bak

📁 用增强型单片机51RD2做的控制器
💻 BAK
📖 第 1 页 / 共 4 页
字号:
;
;
;
;
;       ******  写远程打印数据  ******
;
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 + -