?? wxcs_31.asm
字號:
mov adxs,#0fh
mov adxs1,#0fh
mov adxs2,#0fh
mov adxs3,#0fh
mov adxs4,#0fh
mov adxs5,#00h
lcall dis
CLR1: LJMP JOB6
;-------------------------------
GDCLS: Lcall CLS ;誤差清零,光電頭復位
MOV BNNL,BNSL
MOV DSCMPCN,CMPCIRN
Lcall SETNN
Lcall xsbh
SETB BFIRST
RET
;------------------------------
GETXB: MOV r0,#rcvbuf+5
mov a,@r0
RRC A
MOV GBBZ,C
SETB BSGB
MOV MODE,#1
ljmp JOB6
;------------------------------
;對斑
GETHB: JB GBBZ,dhb0
ljmp JOB6
dhb0: MOV r0,#rcvbuf+5
mov a,@r0
clr bthbh
cjne a,#'2',dhb2
setb bthbh
dhb2: cjne a,#'0',dhb3
clr bthbh ;結束對斑
DHB1: MOV MODE,#0
clr btMcYz
mov pwcnt1,#00h ;清除被校表脈沖計數器
mov pwcnt2,#00h
mov pwcnt3,#00h
mov Pwcnt4,#00h
MOV TMOD,#00100101B ;t0 counter
jnb btstrsy,dhb11
clr BTSTRSY
dhb11: ;jnb btcssy,dhb12
;clr btcssy ;退出常數測試
dhb12: SETB BSGB
LCALL JDQXH ;退出其它實驗回到校驗狀態
ljmp JOB6
dhb3: MOV MODE,#02 ;開始對黑斑
clr as108
mov tmc,#00h
mov tmd,#03h
MOV tme,#10h
SETB BTJDQ ;繼電器吸合延時
setb bt108 ;108吸合延時
SETB BSGB
MOV TH2,#0FFH
MOV TL2,#0FFH
ljmp JOB6
;-----------------------------------
GETJS: JNB GBBZ,JOB6
MOV r0,#rcvbuf+5
mov a,@r0
JNB ACC.0,DHB1
MOV MODE,#03 ;監視光電頭狀態
SETB BSGB ;GJ:001
LCALL JDQXH ;AS108斷開 JDQ吸合
ljmp JOB6
;---------------------------------
;------更改發送程序無論什么時候都將小顯示的工作模式送回主程序進行握手判斷
;-----回送數據格式變更為CUBB(0DH)或CUBBXXXXXXX(0DH)
;------原來回送數據的起始地址變更為sndbuf+3
SENDWC: SETB BRSWE ;Enable send data
CLR BSEND
MOV SBUF,#'C'
mov r0,#rcvbuf
MOV A,@r0
xrl a,#'N'
jnz SEWCY0
MOV A,mode
MOV MODE,#0DH
cjne a,#0dh,SEWCY2 ;查詢耐壓結果進入耐壓狀態
SEWCY0: JB BREF,SEWCY1
SEWCY2: mov r0,#sndbuf ;回送沒有數據標志
;--------2007.8.30 add start
mov @r0,#'U'
mov a,mode
anl a,#0f0h
swap a
orl a,#'0'
inc r0 ;sndbuf+1
mov @r0,a
mov a,mode
anl a,#0fh
orl a,#'0'
inc r0 ;sndbuf+2
mov @r0,a
inc r0 ;sndbuf+3
;---------2007.8.30 add end
MOV @r0,#0dh
MOV SNDPNT,#SNDBUF
LJMP JOB6
SEWCY1: CLR BREF
MOV SNdpnt,#SNDBUF ;#sndbuf+1
;------------------------------
JOB6:
;--------2007.8.30 add start
mov r0,#sndbuf ;回送沒有數據標志
mov @r0,#'U'
mov a,mode
anl a,#0f0h
swap a
orl a,#'0'
inc r0 ;sndbuf+1
mov @r0,a
mov a,mode
anl a,#0fh
orl a,#'0'
inc r0 ;sndbuf+2
mov @r0,a
;---------2007.8.30 add end
MOV A,MODE
MOV B,#3
MUL AB
MOV DPTR,#JOBM
JMP @A+DPTR
JOBM:
ljmp MOD0 ;校表
ljmp MOD1 ;選擇掛表
ljmp MOD2 ;對黑斑
ljmp MOD3 ;黑斑出現
ljmp MOD4 ;準備開始走字
ljmp MOD5 ;走字
ljmp mod6 ;電壓跌落試驗
ljmp mod7 ;計電能
ljmp mod8 ;比較脈沖與盤轉數
ljmp mod9 ;常數測試實驗
LJMP MODa ;功耗測試狀態
LJMP MODb ;被校表脈沖測試
ljmp modc ;累積脈沖試驗
ljmp modd ;耐壓試驗
;----------------
MOD0:
JNB BSGB,MOD01 ;1表示要求設置;0表示已經設置
MOV TH2,DIVR+1 ;電子脈沖
MOV TL2,DIVR ;置初值
MOV BNNL,BNSL
CLR BSGB
Lcall CLS
Lcall SETNN ;TO COMPUTER
Lcall xsbh
LCALL JDQXH
CLR IK1
SETB BTIK1
MOV TMBH,#10H
SETB BFIRST
ljmp JOB
MOD01: JBC BGDT,MOD02
ljmp JOB
MOD02: JNB BFIRST,MOD03
CLR BFIRST
MOV OLDD3,NEWD3
MOV OLDD2,NEWD2
MOV OLDD1,NEWD1
MOV OLDD0,NEWD0
Lcall CLS
MOD04: LCALL DISCIRN
ljmp JOB
MOD03: DJNZ BNNL,MOD04 ;n=0?
MOV BNNL,BNSL
LCALL DISCIRN
SETB BREF ;數據刷新標識
MOV A,NEWD0
XCH A,OLDD0
MOV R0,A
MOV A,NEWD1
XCH A,OLDD1
MOV R1,A
MOV A,NEWD2
XCH A,OLDD2
MOV R2,A
MOV A,NEWD3
XCH A,OLDD3
MOV R3,A
MOV A,NEWD0
CLR C
SUBB A,R0
MOV imbufC,A ;CE+-E(0DH)
MOV A,NEWD1
SUBB A,R1
MOV imbufD,A
MOV A,NEWD2
SUBB A,R2
MOV imbufE,A
MOV A,NEWD3
SUBB A,R3
MOV imbuff,A
mod0a: MOV R0,#imbuf0
MOV R1,#BCS
MOV R2,LBCS
WC8: MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,WC8
MOV R0,#imbuf0
MOV R2,LBCS
MOV R1,#imbufC
MOV R3,#04H
CLR cBFH
MOV A,imbufC
ORL A,imbufD
ORL A,imbufE
ORL A,IMBUFF
JNZ WCE1
MOV R2,#7
LCALL WCE2 ;+ -
ljmp JOB
WCE1: lcall MDIV
lcall calc
ljmp JOB
;-------校驗圈數顯示字程序------------
DISCIRN:
MOV B,BNNL
MOV A,MODE
XRL A,#08H
JNZ DISCIRN0
MOV B,DSCMPCN
DISCIRN0:
MOV A,B
MOV B,#10
DIV AB
MOV ADXS,B
DISCIRN1:
JB BREF,DISCIRN2
JB BRSWE,DISCIRN2 ; ON SENDDING
Lcall SETNN ;SEND CIRCNT
DISCIRN2:lcall DIS
RET
;-----------------------------------
;計算誤差
calc:
CJNE R2,#2,WCE3 ;減1000000
INC R2
MOV imbuf2,#00h
WCE3:
CJNE R2,#3,WCE4
MOV A,imbuf0
CLR C
SUBB A,#40H
MOV imbuf0,A
MOV A,imbuf1
SUBB A,#42H
MOV imbuf1,A
mov a,imbuf2
subb a,#0fh
mov imbuf2,a
JNC WCE5
SETB cBFH
mov r7,#03h
setb c
wce31:
mov a,@r0
cpl a
addc a,#00h
mov @r0,a
inc r0
djnz r7,wce31
WCE5:
mov r1,#imbuff+1
mov r7,#08h
wce50:
dec r1
mov @r1,#00h
djnz r7,wce50
MOV R6,#08
mov r0,#imbuf0
lcall MBTD ;四位小數
wce51:
jb brswe,wce51 ;正在發送,等待發送結束
jnc WCE2 ;計算錯誤
WCE4:
MOV R2,#7
WCE2:
MOV ADXS1,#0FH ;************
mov r0,#sndbuf+3 ;#sndbuf+1
mov @r0,#'E'
Wce21:
inc r0
mov @r0,#'+'
JNB cBFH,WC4
MOV ADXS1,#10 ;"-';************
MOV @r0,#'-'
WC4:
MOV A,R2
CLR C
SUBB A,#7
JNC WC2 ;*******
mov r0,#sndbuf+5 ;#sndbuf+3
mov r7,#06h ;#05h 2003-12-29 modify
mov r1,#imbuf8
CJNE r2,#06H,WC40 ;誤差為xx.x(x)
mov r7,#07h ;#06h 2003-12-29 modify
wc40:
mov a,r7
dec a
dec a ;add 2003-12-29 modify
add a,r1
mov r1,a
wc41:
cjne r7,#05h,wc42 ;#04h 2003-12-29 modify
mov a,#'.'
ljmp wc43
wc42:
mov a,@r1
dec r1
orl a,#'0'
wc43:
mov @r0,a
inc r0
djnz r7,wc41
mov @r0,#0dh
cjne r2,#06,wc44
mov a,imbufd
mov adxs2,a
mov a,imbufc
setb acc.7
mov adxs3,a
mov a,imbufb
mov adxs4,a
mov a,imbufa
mov adxs5,a
ljmp wc45
wc44:
mov a,imbufc
setb acc.7
mov adxs2,a
mov a,imbufb
mov adxs3,a
mov a,imbufa
mov adxs4,a
mov a,imbuf9
mov adxs5,a
wc45:
lcall DIS
SETB BREF
ret
WC2:
mov r0,#sndbuf+5 ;#sndbuf+3
MOV @r0,#'E'
inc r0
MOV @r0,#13
MOV ADXS4,adxs1
MOV ADXS3,#0FH
mov adxs2,#0FH
MOV ADXS5,#11
lcall DIS
SETB BREF
ret
;-------------
;----------------------------------
MOD1: JNB BSGB,SGB5
CLR BSGB ;選擇掛表(不選擇)
JNB GBBZ,SGB2
MOV MODE,#0 ;選擇掛表
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'G' ;CG1(0DH)掛表
inc r0
MOV @r0,#'1'
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
LCALL JDQXH
SETB BSGB
SGB5: ljmp JOB
SETB IK1 ;best 吸合
SETB BTIK1 ;ik1吸合延時
mov tmbh,#10h
LCALL AllDK ;108斷開,繼電器斷開
mov r0,#adxs
mov r1,#06
mod11: mov a,#10
mov @r0,a
inc r0
djnz r1,mod11
lcall DIS
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'G' ;CG0(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
;------------------------------
MOD2:
JNB BSGB,FHB1 ;判斷對黑斑狀態是否已經設置?
;沒有設置對黑斑狀態
CLR BSGB
CLR FINDHB ;黑斑出現標志清零
CLR SSHB ;對斑時出現黑斑標志清零
clr AS108 ;
SETB BT108 ;對斑時繼電器AS108同時有效
SETB BTJDQ
MOV TMC,#00H
MOV TMD,#03H
MOV TME,#10H
mov adxs,adbhh
mov adxs1,adbhl
mov adxs2,#10
mov adxs3,#0FH
mov adxs4,#0FH
MOV ADXS5,#10
lcall DIS
mov r0,#sndbuf+3 ;#sndbuf+1
MOV @r0,#'S'
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
FHB1: ;已經設置對黑斑狀態
JNB FINDHB,SGB4 ;黑斑是否出現?
JNB BTPUSCH,FHB11 ;黑斑出現后,判斷是光電頭脈沖還是電子脈沖
JNB BTHBH,FHB10 ;電子脈沖
ljmp FHB2 ;后沿對斑
FHB10: JB DGDT2,FHB2 ;前沿對斑
LJMP SGB4
FHB11:
JNB BTHBH,FHB3 ;光電頭脈沖
sjmp fhb2 ;前沿對斑
fhb3:
JNB DGDT,SGB4 ;后沿對斑
fhb2:
JB SSHB,SGB4
clr bt108 ;108 斷開延時標志
clr btjdq ;繼電器斷開延時標志
MOV TMC,#00H
MOV TMD,#03H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -