日志档案

发表于 2007-9-10 21:34:00

1

标签: 无标签

TLC2543数据采集程序

#include
#include
#include

sbit clk2543=P1^4;
sbit din2543=P1^5;
sbit dout2543=P1^6;
sbit cs2543=P1^7;

#define uint unsigned int
#define uchar unsigned char

/***************************************************
延时函数 delay
功能:延时2*N+2个机器周期
**************************************************/
void delay(unsigned char N)
{
  unsigned char t;
  t = N;
  while ( --t != 0 ); //延时2*N个机器周期
}

/***************************************************
TLC2543驱动程序
函数名:read2543(int CON_WORD)
说明:入口参数 :CON_WORD (八位控制字节,用于选择通道和输出方式)
      返回值adc_value(ADC转换值)
***************************************************/
uint read2543(uint CON_WORD)
{  uint adc_value=0;
   uchar i;
   clk2543=0;
   delay(2);    //延时6微秒
   cs2543=0;
   for(i=0;i<12;i++)
     { if(dout2543) adc_value|=0x01;
       din2543=CON_WORD&0x80;
       clk2543=1;
       clk2543=0;
       CON_WORD<<=1;
       adc_value<<=1;
     }
    adc_value>>=1;
    cs2543=1;
   return(adc_value);
}

系统分类: 单片机   |   用户分类: 单片机程序   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(731)    回复(1)  

投一票您将和博主都有获奖机会!

最新评论

  • lingyang

    2008-8-20 15:46:48

    请问在TLC2543数据采集程序中转换结果是12位而在转换中为什么有adc_value>>=1,那样最低位不就舍弃了吗?