📄 5460.txt
字号:
CNKI上有相关资料。另外用263搜索一下,应该可以找到。程序源码如下(调试通过。我用的单片机是89C52)
INIT_CS5460:
MOV A,#0FFH
LCALL WRITE_COMMOND
NOP
MOV A,#0FFH
LCALL WRITE_COMMOND
NOP
MOV A,#0FFH
LCALL WRITE_COMMOND
NOP
MOV A,#0FEH
LCALL WRITE_COMMOND ;以上程序初始化串行口
NOP
MOV 52H,#00000000B ;无相位补偿
MOV 51H,#00000000B ;电平触发中断
MOV 50H,#00000001B ;K=1
MOV A,#01000000B
LCALL WRITE_REG ;以上程序初始化配置寄存器
MOV A,#01110100B ;允许中断
MOV 50H,#00H
MOV 51H,#00H
MOV 52H,#80H
LCALL WRITE_REG ;以上程序初始化屏蔽寄存器
MOV A,#11101000B ;启动转换
LCALL WRITE_COMMOND
NOP
RET
;***************
READ_DIAN:
MOV A,#00010100B ;读取电量到50H-52H
LCALL READ_REG
MOV 62H,52H ;零漂校准
MOV 61H,51H
MOV 60H,50H
MOV 66H,#00H
MOV 65H,#02H
MOV 64H,#0CFH
LCALL BYTE3_ADD
MOV 60H,64H
MOV 61H,65H
MOV 62H,66H
READ_DIAN2: ;清除状态寄存器的值
MOV A,#00011110B
LCALL READ_REG
NOP
MOV A,#01011110B
LCALL WRITE_REG
NOP
MOV A,#00011110B
LCALL READ_REG
MOV A,52H
JB ACC.7,READ_DIAN2
RET
;****************
READ_REG:
PUSH PSW
SETB RS1 ;使用第二组寄存器
CLR CS5460_CS
SETB CS5460_SDO ;为读取口线做准备
CLR CS5460_SDI
MOV R0,#8
READ_REG1:
RLC A
MOV CS5460_SDI,C
CLR CS5460_SCLK
NOP
SETB CS5460_SCLK
DJNZ R0,READ_REG1
MOV R0,#52H
MOV R2,#03H
READ_REG2:
MOV R3,#08H
MOV R4,#0FEH
READ_REG3:
CLR CS5460_SCLK
NOP
MOV C,CS5460_SDO
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV CS5460_SDI,C
SETB CS5460_SCLK
MOV A,R5
DJNZ R3,READ_REG3
MOV @R0,A
DEC R0
DJNZ R2,READ_REG2
CLR CS5460_SDI
NOP
SETB CS5460_CS
POP PSW
RET
;************
WRITE_REG:
PUSH PSW
SETB RS1
CLR CS5460_CS
NOP
MOV R0,#8
WRITE_REG1:
RLC A
MOV CS5460_SDI,C
CLR CS5460_SCLK
NOP
SETB CS5460_SCLK
DJNZ R0,WRITE_REG1
MOV R0,#52H
MOV R2,#03H
WRITE_REG2:
MOV R3,#08H
MOV A,@R0
WRITE_REG3:
RLC A
MOV CS5460_SDI,C
CLR CS5460_SCLK
NOP
SETB CS5460_SCLK
DJNZ R3,WRITE_REG3
DEC R0
DJNZ R2,WRITE_REG2
NOP
SETB CS5460_CS
POP PSW
RET
;**************
WRITE_COMMOND:
PUSH PSW
SETB RS1
CLR CS5460_CS
NOP
CLR CS5460_SDO
MOV R0,#8
WRITE_COMMOND1:
RLC A
MOV CS5460_SDI,C
CLR CS5460_SCLK
NOP
SETB CS5460_SCLK
DJNZ R0,WRITE_COMMOND1
NOP
SETB CS5460_CS
POP PSW
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -