51单片机红外解码过程时序图-皇冠最新app版本

×
单片机 > 单片机程序设计 > 详情

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

发布时间:2023-12-18 发布时间:
|

红外解码过程:

ray_read_bit_timer103us自增变量
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表示按键更新。



『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』

网站地图