[1]指令格式:前导码 + 地址码 + 地址码反码 + 数据 + 数据码反码
[2]指令编码:脉宽调制编码
[3]识别算法:每两次信号的下降沿表示1位数据,根据两次下降沿之间的间隔时间,就可以判断出是前导码,还是数据1或数据0。

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

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

                
APP下载
登录
                                



                                    
                                    
                                    
                                
                                    
                                
                                    
                                
                                    
                                
热门文章
                    
                            
                            
                            
                            
                            
                            
                            


