打印
[技术问答]

N76E003红外编码程序及NEC协议分析

[复制链接]
485|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
注销|  楼主 | 2020-9-8 11:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
N76E003红外编码程序及电路(38kHZ,NEC协议)

N76E003是一款带有flash的增强型8位8051内核单片机,指令集与标准的80C51完全兼容,并且内置16M晶振,故在51上使用的红外发射程序,修改一下定时器数据(晶振不同),就可在N76E003上运行,本文重点说一下NEC红外协议,电路等。

由于 NEC协议需要工作在38kHZ载波上,在N76E003中我们使用定时器0来产生,由下图可得知相关寄存器设置方法



定时器0配置代码如下



在产生了38kHZ载波后,我们再来看看NEC协议是如何定义“0”、“1”的,参考下图:


“0”——0.56ms的载波+0.56ms的空闲=1.12ms
“1”——0.56ms的载波+1.68ms的空闲=2.24ms

下图为NEC协议格式:会先发送一个9ms载波的引导码,之后是4.5ms的空闲,后发送16位地址码(18ms36ms)、8位数据码(9ms18ms)以及8为数据反码。(第二个108ms)如果接下来发射重复的数据,可以先发送9ms载波,空闲2.5ms,再发射0.56ms载波即可,注意每次发射的间隔时间。


在调试过程中,建议通过逻辑分析仪确定相应时间,我在使用内置16M晶振,且定时器0设定如上时,计算出的相关数值如下


电路图如下所示

相关发射函数及中断服务程序如下所示





使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

1473

帖子

2

粉丝