数据采集

[复制链接]
 楼主| zhbwgh 发表于 2007-5-20 15:37 | 显示全部楼层 |阅读模式
各位大侠:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我要采集&nbsp;光电编码器的信号(25串行输出),每位的采集时间不能超过10微秒,采上来的格雷码要转换成二进制,我用51的单片机,不知怎么实现,希望大家能够提供个思路给我,谢谢!!!
 楼主| zhbwgh 发表于 2007-5-20 15:58 | 显示全部楼层

回复:

忘了说一下,编码器的数据是在时钟脉冲的下降沿缩存,&nbsp;在时钟脉冲的上升沿输出,一位数据的输出周期不能超过10微秒。
conwh 发表于 2007-5-20 16:04 | 显示全部楼层

有点悬

没大看明白,是整个周期,还是单个个(包括通讯)
maychang 发表于 2007-5-20 16:20 | 显示全部楼层

编码器的输出是由你的单片机控制的

由你的单片机输出时钟。<br />所以需要单片机一条口线输出时钟,另一条口线输入数据。这只能用软件模拟,不能用串口的同步方式。10us/位没有问题,51可以做到。<br />至于转换成格雷码,那是数据全部接收下来再办的事。
 楼主| zhbwgh 发表于 2007-5-23 10:23 | 显示全部楼层

回复:

楼上能说得详细一些吗?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我数据是从P2^0口读入,时钟输出是P2^2;就是数据的读取时间太长,<br />我的一段程序是这样:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RO=P2^0;CLOCK=P2^2;输入允许已经设置,没在这里写出,程序已通过编译,只是汇编太长,请教各位如何实现<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt25;i++)//读入数据//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gdata=RO;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

51

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部