打印

ADC0838驱动程序请指正!!

[复制链接]
1744|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
njgxy|  楼主 | 2011-8-6 13:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的程序我找不出错误,但运行结果不正确,请朋友们帮助我找出错误并改正,不胜感激!!本人联系方式:vcwlw@163.com
下面是驱动代码:
sbit AD8_CS=    P2^1;
sbit AD8_DI_DO =P2^2;
sbit AD8_CLK =  P2^0;
sbit AD8_INPUT =P2^3;
unsigned char AD(unsigned char addr)
{
unsigned char ke,num=0x10,MUX=0x18,count,dat=0;
switch (addr)
  {
    case 0:{MUX=0X18;break;}
    case 1:{MUX=0x1c;break;}
    case 2:{MUX=0X19;break;}
    case 3:{MUX=0x1d;break;}
    case 4:{MUX=0X1a;break;}
    case 5:{MUX=0x1e;break;}
    case 6:{MUX=0x1b;break;}
    case 7:{MUX=0x1f;break;}  
  }
   AD8_CLK=0; _nop_();  
  AD8_CS=1; _nop_(); _nop_();
  AD8_CS=0;_nop_();

for(count=0;count<5;count++)
  {
    AD8_CLK=0;_nop_();
    ke=num>>count;
    if(ke&MUX)
      {AD8_DI_DO=1;}
    else
      {AD8_DI_DO=0;}
    _nop_();
    AD8_CLK=1;
   _nop_();_nop_();
  }   
   AD8_CLK=0;
   _nop_();_nop_();
   AD8_CLK=1;
   _nop_();_nop_();
for(count=0;count<8;count++)
  {
     AD8_CLK=0;
     _nop_();
     if(AD8_INPUT)      
      {
         dat=dat<<1;
         dat=dat|0x01;
      }      
     else
      { dat=(dat<<1);}
     AD8_CLK=1;  
     _nop_();
  }
AD8_CS=1;
_nop_();
return dat;
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

1

粉丝