导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[讨论]:本人在使用AD7705是遇到问题,望高手赐教!

* 12163: [讨论]:本人在使用AD7705是遇到问题,望高手赐教!

   FACTzero 
FACTzero发表的帖子 

 [讨论]:本人在使用AD7705是遇到问题,望高手赐教!
;这是本人写得程序,其中ad7705的din和dout是连在一起的,即为addata;
;mclk in和mclk out接2.4576mhz的晶振
;参考电压是2.5v
;最后的结果是通过lcd12864显示
;望高手赐教,
#include   <reg52.h>  

sbit  addata = p2^0 ;
sbit  sclk = p2^1 ;
sbit  drdy = p3^7 ; 

void ad_sta( void ) ;
void ad_delay_5us( void ) ;
void wrbyt(uchar shu);
int rdbyt( );
void ad7705_init( void ) ;

void ad_sta( void )
{
 sclk = 1 ;
 ad_delay_5us() ;
 sclk = 0 ;
} 

void ad_delay_5us( void )
{
 uchar  n ;

 for( n = 0 ; n   < 10 ; n ++ )
  ;
}

void wrbyt( uchar shu )
{
 uchar  i ;
 for( i = 0 ; i   < 8 ; i ++ )
 {
  if( ( shu&0x80 ) >   0 )
  {
   addata = 1 ;
   sclk = 1 ;
   ad_delay_5us() ;
   sclk = 0 ;
   addata = 0 ;
  }
  else
  {
   addata = 0 ;
   sclk = 1 ;
   ad_delay_5us() ;
   sclk = 0 ;
  }
  shu = shu   <  < 1 ;
 }
}

int rdbyt( void )
{
 int  temp ;
 uchar  j ;
 for( j = 0 ; j   < 16 ; j ++ )
 {
  addata = 1 ;
  sclk = 1 ;
  ad_delay_5us() ;
  temp = temp   <  < 1;
  if( addata == 1 )
   temp = temp | 0x01;  //if receive a 1,then the last one of the num is 1
  else 
   temp = temp & 0xfe ;  //else the last one is 0
  sclk =0;
 }
 return  temp ;
}

void ad7705_init( void )
{
 ad_sta() ;
 wrbyt( 0x21 ) ;
 wrbyt( 0x04 ) ;
 wrbyt( 0x11 ) ;
 wrbyt( 0x44 ) ;
}

void main()
{
 float  v , v_temp ; 

 ad7705_init() ;

 drdy = 1 ;
 while( 1 )
 {
  while( drdy == 1 ) ;
  wrbyt( 0x39 ) ;
  v_temp = rdbyt() ;
 }
}

发表时间:2007年7月31日11:24:45

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  45513.[详细]我看看
摘要:你什么问题呢?......(14字)
- [kangshifu51][440次] 2008年11月7日

[上一篇帖子]:修改pc网卡的速率试一下。修改pc网卡的速率试一下。
[下一篇帖子]:Re:PROTE非标准件PCB怎么制作?需要用两个pad 1.添加pad,X-Size和Y-