⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5460asm.asm

📁 51汇编写的cs5460电池程序,有需要的人可以看一下
💻 ASM
字号:
;asm写的cs5460程序(电池)

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:
	DJNZ R3,RR1
	MOV R3,#08H
	MOV @R1,A
	INC R1
	DJNZ R2,RR2
	clr sdi
	NOP
	NOP
	NOP
	RET
	
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -