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

📄 test_reslt.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*************************************************
; 测试结果:
;
;
;**************************************************
TestResult:      LCALL   RelayClear              ;将继电器清零
               ;  setb    SaveFlag
                 JNB     SaveFlag,TestResult1    ; 存储标志为"0" , 测试结果不存
                 LCALL   SaveTestRslt
TestResult1:     LCALL   LcdInit;LcdClear
                 MOV     R3,#000                 ; 设置 X 坐标低 8 位初值
                 MOV     R4,#80H                 ; 设置 X 坐标高 8 位初值
                 MOV     R5,#40H                 ; 设置 X 坐标低 8 位末值
                 MOV     R6,#81H                 ; 设置 X 坐标高 8 位末值
                 MOV     R7,#020                 ; 设置 Y 坐标初值
                 LCALL   DrawThwartwise
                 MOV     R3,#000                 ; 设置 X 坐标低 8 位初值
                 MOV     R4,#80H                 ; 设置 X 坐标高 8 位初值
                 MOV     R5,#40H                 ; 设置 X 坐标低 8 位末值
                 MOV     R6,#81H                 ; 设置 X 坐标高 8 位末值
                 MOV     R7,#150                 ; 设置 Y 坐标初值
                 LCALL   DrawThwartwise
                 lcall   ShowTestResult
                 LCALL   ShowZD1                 ; 显示"端   动作 正地电压 负地电压 接地电阻"
                 LCALL   ShowPostive
                 LCALL   ShowNegtive
                 LCALL   ShowCurrent1
                 LCALL   ShowLinkGndRko
                 LCALL   ShowLinkGndRko1
                 LCALL   ShowLinkGndRko2          ;显示“KO”
                 LCALL   ShowPrint
                 LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                 MOV     DataH,#01H;Variable1
                 MOV     DataL,#2ch;Variable2
                 LCALL   TestShowVolt             ;显示300V
                 MOV     LcdShowX,#12
                 MOV     LcdShowY,#113
                 MOV     LcdShowC,#4
                 LCALL   DdShowString2            ;接地电阻动态在屏幕上显示出来
                 MOV     DataH,#01H;Variable1
                 MOV     DataL,#02ch;Variable2
                 LCALL   TestShowVolt            ;显示300V
                 MOV     LcdShowX,#21
                 MOV     LcdShowY,#113
                 MOV     LcdShowC,#4
                 LCALL   DdShowString2            ;接地电阻动态在屏幕上显示出来


                 LCALL   ShowCxKjRq              ;显示“检测日期”
                 LCALL   ShowCxKjSj              ;显示“检测时间”
                 LCALL   ShowBcJj                ;显示“被测装置”
                 LCALL   ShowCxJch               ;显示“拆下机号:SS9”
                 LCALL   ShowZxJch               ;显示"装上机号:SS9"
                 LCALL   ShowZzCxRq              ;显示"拆下日期:"
                 LCALL   ShowZzZsRq              ;显示"装上日期"

;--------------------------------------------------
                LCALL   ReadAdrPoint            ; 读报告记录地址指针
                LCALL   DisplayTestRec          ;显示"查询测试记录"
ActiveKeyScan:  LCALL   ScanKey
                JNB     KeyF,ActiveKeyScan      ; scan key
                CLR     KeyF
                MOV     A,KeyNumber
                CJNE    A,#0AH,ActiveKeyScan1
                LCALL   MainInterFace1
                RET
ActiveKeyScan1: CJNE    A,#0CH,ActiveKeyScan2    ; ↑
                LCALL   AdrPointInc             ; 记录地址指针加一
                LCALL   DisplayTestRec
                SJMP    ActiveKeyScan
ActiveKeyScan2: CJNE    A,#0EH,ActiveKeyScan3    ; ↓
                LCALL   AdrPointDec             ; 记录地址指针减一
                LCALL   DisplayTestRec
                SJMP    ActiveKeyScan
