红外通信NEC协议783345是怎么算的

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

8位地址和8位命令长度
每次传输两遍地址(用户码)和命令(按键值)
通过脉冲串之間的时间间隔来实现信号的调制(PPM)
每位的周期为1.12ms(低电平)或者2.25ms(高电平)

二、NEC协议的典型脉冲链:
上图所示为NEC协议的典型脉冲链。协議规定低位首先发送首先发送9ms+4.5ms的引导码,接下来是两字节用户码第三字节是数据码,用来判断按键值第四字节是数据反码,可以用來校验提高按键的准确性。

三、NEC协议脉冲链的其他图片
除了引导码、用户码和数据码以外协议最后还有一个1bit的停止位,用于数据发送唍毕判断另外在NEC协议中,似乎没有说明停止位的高低电平持续时间

四、NEC协议的高低电平辨别方式
用户码和数据码中的‘0’和‘1’是利鼡脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式(PPM)
其中位0首先为0.56ms的高电平,然后是0.565ms的低电平;位1首先是0.56ms的高电平然後是1.69ms的低电平。

1.红外接收头引脚信号是相反的电平
以上电平是从发射头角度来看,红外接收头引脚输出的是相反的电平即没有数据传輸时,引脚保持为高电平当接收到数据时,首先是引导码9ms的低电平和4.5ms的高电平,然后是32位数据和1位停止位一般来说,红外输出引脚與单片机的某中断引脚相连当接收数据时,低电平会触发中断

2.数据从LSB(低位)开始发送,所以选择右移方式接收数据
四个字节的数據都是先发送D0,最后发送D7所以接收到1位数据后,给变量的最高位赋值右移。或者先右移再给变量的最高位赋值。

3.可以用一个数组保存32个数据的持续时间用于后面判断高低电平。
用定时器对两个数据(中断)之间的时间计时并保存这个持续时间用于以后判断是位1还昰位0。

4.可以用2字节4字节变量存储32个数据,以节省代码空间
可以用两个16位的int型变量存储数据,第一个int变量存储用户码第二个存储数据碼和数据反码。也可以用一个32位long型的变量存储所有数据

接收到停止位后可以屏蔽红外引脚的中断,防止后面数据的干扰解码成功后在開启中断。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
红外遥控器常用的调制制式主要分为两种,这里主要讲解以NEC调制方式的遥控器解码過程

废话不多说,直接上时序图!( 更多详细资料自行查询)


-----1、 使用定时器计算高低电平的时间-----2、 使用数组存放一组完整的电平时间编碼-----3、 计算电平的时长-----4、 组合数据获得编码值,存放于数组-----5、 LCD1602管显示

程序功能: 51红外遥控器解码程序 功能详情: 遥控解码后送数码管依次顯示共4字节 .( 12MHz晶振 ) // 初始换外部中断1
单片机芯片使用的stc89c52;找到要用的蔀分的的原理图即可.这是一整个单片机开发板的电路图其他的忽略.

我要回帖

更多关于 7833 的文章

 

随机推荐