用Neuron c怎么编写程序启动模数转换器ADC0809? 点击:1963 | 回复:6



dengxm

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2005年4月21日
发表于:2005-05-07 17:41:00
楼主
用Neuron c怎么编写程序启动模数转换器ADC0809? 谢谢各位!



zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2005-05-07 21:55:00
1楼
你的硬件接口???

朱燕军

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2005年5月07日
发表于:2005-05-08 23:09:00
2楼
0809的工作原理是: 给0809的start引脚一个脉冲信号即可启动0809;与3150的io0相接; 0809的eoc引脚为0809转换完毕引脚,高电平有效:此引脚未高电平时,说明已经转换完毕; eoc与3150的io2相接; 输出允许信号oe,高电平有效:只有当这个信号被相接的3150置为高电平时开始传输数据; oe与3150的io3相接 ; 请问这3个控制信号怎么用Neuron c写啊? 例外请问一下:从0809采集过来的8位数字可不可以这样写? IO_0 input byte adin; if (io_in(adin)>0x50) {//执行任务 }

朱燕军

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2005年5月07日
发表于:2005-05-09 13:03:00
3楼
IO_0 output bit a; IO_1 output bit b; IO_2 output bit c; IO_O input byte adin; IO_8 output bit start; IO_9 output bit oe; IO_10 output bit g; when(1) { //产生脉冲信号驱动0809 io_out(start,o); scaled_delay(1000); io_out(start,1); scaled_delay(1000); io_out(start,0); sclaed_delay(1000); //输出允许信号 io_out(oe,1); //判断从0809采集来的数据,并执行相应的任务 io_set_direction(adin,IO_DIR_IN); if(io_in(adin)<0x50) {io_out(g,1); io_set_direction(a,IO_DIR_OUT); io_out(a,1); io_set_direction(b,IO_DIR_OUT); io_out(b,1); io_set_direction(c,IO_DIR_OUT); io_out(c,1); } io_set_direction(adin,IO_DIR_IN); if(io(adin)>0x55) {io_out(g,1); io_set_direction(a,IO_DIR_OUT); io_out(a,0); io_set_direction(b,IO_DIR_OUT); io_out(b,1); io_set_direction(c,IO_DIR_OUT); io_out(c,1); }

朱燕军

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2005年5月07日
发表于:2005-05-09 13:05:00
4楼
这个程序能不能启动0809啊? 如果能,采集来的数据能不能那样比较啊?

zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2005-05-09 15:52:00
5楼
好像有点问题。。。 0809 | 3150 START ----- IO8 ALE ------ IO10 OE -------- IO9 A -------- IO0 B -------- IO1 C --------- IO2 DB[0:7]----IO[0:7] eoc????????????????????????????? colck??????????????????????????? //产生脉冲信号驱动0809   io_out(start,o);//介是个字母编译能通过??? IO_0 output bit a;   IO_1 output bit b;   IO_2 output bit c;   IO_O input byte adin;   IO_8 output bit start;   IO_9 output bit oe;   IO_10 output bit g; when(reset) {    io_set_direction(adin,IO_DIR_OUT)    io_out(a,0);    io_out(b,0);    io_out(c,0);    io_out(start,0);    io_out(oe,0);    io_out(g,0); } when(....) {    unsigned int ADResultBuffer; //产生脉冲信号驱动0809    io_out(start,1);    scaled_delay(1000);    io_out(start,0);    sclaed_delay(1000);   //输出允许信号   io_out(oe,1);   //判断从0809采集来的数据,并执行相应的任务    io_set_direction(adin,IO_DIR_IN); ADResultBuffer= io_in(adin);    io_set_direction(adin,IO_DIR_OUT);    if(ADResultBuffer<0x50)    { io_out(g,1);    io_out(a,1);     io_out(b,1);    io_out(c,1);    } } 试试吧。。。。。。 3150的io脚比较少 应用开发过程中尽量使用提供的34种io对象。 例如i2c spi 等接口的ad da 转换器

朱燕军

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2005年5月07日
发表于:2005-05-13 12:04:00
6楼
首先谢谢您的回复. 这个程序还是不行,0809转换出来的数据不对啊,甚至有时候输出不随输入变化. 请问一下:那个程序能不能启动0809啊?

热门招聘
相关主题

官方公众号

智造工程师