AD10软件如何仿真C语言,基于AD转换模块的单片机仿真和C语言开发设计

这篇博客介绍了作者在大学时期设计的一个多路数据采集系统,使用了TLC2543作为ADC芯片,实现了从多个通道轮流采集数据并存储的功能。通过Protues进行电路仿真,程序采用C语言编写,实现了AD转换及数据显示。在演示时,利用电阻和电位器模拟输入信号,展示了系统的功能。程序流程主要是通过不断循环检测并显示AD转换结果。
摘要由CSDN通过智能技术生成

大学做过的一小设计,那会没事就弄这些AD\DA\MCU以及功能性的IC. 后来一老师要求做的这个,设计一多路数据采集系统,当时资料大多都是0809,0832之类的ADDA,网上找了部分资料。因为手上刚好有几片TLC2543。后来就用的它,完全满足题目要求吧。配上PTORUES仿真最后显示出来了。记得当时给老师看的时候用电阻做的10路模拟数据,然后用螺丝刀旋转电位器给被人看。

没有什么额外特别的功能,相当于做了个AD+显示,也称得上是最小的一个系统了。

技术要求:

1、设计一种多路模拟信号采集模块,从多个通道轮流采集数据一次,并将采集的结果存放在数组中。要求进行电路仿真实验,并使用C语言进行程序的开发。

简易框架如下。

b288af1e23bd81fb59c3b0211aa51990.png

最后用的PROTUES搭建的电路图。为了实现高速高精度多路数据采集。新片是需要串行输入数据的12 位 66kSPS ADC ,可编程 MSB/LSB 优先,可编程断电/输出数据长度,11 通道的TLC2543。用的多路电位器模拟多路输入。软件分别测量电压。作为探测点。

88ef51058ac86daf2f66e29eda067ed2.png

程序的流程就是利用不断的循环查找有没有变化,再显示。这里不多说,可以看附件程序。

读取AD程序时序如下(或者见附录):

/*启动A/D转换,并读取上次转换结果*/

uint read2543(CHN)

{

uchar i,temp;

uint read_ad_data = 0;

CHN=CHN《《4;

AD_IOCLK=0;

AD_CS=1;

AD_CS=0;

temp=CHN;

for(i=0;i《12;i++)

{

read_ad_data=read_ad_data《《1;

if((temp&0x80)!=0){AD_DATIN=1;}

else{AD_DATIN=0;}

if(AD_DATOUT){read_ad_data=read_ad_data+1;}

AD_IOCLK =1;

_nop_();_nop_();_nop_();_nop_();

AD_IOCLK =0;

_nop_();_nop_();_nop_();_nop_();

temp=temp《《1;

}

AD_CS=1;

read_ad_data=read_ad_data&0x0fff;

return(read_ad_data);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值