×
嵌入式 > 技术百科 > 详情

TLC549工作程序

发布时间:2020-06-22 发布时间:
|

最近做项目需要用到TLC549,结果网上没有参考程序,于是自己通过数据手册写了一个,以用来交流。

 

/***************************************************************
*程 序 最 后 修 改 时 间  06-8-9 22:08
*软 件 标 题:TLC549 AD采样子程序
*软 件 说 明:从TLC549读取采样值
*_________________________________________
*
*
*****************************************************************
*
*程序作者:Dai_Weis Dai_Weis@hotmail.com
*
*版本号:2.6.3.19
*
*
*******************************************************************/

#include "intrins.h"

#define    Wait1us        _nop_();
#define    Wait2us        {_nop_();_nop_();}
#define    Wait4us        {Wait2us;Wait2us;}
#define    Wait8us        {Wait4us;Wait4us;}
#define    Wait10us      {Wait8us;Wait2us;}
#define    Wait30us      {Wait10us;Wait8us;Wait4us;Wait2us;}


/************定义接口总线**************/
sbit Clock = P1 ^ 2; //时钟口线
sbit DataOut = P1 ^ 3; //数据输出口线
sbit ChipSelect = P1 ^ 4; //片选口线
/************接口总线定义结束**********/


/*********函数名称:ADCSelChannel********
*
*功能:转换指定通道的模拟量为数字量
*
*说明:
*
*位置:1
*
****************************************/
unsigned char ADCSelChannel(void)
{
      unsigned char ConvertValue = 0;
      unsigned char i;
      ChipSelect = 1; //芯片复位
      ChipSelect = 0;
      ChipSelect = 1;
      Clock = 0;
      Wait4us;
      ChipSelect = 0; //芯片起始
      Wait4us; //等待延时
      for (i = 0; i < 8; i ++) //输入采样转换时钟
      {
            Clock = 1;
            Clock = 0;
      }
      ChipSelect = 1; //开始转换
      Wait10us; //等待转换结束
      ChipSelect = 0; //读取转换结果
      Wait4us;
      for (i = 0; i < 8; i ++) //
      {
            Clock = 1;
            ConvertValue <<= 1;
            if (DataOut)
            {
                   ConvertValue = 0x1;
            }
            Clock = 0;
      }
      ChipSelect = 1;
      return (ConvertValue); //返回转换结果
}

/************ADCSelChannel函数结束**********/




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ADI 高精度低功耗精密放大器