您当前的位置:五五电子网电子知识单片机-工控设备51单片机SPI串行接口AD转换器TLC2543的驱动程序 正文
SPI串行接口AD转换器TLC2543的驱动程序

SPI串行接口AD转换器TLC2543的驱动程序

点击数:7470 次   录入时间:03-04 11:56:46   整理:http://www.55dianzi.com   51单片机

SPI串行接口AD转换器TLC2543的驱动程序

//-----------------------函数声明,变量定义--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
//--------------------------------------------------------------------------------------------------
//       2543控制引脚宏定义
//--------------------------------------------------------------------------------------------------
sbit SS1=P1^0;                          // 将p1.0口模拟片选
sbit SCK=P1^1;                          // 将p1.1口模拟时钟输出
sbit MOSI=P1^2;                         // 将p1.2口模拟主机输出
sbit MISO=P1^3;                         // 将p1.3口模拟主机输入
//-----------------------预定义控制字--------------------------------------------------------
#define CONTROL_WORD  0x00              //选择通道0,输出数据长度12bit,MSB,单极性二进制数
//--------------------------------------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us的延时 
// 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
//--------------------------------------------------------------------------------------------------
  void delay(unsigned  int N)  
  {
  int i; 
  for(i=0;i<N;i++);
  }
//--------------------------------------------------------------------------------------------------
//  名称:read2543
//  功能:TLC2543驱动模块
//  输入参数:CON_WORD控制字
//  输出参数:ad转换值
//--------------------------------------------------------------------------------------------------
unsigned int read2543(unsigned char CON_WORD)
{
unsigned int ad=0,i;
SCK=0;
SS1=0;
for(i=0;i<12;i++)
{
  if(MISO) ad|=0x01;
  MOSI=(bit)(CON_WORD&0x80);
  SCK=1;
  delay(3);
  SCK=0;
  delay(3);
  CON_WORD<<=1;
  ad<<=1;
}
SS1=1;
ad>>=1;
return(ad);
}

//--------------------------------------------------------------------------------------------------
//  名称:main
//  功能:主函数
//  输入参数:无
//  输出参数:无
//--------------------------------------------------------------------------------------------------
void main()
{unsigned int ad;
while(1)
{
  ad=read2543(CONTROL_WORD);
}
}




本文关键字:转换器  程序  接口  51单片机单片机-工控设备 - 51单片机