NEC协议的遥控器参考代码.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

NEC协议的遥控器参考代码

NEC协议的遥控器参考代码

/**************************************************************

**************

NEC_INF_S.h

用于NEC协议的遥控器与51单片机结合的驱动程序,可用任意

IO口,不占用中断资源。用户码8位,分布于2-17个脉冲;按键码8

位,分布于18-33个脉冲。

皆为前8原码,后8反码,并且接收数据时低位在前,高位在后。

主控器为51单片机,晶振频率为11.0592MHz。

注意:由于未用中断,所以信号的接收是靠查询方式的,可能会

漏掉若干次红外信号。

***************************************************************

**************/

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineN5000//用于在while()中循环时超时跳出的数的上限,

可小刀

sbitnec_dat=P3^3;//任意IO口,用到哪个自己改哪个

ucharnec_id[2]={0};//遥控器的编码号,第一个为原码,第二个

为反码

ucharnec_data[2]={0};//遥控器的命令号,第一个为原码,第二

个为反码

ucharnec_status=0;//遥控器的按键状态信息。0:无按键;1:一

次按键;2:连续按键ucharnec_actflag=0;//用于带到主函数里的按键

响应标志。0:不动作;1:动作

#ifndefNEC_INF_S_h

#defineNEC_INF_S_h

voidnec_init();//初始化函数,注意一定要拉高,拉低就错误了

voidnec_delay();//延时0.8ms左右,要求要非常精确,这是正

确读数的关键voidnec_pulsedat();//读第2到第32个脉冲,第一个

脉冲已判定

voidnec_getdat();//扫描式读遥控器的数据,可能有时会扫描不

#endif

voidnec_init()//初始化函数,注意一定要拉高,拉低就错误了

{

nec_dat=1;

}

voidnec_delay()//延时0.8ms左右,要求要非常精确,这是正确

读数的关键{

uchari;

for(i=0;i245;i++);

}

/*voidnec_act()//按键响应程序,根据自己需要写

{

nec_getdat();//先扫描一遍红外信号

if(nec_actflag==1)//如果是正确的红外信号才处理,否则跳过

{

if(nec_data[0]==~nec_data[1])//验证所接收数据是否正确

{

switch(nec_data[0])//自己写所需要的程序段

{

case69:/*点亮二极管,让蜂鸣器发声,什么都行,写在这里*/

break;

case70:/*以下都一样,对应的遥控器按键见图1-1*/break;

case71:break;

case68:break;

case64:break;

case67:break;

case7:break;

case21:break;

case9:break;

case22:break;

case25:break;

case13:break;

case12:break;

文档评论(0)

153****6002 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档