您现在所在的是:

传感器论坛

回帖:9个,阅读:4269 [上一页] [1] [下一页]
* 帖子主题:

关于CS5532

924
jtl2003
文章数:7
年度积分:50
历史总积分:924
注册时间:2007/9/26
发站内信
发表于:2007/9/27 8:54:00
#0楼
小弟是新手,最近开发仪表用到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
924
jtl2003
文章数:7
年度积分:50
历史总积分:924
注册时间:2007/9/26
发站内信
发表于:2007/11/10 15:48:00
#1楼
问题已经解决,需要支援的兄弟们请留言,我希望大家多多交流,共同进步!
905
dhmhl
文章数:1
年度积分:50
历史总积分:905
注册时间:2008/1/8
发站内信
发表于:2008/1/9 13:54:00
#2楼
您好,我的QQ16803529

希望与您交流
902
haoyun2008
文章数:1
年度积分:50
历史总积分:902
注册时间:2008/5/4
发站内信
发表于:2008/5/4 23:11:00
#3楼
您好,我希望与您交流。
最近我开始用cs5532作一个项目(测量光强),先后写入15个0xff,一个0xfe,0x03,0x20,0x00,0x00,0x00,然后循环写入0x0b,0x00,0x00,0x00,0x00,但是SDO上始终是高电平。希望得到帮组!
287
cskt001
文章数:56
年度积分:50
历史总积分:287
注册时间:2007/12/3
发站内信
发表于:2008/5/5 10:43:00
#4楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
924
jtl2003
文章数:7
年度积分:50
历史总积分:924
注册时间:2007/9/26
发站内信
发表于:2008/5/8 10:49:00
#5楼
先写15个FF,在写一个FE,然后写03h,20h,00,00,00;然后写0bh开始读RV为,判断是否为1,如果不为1则继续写0bh读RV为并进行判断,直到为1,然后进行下面的操作。如果还不明白就给我邮箱发信,我把我的程序给你一份,tielin1632003@163.com。
902
wpt0204
文章数:1
年度积分:50
历史总积分:902
注册时间:2008/6/11
发站内信
发表于:2008/6/11 9:51:00
#6楼
楼主
   你好!最近我正在做一个项目也用到了cs5532,一开始也就是按你说的写15个ff,再写一个fe,然后写03,20,00,00,00。再写0b,但是读出来的 rv 有时为1,有时不为1,而且其他数据也不全为0。我是新手,希望得到你的帮助。
902
CHARLYEANG
文章数:1
年度积分:50
历史总积分:902
注册时间:2008/8/6
发站内信
发表于:2008/8/6 11:04:00
#7楼
我公司是CIRRUS的专业分销商 CS5532-BSZ 常备现货 可以支持小批量.

Charly Wang 
Shenzhen Creative Technology  Co., Ltd.
深圳市创新睿科技有限公司
Tel:0755-61359303  61359302
Email:ww0098@163.com
MSN: szwangchao98@hotmail.com
902
xxianhua
文章数:1
年度积分:50
历史总积分:902
注册时间:2008/9/11
发站内信
发表于:2008/9/11 21:55:00
#8楼
但是SDO上始终是高电平。怎样解决的?我想知道。我的系统就是高电平!郁闷!
902
wsm486
文章数:1
年度积分:50
历史总积分:902
注册时间:2008/10/5
发站内信
发表于:2008/10/5 22:33:00
#9楼
您好:
我是新人,现在正在做一仪表,里面需用cs5532,看了手册后并不是很明白,希望您能给我发一份汇编程序,万分感谢!
    我的email为:sywsm486@163.com.

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

140.4009