A/D TLC1543 应用
首先了解下串行A/D芯片TLC1543的参数
【A/D TLC1543 应用】有6种工作模式:
本程序使用了2种工作模式来编程,具体看时序图:
源程序:
uint Read_AD(uchar AD_Channel) //从TLC1543读取采样值,形参AD_Channel是采样的通道号
{
uint i;
uint AD_data; //定义AD数据储存地址
uchar AD_data_l=0,AD_data_h=0; //定义AD数据储存地址高低位
// Page13 of TLC1543_datasheet
AD_CLOCK=0;
AD_CS=0;
AD_Channel<<=4;
for (i=0;i<4;i++) //把通道号打入1543
{
AD_D_IN=(bit)(AD_Channel&0x80);
AD_CLOCK=1;
AD_CLOCK=0;
AD_Channel<<=1;
}
for (i=0;i<6;i++) //填充6个AD_CLOCK
{
AD_CLOCK=1;
AD_CLOCK=0;
}
//AD 转换有6种模式,具体时序图见数据手册,这里举例2种转换模式
//1)Fast Modes=>Mode1 : Hight between conversion cycles ; 10 I/O CLOCKS;MSB AT DATA OUT CS falling edge
/* AD_CS=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
AD_CS=0; // AD转换结束
*/
// 2)Fast Modes=>Mode2 : Low conversion cycles ; 10 I/O CLOCKS; MSB ATDATA EOC rising edge
while(!AD_EOC); //等待AD转换
_nop_();_nop_();_nop_(); //延时
for (i=0;i<2;i++) //读取高2位:D9,D8
{
AD_D_OUT=1; //读取数据以前,数据口先置高
AD_CLOCK=1;
AD_data_h<<=1;
//数据高低判断
if (AD_D_OUT==1) //(1)容易理解的写法
{AD_data_h=AD_data_h+0x01;}
else
{AD_data_h=AD_data_h+0x00;}
//if (AD_D_OUT) AD_data_l +=0x01; //(1)精简写法
AD_CLOCK=0;
}
for (i=0;i<8;i++) //读取低8位:D7--D0
{
AD_D_OUT=1; //读取数据以前,数据口先置高
AD_CLOCK=1;
AD_data_l <<= 1;
//数据高低判断
if (AD_D_OUT==1) //(1)容易理解的写法
{AD_data_l=AD_data_l+0x01;}
else
{AD_data_l=AD_data_l+0x00;}
//if (AD_D_OUT) AD_data_l +=0x01; //(2)精简写法
AD_CLOCK=0;
}
AD_CS=1; //不使能AD
//AD转换结果计算公式:AD_data= http://www.dg8.com.cn/tool/AD_data_h*256+AD_data_l
AD_data = http://www.dg8.com.cn/tool/(uint)AD_data_h;
AD_data <<= 8;
AD_data=http://www.dg8.com.cn/tool/AD_data+(uint)AD_data_l; //得到AD值
return(AD_data);
}
推荐阅读
- 发泡聚丙烯材料的应用领域详解
- 聚碳酸酯在各行业有哪些应用?
- 从作用到应用3方面浅谈热塑性聚氨酯是什么?
- Mozilla为Firefox Android应用程序准备了更新
- 挽回爱情:聪慧的男人懂得应用这种方式挽留
- 如何应用情感共振挽回感情-
- 硫酸钡的应用领域大揭秘
- 玻璃纸有哪些特点及应用呢?
- 塑料应用性能参数你不得不掌握
- 胶粘剂的种类有哪些?