红外遥控解码流程图
- 格式:xls
- 大小:27.50 KB
- 文档页数:2
pic12f1822接收红外信号解码流程图单片机初始化等待IR低信号NOY0,1避开引导码高电平1.1252.25如果为低电平表示还在引导码高电平IR信号变高NOY如果为高电平表示还在引导码9mS高电平结束,4.5mS低电平避开引导码的低电平,直接检测用户码与数据码。等待第一位IR高电平信号,如果为低表示还在0或1信号0.56mSIR信号变高NO高电平上,Y如果为高表示0或1的高电平信号来临,(即发射源的0或1的间隔低电平到来,) 将端品的信号电平存 入寄存器中, Z3 此处并执行左移程序 NO Z3执行8次 Z4YNOZ3,Z4执行4次 Z5YNO用户码正码与反码相同否接收的用户码与设定的用户码正反码相比较YNO数据的正码与反码相同否接收的数据码与设定的数据码正反码相比较Y执行接收正确后的程序延时9mS如果为高电平表示信号没来继续等待,高电位是红外接收头的电平
解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为 0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到 的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已 是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.88ms左右均可。将一组完整的8个信号接收完毕将一组完整的32个信号接收完毕延时4.7mS
延时882US头的电平