wxcs_31.asm
来自「校准多功能电能表的基本误差和规约规定的其他多功能试验项目。」· 汇编 代码 · 共 2,295 行 · 第 1/5 页
ASM
2,295 行
MOV TME,#10H ;先断继电器后断AS108
MOV ADXS3,#10
MOV ADXS4,#10
MOV ADXS5,#0FH
mov adxs2,#0FH
lcall DIS
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'S'
inc r0
MOV @r0,#'1'
inc r0
MOV @r0,#0dh
SETB SSHB
SETB BREF
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
SGB4: Ljmp JOB
;----------------------------
MOD3: JNB BSGB,GDZT1 ;设置监视光电头状态
CLR BSGB
Lcall CLS
LCALL JDQXH
mov adxs,adbhh
mov adxs1,adbhl
MOV ADXS5,#0
lcall DIS
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'C' ;CCX(0DH) X:圈数
inc r0
MOV @r0,#'0'
inc r0
MOV @r0,#0dh
CLR BGDT
SETB BREF
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
GDZT1: JNB BGDT,GDZT2
CLR BGDT
INC ADXS5
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'C' ;CCX(0DH) X:圈数
mov r0,#sndbuf+4 ;#sndbuf+2
INC @r0
MOV A,ADXS5
CJNE A,#10,GDZT3
MOV ADXS5,#0
MOV @r0,#'0'
GDZT3: lcall DIS
SETB BREF
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
GDZT2: Ljmp JOB
;----------------------------
MOD4: JB BSGB,MOD41 ;设置走字状态
Ljmp JOB
mod41: CLR BSGB
clr btZzend
LCALL JDQXH
Lcall CLS
MOD42: Lcall XSZZ
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'Z' ;CZ0(0DH)走字开始
inc r0
MOV @r0,#'0'
inc r0
MOV @r0,#13
setb bref
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
Ljmp JOB
;------------------------------
MOD5: JNB BSGB,MOD51
clr btZZend
CLR BSGB
MOV ZZcsTp,ZZcs
MOV ZZcsTp+1,ZZcs+1
MOD52: Ljmp JOB
MOD51: JBC BGDT,MOD55
Ljmp MOD54
MOD55: Lcall XSZZ
MOV A,ZZcsTp
ORL A,ZZcsTp+1
orl a,ZZcsTp+2
JNZ MOD54
jb btzzend,mod54
setb btzzend
mov adxs,adbhh ;走字结束送CZ1(0DH)
mov adxs1,adbhl
mov adxs2,#0FH
mov a,ZZpw
MOV ADXS5,a
MOV a,ZZpw+1
mov adxs4,a
MOV A,ZZPW+2
MOV ADXS3,A
mod57: mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'Z'
inc r0
MOV @r0,#'1'
inc r0
MOV @r0,#13
clr as108 ;108吸合
clr bt108 ;断开108延时
clr btJDQ ;断开继电器延时
mov tmc,#00h ;先断开继电器后断开AS108
mov tmd,#03h
mov tme,#10h
lcall dis
setb bref
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
MOD54: Ljmp JOB
;----------------------------
;失压状态
mod6: jb btstrSY,mod60 ;开始试验标志
ljmp job
MOD60:
;----------------------------2003-08-19 add
JNB BSGB,mod602 ;设置监视光电头状态
CLR BSGB
Lcall CLS
mov adxs,adbhh
mov adxs1,adbhl
MOV ADXS5,#0
lcall DIS
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'Y' ;CYX(0DH) X:脉冲个数
inc r0
MOV @r0,#'0'
inc r0
MOV @r0,#0dh
CLR BGDT
SETB BREF
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
mod602: JNB BGDT,mod603
CLR BGDT
INC ADXS5
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'Y' ;CYX(0DH) X:脉冲个数
mov r0,#sndbuf+4 ;#sndbuf+2
INC @r0
MOV A,ADXS5
CJNE A,#10,mod604
MOV ADXS5,#0
MOV @r0,#'0'
mod604: lcall DIS
SETB BREF
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
;----------------2003-08-19 add
mod603: mov a,sy
cjne a,#01,mod21
;----------- 失压方案一
mod601: jb btstep1,mod201
setb AS108 ;断开108
CLR BT108
mov a,im5ms
clr c
subb a,imsYctm ;失压计时
subb a,#200 ;1s电压中断
jnz mod22
mov imSyctm,im5ms
setb btstep1
clr btstep2
mod201: jb btstep2,mod202 ;失压方案一
clr AS108 ;108吸合
SETB BT108
mov a,im5ms
clr c
subb a,imSYctm ;加50ms电压
subb a,#10
jnz mod22
mov imSyctm,im5ms
setb btstep2
clr btstep3
mod202: jb btstep3,mod203
setb AS108 ;断开108
CLR BT108
mov a,im5ms
clr c
subb a,imSyctm
subb a,#200
jnz mod22
mov imSyctm,im5ms
setb btstep3
clr btstep4
mod203: jb btstep4,mod204
clr AS108 ;108吸合
SETB BT108
mov a,im5ms
clr c
subb a,imSYctm
subb a,#10
jnz mod22
mov imSyctm,im5ms
setb btstep4
clr btstep5
mod204: jb btstep5,mod23
setb AS108 ;断开108
CLR BT108
mov a,im5ms
clr c
subb a,imSyctm
subb a,#200
jnz mod22
mov imSyctm,im5ms
mod23: clr btstrsy
LCALL JDQXH ;电压跌落试验结束、继电器吸合
anl imstep,#11100000b
ljmp job
;------------失压方案二
mod21: cjne a,#02,mod22
setb AS108 ;断开108
CLR BT108
mov a,im5ms
clr c
subb a,imSYctm ;断20ms电压
subb a,#5 ;失压方案二
jz mod23
mod22: ljmp job
;-----------------------------------
;计电能试验
mod7: jbc bgdt,mod71 ;bgdt 脉冲
mod70: ljmp job
mod71: mov imbuf0,pwcnt1
mov imbuf1,pwcnt2
mov imbuf2,pwcnt3
mov imbuf3,pwcnt4
mov imbuf8,#10h
mov imbuf9,#27h
mov r0,#imbuf0
mov r1,#imbuf8
mov r2,#04h
mov r3,#02h
lcall mmul
mov imbufc,const1
mov imbufd,const2
mov imbufe,const3
mov imbuff,const4
mov r1,#imbufc
mov r3,#04h
lcall mdiv
mov r1,#imbuf8
mov r7,#07
mod72: mov @r1,#00h
inc r1
djnz r7,mod72
mov r6,#07
mov r1,#imbuf8
lcall mbtd
MOV A,R2
MOV R3,A
cjne r3,#08,$+3
jnc mod70
cjne r3,#05,$+3
jnc mod73
mov r3,#05h
mod73: mov a,r3
mov r7,a
mov r0,#sndbuf+3 ;#sndbuf+1 ;CPXXX.XXX(0DH) 送电能
mov @r0,#'P'
inc r0
mov r1,#imbuf8
mov a,r7
add a,r1
DEC A
mov r1,a
mod74: mov a,@r1
orl a,#'0'
mov @r0,a
inc r0
dec r1
cjne r7,#05,mod75
mov @r0,#'.'
inc r0
mod75: djnz r7,mod74
mov @r0,#0dh
MOV ADXS,#0FH
MOV ADXS1,#0FH
MOV R1,#ADXS5
MOV R7,#00H
MOV R0,#IMBUF8
CJNE R2,#05,$+3
JNC MOD7B
MOV R2,#05
MOD7B: CJNE R2,#07,MOD78
MOV R2,#06H
MOV R0,#IMBUF9
MOD76: MOV A,@R0
CJNE R7,#03,MOD77
SETB ACC.7
MOD77: MOV @R1,A
INC R0
DEC R1
INC R7
DJNZ R2,MOD76
LJMP MOD7A
MOD78: MOV A,@R0
CJNE R7,#04,MOD79
SETB ACC.7
MOD79: MOV @R1,A
INC R0
DEC R1
INC R7
DJNZ R2,MOD78
MOD7A: lcall DIS
setb BREf ;数据刷新
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
ljmp job
;-----------------------------------
;计算盘转误差试验
mod8: JNB BSGB,MOD81
Lcall CLS
Lcall SETNN ;TO COMPUTER
MOV DSCMPCN,CMPCIRN
Lcall xsbh
CLR BSGB
LCALL JDQXH
MOV TH2,#00H
MOV TL2,#00H
SETB BFIRST
SETB btk2 ;P0.1 ;GP:001 电子脉冲
CLR btk3 ;P0.3
Ljmp JOB
MOD81: JBC BGDT,MOD82
ljmp JOB
MOD82: JNB BFIRST,MOD83
CLR BFIRST
MOV OLDPZS,NEWPZS
MOV OLDPZS+1,NEWPZS+1
Lcall CLS
MOD84: LCALL DISCIRN
ljmp JOB
MOD83: DJNZ DSCMPCN,MOD84 ;n=0?
MOV DSCMPCN,CMPCIRN
LCALL DISCIRN
MOV ADXS2,#0FH
MOV ADXS3,#0FH
MOV ADXS4,#0FH
MOV ADXS5,#0FH ;清显示
mov imbuf0,PzBz
mov imbuf8,CmpCirn
mov r0,#imbuf0
mov r1,#imbuf8
mov r2,#01h
mov r3,#01h
lcall mmul
MOV A,NEWPZS
XCH A,OLDPZS
MOV IMBUF8,A
MOV A,NEWPZS+1
XCH A,OLDPZS+1
MOV IMBUF9,A
MOV A,NEWPZS
CLR C
SUBB A,IMBUF8
MOV imbuf8,A
MOV A,NEWPZS+1
SUBB A,IMBUF9
MOV imbuf9,A
MOV A,IMBUF8
ORL A,IMBUF9
JNZ MOD85
MOD87: MOV ADXS4,#10 ;-E
MOV ADXS5,#11
LCALL DIS
MOV R0,#sndbuf+3 ;#SNDBUF+1
MOV @R0,#'F'
INC R0
MOV @R0,#'-'
INC R0
MOV @R0,#'E'
INC R0
MOV @R0,#0DH
SETB BREF
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
LJMP JOB
MOD85: CLR CBFH
MOV A,IMBUF8
CLR C
SUBB A,IMBUF0
MOV IMBUF0,A
MOV A,IMBUF9
SUBB A,IMBUF1
MOV IMBUF1,A
JNC MOD86
SETB CBFH
MOV A,IMBUF0
CPL A
SETB C
ADDC A,#00H
MOV IMBUF0,A
MOV A,IMBUF1
CPL A
ADDC A,#00H
MOV IMBUF1,A
MOD86: MOV R0,#IMBUF0
MOV R1,#IMBUF8
MOV R6,#04H
LCALL MBTD
JC MOD87
MOV A,R2
MOV R7,A
MOV R0,#ADXS5
MOD88: MOV A,@R1
MOV @R0,A
INC R1
DEC R0
DJNZ R7,MOD88
MOV @R0,#0FH
JNB CBFH,MOD89
MOV @R0,#10
MOD89: DEC R1
MOV R0,#sndbuf+3 ;#SNDBUF+1
MOV @R0,#'F'
INC R0
MOV @R0,#'+'
JNB CBFH,MOD8A
MOV @R0,#'-'
MOD8A: MOV A,@R1
ORL A,#'0'
INC R0
MOV @R0,A
DEC R1
DJNZ R2,MOD8A
INC R0
MOV @R0,#0DH
LCALL DIS
SETB B
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?