历史上的今天
今天是:2024年12月25日(星期三)
2020年12月25日 | 51单片机红外解码过程时序图
2020-12-25 来源:51hei
红外解码过程:
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表示按键更新。

上一篇:用pcf8563做时钟
下一篇:单片机多功能秒表语音播报
史海拾趣
|
在下从事网络工作有一段时间了。不过就是做售后工作..平时无非也就是给客户调试下路由,3层交换,防火墙什么的。其中遇到许多软件上的问题,感觉自己无能为力.我想问下,需要掌握什么知识才能对路由的软件进行开发,或是需要什么样的开发环境.上学时有一 ...… 查看全部问答> |
|
请教有关Silverlight for Embedded硬件加速的问题 已经编译成功了wince 6 R3的silverlight演示,但是演示的帧率一直保持在1到3帧,想尽了办法都不行,。 我做过的设置如下: 1,添加了SYSGEN_XAML_RUNTIME 2,添加了SYSGEN_DDRAW 3,添加了环境变量sysgen_samplexamlperf 4,添加了环境变量bsp ...… 查看全部问答> |
|
请问注册表里面 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root 下面的LEAGCY_XXX项是什么时候创建的?在安装驱动的时候? 这项的创建是不是仅仅和安装用的inf文件相关,和driver的源码相不相关? 我遇到的问题是这样的,在编译vi ...… 查看全部问答> |
|
大家好!我根据手头的开发板订制了一个系统。编译无错误,我把系统下载到开发板上,复位启动后报如下错误: * Exception (user) : TLB (load or instruction fetch) *CAUSE = 0x00808008 STATUS   ...… 查看全部问答> |
|
“2011年市场行情不好,不需要那么多工人,所以相比往年和2011年初,招人没有那么困难了。”《经济参考报》记者近期在浙江多地采访时,不少中小企业主如是表示。 在当前劳动力成本上升、产业转移速度加快的大 ...… 查看全部问答> |
|
arm版,linux系统,外接两个USB摄像头,开机之后将摄像头插上可以在 /dev 目录下看到 video0 和 video1 设备,但是如果是将摄像头插着开机的话就看不到这两个设备,请问这是什么原因呢?有没有办法让板子自动加载摄像头?… 查看全部问答> |




