原创 CS5550读写程序

2009-4-9 14:45 5708 6 8 分类: MCU/ 嵌入式

/*************************************************************************************
CS5550  READ AND WRITE
sbit CS5_INT = P1^6;
sbit CS5_SCK = P1^7;
sbit CS5_SDI = P3^6;
sbit CS5_SDO = P3^7;
sbit CS5_CS  = P4^3;
***************************************************************************************/
//unsigned long READ_CS550(unsigned long DATA);  //READ DATA
//void WRITE_CS550(unsigned long DATA);  //WRITE DATA


void READ_CS550(unsigned char DATA)      //READ DATA读24BIT数据
{unsigned char M;


 CS5_CS=1;
 delay(10);
 CS5_CS=0;
// Command Time
 for(M=0;M<8;M++)
 {
 CS5_SCK=1;
 _nop_();_nop_();_nop_();
 if(DATA&0X80) CS5_SDI=1;
 else CS5_SDI=0;
 DATA<<=1;
 CS5_SCK=0;
  _nop_();_nop_();_nop_();
 }
 CS5_SDI=1;


//High Byte
for(M=0;M<8;M++)
 {
 CS5_SCK=1;
  _nop_();_nop_();_nop_();
 if(M==6)CS5_SDI=0;
 CS5_SCK=0;
  //delay(2);
 CS555.BYTE[1]<<=1;
 if(CS5_SDO) CS555.BYTE[1]|=0X01;
 if(M==7)CS5_SDI=1;
 _nop_();_nop_();_nop_();
 }


//Mid Byte
for(M=0;M<8;M++)
 {
 CS5_SCK=1;
  _nop_();_nop_();_nop_();
  if(M==6)CS5_SDI=0;
 CS5_SCK=0;
//  delay(2);
  CS555.BYTE[2]<<=1;
 if(CS5_SDO) CS555.BYTE[2]|=0X01;
 if(M==7)CS5_SDI=1;
 _nop_();_nop_();_nop_();
 }


 // Low Byte
 for(M=0;M<8;M++)
 {
 CS5_SCK=1;
  _nop_();_nop_();_nop_();
  if(M==6)CS5_SDI=0;
 CS5_SCK=0;
//  delay(2);
  CS555.BYTE[3]<<=1;
 if(CS5_SDO) CS555.BYTE[3]|=0X01;
 if(M==7)CS5_SDI=1;
 _nop_();_nop_();_nop_();
 }
 CS5_CS=1;
 CS5_SCK = 1;
 CS5_SDI = 1;
 CS5_SDO = 1;
 AD_DATA=CS555.BYTE[1];
 AD_DATA*=65536;
 AD_DATA+=CS555.UWORD[1];
}


void WRITE_CS550(unsigned char COUNT,unsigned long DATA)  //WRITE DATA   像寄存器写24BIT数据
{ unsigned char M;
unsigned long F;
F=DATA;
CS5_CS=1;
 delay(10);
 CS5_CS=0;
 delay(5);
// Command Time


 for(M=0;M<8;M++)
 {
 CS5_SCK=1;
  _nop_();_nop_();_nop_();
 if(COUNT&0X80) CS5_SDI=1;
 else CS5_SDI=0;
 COUNT<<=1;
 CS5_SCK=0;
 _nop_();_nop_();_nop_();
 }



for(M=0;M<24;M++)
 {
 CS5_SCK=1;
  _nop_();_nop_();_nop_();
  if(F&0X800000) CS5_SDI=1;
 else CS5_SDI=0;
 F<<=1;
 CS5_SCK=0;
 _nop_();_nop_();_nop_();
 }



 for(M=0;M<24;M++)
 {
 CS5_SCK=1;
 _nop_();_nop_();_nop_();
CS5_SDI=0;
 CS5_SCK=0;
 _nop_();_nop_();_nop_();
 } 
CS5_CS=1;
CS5_SCK = 1;
CS5_SDI = 1;
CS5_SDO = 1;  


    
}


void MING_LING(unsigned char SS)         //发送命令字
{
  unsigned char M;
//unsigned long F;
//F=DATA;


CS5_CS=1;
 delay(10);
 CS5_CS=0;
 delay(5);
  for(M=0;M<24;M++)
 {
 CS5_SCK=1;
 _nop_();_nop_();_nop_();
CS5_SDI=0;
 CS5_SCK=0;
 _nop_();_nop_();_nop_();
 } 
// Command Time
 for(M=0;M<8;M++)
 {
 CS5_SCK=1;
 _nop_();_nop_();_nop_();
 if(SS&0X80) CS5_SDI=1;
 else CS5_SDI=0;
 SS<<=1;
 CS5_SCK=0;
 _nop_();_nop_();_nop_();
 }
 for(M=0;M<24;M++)
 {
 CS5_SCK=1;
 _nop_();_nop_();_nop_();
CS5_SDI=0;
 CS5_SCK=0;
_nop_();_nop_();_nop_();
 } 
//CS5_SCK=1;
// delay(10);
// CS5_SCK=0;
delay(10);
CS5_CS=1;
CS5_SCK = 1;
CS5_SDI = 1;
CS5_SDO = 1; 


}


这是CS5550的程序,如有问题,请提出,谢谢~


 


 


 



 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户377235 2015-1-19 09:07

您用的是什么型号的单片机?

xucun915_925777961 2011-1-7 13:12

正在学习这个,谢谢分享^_^

用户400645 2010-1-11 22:00

你好,您那有关于CS5550汇编驱动程序吗?请问能加您为QQ好友吗?和您交流交流可以吗?最近快被CS5550弄得郁闷坏了,我的QQ号:554721259,急需您的帮助呀!
相关推荐阅读
iiccee521_123162241 2013-11-23 09:05
STM32库函数代码自动生成器
目前尚处于公测阶段,2014年正式发行,如发现BUG请及时按软件上的邮件方式进行反馈,万分感谢! 注意事项:有些杀毒软件可能会干掉这个软件,解决办法是选择信任! 版主,申请加精啊! 说明: ...
iiccee521_123162241 2010-06-17 20:07
关于单片机的点评
  我很少在这上面写东西,最近遇到一件让我很震惊的事情,想和大家分享一下.   我见证了一个别人成熟的产品是怎样被人家翻版的.这要从AVR单片机说起.我知道avr 单片机,我周围的人也在用这款单片机,...
我要评论
2
6
关闭 站长推荐上一条 /3 下一条