保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

TMPN3150与TLC0832的两种接口实现方法


号由IO0输出初始化为1
  
  IO-8neurowiremasterselect(IO-0)ioA2D;;
  
  IO-0outputbitioA2Dselect=1;
  
  IO-1inputbitstart_adc;
  
  #pragmaignore_notusedioA2Dselect
  
  ////////functiondeclare////////
  
  unsignedlongadc(unsignedlonganalog_addr);
  
  ////////functiondefinition////////
  
  //A/D转子函数
  
  unsignedlongadc(unsignedlonganalog-addr)
  
  //形参analog_addr传递要选择的通道,选择CH0时,analog_addr=0x06,选择CH1时,analog_addr=0x07
  
  {
  
  unsignedlongadc_info;
  
  unsignedlongdigital_out;
  
  adc_info=(analog_addr<<13);
  
  io_in(ioA2D,&adc_info,16);//选择通道,同时接收转换的结果
  
  digital_out=adc_info&0x0ff0;
  
  digital_out=digital_out>>4;
  
  returndigital_out;
  
  }
  
  由于eurowireI/O对象是双向的,即输入、输出同时进行。因此,调用io_in(ioA2D,&adc_info,16)时启动了16位的双向数据传输,该命令可将adc_info中的数以比特流的形式从IO-9输送到TLC0832,同可时通过IO10从TLC0832的DO脚读入16位数并放入adc_info。由TLC0832的工作时序图(图1)可以看出,接收到的16位数中的第5位到第12位就是转换结果,所以做了后面的处理。
  
  3.2基于Neuron芯片的比特I/O模式方案
  
  TMPN3150和TLC0832的第二种接口实现方法是把TMPN3150的I/O脚定义为比特I/O对象,它可用以监控与Neuron芯片相连的I/O设备中某个引脚上的逻辑状态,其中“0”为低电平,“1”为高电平。
  
  a.方法2的硬件实现
  
  方法2的硬件电路如图3所示。图中,输入通道只画了一路CH0,另一路CH1与CH0相同。当输入为1-5V的电压信号时,J断开;当输入与4-20mA的电流信号时,J连通。
  
  b.方法2的软件实现
  
  NeuronC语言是从ANSIC中派生出来的,相对于ANSIC而言,它进一步扩展了用以支持由Neuron芯片中的固件提供的各种运行特性。
  
  方法2的A/D接口程序如下:
  
  ////////IOObjection////////
  
  //将IO脚定义为比特IO对象,
  
  IO-2inputbitio-do;
  
  IO-0outputbitcs;
  
  IO-3outputbitdi;
  
  IO-1outputbitclk;
  
  ////////functiondeclare////////
  
  intadc(intadc-addr);
  
  ///////functiondefinition//////
  
  //A/D转换子函数
  
  intadc(intadc_addr)
  
  //形参analog_addr传递要选择的通道,选择CH0时,adc_addr=0x60;选择CH1时,adc_addr=0x70//
  
  {
  
  intadc_inbit,digital_out=0;
  
  io_out(cs,0);
  
  io_out(di,0);
  
  for(i=0;i<3;i++)//选择通道
  
  {
  
  io_out(clk,0);
  
  adc_addr=adc_addr<<1;
  
  if(adc_inf0&0x80)==0x80
  
  io_out(di,1);
  
  else
  
  io_out(di,0);
  
  io_out(clk,1);
  
  }
  
  io_out(clk,0);//一个时钟的间隔
  
  io_out(clk,1);//以使多路器稳定
  
  for(i=0;i<8;i++)//接收转换结果
  
  {
  
  io_out(clk,0);
  
  if(io_in(io_do)==1)
  
  {
  
  adc_inbit=1;
  
  adc_inbit=adc_inbit<<(7-i);
  
  digital_out=dig

《TMPN3150与TLC0832的两种接口实现方法(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/170181.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。