打印

关于TLC0834的A/D转换

[复制链接]
1137|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dahema1982|  楼主 | 2007-9-4 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我要用TLC0834做A/D转换....
TLC0834是4通道的,如果我只用到他的1个通道就够了,其他3通道应该怎么处理啊?是不是架空在那里就好了?

下面是我自己改的程序,在使用的时候,result的值好象没出来,程序编译通过的,不知道那里出的问题,大家帮忙研究下啊

#include <reg52.h>
#include <intrins.h>
#define  uchar unsigned char
#define  uint  unsigned int
#define  ulong unsigned long int
#define  FLASE  0
#define  TRUE   1
//=========引脚定义==============
sbit  CS_AD     =P0^2;
sbit  CLK_AD    =P0^4;
sbit  DAT_AD    =P0^3;
/********************************************************************
* 名称: uchar ADConver();
* 功能: 获取模数转换值
* 调用:
* 输入:  n,表示通道值,n=(1-4)
* 说明:
* 返回值: adresult
***********************************************************************/
//=======AD数据开始转换=========
uchar  ADConver()
{
    uchar i,adresult;//adresult2;
    adresult=0;
    CS_AD=1;
    CLK_AD=0;
    CS_AD=0;
    //send start bit 1
    DAT_AD=1;
    CLK_AD=1;
    CLK_AD=0;
    //send SGL bit
    DAT_AD=1;
    CLK_AD=1;
    CLK_AD=0;
   //send ODD bit
    DAT_AD=0;
    CLK_AD=1;
    CLK_AD=0;
  //send SELECT bit
    DAT_AD=0;
    CLK_AD=1;
    CLK_AD=0;
     
         
       for(i=0;i<8;i++)
       {
          adresult=_crol_(adresult,1);//高位向左移
          CLK_AD=1;
          CLK_AD=0;
          DAT_AD=1;
          if(DAT_AD==1)
          adresult|=0x01;
        }
        for(i=0;i<8;i++)
        {
          //adresult2=_cror_(adresult2,1);//高位向右移
          //if(DAT_AD==1)
          //adresult2|=0x80;
          CLK_AD=1;
          CLK_AD=0;
          //DAT_AD=1;
         }
         CS_AD=1;
       return adresult;
}

相关帖子

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

本版积分规则

15

主题

33

帖子

0

粉丝