NEC协议的红外遥控程序(任意IO口)(共5页).doc
《NEC协议的红外遥控程序(任意IO口)(共5页).doc》由会员分享,可在线阅读,更多相关《NEC协议的红外遥控程序(任意IO口)(共5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上/*NEC_INF_S.h用于NEC协议的遥控器与51单片机结合的驱动程序,可用任意IO口,不占用中断资源。用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。皆为前8原码,后8反码,并且接收数据时低位在前,高位在后。主控器为51单片机,晶振频率为11.0592MHz。注意:由于未用中断,所以信号的接收是靠查询方式的,可能会漏掉若干次红外信号。*/#include#define uchar unsigned char#define uint unsigned int#define N 5000/用于在while()中循环时超时跳出的数的上限,可小刀s
2、bit nec_dat=P33;/任意IO口,用到哪个自己改哪个uchar nec_id2=0;/遥控器的编码号,第一个为原码,第二个为反码uchar nec_data2=0;/遥控器的命令号,第一个为原码,第二个为反码uchar nec_status=0;/遥控器的按键状态信息。0:无按键;1:一次按键;2:连续按键uchar nec_actflag=0;/用于带到主函数里的按键响应标志。0:不动作;1:动作#ifndef NEC_INF_S_h#define NEC_INF_S_hvoid nec_init();/初始化函数,注意一定要拉高,拉低就错误了void nec_delay();/
3、延时0.8ms左右,要求要非常精确,这是正确读数的关键void nec_pulsedat();/读第2到第32个脉冲,第一个脉冲已判定void nec_getdat();/扫描式读遥控器的数据,可能有时会扫描不到#endifvoid nec_init()/初始化函数,注意一定要拉高,拉低就错误了nec_dat=1;void nec_delay()/延时0.8ms左右,要求要非常精确,这是正确读数的关键uchar i;for(i=0;i245;i+);/*void nec_act()/按键响应程序,根据自己需要写nec_getdat();/先扫描一遍红外信号if(nec_actflag=1)/如
4、果是正确的红外信号才处理,否则跳过if(nec_data0=nec_data1)/验证所接收数据是否正确switch(nec_data0)/自己写所需要的程序段case 69:/*点亮二极管,让蜂鸣器发声,什么都行,写在这里*/ break;case 70: /*以下都一样,对应的遥控器按键见图1-1*/ break;case 71: break;case 68:break;case 64:break;case 67:break;case 7:break;case 21:break;case 9:break;case 22:break;case 25:break;case 13:break;c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NEC 协议 红外 遥控 程序 任意 IO
限制150内