?? gl.asm
字號:
XCH A,B
MOV A,R3
SUBB A,B
JC NTKD1
CLR STEMP
CLR STB
SJMP NTKD10
NTKD1: SETB STEMP
SETB STB
NTKD10: MOV R2,WDTEMP0
MOV R3,WDTEMP1
JB CTB,REFV3
MOV A,R2
ADD A,#1
DA A
MOV R2,A
MOV A,R3
ADDC A,#0
DA A
MOV R3,A
REFV3: MOV B,#95H
LCALL RDBA
XCH A,B
MOV A,R2
CLR C
SUBB A,B
MOV B,#94H
LCALL RDBA
XCH A,B
MOV A,R3
SUBB A,B
JC NTKD2
CLR CTEMP
CLR CTB
SJMP NTKD20
NTKD2: SETB CTEMP
SETB CTB
NTKD20:
RTXW: RET
;----------------------------
;
DISPWD: MOV A,R3
PUSH ACC
MOV A,R2
PUSH ACC
ANL A,#0FH
MOV BUF0,A
MOV A,R2
SWAP A
ANL A,#0FH
MOV BUF1,A
MOV A,R3
ANL A,#0FH
MOV BUF2,A
MOV A,R3
MOV BUF3,#16H
JNB ACC.7,DP
MOV BUF3,#13H
MOV A,BUF2
JNZ DP1
MOV BUF3,#16H
MOV BUF2,#13H
MOV A,BUF1
JNZ DP1
MOV BUF3,#16H
MOV BUF2,#16H
MOV BUF1,#13H
SJMP DP1
DP: MOV A,BUF2
JNZ DP1
MOV BUF2,#16H
MOV A,BUF1
JNZ DP1
MOV BUF1,#16H
DP1: LCALL DISPSM
POP ACC
MOV R2,A
POP ACC
MOV R3,A
RET
;----------------------------
;T=( (B-12) * 10000 / 51 - 3000 ) / 214
JSWD: LCALL CDATA
MOV A,B
CLR C
SUBB A,#12
JNC WDX
CLR A
WDX: MOV B,A
MOV R5,B
MOV R6,#27H
MOV R7,#10H
LCALL MUL2A1
MOV R4,#51
LCALL DIV3T1
MOV A,#2
MUL AB
SUBB A,#51
JC BSH
CLR A
SETB C
ADDC A,R7
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
CLR A
ADDC A,R5
MOV R5,A
BSH: CLR C
MOV A,R7
SUBB A,#0B8H
MOV R7,A
MOV A,R6
SUBB A,#0BH
MOV R6,A
MOV A,R5
SUBB A,#0
MOV R5,A
CLR F0
JNC FFS
SETB F0
MOV A,R7
CPL A
MOV R7,A
MOV A,R6
CPL A
MOV R6,A
MOV A,R5
CPL A
MOV R5,A
FFS: MOV R4,#214
LCALL DIV3T1
MOV A,#2
MUL AB
JB B.0,ADD1
SUBB A,#214
JC BSH1
ADD1: CLR A
SETB C
ADDC A,R7
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
CLR A
ADDC A,R5
MOV R5,A
BSH1: MOV R4,#10
LCALL DIV3T1
MOV WDTEMP0,B
MOV R4,#10
LCALL DIV3T1
MOV A,B
SWAP A
ADD A,WDTEMP0
MOV WDTEMP0,A
;
MOV R4,#10
LCALL DIV3T1
MOV WDTEMP1,B
MOV C,F0
MOV B.7,C
MOV WDTEMP1,B
RET
;----------------------------
;(R5 R6 R7)/(R4)= (R5 R6 R7):B
DIV3T1: PUSH ACC
PUSH PSW
MOV A,R2
PUSH ACC
MOV A,R3
PUSH ACC
;
MOV A,R5
MOV R2,A
MOV A,R6
MOV R3,A
LCALL DIV2T1
MOV A,R2
MOV R5,A
MOV A,R3
MOV R6,A
;
MOV R2,B
MOV A,R7
MOV R3,A
LCALL DIV2T1
MOV A,R3
MOV R7,A
;
POP ACC
MOV R3,A
POP ACC
MOV R2,A
POP PSW
POP ACC
RET
;----------------------------
;(R2 R3)/(R4)= (R2 R3);REMAIN B,輸入數據R4不能為零
DIV2T1: PUSH ACC
PUSH PSW
;
MOV A,R2
MOV B,R4
DIV AB
PUSH ACC
MOV R2,B
MOV B,#8
DIV2: CLR C
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A ;(R2,R3)左移一位
MOV F0,C
CLR C
SUBB A,R4
JB F0,DIV3
JC DIV4
DIV3: MOV R2,A
INC R3
DIV4: DJNZ B,DIV2
MOV A,R2
MOV B,A
POP ACC
MOV R2,A
;
POP PSW
POP ACC
RET
;----------------------------
;(R6 R7 )*R5= (R5 R6 R7)
MUL2A1: PUSH PSW
PUSH ACC
PUSH B
MOV A,R5
MOV B,R7
MUL AB
MOV R7,A
MOV A,B
XCH A,R6
MOV B,R5
MUL AB
ADD A,R6
MOV R6,A
MOV A,B
ADDC A,#0
MOV R5,A
POP B
POP ACC
POP PSW
RET
;----------------------------
; 對數據取中值存放于 B 中(防止干擾)
CDATA: PUSH ACC
JB WDSTA,NWD0
LCALL RDAD
LCALL RDAD
MOV WD4,A
LCALL RDAD
MOV WD3,A
LCALL RDAD
MOV WD2,A
LCALL RDAD
MOV WD1,A
NWD0: SETB WDSTA
MOV WD0,WD1
MOV WD1,WD2
MOV WD2,WD3
MOV WD3,WD4
LCALL RDAD
MOV WD4,A
LCALL QZHQ
POP ACC
RET
;----------------------------
;WD0,WD1,WD2,WD3,WD4取中值存放于B
QZHQ: PUSH ACC
MOV A,R0
PUSH ACC
PUSH PSW
;
MOV A,SP
ADD A,#1
MOV B,A
ADD A,#4
MOV SP,A
;
MOV R0,B
MOV @R0,WD0
INC R0
MOV @R0,WD1
INC R0
MOV @R0,WD2
INC R0
MOV @R0,WD3
INC R0
MOV @R0,WD4
;
NM0: CLR ZANC
MOV R0,B
NM: MOV A,@R0
INC R0
CLR C
SUBB A,@R0
JNC NM1
MOV A,@R0
DEC R0
XCH A,@R0
INC R0
MOV @R0,A
SETB ZANC
NM1: MOV A,R0
XRL A,SP
JNZ NM
JB ZANC,NM0
DEC R0
DEC R0
MOV B,@R0
;
CLR C
MOV A,SP
SUBB A,#5
MOV SP,A
;
POP PSW
POP ACC
MOV R0,A
POP ACC
RET
;----------------------------
;RDAD 讀出TLC549CP中的數據存放于A
RDAD: PUSH B
PUSH PSW
SETB CS
NOP
NOP
NOP
CLR CLK
CLR CS
NOP
NOP
MOV B,#8
CLR C
LWRAD: MOV C,DO
RLC A
SETB CLK
NOP
CLR CLK
NOP
DJNZ B,LWRAD
SETB CS
MOV B,#6
YS: NOP
DJNZ B,YS
POP PSW
POP B
RET
;----------------------------
;延時1S,FOR 12M
DLY1S: PUSH B
MOV B,#10
DLP1S: LCALL DLY100
DJNZ B,DLP1S
POP B
RET
;----------------------------
;延時100MS,FOR 12M
DLY100: PUSH B
MOV B,#100
DLP1: LCALL DLY1MS
DJNZ B,DLP1
POP B
RET
;----------------------------
;延時100MS,FOR 12M
DLY50: PUSH B
MOV B,#50
DLP50: LCALL DLY1MS
DJNZ B,DLP50
POP B
RET
;----------------------------
;延時10MS,FOR 12M
DLY10MS:PUSH B
MOV B,#10
DLPD: LCALL DLY1MS
DJNZ B,DLPD
POP B
RET
;----------------------------
;延時1MS,FOR 12M
DLY4MS: PUSH B
MOV B,#4
DLPDM: LCALL DLY1MS
DJNZ B,DLPDM
POP B
RET
;----------------------------
;延時1MS,FOR 6M
DLY1MS: PUSH B
MOV WDTRST,#01EH
MOV B,#238
DLYLP: DJNZ B,DLYLP
MOV WDTRST,#0E1H
POP B
RET
;----------------------------
;運行狀態時顯示現在時間和累計運行時間
YXSH: JB RUNL,RTYXSH
CJNE A,#5,YXSH0
MOV R2,TTIMER3
MOV R3,TTIMER2
MOV B,#9CH
LCALL RDBA
MOV R4,A
MOV B,#9DH
LCALL RDBA
MOV R5,A
MOV A,R2
LCALL JSTIME
MOV A,R2
XCH A,R3
MOV R2,A
LCALL DISPTM
LCALL DLY1S
LCALL CONTROL
LCALL DLY1S
RET
YXSH0: CJNE A,#6,RTYXSH
MOV R3,TTIMER3 ;顯示現在時間
MOV R2,TTIMER2
LCALL DISPTM
LCALL DLY1S
LCALL CONTROL
LCALL DLY1S
RTYXSH: RET
;----------------------------
;計算時間差(R2,R3)-(R4,R5)=(R2,R3)
JSTIME: MOV A,R3
CLR C
SUBB A,R5
MOV A,R2
SUBB A,R4
JNC NJ24
MOV A,#24H
ADD A,R2
DA A
MOV R2,A
NJ24: MOV A,R4
JZ JSD
CPL A
ADD A,#1
CLR C
SUBB A,#66H
ADD A,R2
DA A
MOV R2,A
JSD: MOV A,R3
CLR C
SUBB A,R5
JNC JSFL
MOV A,#99H
ADD A,R2
DA A
MOV R2,A
MOV A,#60H
ADD A,R3
MOV R3,A
JSFL: MOV A,R5
JZ JSD0
CPL A
ADD A,#1
CLR C
SUBB A,#66H
ADD A,R3
DA A
MOV R3,A
JSD0:
RET
;----------------------------
;
WWDT: MOV WDTRST,#01EH
NOP
NOP
MOV WDTRST,#0E1H
RET
;----------------------------
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -