找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3283|回复: 2
收起左侧

51单片机红外解码过程时序图

[复制链接]
ID:390416 发表于 2020-12-25 12:36 | 显示全部楼层 |阅读模式
本帖最后由 人人学会单片机 于 2020-12-25 12:37 编辑

红外解码过程:

Ray_Read_bit_timer  103us自增变量
Ray_Read_bit_count 保存位置编号
Ray_bit_timer_Buffer[33] 33字节数组
Ray_Flag 保存标志
Ray_Read_ok 允许分析长短

(1)、按下遥控器,单片机就会有下降沿中断。启动定时器TR0=1;

(2)、定时器从0开始增加到255溢出,需要时间103us。

(3)、产生定时器中断。中断里面变量Ray_Read_bit_timer增加1。

(4)、在下降沿的中断服务,判断这个时候Ray_Read_bit_timer * 103us,是不是大于11.5ms 。

(5)、如果大于11.5,肯定大于9ms,认为这是引导码。否则 判断为数据信号。

(6)、如果是引导码,就把Ray_Read_bit_count等于0; 否则 增加一。Ray_Flag=1;

(7)、根据count的值,把Ray_Read_bit_timer的长度值,保存到数组Ray_bit_timer_Buffer[33]对应的位置;

(8)、Ray_Read_bit_timer先保存到数组,再删除,然后会自己增加。它就是下一个数据长度。

(9)、遥控器的下一位数据,就会有下一个下降沿。重复上面的(3)、(4)、(5)、(6)、(7)。

(10)、直到Ray_Read_bit_count大于33,已经接收完整的NEC协议数据!Ray_Read_ok=1;开始分析。Ray_Flag=0排除干扰。

(11)、关闭定时器,然后判断Ray_bit_timer_Buffer[]里面的时间长短,长的为1,短的为0.每8个时间就表示一个字节!四个字节。

(12)、判断新解码的值是不是和原来的值一样,如果是一样的那就连按自加,如果不相等都写255表示按键更新。 红外遥控时序图全图.png






红外遥控时序图全图.png
回复

使用道具 举报

ID:390416 发表于 2020-12-25 17:16 | 显示全部楼层
其他更多资料 可以这里下载 不加密的 https://pan.baidu.com/s/1bp4HLl9
回复

使用道具 举报

ID:151846 发表于 2021-1-10 10:29 | 显示全部楼层
第7行根据count的值,保证到数组。没立即处理吗?如果引导码的count值为30怎么处理?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表