登录
首页 传感器论坛
回帖 发帖
正文

主题:关于CS5532

点击:4305 回复:9

小弟是新手,最近开发仪表用到CS5532,但是用的不是很明白。那位大虾用过,望指教。最好那位大虾给点参考程序,小弟感激不尽。这是小弟的程序,大虾们帮忙看看。
MAIN:
LCALL LONG_DELAY1
   LCALL   CS5532_INIT  ;调用系统复位程序

MAIN1:
LCALL  CS5532_ZH    ;调用转换程序 ,数据存在30H(高) ~33H中
    LCALL  SBIN_BCD    ;调用二十进制转换程序
    LCALL  XIANSHI    ;调用显示子程序
    LJMP   MAIN
READ_REG:
CLR CS5532_CS
SETB CS5532_SDO
CLR CS5532_SCLK         ;读寄存器程序
    CLR CS5532_SDI           ;数据存在以R0为首地址的4个内存单元中
    MOV   R1,#010H
    DJNZ R1,$   ;适当延时
    MOV   R1,#20H ;设置移位次数
DL1:      
SETB CS5532_SCLK
    MOV   R3,#10H       ;适当延时
    DJNZ R3,$
     CLR   CS5532_SCLK
    MOV   C,CS5532_SDO
MOV   R3,#10H       ;适当延时
    DJNZ R3,$
    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  
    DEC   R0
    DEC   R0
    DJNZ R1, DL1
    RET
READ_DATA:
CLR CS5532_CS
SETB CS5532_SDO
CLR CS5532_SCLK         ;读寄存器程序
   CLR CS5532_SDI
   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,$
 
   CLR   CS5532_SCLK
   MOV   C,CS5532_SDO
MOV   R3,#10H       ;适当延时
   DJNZ R3,$
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
NOP
   RET
SENDBYTE:
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,#10H
   DJNZ R2,$
   CLR   CS5532_SCLK
   MOV   R2,#10H
   DJNZ R2,$
   DJNZ R1,DL5
  RET
CS5532_INIT:
SETB CS5532_CS     ;系统复位
   MOV   R1,#10H
   DJNZ R1,$
   CLR   CS5532_CS
CLR CS5532_SDI
   MOV   R1,#10H
  DJNZ R1,$
   MOV   R5,#0FH        ;发送15个字节的FFH和一个字节的FEH
DL6:      
MOV   R0,#0FFH
   LCALL CS532_TXD_INIT
   DJNZ   R5,DL6
   MOV   R0,#0FEH
   LCALL  CS532_TXD_INIT      ;复位完成

   ;写通道设置寄存器
   MOV R0,#05H           ;通道一,增益64,,单极
   LCALL SENDBYTE      ;
   MOV R0,#22H
   LCALL SENDBYTE
   MOV R0,#00H
   LCALL SENDBYTE
   MOV R0,#22H
   LCALL SENDBYTE
   MOV R0,#00H
   LCALL SENDBYTE
   ;写配置寄存器
   MOV R0,#03H
   LCALL SENDBYTE
  MOV R0,#00H
   LCALL SENDBYTE
   MOV R0,#40H
   LCALL SENDBYTE
   MOV R0,#00H
   LCALL SENDBYTE
   MOV R0,#00H
   LCALL SENDBYTE
   RET
CS5532_ZH:  
NOP
DL8:      
SETB   CS5532_CS
NOP
NOP
CLR CS5532_CS
CLR CS5532_SCLK
CLR CS5532_SDI
SETB CS5532_SDO
   MOV   R1,#10H
  DJNZ   R1,$
   MOV   R0,#0C0H
   LCALL SENDBYTE   ;连续转换命令

DL7:
   JB   CS5532_SDO, DL7    
   MOV   R0,#0CH
   LCALL SENDBYTE    ;读转换数据命令
   MOV   R0,#30H ;数据存储首地址
   LCALL   READ_DATA
   RET
07-09-27 08:54
问题已经解决,需要支援的兄弟们请留言,我希望大家多多交流,共同进步!
07-11-10 15:48
您好,我的QQ16803529
希望与您交流
08-01-09 13:54
您好,我希望与您交流。
最近我开始用cs5532作一个项目(测量光强),先后写入15个0xff,一个0xfe,0x03,0x20,0x00,0x00,0x00,然后循环写入0x0b,0x00,0x00,0x00,0x00,但是SDO上始终是高电平。希望得到帮组!
08-05-04 23:11
4楼
该帖内容不符合相关规定!
08-05-05 10:43
先写15个FF,在写一个FE,然后写03h,20h,00,00,00;然后写0bh开始读RV为,判断是否为1,如果不为1则继续写0bh读RV为并进行判断,直到为1,然后进行下面的操作。如果还不明白就给我邮箱发信,我把我的程序给你一份,tielin1632003@163.com。
08-05-08 10:49
楼主
   你好!最近我正在做一个项目也用到了cs5532,一开始也就是按你说的写15个ff,再写一个fe,然后写03,20,00,00,00。再写0b,但是读出来的 rv 有时为1,有时不为1,而且其他数据也不全为0。我是新手,希望得到你的帮助。
08-06-11 09:51
我公司是CIRRUS的专业分销商 CS5532-BSZ 常备现货 可以支持小批量.
Charly Wang 
Shenzhen Creative Technology  Co., Ltd.
深圳市创新睿科技有限公司
Tel:0755-61359303  61359302
Email:ww0098@163.com
MSN: szwangchao98@hotmail.com
08-08-06 11:04
但是SDO上始终是高电平。怎样解决的?我想知道。我的系统就是高电平!郁闷!
08-09-11 21:55
您好:
我是新人,现在正在做一仪表,里面需用cs5532,看了手册后并不是很明白,希望您能给我发一份汇编程序,万分感谢!
    我的email为:sywsm486@163.com.
08-10-05 22:33

工控新闻

更多新闻资讯