?? wxcs_31.asm
字號(hào):
MOV ZZpw,A
inc r0
MOV A,@r0
XRL A,#'.'
JZ TESTC0
MOV A,@R0
ANL A,#0FH
MOV ZZPW+1,A
MOV ZZPW+2,#0FH
ljmp TESTC1
TESTC0: inc r0
mov a,@r0
ANL A,#0FH
SETB ACC.7
mov ZZpw+1,a
INC R0
MOV A,@R0
CJNE A,#'1',$+3
JC TESTC2
CJNE A,#'@',$+3
JNC TESTC2
ANL A,#0FH
MOV ZZPW+2,A
ljmp TESTC1
TESTC2: MOV ZZPW+2,#0FH
TESTC1: SETB BSGB
MOV MODE,#5
ljmp JOB6
;-------------------------------
;有功脈沖,無(wú)功脈沖切換
Wrmod: mov r0,#rcvbuf+5
mov a,@r0
anl a,#0fh
jnz wrmod1
; SETB btygwg ;p0.0
clr btk0
clr btk1
sjmp wrmode ;選擇正向有功
wrmod1: cjne a,#01h,wrmod2
clr btk1
setb btk0
; CLR btygwg
sjmp wrmode ;選擇正向無(wú)功
wrmod2: cjne a,#02h,wrmod3
setb btk1
clr btk0
; SETB btygwg
sjmp wrmode ;選擇反向有功
wrmod3: setb btk1
setb btk0 ;選擇反向無(wú)功
; CLR btygwg
wrmode: ljmp job6
;--------------------------
BPEN: MOV r0,#rcvbuf+5 ;L 喇叭開(kāi)關(guān)
mov a,@r0
rrc a
mov bbpen,c
ljmp job6
;-------------------------------
;選擇脈沖輸入方式 電子脈沖還是光電頭脈沖
Pusch: mov r0,#rcvbuf+5
mov a,@r0
anl a,#0fh
jz pusc0
CJNE A,#01,PUCS11
SETB btk2 ;P0.1 ;GP:001 電子脈沖
CLR btk3 ;P0.3
SJMP PUCS12
PUCS11: CJNE A,#02,PUSC1
SETB btk3 ;P0.3 ;GP:002 標(biāo)準(zhǔn)表高/低頻脈沖
CLR btk2 ;P0.1
PUCS12:
JB BTPUSCH,PUSC1
SETB BTPUSCH
PUSC3: mov a,mode
xrl a,#08h
jnz pusc2
PUSC1:
ljmp job6
pusc0: setb btk2
setb btk3
JNB BTPUSCH,PUSC1
CLR BTPUSCH
ljmp PUSC3
PUSC2: mov th2,DIVR+1
MOV TL2,DIVR
JNB GBBZ,PUSC1 ;不掛表
SETB BSGB
ljmp job6
;--------------------------
;進(jìn)入電能試驗(yàn)
Cntpw: JNB GBBZ,Cntpw1
MOV R0,#RCVBUF+5
MOV A,@R0
ANL A,#0FH
JNZ STPCNT
CNTPW2: clr AS108 ;停止計(jì)電能
CLR BT108
CLR BTJDQ ;斷開(kāi)108和繼電器
MOV TMC,#00H
MOV TMD,#03H
MOV TME,#10H
cntpw1: ljmp job6
STPCNT: CJNE A,#01H,CNTPW3
MOV MODE,#07H ;進(jìn)入電能實(shí)驗(yàn)
LCALL JDQXH ;AS108斷開(kāi) JDQ吸合
MOV ADXS,#0FH ;進(jìn)入電能試驗(yàn) 顯示為 表號(hào) 電能
MOV ADXS1,#80h
MOV ADXS2,#00h
MOV ADXS3,#00h
MOV ADXS4,#00h
MOV ADXS5,#00h
LCALL DIS
MOV TH2,#0FFH
MOV TL2,#0FFH
mov pwcnt1,#00h
mov pwcnt2,#00h
mov pwcnt3,#00h
mov Pwcnt4,#00h
;-------回送數(shù)據(jù) CP0.0(0dh)
mov r0,#sndbuf+3 ;#sndbuf+1 ;CPXXX.XXX(0DH) 送電能
mov @r0,#'P'
INC R0
MOV @R0,#'0'
INC R0
mov @r0,#'.'
inc r0
mov @r0,#'0'
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 JOB6
cntpw3:
cjne a,#02h,cntpw4
ljmp cntpw2
cntpw4:
lcall jdqxh
ljmp job6
;-------進(jìn)入脈沖走字試驗(yàn)
;Gl:000 停止 Gl:001開(kāi)始 Gl:002(或GI:000) 退出
Puls_ZZ_Tst:
mov a,mode
cjne a,#0ch,Puls_z1
ljmp job6 ;原先在定脈沖走字狀態(tài)退出
Puls_z1:
JNB GBBZ,pluad1
MOV R0,#RCVBUF+5
MOV A,@R0
ANL A,#0FH
JNZ pluad2
clr AS108 ;停止計(jì)電能
CLR BT108
CLR BTJDQ ;斷開(kāi)108和繼電器
MOV TMC,#00H
MOV TMD,#03H
MOV TME,#10H
pluad1:
ljmp job6
pluad2:
CJNE A,#01H,pluad1
MOV MODE,#0cH ;進(jìn)入累積脈沖實(shí)驗(yàn)
LCALL JDQXH ;AS108斷開(kāi) JDQ吸合
MOV TH2,#0FFH
MOV TL2,#0FFH
SETB BREF
mov adxs,#0fh ;未預(yù)置走字脈沖
mov adxs1,#0fh ;清顯示
mov adxs2,#0fh
mov adxs3,#0fh
mov adxs4,#0fh
mov adxs5,#00h
jnb btMcYz,pluad3
clr btMcYz
ljmp modec1 ;顯示走字脈沖數(shù)
pluad3:
lcall dis
mov pwcnt1,#00h ;清除被校表脈沖計(jì)數(shù)器
mov pwcnt2,#00h
mov pwcnt3,#00h
mov Pwcnt4,#00h
;---------回送數(shù)據(jù) CB0(0DH)
MOV R0,#sndbuf+3 ;#SNDBUF+1
MOV @R0,#'B'
INC R0
MOV @R0,#'0'
INC R0
MOV @R0,#0DH
;---------2007.9.7 add start
mov r0,#sndbuf+3
mov a,@r0
mov SendData_tmp,a
;--------2007.9.7 add end
LJMP JOB6
;--------------------------
;脈沖數(shù)與盤轉(zhuǎn)數(shù)比較
Puscmp:
JNB GBBZ,Puscmp1
mov mode,#08h
mov th2,#00h
mov tl2,#00h
SETB BSGB ;第一次進(jìn)入該試驗(yàn)設(shè)置標(biāo)志
LCALL JDQXH
Puscmp1:
ljmp job6
;--------------------------
MBTH:
MOV R0,#rcvbuf+5
MOV R1,#imbuf0
MOV R3,#05
MOV R2,#0
GZZ3:
MOV A,@R0
CJNE A,#13,GZZ1
ljmp GZZ4
GZZ1:
ANL A,#0FH
MOV B,A
INC R0
MOV A,@R0
CJNE A,#13,GZZ2
MOV @R1,B
INC R2
ljmp GZZ4
GZZ2:
SWAP A
ANL A,#0F0H
ORL A,B
MOV @R1,A
INC R0
INC R1
INC R2
DJNZ R3,GZZ3
GZZ4: RET
;-----------------------------
GETBZZ: lcall MBTH
; mov a,r2
; mov r3,a
; mov bzcsN,a
; mov r0,#imbuf0
; mov r1,#imbzc1
;gzz33: mov a,@r0
; mov @r1,a
; inc r0
; inc r1
; djnz r3,gzz33 ;保存標(biāo)準(zhǔn)值 fh*n/c
MOV R0,#imbuf0
MOV IMBUF8,#40H
MOV IMBUF9,#42H
MOV IMBUFA,#0FH
MOV R1,#IMBUF8 ;*1000000
MOV R3,#03H
LCALL MMUL
MOV A,R2
CLR C
SUBB A,#8
JNC GZZ6
MOV LBCS,R2
MOV R1,#BCS
GZZ5: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,GZZ5
GZZ6: ljmp JOB6
;---------------------------
;接收校驗(yàn)圈數(shù)
GETN: MOV r0,#rcvbuf+6
mov a,@r0
CJNE A,#13,GN1
mov r0,#rcvbuf+5
MOV A,@r0
ANL A,#0FH
MOV BNSL,A
JNZ GN0
MOV BNSL,#1
GN0: ljmp GN3
GN1: mov r0,#rcvbuf+6
MOV A,@r0
ANL A,#0FH
MOV B,#10
MUL AB
MOV B,A
mov r0,#rcvbuf+5
MOV A,@r0
ANL A,#0FH
ADD A,B
MOV BNSL,A
JNZ GN4
MOV BNSL,#01H
GN4: JB GBBZ,GN3
GN2: ljmp JOB6
;-----------------------
GETDG: JNB GBBZ,GN2
SETB GRES
MOV TMG,#0FFH
MOV TMGH,#80H
SETB BTMG
GETRES: JNB GBBZ,GN2
MOV A,MODE
JNZ GRE1
GN3: Lcall GDCLS ;誤差清零
ljmp JOB6
GRE1: CJNE A,#3,getres2
SETB BSGB
MOV MODE,#3
LJMP JOB6
getres2:
cjne a,#09,gn2
mov imcscnt,#00h ;常數(shù)測(cè)試記數(shù)值清零
mov imcscnt1,#00h
mov adxs,#0fh
mov adxs1,#0fh
mov adxs2,#0fh
mov adxs3,#0fh
mov adxs4,#0fh
mov adxs5,#0
lcall dis
ljmp job6
;-------------------------------
;接收脈沖和盤轉(zhuǎn)比值
GETBZ: MOV r0,#rcvbuf+6
mov a,@r0
CJNE A,#13,GTBZ1
mov r0,#rcvbuf+5
MOV A,@r0
ANL A,#0FH
MOV PZBZ,A
Ljmp GTBZ2
GTBZ1: mov r0,#rcvbuf+6
MOV A,@r0
ANL A,#0FH
MOV B,#10
MUL AB
MOV B,A
mov r0,#rcvbuf+5
MOV A,@r0
ANL A,#0FH
ADD A,B
MOV PZBZ,A
GTBZ2: MOV A,PZBZ
JNZ GTBZ3
MOV PZBZ,#01
GTBZ3: MOV A,MODE
XRL A,#08H
JNZ GTBZ4
JNB GBBZ,GTBZ4
SETB BSGB
GTBZ4: ljmp JOB6
;-------------------------
;U 接收脈沖和盤轉(zhuǎn)設(shè)定比較圈數(shù)
GETBN: MOV r0,#rcvbuf+6
mov a,@r0
CJNE A,#13,GBN1
mov r0,#rcvbuf+5
MOV A,@r0
ANL A,#0FH
MOV CMPCIRN,A
JNZ GBN2
MOV CMPCIRN,#01
GBN2: ljmp GN3
GBN1: mov r0,#rcvbuf+6
MOV A,@r0
ANL A,#0FH
MOV B,#10
MUL AB
MOV B,A
mov r0,#rcvbuf+5
MOV A,@r0
ANL A,#0FH
ADD A,B
MOV CMPCIRN,A
JNZ GBN3
MOV CMPCIRN,#01
GBN3: JB GBBZ,GBN2
ljmp JOB6
;-------------------------
;V 接收被校表常數(shù)
GETCST: lcall MBTH
mov r0,#imbuf0
MOV A,R2
CLR C
SUBB A,#5
JNC Getcs1
mov const1,#00h
mov const2,#00h
mov const3,#00h
mov const4,#00h
MOV R1,#const1
Getcs0: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,getcs0
Getcs1: ljmp job6
;---------------------------------
;分頻系數(shù)
GETDIVR:
MOV IMBUF0,#00H
MOV IMBUF1,#00H
MOV IMBUF2,#00H
LCALL MBTH
mov r0,#imbuf0
CJNE R2,#3,$+3 ;two bytes
JC GETDIV0
MOV A,IMBUF2
JZ GETDIV0
MOV DIVR,#00H ;大于2 BYTES 置分頻最大值
MOV DIVR+1,#00H
LJMP GETDIV2
GETDIV0:MOV A,IMBUF0
ORL A,IMBUF1
JNZ GETDIV1
MOV DIVR,#0FFH ;置分頻最小值
MOV DIVR+1,#0FFH
LJMP GETDIV2
GETDIV1:MOV A,IMBUF0
CPL A
SETB C
ADDC A,#00H
MOV DIVR,A
MOV A,IMBUF1
CPL A
ADDC A,#00H
MOV DIVR+1,A
GETDIV2:MOV A,MODE
XRL A,#08H
JZ GETDIV3
MOV TH2,DIVR+1 ;不為比較盤轉(zhuǎn)誤差
MOV TL2,DIVR
GETDIV3:ljmp job6
;---------------------------------
;清除被校表電能
Clear: JNB GBBZ,CLR1
mov pwcnt1,#00h
mov pwcnt2,#00h
mov pwcnt3,#00h
mov Pwcnt4,#00h
MOV A,MODE
CJNE A,#07H,CLR2
mov adxs,#0FH
mov adxs1,#80h
mov adxs2,#00h
mov adxs3,#00h
mov adxs4,#00h
mov adxs5,#00h
lcall dis
sjmp clr1
clr2: cjne a,#0ch,clr1
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -