帮我看看的程序吧 .要不什么都不显示,要不就显示65535
MAIN: CS5532_CS EQU P1^2
CS5532_SDI EQU P1^3
CS5532_SCLK EQU P1^4
CS5532_SDO EQU P1^5
LCALL CS5532_INIT ;调用系统复位程序
MAIN1: LCALL CS5532_ZH ;调用转换程序 ,数据存在30H(高) ~33H中
MOV 11H,30H
MOV 10H,31H
LCALL SBIN_BCD ;调用二十进制转换程序
LCALL XIANSHI ;调用显示子程序
LJMP MAIN1
READ_REG: CLR CS5532_SCLK ;读寄存器程序
CLR CS5532_SDI ;数据存在以R0为首地址的4个内存单元中
MOV R1,#05H
DJNZ R1,$ ;适当延时
MOV R1,#20H ;设置移位次数
DL1: SETB CS5532_SCLK
MOV R3,#10H ;适当延时
DJNZ R3,$
MOV C,CS5532_SDO
CLR CS5532_SCLK
MOV A,@R0 ;左移
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
DEC R0 ;恢复R2的值
DEC R0
DEC R0
DJNZ R1, DL1
RET
READ_DATA: CLR CS5532_SCLK ;开始要设置R0的值 数据存在以R0为首地址的内存中
CLR CS5532_SDI
CLR CS5532_CS
NOP
NOP
NOP
MOV R1,#08H
DL2: SETB CS5532_SCLK
MOV R3,#10H ;适当延时
DJNZ R3,$
CLR CS5532_SCLK
MOV R3,#10H ;适当延时
DJNZ R3,$
DJNZ R1,DL2
MOV R1,#20H ;设置移位次数
DL3: SETB CS5532_SCLK
MOV R3,#10H ;适当延时
DJNZ R3,$
MOV C,CS5532_SDO
CLR CS5532_SCLK
MOV A,@R0 ;循环左移
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
DEC R0 ;恢复R0的值
DEC R0
DEC R0
DJNZ R1, DL3
SETB CS5532_CS
RET
CS5532_TXD:CLR CS5532_SCLK ;数据要先放到R0中
CLR CS5532_CS
MOV R1,#08H
DL4: MOV A,R0
RLC A
MOV R0,A
MOV CS5532_SDI,C
SETB CS5532_SCLK
MOV R2,#10H
DJNZ R2,$
CLR CS5532_SCLK
MOV R2,#10H
DJNZ R2,$
DJNZ R1,DL4
CLR CS5532_SDI
RET
CS532_TXD_INIT: CLR CS5532_SCLK ;数据要先放到R0中
CLR CS5532_CS
MOV R1,#08H
DL5: MOV A,R0
RLC A
MOV R0,A
MOV CS5532_SDI,C
SETB CS5532_SCLK
MOV R2,#50H
DJNZ R2,$
CLR CS5532_SCLK
MOV R2,#50H
DJNZ R2,$
DJNZ R1,DL5
RET
CS5532_INIT: SETB CS5532_CS ;系统复位
MOV R1,#50H
DJNZ R1,$
CLR CS5532_CS
MOV R1,#50H
DJNZ R1,$
MOV R5,#0FH ;发送15个字节的FFH和一个字节的FEH
DL6: MOV R0,#0FFH
LCALL CS532_TXD_INIT
DJNZ R5,DL6
MOV R0,#0FEH
LCALL CS5532_TXD ;复位完成
;写通道设置寄存器
MOV R0,#05H ;通道一,增益64,字速度120hz,单极
LCALL CS5532_TXD ;
MOV R0,#30H
LCALL CS5532_TXD
MOV R0,#34H
LCALL CS5532_TXD
MOV R0,#00H
LCALL CS5532_TXD
MOV R0,#00H
LCALL CS5532_TXD
;写配置寄存器
MOV R0,#03H
LCALL CS5532_TXD
MOV R0,#40H
LCALL CS5532_TXD
MOV R0,#00H
LCALL CS5532_TXD
MOV R0,#00H
LCALL CS5532_TXD
MOV R0,#00H
LCALL CS5532_TXD
RET
CS5532_ZH: NOP
; MOV R5,#03H
DL8: SETB CS5532_CS
MOV R1,#10H
DJNZ R1,$
MOV R0,#80H
LCALL CS5532_TXD ; 单次转换命令
DL7: JB CS5532_SDO, DL7 ;用JB什么都不显示;换成JNB就显示65535
MOV R0,#0CH
LCALL CS5532_TXD ;读转换数据命令
MOV R0,#30H
LCALL READ_DATA
; DJNZ R5, DL8
RET