ActiveKeyScan3: CJNE    A,#0DH,ActiveKeyScan4    ; ←
                LCALL   AdrPointAdd             ; 记录地址指针加十
                LCALL   DisplayTestRec
                SJMP    ActiveKeyScan
ActiveKeyScan4: CJNE    A,#0FH,ActiveKeyScan5    ; →
                LCALL   AdrPointSub             ; 记录地址指针减十
                LCALL   DisplayTestRec
                SJMP    ActiveKeyScan
ActiveKeyScan5: CJNE    A,#10H,ActiveKeyScan6
                LCALL   PrintReport             ; 打印试验报告
ActiveKeyScan6: SJMP    ActiveKeyScan
;
;  ******      显示"是否动作数据"    ******
;
ShowActiveSj:
                 MOV     R1, #TempBuf+2
                 MOV     A,  @R1
                 JNB     ACC.0,NoActiveP
                 LCALL   LinkG_active_P          ;正端”动作“

ActiveFlagJudge: MOV     R1, #TempBuf+3
                 MOV     A,  @R1
                 JNB     ACC.0,NoActiveN
                 LCALL   LinkG_active_N          ;显示负端“动作”

ActiveFlagJudge1:MOV     R1, #TempBuf+4
                 MOV     A,  @R1
                 JNB     ACC.0,NoActiveCUR1
                 LCALL   LinkG_active_Cur1       ;显示交流1端“动作”
                 RET
NoActiveP:       LCALL   LinkG_PosNOactive       ;正端不动作
                 LJMP    ActiveFlagJudge
NoActiveN:       LCALL   LinkG_NegNOactive       ;显示“负端不动作”
                 LJMP    ActiveFlagJudge1
NoActiveCUR1:    LCALL   LinkG_Ac1NOactive       ;显示“交流1端不动作”
                 ret
;
;  ******      显示"正端正电压数据"    ******
;
ShowZdZdySj:    LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+5           ;电压缓冲区
                MOV     A,@R1
                MOV     DataH,A
                INC     R1
                MOV     A,@R1
                MOV     DataL,A
                LCALL   TestShowVolt           ;将正端正电压显示出来
                MOV     LcdShowX,#12
                MOV     LcdShowY,#53
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                RET
;
;  ******      显示"正端负电压数据"    ******
;
ShowZdFdySj:    LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+7      ;电压缓冲区
                MOV     A,@R1
                MOV     DataH,A
                INC     R1
                MOV     A,@R1
                MOV     DataL,A
                LCALL   TestShowVolt           ;将正端负电压显示出来
                MOV     LcdShowX,#21
                MOV     LcdShowY,#53
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                RET
;
;  ******      显示"负端正电压数据"    ******
;
ShowFdZdySj:    LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+11      ;电压缓冲区
                MOV     A,@R1
                MOV     DataH,A
                INC     R1
                MOV     A,@R1
                MOV     DataL,A
                LCALL   TestShowVolt           ;将负端正电压显示出来
                MOV     LcdShowX,#12
                MOV     LcdShowY,#83
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                RET
;
;  ******      显示"负端负电压数据"   ******
;
ShowFdFdySj:    LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+9      ;电压缓冲区
                MOV     A,@R1
                MOV     DataH,A
                INC     R1
                MOV     A,@R1
                MOV     DataL,A
                LCALL   TestShowVolt           ;将负端负电压显示出来
                MOV     LcdShowX,#21
                MOV     LcdShowY,#83
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                RET
;
;  ******      显示"正端接地电阻数据"   ******
;
ShowZdJddzSj:   LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+13        ;接地电阻缓冲区
                MOV     A,@R1
                MOV     DataH,#00
                MOV     DataL,A
                LCALL   LinkG_dispKO_digit       ;显示接地电阻千欧值,为西文数字
                MOV     LcdShowX,#31
                MOV     LcdShowY,#53
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                MOV     R1,#LinkG_R_buf+1        ;接地电阻缓冲区
                MOVX    A,@R1
                MOV     DataL,A
                LCALL   LinkG_dispOM_digit       ;显示接地电阻欧母值,为西文数字
                MOV     LcdShowX,#35
                MOV     LcdShowY,#53
                MOV     LcdShowC,#1
                LCALL   DdShowString2
                RET
