打印

红外解码如何识别出高低电平的宽度?

[复制链接]
3100|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
discover568|  楼主 | 2013-10-29 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是AT89C52的芯片,红外接收端连接P3.3,打算通过P3.3来解码出红外信号的逻辑高低电平的宽度,问题1,通过查询方式和定时器0是否可行,我试了几次没通;问题2,通过下降沿中断加定时器0也没测试通,这个方法是否可行,该如何设置?问题3,通过P3.3加一个非门电路连接到P3.2,加上定时器0,来解码,较前两者能识别出一些,但解析出的高低电平不对,这个方法是否可行?

相关帖子

沙发
airwill| | 2013-10-30 09:41 | 只看该作者
使用定时器的 GATE 信号, 再利用 INT1 中断就可以精确测量高电平的时间

使用特权

评论回复
板凳
老鱼探戈| | 2013-10-30 10:24 | 只看该作者
1、查询方式可行的前提是主程序循环的时间应小于检测电平的允许误差。
2、通过下降沿中断只能检测出红外线的逻辑周期的时间,步骤:中断(开定时器计数)-----中断(保存计数值)
3、加非门没什么意义

使用特权

评论回复
地板
discover568|  楼主 | 2013-10-30 10:30 | 只看该作者
airwill 发表于 2013-10-30 09:41
使用定时器的 GATE 信号, 再利用 INT1 中断就可以精确测量高电平的时间

我用的是定时器0设置50us的周期自增,你说的GATE能详细说下吗?

使用特权

评论回复
5
airwill| | 2013-10-30 11:37 | 只看该作者
因为 GATE 可以控制定时器计时, 如: T1 在P3.3 高电平时自动计数, P3.3 低电平时自动停止.
详细的介绍, 去看看 51 的书籍吧

使用特权

评论回复
6
discover568|  楼主 | 2013-10-30 14:36 | 只看该作者
老鱼探戈 发表于 2013-10-30 10:24
1、查询方式可行的前提是主程序循环的时间应小于检测电平的允许误差。
2、通过下降沿中断只能检测出红外线 ...

多谢你的详细说明,程序还在测试中,你的第二条我刚测试了下,发现定时器计数基本没变。我在进入中断后等待100us再次验证是否为低电平,是的话就记录计数值,否则直接跳出。是否是等待时间短的问题?

使用特权

评论回复
7
coody| | 2013-10-30 16:56 | 只看该作者
计时

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

43

帖子

0

粉丝