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设定如上时,计算出的相关数值如下
电路图如下所示
相关发射函数及中断服务程序如下所示
|