第一范文网 - 专业文章范例文档资料分享平台

TLC2543采集程序 

来源:用户分享 时间:2025/9/24 20:55:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

//从TLC2543读取采样值,形参port是采样

unsigned int read2543(unsigned char td_num) //对应某通道的A/D转换函数,td_num为通道号 { // 范围为:0~10,对应于0#~10#//

unsigned char addr; // addr为对应某通道号的可编程输入数据// unsigned char in_8; // in_8为高位或低位的8位A/D转换值// unsigned char loop; // loop为输出的位数//

unsigned int zz; // zz为A/D转换的中间值和最终值// bit cc; //89C51的进位位//

cs=1; //令cs=1,即TLC2543处于A/D转换周期//

ad_lp:if(!eoc)goto ad_lp; //在cs=1期间,进行某通道的A/D转换,EOC=1转换结束// addr=td_num*0x10+AD0_D; // td_num为通道号输入参数,addr为对应某通道号的可编程输入数据//

cs=0; //选通TLC2543。开始I/O周期// loop=8; //MSB的位数共8位//

in_8=0; //初始化清存贮A/D值的存贮单元// do{

clk=0; //输出一个CLK的低电平到TLC2543//

cc=out; //把TLC2543的DATA OUT输出至89C51的进位位//

if(cc)in_8=(in_8*2)+0x01; //对A/D值的处理,若本次DATA OUT的电平为1,则in_8值左移一位后再加1//

else in_8=in_8*2; //若本次DATA OUT的电平为0,则in_8值左移一位// //以下做可编程数据从89C51向TLC2543的输入寄存器同步输出//

if(addr&0x80)in=1; //若addr的最高位为1,则向TLC2543输出值AD_ADDR=1// else in=0; //若addr的最高位为0,则向TLC2543输出值AD_ADDR=0// addr<<=1; // addr为可编程数据,左移一位,准备下一位的输出// clk=1; //输出一个CLK电平1给TLC2543// }while(--loop); //共做位//

zz= in_8*0x10; // in_8左移4位,in_8为A/D数据的高8位// //以下做低8位数据从TLC2543向89C51输出// loop=8; in_8=0; do{

clk=0; cc=out;

if(cc)in_8=(in_8*2)+0x01; else in_8=in_8*2; if(addr&0x80)in=1; else in=0; addr<<=1; clk=1;

}while(--loop);

//以下是对高8位和低8位数据合并处理为16位数据// zz+=in_8/0x10; clk=0;

cs=1; //重新禁止TLC2543,I/O口线处于高阻状态// return(zz); }

搜索更多关于: TLC2543采集程序  的文档
TLC2543采集程序 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c382gu8oj6h1cf865cb7o_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top