?? 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 + -