⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlc5618 .c

📁 几个常用AD/DA驱动程序,非常简洁,容易移植.
💻 C
字号:
TLC5618 12位D/A转换器驱动函数(C语言) 

void TLC5618(unsigned int vcon) //TLC5618DAC子程序,三线串行方式
{char i;
dac_val=vcon;
svcon=vcon|0x8000; //vcon最高位置1,选择TLC5618的A通道
CS=0; // 置5618的CS=0,允许片选
for(i=0;i<16;i++)
{ CLK=1;
if (svcon&0x8000)
{
DIN=1;
}
else
{
DIN=0;
}
svcon<<=1;
CLK=0;
}
CS=1; //禁止片选 
}

ADS7816 12位AD转换器驱动程序函数(C语言)
uint ads7816()
{
uint result;
uchar i;
uchar al=0,ah=0;
DOUT=1;
DCS=0; 
while(DOUT==1)
{ DCLK=1;
DCLK=0;
}
for(i=0;i<4;i++)
{
DCLK=1;
DCLK=0;
ah=(ah<<1);
if(DOUT)
{
ah=ah|0x01;
}
}
for(i=0;i<8;i++)
{
DCLK=1;
DCLK=0;
al=(al<<1);
if(DOUT)
{
al=al|0x01;
}
}
DCS=1;
result=ah;result<<=8;result|=al;//得到AD值
return (result);
}

TLC0831A8位A/D转换器驱动程序(C语言)
#include "reg51.h"
#include "intrins.h"
sbit T0831_CS=P2^0;//片选I/O端口
sbit T0831_SK=P1^0;//时钟I/O端口
sbit T0831_DO=P3^6;//数据I/O端口 

unsigned char T0831Read()
{
unsigned char i,DataSoute;
T0831_CS=1;
Delay(10);
T0831_SK=1;
T0831_CS=0;
T0831_SK=0;
_nop_();
for(i=0;i<8;i++)
{
T0831_SK=1;
T0831_SK=0;
if(T0831_DO) DataSoute++;
DataSoute<<=1;
}
T0831_CS=1; T0831_SK=1;
Delay(20);
return(DataSoute);
}
/*分析:
该芯片采用传统的SPI口的规约形式,是一个非标准的SPI封装。
注:使用该程序时注意改变芯片各个接口的修改。注意屏蔽主函数。 
*/
main()
{
unsigned char Data;
Data=T0831Read();
while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -