如何把单片机接收到的一连串高低电平精确的还原出来?

[复制链接]
3685|10
 楼主| Wxy8030 发表于 2009-2-24 15:35 | 显示全部楼层 |阅读模式
高低电平的长度:10mS--10uS之间;
还原精确度:尽量在1uS内
高、低电平的数量在100到400之间;

单片机:待定,初步认为AT89C52(加一定数量的RAM)似乎可以;

把该电平连到INT0脚,反向后连到INT1脚,这样通过定时器的门控可交叉测量高、低电平的宽度,这样就可以较精确的保存高、低电平的宽度;

但现在如何把这一串已知宽度的电平还原出来,我还没有类似的经验,可否请用过的兄弟指点一下!
01dxwlm 发表于 2009-2-24 17:51 | 显示全部楼层

找个输入捕捉的单片机

谈的元 发表于 2009-2-24 19:25 | 显示全部楼层

呵呵,想干什么呢?遥控学习?

判断数据大小,小于20跳转,大于30给延时程序写参数,。。。
21ele 发表于 2009-2-25 00:40 | 显示全部楼层

高低电平的长度:10mS--10uS之间,这个时比较宽的

10us如果能测量,单片机不能太慢。51的太慢了,avr也不够快,用stm32比较合适,72M, 两个定时器级连为32位的,用硬件的输入捕获,DMA传送到RAM就可以了。恢复时使用比较输出就可以了。
 楼主| Wxy8030 发表于 2009-2-25 08:43 | 显示全部楼层

现在对我来说测量不是问题,51(24M)就能解决——

利用两个定时器和门控分别测量高、低电平,应该是比较精确的......

问题是,如果还原?

确实是用于遥控学习!
zhaoyu2005 发表于 2009-2-25 09:29 | 显示全部楼层

用AT89S52上24M你能保证测量误差小于1uS?

我不信,24M时一个机器周期0.5uS,单周期指令少了点,这样的话,稍微一弄就2uS了
 楼主| Wxy8030 发表于 2009-2-25 10:06 | 显示全部楼层

to 楼上

用定时器+门控可以直接测量的
lyjian 发表于 2009-2-25 13:11 | 显示全部楼层

还原简单

 楼主| Wxy8030 发表于 2009-2-25 16:57 | 显示全部楼层

楼上指点下啊

!
21ele 发表于 2009-2-25 17:38 | 显示全部楼层

51没有输出比较,还原起来比较费劲,avr将就,stm32轻松。

hab2000 发表于 2009-2-25 18:00 | 显示全部楼层

就你的办法应该可以

中断用沿触发。
INT0中断输出低电平;
INT1中断输出高电平;
延时大约2个指令周期;
选用新型51单片机,12M时钟一个周期可达0.2uS误差0.4uS
如果你不对信号干别的处理,直接驱动输出就可以了!哈哈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

2263

帖子

2

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