欢迎来到天天文库
浏览记录
ID:52134878
大小:130.50 KB
页数:6页
时间:2020-03-23
《红外遥控接收端时序表(NEC协议).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、红外遥控接收端时序表(NEC协议)3导码/同步码头9ms2.25msI1.12ms__4.5ms[0.56ms
2、1.69ms[0.56ms[0.56ms[0.56ms[红外遥控发射端时序表(NEC协议)(发射端与接收端时序相反,程序以接收端时序编写)1.NEC编码位定义图4.2NEC编码位定义100110101001101001101000011010002.NEC码数据编码格式(加黑为0.56ms载波脉冲为高电平)■IIIIIIIIIIIIIIIIIIIIIIlliIIIIIIII9m$—"g堆址码一—堆址反码一►<—控制码一—控制反马一►图4.3NEC编码数据格式3.发完一个数据帧
3、之后,按键仍按下则发送单片机开发箱键盘编码表CH・45+1535ECH46EQ09408CH+4701651CLeft44100+1965ARight40200+0D742Start/Stop431OC852—0721894A逻辑左移二算数左移,右边统一添0逻辑右移,左边统一添0算数右移,左边添加的数和符号有关e.g:1010101010,其中□位是添加的数字逻辑左移一位:010101010[0]逻辑右移一位:[01101010101算数左移一位:010101010[0]算数右移一位:[11101010101/************************************4o
4、
5、c***4o^*****4a
6、c**********4o^****项目名称:红外线遥控接收器晶振:12MHZ功能:通过遥控器远程控制单片机说明:*遥控器接p3.2**喇叭接pl・5**P0接LED等,并显示地址数据*程序思路:1•采用中断方式进行控制(P3.2口);2.高电平时采用延时函数计时的方式进行标志位的累加;3•判断是我用的if不好使,但换成wh订e就ok了:3本程序只是判读数据位通过发光管显示出来;******************************)
7、afc*****)
8、a(c***3
9、a
10、c*****)
11、a
12、c**********)
13、o(c****/#include
14、#include#defineuintunsignedint♦♦defineucharunsignedcharcharreceive(void);sbitIR=P3"2;sbitP15=P「5;〃x*0・14MS〃初始化数据ucharIRC0M[4];voiddelay(ucharx){unsignedchari;while(x一){for(i=0;i<13;i++);}}voidmain(void){P15=1;IR=1;P0=Oxff;TCON=0x01;〃中断方式设定为下降沿触发方式while(1);}voidint_0()interrupt
15、0{uchari,j,n=0;P15=0;EXO二0;delay(15);//关中断,以免再次进入中断〃延时2.1msif(IR==1)断,退出中断程序{EXO二1;return;}〃检测是否为真正的IR引导码(低电平),若不是,开中while(!IR);结束while(IR);4.5ms高电平引导码结束//检测是IR引导码(低电平),等待9ms的低电平引导码//9ms的低电平引导码过后是4.5ms高电平引导码,等待for(i=0;i<4;i++)据码){for(j=8;j>0;j—){while(!IR);while(IR)若为低电平为0{delay(1);n++;if(n>=30)描
16、〃接受4组数据(地址码反地址码数据码反数//8为字长〃等待0.56ms低电平结束〃判断IR是否为高电平,若为高电平为1,〃延时0.14ms//标志位每隔0.14ms累加一次〃判断是否超时,若超时,退出中断重新扫EXO二1;return;IRCOM[i]=IRCOMti]»1;//数据右移一位(这是默认的情况的"0")if(n>9)//判断髙电平是否超出1.12ms,超出为"1",若没超出还是默认为"0"{IRCOMti]二IRCOMti]
17、0x80;}n=0;〃数据校验}if(IRC0M[2]!=~IRC0M[3]){EXO=1;P15=1;:return;}P0=IRC0M[2]://
18、LED显示编码值EXO=1;〃扫描完成后关中断,等待下一次中断
此文档下载收益归作者所有