打印

求一个用外部中断和定时中断来解码红外遥控接收信号程序

[复制链接]
5401|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
discussant|  楼主 | 2013-8-1 20:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dgdz2c| | 2013-8-2 08:37 | 只看该作者
楼主说下中断里是怎么处理IR信号的,应该不用多少指令呀?!

使用特权

评论回复
板凳
discussant|  楼主 | 2013-8-2 09:23 | 只看该作者
即用接收的红外信号触发外中断。然后定时中断判断高电平和低电平的持续时间。本来想自己写的,但考虑到可能有经过实践检验的好程序,又要急着出产品,所以来论坛求教。

使用特权

评论回复
地板
logokfu| | 2013-8-2 09:30 | 只看该作者
discussant 发表于 2013-8-2 09:23
即用接收的红外信号触发外中断。然后定时中断判断高电平和低电平的持续时间。本来想自己写的,但考虑到可能 ...

俺做的都是直接查询,就一个定时器中断。

使用特权

评论回复
5
hopewise| | 2013-8-2 09:49 | 只看该作者
我有,C51,你的QQ是多少/

使用特权

评论回复
6
discussant|  楼主 | 2013-8-2 10:16 | 只看该作者
6752 6186

使用特权

评论回复
7
discussant|  楼主 | 2013-8-2 10:17 | 只看该作者
直接查询也占用大量的主程序资源。

使用特权

评论回复
8
hopewise| | 2013-8-2 10:21 | 只看该作者
你的QQ号码是错的

使用特权

评论回复
9
coody| | 2013-8-2 10:29 | 只看该作者
定时器中断查询最好, 可以参考STC官网的
http://www.****ducst/datasheet/s ... %A8%8B%E5%BA%8F.rar

使用特权

评论回复
10
coody| | 2013-8-2 10:32 | 只看该作者
discussant 发表于 2013-8-2 10:17
直接查询也占用大量的主程序资源。

一般用50~100us来查询, 接收程序平均只占几个us

使用特权

评论回复
11
discussant|  楼主 | 2013-8-2 14:54 | 只看该作者
哦。qq号码中间多了一个空格。

使用特权

评论回复
12
discussant|  楼主 | 2013-8-2 14:59 | 只看该作者
hopewise 发表于 2013-8-2 10:21
你的QQ号码是错的

哦。qq号码中间多了一个空格。

使用特权

评论回复
13
discussant|  楼主 | 2013-8-2 15:00 | 只看该作者
coody 发表于 2013-8-2 10:32
一般用50~100us来查询, 接收程序平均只占几个us

我看看你说的程序。以前我看到的程序在中断了反复查询,还延时880微秒查询。

使用特权

评论回复
14
tergy2012| | 2013-8-2 15:49 | 只看该作者
谢谢分享啊

使用特权

评论回复
15
discussant|  楼主 | 2013-8-2 16:19 | 只看该作者
谢谢各位。

使用特权

评论回复
16
discussant|  楼主 | 2013-8-3 09:55 | 只看该作者
coody 发表于 2013-8-2 10:29
定时器中断查询最好, 可以参考STC官网的
http://www.****ducst/datasheet/stc/STC-USER-CODE/STC15%E7%B3% ...

我看了程序,是个很好的程序,只是有一个疑问:D_IR_DATA_DIVIDE这个常量是干什么的?已经大于等于D_IR_SYNC_MIN和小于等于D_IR_SYNC_MAX了,肯定是同步信号,程序中说是区分0和1的,请问是什么意思?

使用特权

评论回复
17
lacfg| | 2013-8-3 16:09 | 只看该作者
本帖最后由 lacfg 于 2013-8-3 16:11 编辑

  我用的是PIC带上升下降捕获的单片机。

使用特权

评论回复
18
discussant|  楼主 | 2013-8-3 16:55 | 只看该作者
coody 发表于 2013-8-2 10:29
定时器中断查询最好, 可以参考STC官网的
http://www.****ducst/datasheet/stc/STC-USER-CODE/STC15%E7%B3% ...

还有这个程序如果有重复码就好了。

使用特权

评论回复
19
coody| | 2013-8-5 11:19 | 只看该作者
重复码很容易实现的,类似于按键处理。

使用特权

评论回复
20
coody| | 2013-8-5 11:21 | 只看该作者
discussant 发表于 2013-8-3 09:55
我看了程序,是个很好的程序,只是有一个疑问:D_IR_DATA_DIVIDE这个常量是干什么的?已经大于等于D_IR_S ...

就是区分数据是0或1。这个程序可以适应STC的各种MCU的各种工作频率。
注意这个程序是使用了STC15F系列定时器的16位自动重装功能,如果你用的MCU 不支持,要修改定时器工作模式。

使用特权

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

本版积分规则

68

主题

250

帖子

1

粉丝