新闻中心

EEPW首页>嵌入式系统>设计应用> AVR学习笔记--红外遥控接收器使用

AVR学习笔记--红外遥控接收器使用

作者: 时间:2016-11-23 来源:网络 收藏
目前大多使用的是一体化红外接收头,它将红外接收二极管、放大、解调、整形等电路做在一起,只有三个引脚.分别是+5V电源、地、信号输出。所以只需要关心接收头的输出编码格式。

[1]指令格式:前导码 + 地址码 + 地址码反码 + 数据 + 数据码反码

本文引用地址://m.amcfsurvey.com/article/201611/320163.htm

[2]指令编码:脉宽调制编码

[3]识别算法:每两次信号的下降沿表示1位数据,根据两次下降沿之间的间隔时间,就可以判断出是前导码,还是数据1或数据0。

A、前导码:9ms

B、数据“1”:2.25ms

C、数据“0”:1.12ms


注意:[1]虽然0和1的占用时间长度不同,但因为同时其反码的存在,所以整条指令的总长度是固定的。

[2]前导码是固定格式,也是红外指令的识别码

[4]硬件电路:


[5]编程流程:

  • 一体化红外接收头的输出脚接到外部硬件中断I/O上,并设置成下降沿触发。
  • CPU上电,初始化定时器,初值为0。
  • 每次触发中断,停止定时器,读取定时器值,判断定时器值,9ms表示前导码,2.25ms表示1,1.12ms表示0。送入数据缓冲,并对数据队列计数,初始化定时器,重新计时。
  • 判断数据队列长度,除前导码外,接收到32位数据,表示指令接受完成。
  • 指令校验,就是将数据和数据反码,地址和地址反码做加法处理,如果得到的结果是0xFF,表示校验通过,否则,校验失败,丢弃数据。
  • 指令解读,根据规则解读。

[6]实例代码:

等待补充



评论


技术专区

关闭