



免费预览已结束,剩余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()中循环时超时跳出的数的上限,可小刀sbit 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();/延时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)/如果是正确的红外信号才处理,否则跳过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;case 12:break;case 24:break;case 94:break;case 8:break;case 28:break;case 90:break;case 66:break;case 82:break;case 74:break;nec_actflag=0;*/void nec_pulsedat()/读第2到第32个脉冲,第一个脉冲已判定uchar i=0;uint num=0;for(i=1;i32;i+)num=0;while(nec_dat=0)&(num=1)&(i=7)nec_id0=nec_id0|(0x01=8)&(i=15)nec_id1=nec_id1|(0x01=16)&(i=23)nec_data0=nec_data0|(0x01=24)&(i=31)nec_data1=nec_data1|(0x01(i-24);num=0;while(nec_dat=1)&(num=1)&(i=7)nec_id0=nec_id0&(0x01=8)&(i=15)nec_id1=nec_id1&(0x01=16)&(i=23)nec_data0=nec_data0&(0x01=24)&(i=31)nec_data1=nec_data1&(0x01i-24);void nec_getdat()/扫描式读遥控器的数据,可能有时会扫描不到uint num=0;if(nec_dat=1)num=0;while(nec_dat=1)&(numN)num+;nec_delay();if(nec_dat=0)nec_delay();if(nec_dat=0)nec_delay();if(nec_dat=0)nec_delay();if(nec_dat=0)nec_status=1;num=0;while(nec_dat=0)&(numN)num+;num=0;while(nec_dat=1)&(numN)num+;if(nec_status=1)num=0;while(nec_dat=0)&(numN)num+;nec_delay();if(nec_dat=1)nec_delay();nec_delay();nec_delay();if(nec_dat=1)nec_status=2;else nec_id0=0x01;nec_pulsedat();elsenec_id0=0x00;nec_pulsedat();nec_actflag=1;/一次按键的响应程序if(nec_status=2)/持续按键的响应程序nec_status=0;/必须归零,非常重要图1-1 红外遥控器按键对应的接收码 图1-2 本程序使用的遥控器注意:本程序适用于NEC协议的红外遥控器,但是每一款遥控器的按键码可能不同,需要自己找到自己手头上遥控器的按键码资料来对程序进行改动。本程序没有占用单片机的中断资源,但是直接导致的问题就是单片机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区块链应用操作员转正考核试卷及答案
- 建筑照明品牌营销方案设计
- 跨年公益活动策划方案
- 江苏专业活动会议方案策划
- 巫山离婚咨询律师方案
- 心理摄影活动策划方案范文
- 咨询监理方案
- 药品质量安全培训简讯课件
- 餐饮五一以后活动方案策划
- 跨境公司财税咨询方案
- 医疗美容监督检查
- 节前物业安全培训
- 无人机行业无人机巡检方案
- 与信仰对话 课件-2024年入团积极分子培训
- 公路水泥混凝土路面施工技术规范(JTGF30-2024)
- 小学五年级体育教案全册(人教版)
- 戏曲鉴赏学习通超星期末考试答案章节答案2024年
- 4学会宽容主题班会课件
- 职能科室对医技科室医疗质量督查记录表(检验科、放射科、超声科、功能科、内镜室)
- GH/T 1451-2024调配蜂蜜水
- 12S108-2 真空破坏器选用与安装
评论
0/150
提交评论