NEC通讯以及51单片机程序
一、实现38KHz载波:
(1)频率为38KHz,则载波周期为1/38KHz,约为26.3us
(2)发射红外光的占空比一般为1/3,也就是说高电平约8.77us,低电平约为17.53us
(3)高电平约8.77us+低电平约为17.53us=发射一个 红外光载波信号
(4)低电平26.3us=不发射红外光载波信号
二、NEC协议:
如上图,一帧的数据的组成分别是:引导码、地址码、地址码的反码、数据码和数据码的反码。
(1)引导码:9ms的红外光载波信号+4.5ms的不发射红外光载波信号
(2)逻辑0:0.56ms的红外光载波信号+0.56ms的不发射红外光载波信号
逻辑1:0.56ms的红外光载波信号+1.68ms的不发射红外光载波信号
(3)结束码:也就是逻辑0,0.56ms的红外光载波信号+0.56ms的不发射红外光载波信号
三、遥控器电路图及部分程序:
(1)模拟电路图:
(2)程序思路:
–NEC协议程序:
IR=P3^2 //第一步定义IR引脚
void delay8_77us() //第二步,编写延时函数,51单片机12MHz晶振,延时8.77us
{
unsigned char i;
i=2;
while(--i);
}
void sendIR(unsigned int i)//第三步,编写发送红外光载波信号函数
{
while(i--)
{
IR=1;
delay8_77us();
IR=0;
delay8_77us();
delay8_77us();
}
}
void nosendIR(unsigned int i)//第四步,编写不发送红外光载波信号函数
{
while(i--)
{
IR=0;
delay8_77us();
delay8_77us();
dela