;
;  ******      显示"负端接地电阻数据"  ******
;
ShowFdJddzSj:   LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+15        ;接地电阻缓冲区
                MOV     A,@R1
                MOV     DataH,#00
                MOV     DataL,A
                LCALL   LinkG_dispKO_digit       ;显示接地电阻千欧值,为西文数字
                MOV     LcdShowX,#31
                MOV     LcdShowY,#83
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                MOV     R1,#LinkG_R_buf+3        ;接地电阻缓冲区
                MOVX    A,@R1
                MOV     DataL,A
                LCALL   LinkG_dispOM_digit       ;显示接地电阻欧母值,为西文数字
                MOV     LcdShowX,#35
                MOV     LcdShowY,#83
                MOV     LcdShowC,#1
                LCALL   DdShowString2
                RET
;
;  ******      显示"交流端接地电阻数据"  ******
;
ShowJldJddzSj:  LCALL   BzDataLoadBuf           ;此条调用不用的话,电阻值第二位是乱码
                MOV     R1,#TempBuf+17        ;接地电阻缓冲区
                MOV     A,@R1
                MOV     DataH,#00
                MOV     DataL,A
                LCALL   LinkG_dispKO_digit       ;显示接地电阻千欧值,为西文数字
                MOV     LcdShowX,#31
                MOV     LcdShowY,#113
                MOV     LcdShowC,#4
                LCALL   DdShowString2
                MOV     R1,#LinkG_R_buf+7        ;接地电阻缓冲区
                MOVX    A,@R1
                MOV     DataL,A
                LCALL   LinkG_dispOM_digit       ;显示接地电阻欧母值,为西文数字
                MOV     LcdShowX,#35
                MOV     LcdShowY,#113
                MOV     LcdShowC,#1
                LCALL   DdShowString2
                RET
;
;       ******  显示查询测试记录数据  ******
;
DisplayTestRec: MOV     A,RecordNumH
                MOV     R2,A
                MOV     A,RecordNumL
                MOV     R3,A
                MOV     R6,#0
                MOV     R7,#64
;    将 (高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
DisplayTestRec1:MOV     BNUM,#64                ; 读一条记录( 32 Byte )
                MOV     BADR,#TempBuf
                LCALL   RD_BLK
                LCALL   ShowBgXhSj              ; 显示:报告序号数据
                LCALL   ShowKjRqSj              ;显示“检测日期数据”
                LCALL   ShowKjSjSj              ;显示“检测时间数据”
                LCALL   ShowBcJjSj              ;显示“被测装置数据”
                LCALL   ShowCsJchSj             ;显示“拆下机号数据“
                LCALL   ShowZsJchSj             ;显示"装上机号:数据“
                LCALL   ShowCsRqSj              ;显示"拆下日期:数据"
                LCALL   ShowZsRqSj              ;显示"装上日期数据"
                LCALL   ShowActiveSj            ;显示"是否动作数据"
                LCALL   ShowZdZdySj             ;显示"正端正电压数据"
                LCALL   ShowZdFdySj             ;显示"正端负电压数据"
                LCALL   ShowFdZdySj             ;显示"负端正电压数据"
                LCALL   ShowFdFdySj             ;显示"负端负电压数据"
                LCALL   ShowZdJddzSj            ;显示"正端接地电阻数据"
                LCALL   ShowFdJddzSj            ;显示"负端接地电阻数据"
                LCALL   ShowJldJddzSj           ;显示"交流端接地电阻数据"
                RET
;
;       ******  测试结果存盘 ******
;
SaveTestRslt:   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

                MOV     A,DataL
                ADD     A,#1
                MOV     DataL,A

⌨️ 快捷键说明

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