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

📄 jrdmdydy.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
📖 第 1 页 / 共 5 页
字号:

;
;       ******  打印:正端正电压数据 ******
;
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
                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+1
                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

;
;       ******  打印:负端正电压数据 ******
;
PrintFdZdySj:   MOV     R0,#VoltBuf+6
                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


;
;       ******  打印:负端负电压数据 ******
;
PrintFdFdySj:   MOV     R0,#VoltBuf+4
                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


;
;       ******  打印:负端接地电阻数据 ******
;
PrintFdJddzSj:  MOV     R0,#LinkG_R_buf+2
                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+3
                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

;

⌨️ 快捷键说明

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