|
CLK equ P1.6; --
DAT equ P1.7; E2prom
dat7 equ p0.3; ---
clk7 equ p0.2; 7289
cs7 equ p0.1;
rset equ p0.0; ---
sdi equ p1.5; cs5460
sdo equ p1.4
sclk equ p1.3
csa equ p1.0
csb equ p1.1
csc equ p1.2; ---
dog equ p3.5
;"""""""""""""""""""""""""""""""""""
REST: ;5460复位
MOV R6,#06H
MOV R0,#0FFH
USA:
NOP
NOP
cpl dog
ACALL COMM
DJNZ R6,USA ;串行口初始化
MOV R0,#0FEH
NOP
NOP
ACALL COMM
MOV 10H,#00H
MOV 11H,#00H
MOV 12H,#81H
MOV R0,#40H ;CS5460复位
MOV R1,#10H
NOP
NOP
ACALL WWW
NOP
NOP
ACALL T9
MOV 10H,#80H
MOV 11H,#00H
MOV 12H,#20H
MOV R0,#74H
MOV R1,#10H
NOP
NOP ;写中断寄存器
ACALL WWW
NOP
NOP
ACALL T9
MOV 10H,#00H
MOV 11H,#00H
MOV 12H,#71H
MOV R0,#40H ;写入5460配置寄存器
MOV R1,#10H
NOP
NOP
ACALL WWW
NOP
NOP
ACALL T9
MOV R0,#0D0H
NOP
NOP
LCALL COMM ;电压校准
ddd1:
MOV R0,#1EH
MOV R1,#10H
NOP
NOP
ACALL READ
MOV A,10H ;等待校准完毕
JNB ACC.7,ddd1
MOV 10H,#0FFH
MOV 11H,#0FFH
MOV 12H,#0FEH
MOV R0,#5EH
MOV R1,#10H
NOP
NOP
LCALL WWW ;清DRDY,WDT位
MOV R0,#0C8H
NOP
NOP
LCALL COMM ;电流校准
Ddd2:
MOV R0,#1EH
MOV R1,#10H
NOP
nOP
ACALL READ
MOV A,10H ;等待校准完毕
JNB ACC.7,ddd2
MOV 10H,#0FFH
MOV 11H,#0FFH
MOV 12H,#0FEH
MOV R0,#5EH
MOV R1,#10H
NOP
NOP
LCALL WWW ;清DRDY,WDT位
NOP
NOP
LCALL WUIROM ;将校准值写入5460
NOP
NOP
ACALL T9
;MOV R0,#0C0H
;NOP
;NOP
;ACALL COMM ;禁止校准
MOV 10H,#0FFH
MOV 11H,#0FFH
MOV 12H,#0FEH
MOV R0,#5EH
MOV R1,#10H
NOP
NOP
LCALL WWW ;清DRDY,WDT位
NOP
NOP
ACALL T9
MOV R0,#0E8H
NOP
NOP
ACALL COMM ;进行连续计算
NOP
NOP
RET
T9:
MOV R7,#0FFH
T2:
NOP
NOP
DJNZ R7,T2
NOP
NOP
RET
COMM: ;对芯片进行控制,命令字在R0
clr sdo
MOV A,R0
MOV R4,#08H
M1: MOV C,ACC.7
MOV sdi,C
NOP
NOP
NOP
NOP
SETB sclk
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR sclk
NOP
NOP
NOP
RL A
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R4,M1
NOP
NOP
NOP
RET
;|||||||||||||||||||||||||||||||||||||
WWW: ;命令字在R0,数据指针在R1,
NOP
NOP
ACALL COMM
MOV R6,#03H
W1: MOV A,@R1
MOV R0,A
NOP
NOP
ACALL COMM
INC R1
DJNZ R6,W1
NOP
NOP
RET
;*******************
READ: ;命令字在R0,数据指针在R1
NOP
NOP
ACALL COMM
setb sdi
SETB sdo
MOV R3,#08H
MOV R2,#03H
NOP
NOP
NOP
NOP
RR2: CLR sclk
CLR C
CLR A
RR1: NOP
NOP
NOP
NOP
SETB sclk
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,sdo
MOV ACC.7,C
RL A
NOP
CLR sclk
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
;读数时最后一个脉冲,Sdi为低电平
cjne r2,#01h,readjie
cjne r3,#02h,readjie
clr sdi
readjie JNZ R3,RR1
MOV R3,#08H
MOV @R1,A
INC R1
DJNZ R2,RR2
clr sdi
NOP
NOP
NOP
RET
|
|