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

📄 jrdmdydy.asm.bak

📁 用增强型单片机51RD2做的控制器
💻 BAK
📖 第 1 页 / 共 4 页
字号:
                MOVX    @R0,A
                INC     R0
                MOV     A,#00H          ; 结束
                MOVX    @R0,A

                LCALL   PrintString
                RET

;
;       ******  打印:交流1接地电阻数据 ******
;
PrintJl1JddzSj: MOV     R0,#LinkG_R_buf+6
                MOVX    A,@R0
                MOV     Variable1,A             ; 取接地电阻千欧值
                MOV     A,#00;Variable1
                MOV     R2,A
                MOV     A,Variable1
                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,#0A3H
                MOVX    @R0,A           ; .
                INC     R0
                MOV     A,#0AEH
                MOVX    @R0,A
                INC     R0
                MOV     A,#00H          ; 结束
                MOVX    @R0,A
                LCALL   PrintString

                MOV     R0,#LinkG_R_buf+7
                MOVX    A,@R0
                MOV     Variable1,A             ; 取接地电阻千欧值

                MOV     R0,#SendBuf
                MOV     A,Variable1
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0C7H
                MOVX    @R0,A           ; 千
                INC     R0
                MOV     A,#0A7H
                MOVX    @R0,A
                INC     R0

                MOV     A,#0C5H
                MOVX    @R0,A           ; 欧
                INC     R0
                MOV     A,#0B7H
                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

;
;       ******  打印:交流2接地电阻数据 ******
;
PrintJl2JddzSj: MOV     R0,#LinkG_R_buf+8
                MOVX    A,@R0
                MOV     Variable1,A             ; 取接地电阻千欧值
                MOV     A,#00;Variable1
                MOV     R2,A
                MOV     A,Variable1
                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,#0A3H
                MOVX    @R0,A           ; .
                INC     R0
                MOV     A,#0AEH
                MOVX    @R0,A
                INC     R0
                MOV     A,#00H          ; 结束
                MOVX    @R0,A
                LCALL   PrintString

                MOV     R0,#LinkG_R_buf+9
                MOVX    A,@R0
                MOV     Variable1,A             ; 取接地电阻千欧值

                MOV     R0,#SendBuf
                MOV     A,Variable1
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0C7H
                MOVX    @R0,A           ; 千
                INC     R0
                MOV     A,#0A7H
                MOVX    @R0,A
                INC     R0

                MOV     A,#0C5H
                MOVX    @R0,A           ; 欧
                INC     R0
                MOV     A,#0B7H
                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
;
;       ******  打印:被测装置数据 ******
;
PrintBcZZsj:    MOV     R0,#TempBuf+0
                MOVX    A,@R0
                MOV     Variable1,A             ; 取被测装置编号的每1位
                INC     R0
                MOVX    A,@R0
                MOV     Variable2,A             ; 取被测装置编号的每2位
                INC     R0
                MOVX    A,@R0
                MOV     Variable3,A             ; 取被测装置编号的每3位
                INC     R0
                MOVX    A,@R0
                MOV     Variable4,A             ; 取被测装置编号的每4位

                MOV     R0,#SendBuf
                MOV     A,Variable1
                ANL     A,#0FH
                LCALL   Character

                MOV     A,Variable2
                ANL     A,#0FH
                LCALL   Character

                MOV     A,Variable3
                ANL     A,#0FH
                LCALL   Character

                MOV     A,Variable4
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0BAH
                MOVX    @R0,A           ; 号
                INC     R0
                MOV     A,#0C5H
                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



;
;       ******  打印:正接地动作数据 ******
;
PrintZdDzSj:   MOV     R1, #ActiveFlagBuf+0
                MOVX    A,  @R1
                JNB     ACC.0,PrintNoActiveZd
                LCALL  PrintDz                 ; 打印“动作”
                ret
PrintNoActiveZd: LCALL  PrintNoDz                 ; 打印“不动作”
                ret
;
;       ******  打印:负接地动作数据 ******
;
PrintFdDzSj:   MOV     R1, #ActiveFlagBuf+1
                MOVX    A,  @R1
                JNB     ACC.0,PrintNoActiveFd
                LCALL  PrintDz                 ; 打印“动作”
                ret
PrintNoActiveFd: LCALL  PrintNoDz                 ; 打印“不动作”
                ret
;
;       ******  打印:电抗器接地动作数据 ******
;
PrintDkqDzSj:   MOV     R1, #ActiveFlagBuf+2
                MOVX    A,  @R1
                JNB     ACC.0,PrintNoActiveDkq
                LCALL  PrintDz                 ; 打印“动作”
                ret
PrintNoActiveDkq: LCALL  PrintNoDz                 ; 打印“不动作”
                ret
;
;       ******  打印:交流1接地动作数据 ******
;
PrintJl1DzSj:   MOV     R1, #ActiveFlagBuf+3
                MOVX    A,  @R1
                JNB     ACC.0,PrintNoActiveJl1
                LCALL  PrintDz                 ; 打印“动作”
                ret
PrintNoActiveJl1: LCALL  PrintNoDz                 ; 打印“不动作”
                ret
;
;       ******  打印:交流2接地动作数据 ******
;
PrintJl2DzSj:   MOV     R1, #ActiveFlagBuf+4
                MOVX    A,  @R1
                JNB     ACC.0,PrintNoActiveJl2
                LCALL  PrintDz                 ; 打印“动作”
                ret
PrintNoActiveJl2: LCALL  PrintNoDz                 ; 打印“不动作”
                ret
;
;       ******  打印:检测日期数据 ******
;
PrintJcRqSj:    MOV     R0,#TempBuf+4
                MOV     A,@R0
                MOV     Variable1,A             ; 取“年”字节
                INC     R0
                MOV     A,@R0
                MOV     Variable2,A             ; 取“月”字节
                INC     R0
                MOV     A,@R0
                MOV     Variable3,A             ; 取“日”字节
                INC     R0

                MOV     R0,#SendBuf
                MOV     A,Variable1
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable1
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0C4H
                MOVX    @R0,A           ; 年
                INC     R0
                MOV     A,#0EAH       ;
                MOVX    @R0,A
                INC     R0

                MOV     A,Variable2
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable2
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0D4H
                MOVX    @R0,A           ; 月
                INC     R0
                MOV     A,#0C2H
                MOVX    @R0,A
                INC     R0

                MOV     A,Variable3
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable3
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0C8H
                MOVX    @R0,A           ; 日
                INC     R0
                MOV     A,#0D5H
                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
;
;       ******  打印:检测时间数据 ******
;
PrintJcSjsj:    MOV     R0,#TempBuf+7
                MOV     A,@R0
                MOV     Variable1,A             ; 取“时”字节
                INC     R0
                MOV     A,@R0
                MOV     Variable2,A             ; 取“分”字节
                INC     R0
                MOV     A,@R0
                MOV     Variable3,A             ; 取“秒”字节
                NOP

                MOV     R0,#SendBuf
                MOV     A,Variable1
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable1
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0CAH
                MOVX    @R0,A           ; 时
                INC     R0
                MOV     A,#0B1H
                MOVX    @R0,A
                INC     R0


                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,#0D6H
                MOVX    @R0,A
                INC     R0


                MOV     A,Variable3
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable3
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0C3H
                MOVX    @R0,A           ; 秒
                INC     R0
                MOV     A,#0EBH
                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


;
;       ******  打印:检测日期数据 ******
;
PrintGjRqSj:    MOV     R0,#TempBuf+7
                MOV     A,@R0
                MOV     Variable1,A             ; 取“年”字节
                INC     R0
                MOV     A,@R0
                MOV     Variable2,A             ; 取“月”字节
                INC     R0
                MOV     A,@R0
                MOV     Variable3,A             ; 取“日”字节
                INC     R0

                MOV     R0,#SendBuf
                MOV     A,Variable1
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable1
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0C4H
                MOVX    @R0,A           ; 年
                INC     R0
                MOV     A,#0EAH       ;
                MOVX    @R0,A
                INC     R0

                MOV     A,Variable2
                ANL     A,#0F0H
                SWAP    A
                LCALL   Character
                MOV     A,Variable2
                ANL     A,#0FH
                LCALL   Character

                MOV     A,#0D4H
                MOVX    @R0,A           ; 月
                INC     R0
                MOV     A,#0C2H
                MOVX    @R0,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -