EasyManua.ls Logo

STC micro STC8A8K64D4 Series - Page 526

Default Icon
901 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
STC8A8K64D4 Series Manual
- 510 -
MOV A,R3
CLR A
SUBB A,R2
MOV R2,A
L_AutoZero_1:
CLR C ;Calculate [R2 R3] - #20,if(k >= 20)
MOV A,R3
SUBB A,#20
MOV A,R2
SUBB A,#00H
JC L_AutoZero_2 ;[R2 R3] ,20, Jump
MOV A,#LOW (TouchZeroCnt) ; If the change is large, clear the counter TouchZeroCnt[i] = 0;
ADD A,R5
MOV R0,A
MOV @R0,#0
JNB F0,L_AutoZero_3
MOV A,R5
ADD A,ACC
ADD A,#LOW (TouchZero)
MOV R0,A
MOV @R0,6
INC R0
MOV @R0,7
SJMP L_AutoZero_3
L_AutoZero_2: ; If the change is relatively small, then creep, track 0-point automatically
; Continuously detect small changes 20 times/4 = 5 seconds.
MOV A,#LOW (TouchZeroCnt)
ADD A,R5
MOV R0,A
INC @R0
MOV A,@R0
CLR C
SUBB A,#20
JC L_AutoZero_3 ;if(TouchZeroCnt[i] < 20), jump
MOV @R0,#0 ;TouchZeroCnt[i]= 0;
MOV A,R5 ; Use slowly changing values as 0 points
ADD A,ACC
ADD A,#LOW (adc_prev)
MOV R0,A
MOV A,@R0
MOV R2,A
INC R0
MOV A,@R0
MOV R3,A
MOV A,R5
ADD A,ACC
ADD A,#LOW (TouchZero)
MOV R0,A
MOV @R0,2
INC R0
MOV @R0,3
L_AutoZero_3: ; Save the sampled value adc_prev[i] = j;
MOV A,R5
ADD A,ACC
ADD A,#LOW (adc_prev)
MOV R0,A
MOV @R0,6
INC R0

Table of Contents

Related product manuals