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

📄 jrdmdysjcl.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
                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 + -